Commit eb0bfe3
committed
Read the report out of a stream-json transcript
Claude's row passes --output-format stream-json, so its report arrives inside an escaped JSON string with the labels mid-line, where every anchored pattern in classify misses them. The first --e2e run scaffolded and deployed okta-users-claude, reported the deployment id, and was classified as "stopped without reporting". The tenant is what settled it, not the harness.
Expanding \n restores line structure for the labels and, just as importantly, for the blockquoted skill text the next filter strips, so the existing defences against matching our own documentation keep working rather than being bypassed.
The second substitution drops the JSON tail. The report ends the reply text, so the object's remaining fields sit past the closing quote on the same physical line and were being read as part of BLOCKER, turning NONE into a phantom blocker. It anchors on a quote followed by `}` or `]` instead of the first quote, because BLOCKER is asked to quote the CLI error verbatim and cutting there would truncate a real one.
Verified by re-classifying the saved log, which flips to PASS with the app name and deployment id, alongside six plain-text cases covering a clean deploy, a timed-out build, an echoed template, a duplicate app name, a quoted CLI error, and smoke mode.1 parent 207bef1 commit eb0bfe3
1 file changed
Lines changed: 8 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
548 | 548 | | |
549 | 549 | | |
550 | 550 | | |
551 | | - | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
552 | 559 | | |
553 | 560 | | |
554 | 561 | | |
| |||
0 commit comments