Quickstart — unshim-wave2-01KWMCAX validation
export PATH="$PWD/.venv/bin:$PATH"
Per-WP gate (after every re-point batch and every deletion — C-005 check)
PWHEADLESS=1 pytest tests/architectural/test_shim_registry_schema.py tests/architectural/test_unregistered_shim_scanner.py -q
ruff check .; python -m mypy src/ 2>&1 | tail -2 # mypy must stay: Success, 0 issues
Interception proof (per occurrence-map patch-string row; FR-002 ledger)
Either the site carries a call/consumption assertion (name it in the row's interception_proof), or record a red-first flip:
# 1. point the rewritten patch at a bogus target -> the test MUST fail
# 2. restore the canonical target -> green; record evidence in the ledger row
PWHEADLESS=1 pytest <test file> -q
Injection-seam consumption proof (FR-001 / AC-1.3)
PWHEADLESS=1 pytest tests/specify_cli/cli/commands/test_selector_resolution.py -q
# the injector tests assert the fake's observable side-effect (captured dict), not exit code
CI-only charter shards (run locally in IC-04 — they don't run in fast local shards)
PWHEADLESS=1 pytest tests/integration/test_quickstart_end_to_end.py tests/contract/test_next_no_implicit_success.py \
tests/agent/cli/commands/test_next_preflight.py tests/agent/cli/commands/test_implement_preflight.py \
tests/test_dashboard/test_dashboard_preflight.py -q
Post-deletion checks (NFR-002 — import-scoped; run at merge, must be empty)
grep -rnE "(from|import)\s+specify_cli\.(next|glossary|charter_lint|charter_freshness|charter_preflight)\b|patch(\.dict)?\(\s*[\"']?(sys\.modules[\"',\s{]*[\"'])?specify_cli\.(next|glossary|charter_lint|charter_freshness|charter_preflight)" src/ tests/
python -c "import specify_cli.next" 2>&1 | grep -q ModuleNotFoundError && echo next-GONE
python -c "import specify_cli.glossary" 2>&1 | grep -q ModuleNotFoundError && echo glossary-GONE
spec-kitty next --help >/dev/null && echo "next command OK (canonical import path)"
WS1 non-vacuity (FR-009)
PWHEADLESS=1 pytest tests/architectural/test_layer_rules.py -q # incl. the committed negative test
Mission-level closing sweep (merged branch)
PWHEADLESS=1 pytest tests/architectural/ -q -p no:cacheprovider
PWHEADLESS=1 pytest tests/ -n auto --dist loadfile -p no:cacheprovider
PWHEADLESS=1 pytest tests/architectural/test_no_legacy_terminology.py -q
Expected end state: shim-registry has zero legacy rows; test_charter_runtime_shim_paths.py retired (disposition table recorded); _baselines.yaml category_b at the honest live count (≤215, re-derived); 05_ownership_manifest.yaml/05_ownership_map.md scrubbed; CHANGELOG entry present.