fix(spec): record measured evidence on HIVE-384, and stop AC5 reading green - #408
Conversation
… green Closes #402. features.json carried `"state": "pending", "evidence": ""` on all eight rows while verification.md marked seven ACs `[x]`. The JSON is the half a gate reads, so the machine-readable record said nothing was verified while the human-readable one said everything was. Every command re-run on 66dbf17 and the PASSED count written into evidence: f1 10, f2 15, f3 4, f4 4, f5 3, f6 0, f7 23, f8 6. Passed and not collected deliberately — f6 collects two tests, runs neither, and exits 0, so a collection count would have scored it as evidence. That is lesson-094's case, live in this spec. State stays `pending` on all eight. HIVE-118's features.json declares the rule: "The agent MUST NOT set state=passing. Only the harness may." HIVE-384's file carries no gating_rule of its own, so nothing here enforces that — recording the measurement while leaving the terminal call to the harness is the honest reading, and the missing gating_rule is noted on the ticket rather than fixed by restructuring the file. AC5 flips from `[x]` to `[ ]`. Its live-inference half has never run — 2 collected, 2 skipped, exit 0, no endpoint configured — and the line already said so in prose. The text was honest and the checkbox was not, which is the half a reader scanning for green picks up. Test status gains the re-run, and the finding about this file's own machinery: at dff8af4 all eight scaffolded commands selected zero tests, and pytest refused every one (six exit 4, two exit 5). Nothing was falsely closed there — every row read pending, every box unchecked. The near miss is 4092bf4, which rewrote the commands to working ones and checked all seven boxes in the same commit, so nothing re-read them independently of the change that wrote them. AC5 remains the one criterion genuinely unproved, and it still blocks the archive.
|
Warning Review limit reachedNext included review available in 11 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…n finding The header paragraph still carried the claim lesson-094 was corrected for: four of eight commands, exit 0, and 4.0.0 shipping criteria marked complete on that basis. Re-measured at dff8af4: all eight selected zero, pytest refused every one (six exit 4, two exit 5), and nothing was marked complete there — every row pending, every box empty. Left as-is, the file contradicted the Test status bullet added in the previous commit. Also drops --collect-only as the remedy: AC5's smoke row collects two tests and runs neither, so a collection count scores it as evidence.
Review triageCI: all 6 check runs green ( Review: none ran. CodeRabbit showed "Review in progress" mid-run and settled on "Review limit reached" — final commit status Findings: none to dispose of. One thing the queue itself caught, after the first commit. That is the triage step doing its job on its own PR, which is the argument for #407 in one line. Evidence in this session: every Still blocked, unchanged by this PR: AC5's live-inference half needs a reachable worker endpoint. It continues to block Recommendation: merge on the human's call, with the unreviewed status on the record. |
|
@coderabbitai review |
|
🤖 I have created a release *beep* *boop* --- ## [4.2.0](v4.1.0...v4.2.0) (2026-08-25) ### Features * add the reviewer registry that makes the triage queue answerable ([#407](#407)) ([2492151](2492151)) ### Bug Fixes * **spec:** record measured evidence on HIVE-384, and stop AC5 reading green ([#408](#408)) ([5fd5aa6](5fd5aa6)) ### Documentation * correct lesson-094's premise and three reviewer findings from [#401](#401) ([#406](#406)) ([66dbf17](66dbf17)) * record five lessons from the delegate-verb work ([#401](#401)) ([8bc66eb](8bc66eb)) * record why the reviewer registry could not be copied ([#409](#409)) ([2b920ba](2b920ba)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Closes #402.
features.jsonread"state": "pending", "evidence": ""on all eight rows whileverification.mdmarked seven ACs[x]. The JSON is the half a gate reads, so the machine-readable record said nothing was verified while the human-readable one said everything was.Every command re-run, passed count recorded
On
66dbf17, eachfeatures.jsonverificationcommand executed and its passed count written intoevidence:Passed and not collected, deliberately. f6 collects two tests, runs neither, and exits 0. A collection count would have scored it as evidence — that is lesson-094's case, live in this spec.
State stays
pendingon all eight — on purposespecs/HIVE-118-phase-c-daemon-model/features.jsondeclares the rule:I had first written
state: "verified"on the seven passing rows and reverted it. Two things were wrong with that:verifiedis not in the vocabulary, and an agent marking its own criteria proven is precisely what the rule forbids. Recording the measurement while leaving the terminal call to the harness is the honest reading.Gap worth naming, not fixed here: HIVE-384's
features.jsonis a flat list and carries nogating_ruleblock of its own, so nothing in this spec would have stopped me. Adding one means restructuring the file from a list to a dict — a schema change beyond this ticket. Flagged on #402 for a follow-up decision.Worth noting the rule's own basis is the thing lesson-094 undermines: "capturing exit code 0" is not sufficient, because f6 exits 0 and proves nothing.
AC5 flips from
[x]to[ ]Its live-inference half has never run. The line already said so — "still PENDING as a run, see Test status" — so the prose was honest and the checkbox was not. That is the half a reader scanning for green picks up. #402 framed this as an overclaim; the fairer statement is a contradiction between a box and its own caption, and the box was the wrong half.
Test status gains the finding about its own machinery
At
dff8af4(the 4.0.0 release commit) all eight scaffolded commands selected zero tests — and pytest refused every one, six with exit4, two with exit5. Nothing was falsely closed there: every row readpending, every box unchecked. The near miss is4092bf4, which rewrote the commands to working ones and checked all seven boxes in the same commit, so nothing ever re-read them independently of the change that wrote them.Still blocked
AC5 is the one criterion genuinely unproved, and it continues to block
spec archivefor this folder and dotfiles CLI-042 AC6. No code is missing — a reachable worker endpoint is.