test(aterm): assert against the live roster, not only the fixtures (#1259) #1278
No reviewers
Labels
No labels
burndown-2026-06
burndown-2026-08
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/devrel
role/eval
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/sysadmin
role/tpm
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/agentic-os!1278
Loading…
Reference in a new issue
No description provided.
Delete branch "aos/claude/mu55-contract-tests"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #1259. Tier 3 of the #1245 dispatch, deliberately last because it is only meaningful once tiers 1 and 2 consumed the fields.
just aterm-contractThe one the issue says would have caught this whole backlog
Decode the live overlay into a generic map, decode it into the typed struct, re-encode, diff leaf by leaf. Anything present upstream and absent downstream is a failure. The waiver list is empty and an entry in it needs a reason, not a shrug.
Verified against a negative control rather than assumed: retagging
motifasjson:"-"fails the test 30 times across the live roster, once per personality per role/seat pair, each naming the dropped path. That is what turnssound_markandformsitting unread into a failure on the day they are added.The colour floor is a ratchet, not a target
Backgrounds are compared in CIELAB, because hex distance says nothing about whether an eye can separate two windows. Measured today across the seven roles:
The floor is dE 3.0, which today's roster clears by 0.25. agent-compose#358 raises the ceiling; this stops the floor falling, which is the half aterm can hold on its own.
labDistanceis a real addition tobrand.gorather than test-only arithmetic, since #358's fix will want it too.Skipping is loud
CI carries no
agent-compose, sojust aterm-testskips these and stays green. The skip names the escape hatch, and setting it makes the same absence a failure:just aterm-contractsets it, so the recipe is the enforcing surface and a plain test run is the permissive one. Both behaviors exercised above.Also in here
docs/aterm.mdhad room again after the status-line composer moved out, so this corrects a sentence #1251 left behind: the overlay's non-glyph fields no longer "reach nothing", they reach the identity card. The contract recipe is documented beside it.Verification
just aterm-test,just aterm-contract,just aterm-fmt,just aterm-lintclean;pre-commit run --all-filesclean