Skip to content

fix(spec): record measured evidence on HIVE-384, and stop AC5 reading green - #408

Merged
mlorentedev merged 3 commits into
masterfrom
fix/hive-384-spec-artifacts
Aug 25, 2026
Merged

fix(spec): record measured evidence on HIVE-384, and stop AC5 reading green#408
mlorentedev merged 3 commits into
masterfrom
fix/hive-384-spec-artifacts

Conversation

@mlorentedev

Copy link
Copy Markdown
Owner

Closes #402.

features.json read "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, passed count recorded

On 66dbf17, each features.json verification command executed and its passed count written into evidence:

Row Passed Note
f1 10
f2 15
f3 4
f4 4
f5 3 env-resolution half of AC5 only
f6 0 2 collected, 2 skipped, exit 0 — no endpoint configured
f7 23
f8 6

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 pending on all eight — on purpose

specs/HIVE-118-phase-c-daemon-model/features.json declares the rule:

"The agent MUST NOT set state=passing. Only the harness may, after running verification and capturing exit code 0. States: planned | spiked | accepted | passing (harness-only, terminal)."

I had first written state: "verified" on the seven passing rows and reverted it. Two things were wrong with that: verified is 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.json is a flat list and carries no gating_rule block 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 exit 4, two with 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 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 archive for this folder and dotfiles CLI-042 AC6. No code is missing — a reachable worker endpoint is.

… 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.
@coderabbitai

coderabbitai Bot commented Aug 25, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 11 minutes.

View limit details

Limit 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.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 663dc002-a024-4fac-a0da-b96824ecc914

📥 Commits

Reviewing files that changed from the base of the PR and between 2492151 and 5b36230.

📒 Files selected for processing (2)
  • specs/HIVE-384-nan-worker-and-delegate-verb/features.json
  • specs/HIVE-384-nan-worker-and-delegate-verb/verification.md

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

…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.
@mlorentedev

Copy link
Copy Markdown
Owner Author

Review triage

CI: all 6 check runs green (check 3.12/3.13, cross_worker_lock ubuntu + windows, docker, GitGuardian).

Review: none ran. CodeRabbit showed "Review in progress" mid-run and settled on "Review limit reached" — final commit status success. Fourth PR today with that pattern (#405, #406, #407, this one). This PR is unreviewed.

Findings: none to dispose of.

One thing the queue itself caught, after the first commit. dotf pr triage-queue surfaced this PR, and re-reading it for the disposition found that verification.md's header paragraph still carried the exact claim lesson-094 was corrected for — "four of the eight ... matched nothing", 4.0.0 shipping criteria closed on that basis, and --collect-only as the remedy. The first commit had added a corrected Test status bullet underneath it, so the file contradicted itself in two places. Fixed in c3f5f11; the paragraph now carries the measurement (all eight selected zero at dff8af4; pytest refused every one, six exit 4, two exit 5; nothing was marked complete there) and drops --collect-only, since AC5's smoke row collects two tests and runs neither.

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 features.json command re-run on 66dbf17 — f1 10, f2 15, f3 4, f4 4, f5 3, f6 0 (2 collected, 2 skipped, exit 0), f7 23, f8 6. All eight states deliberately left at pending: HIVE-118's gating_rule reserves the terminal state for the harness, and an agent marking its own criteria proven is what that rule forbids.

Still blocked, unchanged by this PR: AC5's live-inference half needs a reachable worker endpoint. It continues to block spec archive for this folder and dotfiles CLI-042 AC6.

Recommendation: merge on the human's call, with the unreviewed status on the record.

@mlorentedev

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 25, 2026

Copy link
Copy Markdown
⚠️ Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@mlorentedev
mlorentedev merged commit 5fd5aa6 into master Aug 25, 2026
7 checks passed
@mlorentedev
mlorentedev deleted the fix/hive-384-spec-artifacts branch August 25, 2026 03:33
mlorentedev added a commit that referenced this pull request Aug 26, 2026
🤖 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

HIVE-384's features.json says pending on all eight rows while verification.md marks seven ACs done

1 participant