Skip to content

The disk-to-manifest gate blocked wider than its own invariant #397

Description

@realmarcin

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions