Table of Contents

Migration note: This page documents a migration path or historical transition. It is not the current 3.2 happy path.

TeamSpace Mission-State #920 Closeout Evidence

Generated from clean workspace spec-kitty-20260510-191702-gGiW54.

Current conclusion

Do not close Priivacy-ai/spec-kitty#920 yet.

The CLI repair/import-readiness implementation is now covered, and this branch closes the remaining spec-kitty implementation/documentation gaps found in #923, #925, #931, #935, and #978. The parent epic still has real operational and cross-repo work outside this branch:

  • Priivacy-ai/spec-kitty#979 is open: the actual coordinated repair commits have not been run across active repositories.
  • Active repository audits still report TeamSpace blockers:
    • spec-kitty: 140 missions, 86 missions with TeamSpace blockers, 2455 total blockers.
    • spec-kitty-saas: 48 missions, 33 missions with TeamSpace blockers, 1773 total blockers.
    • spec-kitty-events: 18 missions, 15 missions with TeamSpace blockers, 499 total blockers.
  • Priivacy-ai/spec-kitty-runtime#17 is still open.
  • Priivacy-ai/spec-kitty-saas#143, #144, #145, and #146 are still open.

Evidence by issue

Issue Status Evidence
spec-kitty #921 audit engine implemented tests/audit -q passed: 174 tests.
spec-kitty #922 CLI audit command implemented tests/audit/test_audit_cli.py covered --audit, --json, --mission, --fail-on, and --include-fixtures.
spec-kitty #923 identity ADR implemented on this branch ADR added at architecture/2.x/adr/2026-05-10-1-deterministic-historical-mission-state-repair.md; fork-seed behavior covered in test_deterministic_repair_ids_follow_fork_seed_material.
spec-kitty #924 local canonicalizer implemented tests/migration/test_mission_state_repair.py covers canonicalization, idempotency, deterministic IDs, event preservation, quarantine, and manifest evidence.
spec-kitty #925 distributed Git safety implemented on this branch Added tests for held common-dir lock and dirty relevant paths in a linked worktree. No commit mode exists, so path-whitelisted staging is not applicable.
spec-kitty #926 deterministic public migration implemented Two-clone rehearsal verifies byte-identical diffs and deterministic dry-run output.
spec-kitty #927 TeamSpace dry-run closed Dry-run validates against spec-kitty-events 5.0.0 and reports row mappings/side logs.
spec-kitty #928 side logs implemented Dry-run reports decision/runtime/mission side logs with skipped disposition; audit/dry-run prevent them being reduced as status transitions.
spec-kitty #929 fixture pack implemented Packaged and test fixtures are exercised by tests/audit.
spec-kitty #930 manifest implemented RepairReport records schema version, run id, repo head, targets, file checksums, row transformations, quarantine counts, and validation results.
spec-kitty #931 sync/import guardrail implemented on this branch teamspace_dry_run now blocks on audit blockers before envelope synthesis; batch sync rejects historical mission-state fields before network POST.
spec-kitty #932 rehearsal closed tests/migration/test_teamspace_migration_rehearsal.py passes with spec-kitty-events 5.0.0.
spec-kitty #933 operator runbook implemented docs/migration/teamspace-mission-state-repair.md.
spec-kitty #934 CI readiness gate closed .github/workflows/teamspace-mission-state-readiness.yml.
spec-kitty #935 release sequencing implemented on this branch Release sequencing section added to the runbook.
spec-kitty #978 events dependency implemented on this branch pyproject.toml now requires spec-kitty-events>=5.0.0,<6.0.0; uv.lock resolves 5.0.0 from PyPI; release metadata advanced to 3.2.0rc5.
spec-kitty #979 actual repair commit open Not done. Audits above prove the active repositories still need coordinated repair commits.
spec-kitty-events #18, #19, #20 closed GitHub state is closed; local dependency now resolves spec-kitty-events 5.0.0.
spec-kitty-tracker #13 closed Existing issue comments record focused tracker verification: canonical TeamSpace/no-rollout tests passed.
spec-kitty-saas #149 closed GitHub state is closed.
spec-kitty-saas #143-#146 open Still open in GitHub and listed by the parent epic.
spec-kitty-runtime #17 open Still open in GitHub and listed by the parent epic.

Verification run

Commands run in the clean checkout:

python scripts/release/validate_release.py --mode branch --tag-pattern 'v*.*.*'
uv run ruff check architecture/2.x/adr/2026-05-10-1-deterministic-historical-mission-state-repair.md docs/migration/teamspace-mission-state-repair.md docs/migration/teamspace-mission-state-920-closeout.md src/specify_cli/migration/mission_state.py src/specify_cli/sync/batch.py tests/migration/test_mission_state_repair.py tests/migration/test_teamspace_migration_rehearsal.py tests/sync/test_batch_sync.py tests/release/test_dogfood_command_set.py tests/release/test_validate_metadata_yaml_sync.py
SPEC_KITTY_ENABLE_SAAS_SYNC=1 uv run python -m pytest tests/contract/test_events_envelope_matches_resolved_version.py tests/migration/test_mission_state_repair.py tests/migration/test_teamspace_migration_rehearsal.py tests/sync/test_batch_sync.py::TestHistoricalMissionStateGuard tests/release/test_check_shared_package_drift.py tests/architectural/test_pyproject_shape.py tests/release/test_dogfood_command_set.py tests/release/test_validate_metadata_yaml_sync.py -q
uv run python -m pytest tests/audit -q
uv lock --check

Results:

  • Release metadata validation passed for 3.2.0rc5 against latest tag v3.2.0rc4.
  • Ruff passed.
  • Targeted migration/contract/sync/release/architecture suite: 33 passed, 5 skipped.
  • Audit suite: 174 passed.
  • uv lock --check passed.