When to use
- •You changed user-visible output or flags in
src/agent_loom/team/cli.py. - •You changed formatting, ordering, headers, or any printed text.
Goal
Lock the team CLI output as a stable contract.
Checklist
- •
Identify the UX contract
- •What exact lines/sections must appear?
- •What ordering must be stable?
- •What should never appear (debug noise, nondeterministic IDs, paths)?
- •
Make output deterministic
- •Use explicit ordering for lists/records.
- •Avoid relying on dict/set iteration.
- •Avoid embedding timestamps/random IDs unless explicitly required.
- •
Add/update
tests/test_team_cli_ux.py- •Capture CLI output and assert on stable invariants.
- •Prefer asserting on required blocks/lines over asserting the entire output, unless the full output is the contract.
- •If ANSI/styling exists, normalize/strip so tests assert on semantic text.
- •
Run correctness checks
- •Run
uv run basedpyright. - •Run
uv run ruff check .. - •Run
uv run pytest tests/test_team_cli_ux.py.
- •Run
Common failure modes
- •Output order changes across runs due to nondeterministic iteration.
- •Tests assert full strings that include nondeterministic data.
- •CLI behavior changes without updating the UX contract test, causing silent drift.
Manual notes
This section is preserved when the skill is updated. Put human notes, caveats, and exceptions here.