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#979is 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#17is still open.Priivacy-ai/spec-kitty-saas#143,#144,#145, and#146are 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.0rc5against latest tagv3.2.0rc4. - Ruff passed.
- Targeted migration/contract/sync/release/architecture suite: 33 passed, 5 skipped.
- Audit suite: 174 passed.
uv lock --checkpassed.