Quickstart: Mission Handoff Package & Version Matrix

Feature: 045-mission-handoff-package-version-matrix Branch: 2.x


What Is This?

This is the canonical handoff package for the plan-context-bootstrap-fix wave on spec-kitty 2.x. It lets downstream teams (spec-kitty-saas, dashboard parity) replay the mission deterministically.

Source commit anchor: 21ed0738f009ca35a2927528238a48778e41f1d4 (Merge WP05 from 041-enable-plan-mission-runtime-support, 2026-02-22)


Where Are the Files?

After implementation is merged to 2.x:

kitty-specs/045-mission-handoff-package-version-matrix/handoff/
├── namespace.json          ← start here: namespace tuple + source commit
├── artifact-manifest.json  ← expected artifacts for software-dev mission
├── artifact-tree.json      ← actual artifacts present + SHA-256 fingerprints
├── events.jsonl            ← status event stream (or bootstrap event)
├── version-matrix.md       ← version pins + replay commands
├── verification.md         ← test evidence (4 scenarios green)
└── generate.sh             ← regenerate the package from source

Reading the Handoff Package

1. Identify the wave

cat kitty-specs/045-mission-handoff-package-version-matrix/handoff/namespace.json

Key fields: source_commit, source_branch, mission_key, manifest_version.

2. Check version pins

grep -A 10 '```versions' kitty-specs/045-mission-handoff-package-version-matrix/handoff/version-matrix.md

3. Replay the event sequence

# Read the event stream line-by-line
while IFS= read -r line; do
  echo "$line" | python3 -m json.tool --compact
done < kitty-specs/045-mission-handoff-package-version-matrix/handoff/events.jsonl

4. Check artifact completeness

python3 -c "
import json
tree = json.load(open('kitty-specs/045-mission-handoff-package-version-matrix/handoff/artifact-tree.json'))
absent = [e for e in tree['entries'] if e['status'] == 'absent']
print(f'{tree[\"present_count\"]} present, {tree[\"absent_count\"]} absent')
for e in absent:
    print(f'  ABSENT: {e[\"path\"]}')
"

Regenerating the Package

If you want to verify or refresh the handoff package from source:

# Dry-run (default — prints what would be written, no files created)
bash kitty-specs/045-mission-handoff-package-version-matrix/handoff/generate.sh

# Write to a temporary directory for comparison
bash kitty-specs/045-mission-handoff-package-version-matrix/handoff/generate.sh \
  --write --output-dir /tmp/045-handoff-verify

# Compare against committed package (ignore timestamp fields)
diff kitty-specs/045-mission-handoff-package-version-matrix/handoff/namespace.json \
     /tmp/045-handoff-verify/namespace.json

Re-running the Verification Tests

cd /path/to/spec-kitty  # must be on 2.x branch

pytest tests/integration/test_planning_workflow.py::TestSetupPlanCommand \
       tests/specify_cli/test_cli/test_agent_feature.py \
       -v --tb=short

Expected: all 4 setup-plan context scenarios pass.


Version Compatibility

ComponentVersion / Ref
spec-kitty2.0.0
spec-kitty-events2.3.1
spec-kitty-runtimev0.2.0a0
Source branch2.x
Source commit21ed0738f009ca35a2927528238a48778e41f1d4

For Downstream Teams

The handoff package is designed to be consumed without access to the original developer environment. All you need:

1. A checkout of spec-kitty at 2.x (any commit after the implementation merge) 2. Python 3.11+ installed 3. The handoff/ directory — everything you need is there

No spec-kitty commands need to be run to read the package.