Skip to content

Commit 6ef667a

Browse files
committed
bounce: #185 validation -> implementation (fold in mid-run watcher fix per captain; feedback cycle 1)
1 parent 405c408 commit 6ef667a

1 file changed

Lines changed: 24 additions & 2 deletions

File tree

docs/plans/cherry-pick-test-predicates-and-audit.md

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
id: 185
33
title: "Cherry-pick test-predicate data-flow fixes from #182 + audit remaining narration-match callers"
4-
status: validation
4+
status: implementation
55
source: "carved out of #182 — test-predicate data-flow fixes are sound and independently mergeable. Captain also asked: check if other tests carry the same incorrect-expectation pattern. Known offender per debrief: tests/test_gate_guardrail.py."
66
started: 2026-04-18T00:12:20Z
77
completed:
@@ -10,7 +10,7 @@ score: 0.7
1010
worktree: .worktrees/spacedock-ensign-cherry-pick-test-predicates-and-audit
1111
issue:
1212
pr: #123
13-
mod-block: merge:pr-merge
13+
mod-block:
1414
---
1515

1616
## Problem statement
@@ -124,6 +124,28 @@ E2E live runs are required (not just static) because the point of the conversion
124124
- PR #117 — the merged-then-partially-rejected PR these fixes originated in
125125
- Independent reviewer of #117 — flagged the 300s→420s timeout bump (decision above: not adopted, with reasoning)
126126

127+
### Feedback Cycles
128+
129+
**Cycle 1 — 2026-04-18, captain-directed scope expansion mid-merge.**
130+
131+
During CI on PRs #107 (#172) and #122 (#183), `test_feedback_keepalive` on `claude-live-bare` failed with:
132+
133+
```
134+
test_lib.StepTimeout: Step 'implementation ensign dispatched' did not match within 180s.
135+
```
136+
137+
Root cause (from CI logs, run 24592781341 job 71916879865 and run 24592907925 job 71917261650): in bare mode on `claude-haiku-4-5`, the FO observes the validation REJECTED report, reads the entity body, and **applies the feedback fix itself via direct Bash+Edit on `greeting.txt`** instead of dispatching a fresh implementation ensign. The file gets updated to `Goodbye, World!` and the `### Feedback Cycles` entry gets recorded, but no `Agent` tool_use fires → the mid-run watcher times out at 180s.
138+
139+
This is the same anti-pattern #185 already addresses for the *end-of-test* signal (narration / tool_use match → data-flow assertion on entity artifact). The mid-run `'implementation ensign dispatched'` watcher was NOT touched in the original #185 scope. Captain directed folding the fix in rather than filing a separate entity.
140+
141+
**Scope expansion for this cycle:**
142+
143+
- Replace the mid-run `'implementation ensign dispatched'` watcher in `tests/test_feedback_keepalive.py` with a data-flow assertion. Suggested approach: poll for any of (a) `### Feedback Cycles` appearing in the entity body, (b) `greeting.txt` contents changing to the validation-expected value, (c) an `Agent` tool_use for implementation — whichever happens first. Any of these indicates the feedback cycle is being processed, whether the FO dispatched or inline-edited.
144+
- AC-8 added: verify no mid-run `'implementation ensign dispatched'` watcher remains (grep `tests/test_feedback_keepalive.py`).
145+
- AC-9 added: re-run `test_feedback_keepalive` on a bare-mode path locally against `claude-haiku-4-5` (the failing model) and confirm PASS.
146+
147+
**No prose mitigations.** Fix is test-side only. Do NOT edit `skills/first-officer/references/*`.
148+
127149
## Stage Report (ideation)
128150

129151
1. **Read the seed entity body** — DONE. Read `/Users/clkao/git/spacedock/docs/plans/cherry-pick-test-predicates-and-audit.md` at its pre-ideation state; preserved the Cross-references, Out-of-scope items, and Scope bullets while expanding the approach section.

0 commit comments

Comments
 (0)