story-114: What the Inspector files is not noise - #167
Merged
Conversation
Implemented by the l5 harness story workflow.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Story
What the Inspector files is not noise.
A promotion policy for the Inspector, written against output a developer has actually read rather than against a prediction of it.
The corpus is the tracker as it stands: 46 open briefs from thirteen post-story inspections, story-101 through story-113, none closed and none planned into a story. Fifteen are severity 1 — which the Inspector's own scale defines as "worth fixing the next time somebody has the file open", and which by that definition is not a story. Thirty are severity 2 and one is severity 3.
Two things the brief predicted did not survive contact with the corpus
Thin briefs are not the problem. The median filed brief is 313 words, with file:line evidence, a statement of what would resolve it, a
not_in_scopelist and its workflow choice argued.The cap is inert. It is 10 across a whole inspection, and narrow mode has never produced more than 5, so nothing has ever been dropped for any reason on any inspection — the drop report has read zero every time.
So the policy is narrower than it would have been without reading the output first.
What the corpus does show is arithmetic
Filing runs at roughly three and a half briefs per completed story, and planning drains none of them. The backlog grows monotonically.
The lever that fits that is a floor rather than a quality bar: one configurable number,
inspect_min_severity, defaulting to 2, applied where the cap already lives so both producers of briefs get it from the same call and cannot diverge. Against the 46 filed so far, the floor files 31 and drops 15, each named in the report with its severity.The prompt is told the floor as well as the filter that enforces it, and that is not a duplicated fact. The filter decides; the prompt exists so an invocation does not spend three hundred words writing a brief that will be dropped on arrival.
Evidence
tests/test_what_the_inspector_files_is_not_noise.py(887 lines); 17 files changed, +1319 / −46The corpus figures, and how they have already moved
The verifier recorded that it could not check the numbers the story and the architecture document rest on, because they come from the live tracker rather than from anything in the repository.
Counted independently at 23:30 on 2026-09-07: 46 open briefs, severity split 15 / 30 / 1 — exactly what the story claims. Filtering the tracker to issues created before 2026-09-08 still returns 46, so that is a stable description of the corpus the story was written against.
It is no longer the current number. Ten more briefs, #158 through #168, were filed between 00:43 and 02:00 on 2026-09-08, while this story was finishing. The tracker now holds 56 open.
That does not weaken the story's reasoning; it is the reasoning. Filing runs at roughly three and a half briefs per completed story and planning drains none of them, and ten arrived during the run of the story about that problem.
Notes for review
The second
unverifiednote is narrow: the rendered prompt was checked through the module's own render assertions against the shipped prompt, rather than by driving a live invocation.What this does not do. It does not close, triage or re-rate any of the 46 already filed. The floor applies to what is filed from here; the existing backlog is unchanged, and the fifteen severity-1 briefs stay open until somebody decides otherwise.
🤖 Generated with Claude Code
https://claude.ai/code/session_019WkxmJ5ArLEaC2RDPGkbRU