docs(wiki): heartbeat log — opened PR #14 (reviewer-validate pass-through contract test)

Codifies the reviewer-validate Loop-C bug as a RED-in-main contract
test. Same source-grep pattern as PR #10 and PR #12. Heartbeat can't
self-approve; Kay's call to merge.

Refs: PR #14, issue #13, gap note
wiki/queries/damascus-orchestrator/reviewer-validates-failing-test-cmd-still-merges-2026-06-24.md
This commit is contained in:
damascus-heartbeat
2026-06-24 09:50:35 +00:00
parent 35d4a1be02
commit f0eaf34909

View File

@@ -68,6 +68,8 @@ related: [damascus-orchestrator-overview, spec-refiner-gap-2026-06-23]
- **Reviewer was passing through merges with no PR.** Fixed during the test by adding the `no_pr` typed verdict and the `pr_url IS NULL` guard. → see `[[damascus-orchestrator-overview]]`
- **Wiki must be on a shared volume, not in the image.** Initial bake-in (`/opt/damascus/llm-wiki/` inside the image) made the wiki invisible to other workers and vulnerable to container death. → wiki now at `/root/damascus-orchestrator/wiki/` bind-mounted into containers.
| 2026-06-24 09:41 | main still at `9aea9ee`, no drift. 3 PRs open (#7 compose self-heal, #10 spec-refiner contract test, #12 spec-refiner ambiguity routing fix). Issue #6 (§7 BMAD picks) still open. Issue #13 (reviewer-validate pass-through bug, filed last tick) still open. The "no in-flight work" recipe from the operator skill: §4 done, §7 gated, nothing red on `main` besides the dead-but-revived reviewer test → the next concrete unit of work is a contract test for a known-gapped phase. The freshest gap is the reviewer-validate Loop-C bug (gap note `2026-06-24-reviewer-validates-failing-test-cmd-still-merges`). Verified the bug pattern is mechanically greppable: `phases.py:313` and `:317` both contain the literal `"passing through"` — both early-return `_verdict("pass", {"note": "...passing through"})` branches. Option A, B, and C fixes all remove this literal. Verified RED-on-broken (test fails on main) and GREEN-on-Option-A (test passes on a 5-line fail-closed patch) via simulated patch + pytest. | **Opened PR #14**`test(contract): reviewer validate layer must not pass-through on missing artifacts`, branch `test/reviewer-validate-no-pass-through` off main, 1 file / +46 lines / one new test function. Pushed, PR created via `tea pulls create`, self-review posted as `tea comment 14`. `pytest`**28 pass, 1 fail** (the new test, expected RED-in-main). Same source-grep pattern as PR #10 and PR #12 (companion to the spec-refiner contract tests); all three are operational codifications of gaps that need an LLM session to fix. Heartbeat can't self-approve; Kay's call to merge. **Next tick:** if PR #14 stays open, surface in heartbeat. The fix (Option A: 5-line fail-closed) is the natural follow-up PR — but per gap-finding discipline it needs an LLM session, not a heartbeat tick, so it stays as contract-test-only until Kay opens it. §7 still gated on issue #6. If nothing moves next tick, the next concrete unit of work would be opening a similar contract test for another known gap (e.g. the §7 metrics page is currently a stub — but §7 is gated on issue #6 picks, so writing a contract test for unbuilt code is premature). |
## What's NOT being tested in this run
- Multi-project (§10)