Quickstart: CI Health: Charter-Path Hotfix + Arch-Adversarial Shard
Verify Concern A (docs charter-path)
pytest tests/docs/test_current_charter_paths.py -q
Expect: green, zero offenders. (Also re-grep the four guarded roots directly as a sanity check: grep -rn "memory/charter.md" docs/context docs/guides docs/api spec-driven.md should return nothing.)
Reproduce a single arch-adversarial shard locally (Concern B)
Full pre-split selection (today, one shard):
pytest tests/adversarial tests/architectural tests/architecture tests/lint \
-m 'not windows_ci and (git_repo or integration or architectural)' \
-q --tb=short -n auto --dist loadfile
Post-split, a single shard (e.g. shard 2) reproduces exactly what CI runs for that matrix leg:
pytest tests/adversarial tests/architectural tests/architecture tests/lint \
-m 'arch_shard_2 and not windows_ci and (git_repo or integration or architectural)' \
-q --tb=short -n auto --dist loadfile
Docs-only trim, per shard (mirrors the existing full-suite docs-only narrowing, PR #2391):
pytest tests/adversarial tests/architectural tests/architecture tests/lint \
-m 'arch_shard_2 and docs_scoped and not windows_ci' \
-q --tb=short -n auto --dist loadfile
Verify the partition invariants
pytest tests/architectural/test_arch_shard_marker_completeness.py -q # new — total partition, no gaps/dupes
pytest tests/architectural/test_shard_universe_bounded.py -q # generalized — union = full universe
pytest tests/release/test_coverage_topology_ownership.py -q # per-shard coverage artifact naming
Verify the workflow still stays de-serialized/group-less
pytest tests/architectural/test_arch_pole_deserialized.py -q
pytest tests/architectural/test_docs_scoped_arch_coverage.py -q