Found in the re-review of #253, about a change made in that same PR.
Fixing #257 swapped one imprecision for another. Because 353 blocks always render, the outer condition is now always true, so the check reduces to: any untracked, non-ignored file under research/traits fails qc.
That is broader than the divergence the comment above it describes, and the message asserts something false about the file:
a research block is rendered from reports that are not committed, so CI cannot reproduce it
An untracked .citations.md sidecar has no bearing on the render — research_report() explicitly excludes sidecars. Neither does a report for a provider the ranking would not select. And a sweep still in progress trips it on every partially-written file, which makes just qc unusable mid-sweep.
Erring toward commit your research output is defensible policy — 342 reports were lost to exactly the opposite instinct, which is why .gitignore:41 now says research/ is TRACKED. The defect is the claim, not the strictness. Narrowing the checked set to the files research_report() can actually select — *-deep-research-*.md, excluding *.citations.md — makes the message true and drops the sidecar false positive.
Found in the re-review of #253, about a change made in that same PR.
Fixing #257 swapped one imprecision for another. Because 353 blocks always render, the outer condition is now always true, so the check reduces to: any untracked, non-ignored file under
research/traitsfailsqc.That is broader than the divergence the comment above it describes, and the message asserts something false about the file:
An untracked
.citations.mdsidecar has no bearing on the render —research_report()explicitly excludes sidecars. Neither does a report for a provider the ranking would not select. And a sweep still in progress trips it on every partially-written file, which makesjust qcunusable mid-sweep.Erring toward commit your research output is defensible policy — 342 reports were lost to exactly the opposite instinct, which is why
.gitignore:41now saysresearch/is TRACKED. The defect is the claim, not the strictness. Narrowing the checked set to the filesresearch_report()can actually select —*-deep-research-*.md, excluding*.citations.md— makes the message true and drops the sidecar false positive.