Quickstart: Mission-State Repair Audit Trail (operator view)

Before (defect #4928)

$ spec-kitty doctor mission-state --fix
Mission-state repair complete (updated=1, unchanged=0, errors=0).
# (no mention of where the audit trail went)

$ git check-ignore -v .kittify/migrations/mission-state/<run_id>.json
.gitignore:76:.kittify/migrations/    .kittify/migrations/mission-state/<run_id>.json   # IGNORED

$ git clean -xfd     # routine cleanup
# → manifest + quarantined rows silently destroyed; no record of the repair survives

After (this mission)

$ spec-kitty doctor mission-state --fix
Mission-state repair complete (updated=1, unchanged=0, errors=0).
Audit trail written to .kittify/mission-state-audit/<run_id>.json (tracked, uncommitted).
Commit it to preserve the record of this repair.
2 row(s) quarantined verbatim to .kittify/mission-state-audit/quarantine/<run_id>/<slug>/status.events.jsonl.
Commit the audit trail before running 'git clean'.

$ git check-ignore -v .kittify/mission-state-audit/<run_id>.json
# (no output → NOT ignored, tracked-ok)

$ git add .kittify/mission-state-audit && git commit -m "record mission-state repair <run_id>"
$ git clean -xfd     # audit trail is committed → survives

Verifying (--json)

$ spec-kitty doctor mission-state --fix --json | jq '{audit_manifest_path, audit_quarantine_path, quarantined_rows}'
{
  "audit_manifest_path": ".kittify/mission-state-audit/<run_id>.json",
  "audit_quarantine_path": ".kittify/mission-state-audit/quarantine/<run_id>/<slug>/status.events.jsonl",
  "quarantined_rows": 2
}

What did NOT change

  • Which rows the repair keeps vs quarantines (that is the #4897 registry, untouched).
  • --fix still performs no git commit — you commit the audit trail yourself.