Found by the dispatched review of #396, in that PR's own new code.
orphan_reports globbed every *.md under research/traits/ and failed on any without an ok manifest row. But the harm it exists to prevent — a file suppressing a call that was never paid for — depends on resume looking for that filename, and resume keys on output_path(): {slug}-deep-research-{default provider}.md.
Two documented workflows write outside that namespace and record nothing:
just research-trait <cat> <slug> --provider openai (README) → {slug}-deep-research-openai.md
just research-trait-edison <target> (justfile) → {slug}-edison-{job}.md
So the first documented non-falcon run after merge would have turned just qc red, with the only remedy being to add a filename to a constant in the script.
The PR's own exception list contained the refutation. It justified excluding cellulolysis-deep-research-codex.md on the grounds that it "is harmless only because its -codex suffix is not the -falcon name resume looks for". That reasoning generalises to every non-default provider — the gate was blocking on files structurally incapable of causing the harm.
Fixed in #396 by scoping the glob to the resume namespace. Two consequences worth recording:
Also folded in from the same review: the recipe comment in justfile still described only the pre-#244 checks, manifest ok rows with a missing artifact: counted artifacts while still saying "rows", and two of the four report blocks lacked the ... and N more tail the other two carry.
Found by the dispatched review of #396, in that PR's own new code.
orphan_reportsglobbed every*.mdunderresearch/traits/and failed on any without anokmanifest row. But the harm it exists to prevent — a file suppressing a call that was never paid for — depends on resume looking for that filename, and resume keys onoutput_path():{slug}-deep-research-{default provider}.md.Two documented workflows write outside that namespace and record nothing:
just research-trait <cat> <slug> --provider openai(README) →{slug}-deep-research-openai.mdjust research-trait-edison <target>(justfile) →{slug}-edison-{job}.mdSo the first documented non-falcon run after merge would have turned
just qcred, with the only remedy being to add a filename to a constant in the script.The PR's own exception list contained the refutation. It justified excluding
cellulolysis-deep-research-codex.mdon the grounds that it "is harmless only because its-codexsuffix is not the-falconname resume looks for". That reasoning generalises to every non-default provider — the gate was blocking on files structurally incapable of causing the harm.Fixed in #396 by scoping the glob to the resume namespace. Two consequences worth recording:
cellulolysis-deep-research-codex.mdno longer needs naming, which is a better outcome for cellulolysis has a second, codex-provider report with no manifest row and no citations sidecar #245 as well — that file is a tidiness question, not an integrity one.Also folded in from the same review: the recipe comment in
justfilestill described only the pre-#244 checks,manifest ok rows with a missing artifact:counted artifacts while still saying "rows", and two of the four report blocks lacked the... and N moretail the other two carry.