Quickstart — tasks-py-degod-wave2-01KWH9EQ

Guard-running playbook for implementers and reviewers. Run from the repo root (or the lane worktree — use the PRIMARY clone's .venv; verify via pytest, not bare imports).

Before ANY fixture work

# venv must match uv.lock (typer pin) — golden --help fixtures are version-coupled
uv sync --frozen
python -c "import typer; print(typer.__version__)"   # must match uv.lock

The parity guard (every WP, every commit)

PWHEADLESS=1 pytest \
  tests/specify_cli/cli/commands/agent/test_tasks_cli_contract.py \
  tests/specify_cli/cli/commands/agent/test_tasks_cli_contract_coord.py \
  tests/specify_cli/cli/commands/agent/test_tasks_json_bytes.py \
  -q -p no:cacheprovider
# Expect 43 + 13 green, zero fixture edits (ratchet re-points per FR-012 excepted)

Targeted family surface (declare per WP; coord harness mandatory for commit-router WPs)

PWHEADLESS=1 pytest tests/tasks/ tests/specify_cli/cli/commands/agent/ -q -p no:cacheprovider

Arch gates this mission owns / touches

PWHEADLESS=1 pytest tests/architectural/test_tasks_command_surface.py -q      # new gates (once landed)
PWHEADLESS=1 pytest tests/architectural/test_untrusted_path_containment.py -q # #2306 fold (RED until the 1-line inventory fix)
PWHEADLESS=1 pytest tests/architectural/test_no_legacy_terminology.py -q      # pre-push, always

Static gates (changed src+tests TOGETHER — Wave 1 lesson)

python -m mypy --strict src/specify_cli/cli/commands/agent/<changed>.py tests/specify_cli/cli/commands/agent/<changed_test>.py
ruff check src tests

Seam interception spot-check (per relocated patched symbol)

# The patched attribute must BE the object production calls:
grep -n "_tasks\.<symbol>" src/specify_cli/cli/commands/agent/<family>.py   # routing present
grep -rn "patch(.*agent\.tasks\.<symbol>" tests/ | head                      # patch targets unchanged

Boyscout census (FR-009)

# No tasks-domain path may appear here:
python -c "import json;print(json.load(open('tests/architectural/_gate_coverage_baseline.json'))['orphan_files'])"

Watch-list

the mission artifacts (acceptance/issue matrices, review artifacts).

against the seam checklist before acting.

  • Status bookkeeping commits on the PRIMARY checkout between WPs; coord-branch carries
  • Expect #2031 stale-assertion-analyzer false-positive storms at WP merges — cross-check
  • Any parity delta = revert the move; never adjust a fixture.