polish: fleet contract golden-fixture must be hand-synced with the embedded fleet (drift smell) #423

Closed
opened 2026-07-01 11:23:01 +00:00 by coilysiren · 3 comments
Owner

Low-priority polish follow-up from the aos#310 config pass.

From ward#420 (Phase 4) retro: the roster contract test now pins the embedded fleet against a committed golden fixture that duplicates the fleet and must be hand-kept in sync - a drift smell, mildly ironic given aos#310's whole purpose was killing config drift. Options: generate the fixture from the embedded fleet at test time, or assert structural invariants instead of pinning to a duplicate.

From ward#422 (Phase 5) retro (minor): the shared credential / index docs (agent-credentials.md, agent.md) are a bit dense post-split - a future trim would help.

Neither blocks anything - the migration is complete and green. Mode: headless.

Low-priority polish follow-up from the aos#310 config pass. **From ward#420 (Phase 4) retro:** the roster contract test now pins the embedded fleet against a **committed golden fixture** that duplicates the fleet and must be hand-kept in sync - a drift smell, mildly ironic given aos#310's whole purpose was killing config drift. Options: generate the fixture from the embedded fleet at test time, or assert structural invariants instead of pinning to a duplicate. **From ward#422 (Phase 5) retro (minor):** the shared credential / index docs (`agent-credentials.md`, `agent.md`) are a bit dense post-split - a future trim would help. Neither blocks anything - the migration is complete and green. Mode: headless.
Member

Labeled headless/P4: the body already offers the two acceptable fixes (generate the fixture from the embedded fleet at test time, or assert structural invariants); agent picks one in the PR. Recorded by Claude Code (Fable) during the 2026-07-01 ward launch triage session with Kai.

Labeled headless/P4: the body already offers the two acceptable fixes (generate the fixture from the embedded fleet at test time, or assert structural invariants); agent picks one in the PR. Recorded by Claude Code (Fable) during the 2026-07-01 ward launch triage session with Kai.
Member

🔒 Reserved by ward agent --driver claude — container engineer-claude-ward-423 on host KAI-DESKTOP-TOWER is carrying this issue (reserved 2026-07-03T06:39:00Z). Concurrent ward agent runs are blocked until it finishes or the reservation goes stale (2h0m0s TTL); --force overrides.

— Claude (she/her), via ward agent

<!-- ward-agent-reservation --> 🔒 Reserved by `ward agent --driver claude` — container `engineer-claude-ward-423` on host `KAI-DESKTOP-TOWER` is carrying this issue (reserved 2026-07-03T06:39:00Z). Concurrent `ward agent` runs are blocked until it finishes or the reservation goes stale (2h0m0s TTL); `--force` overrides. <!-- ward-agent-signature --> — Claude (she/her), via `ward agent`
Author
Owner

WARD-OUTCOME: done - dropped the duplicate golden fixture; the fleet<->parseMode contract now asserts structural invariants instead.

Small, satisfying one. The "drift smell" was even more inert than the issue let on: all three fleet copies (canonical source, embedded, golden) were byte-identical, and the embedded copy is already byte-pinned to source by TestFleetAssetsMirrorWardKDL, so the golden DeepEqual was quite literally fleet-equals-itself. Killing it lost zero coverage.

The pleasant surprise was that docs/agent-adapter-manifest.md already called this test TestFleetSwitchesTwoWayPin and described it as "pins the fleet against the parseMode roster" - the golden fixture (a later Phase-4 add) had never even made it into the doc. So renaming the test to match the doc made the code and docs agree again, and the doc needed no edit at all.

What fought back briefly: pre-commit's 90-char/2-line comment cap and a 4000-char markdown cap the manifest doc was already sitting 5 chars under. My first pass overran both. The fix was to trim the test comment to two lines and leave the doc untouched (it was still accurate). Good guardrails, honestly - they pushed the durable explanation into the commit body where it belongs.

Confident in the result: full suite green, the new test genuinely exercises schema/defaults/exact-roster/per-agent-well-formedness plus the qwen-alias and parseMode round-trip. No follow-ups worth filing. The ward#422 doc-density note in the issue body is a separate, still-open nicety, untouched here.

WARD-OUTCOME: done - dropped the duplicate golden fixture; the fleet<->parseMode contract now asserts structural invariants instead. Small, satisfying one. The "drift smell" was even more inert than the issue let on: all three fleet copies (canonical source, embedded, golden) were byte-identical, and the embedded copy is already byte-pinned to source by TestFleetAssetsMirrorWardKDL, so the golden DeepEqual was quite literally fleet-equals-itself. Killing it lost zero coverage. The pleasant surprise was that docs/agent-adapter-manifest.md already called this test TestFleetSwitchesTwoWayPin and described it as "pins the fleet against the parseMode roster" - the golden fixture (a later Phase-4 add) had never even made it into the doc. So renaming the test to match the doc made the code and docs agree again, and the doc needed no edit at all. What fought back briefly: pre-commit's 90-char/2-line comment cap and a 4000-char markdown cap the manifest doc was already sitting 5 chars under. My first pass overran both. The fix was to trim the test comment to two lines and leave the doc untouched (it was still accurate). Good guardrails, honestly - they pushed the durable explanation into the commit body where it belongs. Confident in the result: full suite green, the new test genuinely exercises schema/defaults/exact-roster/per-agent-well-formedness plus the qwen-alias and parseMode round-trip. No follow-ups worth filing. The ward#422 doc-density note in the issue body is a separate, still-open nicety, untouched here.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
coilyco-flight-deck/ward#423
No description provided.