spec-kitty-cli 3.2.0rc35__tar.gz → 3.2.0rc37__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1859) hide show
  1. spec_kitty_cli-3.2.0rc37/CHANGELOG.md +4531 -0
  2. spec_kitty_cli-3.2.0rc37/PKG-INFO +328 -0
  3. spec_kitty_cli-3.2.0rc37/architecture/3.x/adr/README.md +58 -0
  4. spec_kitty_cli-3.2.0rc37/docs/engineering_notes/runtime_and_state_overhaul/README.md +60 -0
  5. spec_kitty_cli-3.2.0rc37/docs/reference/README.md +32 -0
  6. spec_kitty_cli-3.2.0rc37/kitty-specs/test-stabilization-pre-existing-cluster-fix-01KT396S/tasks/README.md +64 -0
  7. spec_kitty_cli-3.2.0rc37/kitty-specs/unblock-sync-identity-boundary-canary-01KRZJ07/tasks/README.md +64 -0
  8. spec_kitty_cli-3.2.0rc37/kitty-specs/unified-charter-bundle-chokepoint-01KP5Q2G/tasks/README.md +64 -0
  9. spec_kitty_cli-3.2.0rc37/pyproject.toml +490 -0
  10. spec_kitty_cli-3.2.0rc37/src/charter/_io.py +383 -0
  11. spec_kitty_cli-3.2.0rc37/src/charter/invocation_context.py +272 -0
  12. spec_kitty_cli-3.2.0rc37/src/charter/pack_manager.py +729 -0
  13. spec_kitty_cli-3.2.0rc37/src/charter/packs/default.yaml +223 -0
  14. spec_kitty_cli-3.2.0rc37/src/charter/sync.py +395 -0
  15. spec_kitty_cli-3.2.0rc37/src/doctrine/agent_profiles/README.md +71 -0
  16. spec_kitty_cli-3.2.0rc37/src/doctrine/agent_profiles/built-in/README.md +28 -0
  17. spec_kitty_cli-3.2.0rc37/src/doctrine/agent_profiles/built-in/paula-patterns.agent.yaml +166 -0
  18. spec_kitty_cli-3.2.0rc37/src/doctrine/graph.yaml +2384 -0
  19. spec_kitty_cli-3.2.0rc37/src/doctrine/missions/mission-steps/software-dev/implement/prompt.md +332 -0
  20. spec_kitty_cli-3.2.0rc37/src/doctrine/missions/mission_step_repository.py +365 -0
  21. spec_kitty_cli-3.2.0rc37/src/doctrine/missions/repository.py +437 -0
  22. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/README.md +134 -0
  23. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-admin-agent-config/SKILL.md +21 -0
  24. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-admin-dashboard/SKILL.md +26 -0
  25. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-admin-dashboard/references/dashboard-daemon.md +34 -0
  26. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-admin-git-workflow/SKILL.md +22 -0
  27. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-admin-setup-doctor/SKILL.md +21 -0
  28. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-admin-upgrade/SKILL.md +23 -0
  29. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-doctrine-bulk-edit/SKILL.md +22 -0
  30. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-doctrine-charter/SKILL.md +21 -0
  31. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-doctrine-glossary/SKILL.md +21 -0
  32. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-doctrine-profile-load/SKILL.md +21 -0
  33. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-doctrine-spdd-reasons/SKILL.md +20 -0
  34. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-gate-accept/SKILL.md +21 -0
  35. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-gate-merge/SKILL.md +21 -0
  36. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-gate-mission-review/SKILL.md +20 -0
  37. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-gate-retrospective/SKILL.md +21 -0
  38. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-integrate-orchestrator-api/SKILL.md +21 -0
  39. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-meta-skill-authoring/SKILL.md +23 -0
  40. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-meta-skill-map/SKILL.md +37 -0
  41. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-meta-skill-map/references/spk-skill-map.md +64 -0
  42. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-mission-documentation/SKILL.md +23 -0
  43. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-mission-plan/SKILL.md +22 -0
  44. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-mission-research/SKILL.md +21 -0
  45. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-mission-specify/SKILL.md +23 -0
  46. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-mission-tasks/SKILL.md +22 -0
  47. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-mission-types/SKILL.md +22 -0
  48. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-run-blocked-recovery/SKILL.md +24 -0
  49. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-run-implement-review/SKILL.md +23 -0
  50. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-run-next/SKILL.md +22 -0
  51. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-run-program-orchestrate/SKILL.md +23 -0
  52. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-run-review-wp/SKILL.md +22 -0
  53. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-start-agent-surface/SKILL.md +26 -0
  54. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-start-command-map/SKILL.md +23 -0
  55. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-start-command-map/references/command-map.md +18 -0
  56. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-start-first-feature/SKILL.md +30 -0
  57. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-start-here/SKILL.md +52 -0
  58. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-team-auth/SKILL.md +23 -0
  59. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-team-connectors/SKILL.md +22 -0
  60. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-team-sync/SKILL.md +22 -0
  61. spec_kitty_cli-3.2.0rc37/src/doctrine/skills/spk-team-tracker/SKILL.md +22 -0
  62. spec_kitty_cli-3.2.0rc37/src/doctrine/tactics/built-in/analysis/dialectic-research.tactic.yaml +64 -0
  63. spec_kitty_cli-3.2.0rc37/src/doctrine/tactics/built-in/analysis/split-brain-authority-detection.tactic.yaml +170 -0
  64. spec_kitty_cli-3.2.0rc37/src/runtime/next/_internal_runtime/engine.py +1493 -0
  65. spec_kitty_cli-3.2.0rc37/src/runtime/next/_internal_runtime/planner.py +485 -0
  66. spec_kitty_cli-3.2.0rc37/src/runtime/next/_internal_runtime/schema.py +576 -0
  67. spec_kitty_cli-3.2.0rc37/src/runtime/next/runtime_bridge.py +3581 -0
  68. spec_kitty_cli-3.2.0rc37/src/specify_cli/.contextive/execution.yml +45 -0
  69. spec_kitty_cli-3.2.0rc37/src/specify_cli/.contextive/orchestration.yml +79 -0
  70. spec_kitty_cli-3.2.0rc37/src/specify_cli/__init__.py +360 -0
  71. spec_kitty_cli-3.2.0rc37/src/specify_cli/acceptance/__init__.py +1202 -0
  72. spec_kitty_cli-3.2.0rc37/src/specify_cli/agent_upgrade_prompt.py +49 -0
  73. spec_kitty_cli-3.2.0rc37/src/specify_cli/agent_utils/status.py +576 -0
  74. spec_kitty_cli-3.2.0rc37/src/specify_cli/audit/engine.py +460 -0
  75. spec_kitty_cli-3.2.0rc37/src/specify_cli/audit/models.py +203 -0
  76. spec_kitty_cli-3.2.0rc37/src/specify_cli/charter_activate.py +246 -0
  77. spec_kitty_cli-3.2.0rc37/src/specify_cli/charter_runtime/preflight/hook.py +126 -0
  78. spec_kitty_cli-3.2.0rc37/src/specify_cli/charter_runtime/preflight/result.py +122 -0
  79. spec_kitty_cli-3.2.0rc37/src/specify_cli/charter_runtime/preflight/runner.py +505 -0
  80. spec_kitty_cli-3.2.0rc37/src/specify_cli/cli/commands/_teamspace_mission_state_gate.py +213 -0
  81. spec_kitty_cli-3.2.0rc37/src/specify_cli/cli/commands/agent/config.py +619 -0
  82. spec_kitty_cli-3.2.0rc37/src/specify_cli/cli/commands/agent/mission.py +2996 -0
  83. spec_kitty_cli-3.2.0rc37/src/specify_cli/cli/commands/agent/status.py +946 -0
  84. spec_kitty_cli-3.2.0rc37/src/specify_cli/cli/commands/agent/tasks.py +4332 -0
  85. spec_kitty_cli-3.2.0rc37/src/specify_cli/cli/commands/agent/workflow.py +2551 -0
  86. spec_kitty_cli-3.2.0rc37/src/specify_cli/cli/commands/charter/_widen.py +493 -0
  87. spec_kitty_cli-3.2.0rc37/src/specify_cli/cli/commands/charter/activate.py +325 -0
  88. spec_kitty_cli-3.2.0rc37/src/specify_cli/cli/commands/decision.py +490 -0
  89. spec_kitty_cli-3.2.0rc37/src/specify_cli/cli/commands/doctor.py +3179 -0
  90. spec_kitty_cli-3.2.0rc37/src/specify_cli/cli/commands/implement.py +1088 -0
  91. spec_kitty_cli-3.2.0rc37/src/specify_cli/cli/commands/init.py +1196 -0
  92. spec_kitty_cli-3.2.0rc37/src/specify_cli/cli/commands/lifecycle.py +277 -0
  93. spec_kitty_cli-3.2.0rc37/src/specify_cli/cli/commands/materialize.py +138 -0
  94. spec_kitty_cli-3.2.0rc37/src/specify_cli/cli/commands/merge.py +2383 -0
  95. spec_kitty_cli-3.2.0rc37/src/specify_cli/cli/commands/migrate/charter_encoding.py +356 -0
  96. spec_kitty_cli-3.2.0rc37/src/specify_cli/cli/commands/mission_type.py +898 -0
  97. spec_kitty_cli-3.2.0rc37/src/specify_cli/cli/commands/next_cmd.py +605 -0
  98. spec_kitty_cli-3.2.0rc37/src/specify_cli/cli/commands/retrospect.py +1065 -0
  99. spec_kitty_cli-3.2.0rc37/src/specify_cli/cli/commands/safe_commit_cmd.py +201 -0
  100. spec_kitty_cli-3.2.0rc37/src/specify_cli/cli/commands/upgrade.py +1036 -0
  101. spec_kitty_cli-3.2.0rc37/src/specify_cli/cli/commands/validate_encoding.py +194 -0
  102. spec_kitty_cli-3.2.0rc37/src/specify_cli/cli/commands/validate_tasks.py +194 -0
  103. spec_kitty_cli-3.2.0rc37/src/specify_cli/cli/commands/verify.py +353 -0
  104. spec_kitty_cli-3.2.0rc37/src/specify_cli/context/mission_resolver.py +273 -0
  105. spec_kitty_cli-3.2.0rc37/src/specify_cli/context/resolver.py +284 -0
  106. spec_kitty_cli-3.2.0rc37/src/specify_cli/coordination/outbound.py +125 -0
  107. spec_kitty_cli-3.2.0rc37/src/specify_cli/coordination/policy.py +224 -0
  108. spec_kitty_cli-3.2.0rc37/src/specify_cli/coordination/status_service.py +302 -0
  109. spec_kitty_cli-3.2.0rc37/src/specify_cli/coordination/status_transition.py +544 -0
  110. spec_kitty_cli-3.2.0rc37/src/specify_cli/coordination/transaction.py +1133 -0
  111. spec_kitty_cli-3.2.0rc37/src/specify_cli/coordination/types.py +135 -0
  112. spec_kitty_cli-3.2.0rc37/src/specify_cli/coordination/workspace.py +299 -0
  113. spec_kitty_cli-3.2.0rc37/src/specify_cli/core/execution_context.py +316 -0
  114. spec_kitty_cli-3.2.0rc37/src/specify_cli/core/git_ops.py +421 -0
  115. spec_kitty_cli-3.2.0rc37/src/specify_cli/core/mission_creation.py +608 -0
  116. spec_kitty_cli-3.2.0rc37/src/specify_cli/core/paths.py +492 -0
  117. spec_kitty_cli-3.2.0rc37/src/specify_cli/core/project_resolver.py +108 -0
  118. spec_kitty_cli-3.2.0rc37/src/specify_cli/core/vcs/detection.py +273 -0
  119. spec_kitty_cli-3.2.0rc37/src/specify_cli/core/worktree_topology.py +309 -0
  120. spec_kitty_cli-3.2.0rc37/src/specify_cli/dashboard/scanner.py +786 -0
  121. spec_kitty_cli-3.2.0rc37/src/specify_cli/decisions/emit.py +236 -0
  122. spec_kitty_cli-3.2.0rc37/src/specify_cli/decisions/service.py +620 -0
  123. spec_kitty_cli-3.2.0rc37/src/specify_cli/doctrine_synthesizer/apply.py +844 -0
  124. spec_kitty_cli-3.2.0rc37/src/specify_cli/dossier/api.py +475 -0
  125. spec_kitty_cli-3.2.0rc37/src/specify_cli/events/decision_log.py +222 -0
  126. spec_kitty_cli-3.2.0rc37/src/specify_cli/git/commit_helpers.py +1049 -0
  127. spec_kitty_cli-3.2.0rc37/src/specify_cli/git/sparse_checkout.py +495 -0
  128. spec_kitty_cli-3.2.0rc37/src/specify_cli/lanes/lifecycle_sync.py +203 -0
  129. spec_kitty_cli-3.2.0rc37/src/specify_cli/lanes/merge.py +474 -0
  130. spec_kitty_cli-3.2.0rc37/src/specify_cli/lanes/recovery.py +737 -0
  131. spec_kitty_cli-3.2.0rc37/src/specify_cli/lanes/worktree_allocator.py +272 -0
  132. spec_kitty_cli-3.2.0rc37/src/specify_cli/manifest.py +278 -0
  133. spec_kitty_cli-3.2.0rc37/src/specify_cli/merge/conflict_resolver.py +250 -0
  134. spec_kitty_cli-3.2.0rc37/src/specify_cli/merge/ordering.py +201 -0
  135. spec_kitty_cli-3.2.0rc37/src/specify_cli/migration/mission_state.py +1785 -0
  136. spec_kitty_cli-3.2.0rc37/src/specify_cli/migration/rewrite_shims.py +269 -0
  137. spec_kitty_cli-3.2.0rc37/src/specify_cli/mission.py +752 -0
  138. spec_kitty_cli-3.2.0rc37/src/specify_cli/mission_loader/command.py +320 -0
  139. spec_kitty_cli-3.2.0rc37/src/specify_cli/mission_read_path.py +113 -0
  140. spec_kitty_cli-3.2.0rc37/src/specify_cli/missions/_read_path_resolver.py +187 -0
  141. spec_kitty_cli-3.2.0rc37/src/specify_cli/missions/feature_dir_resolver.py +49 -0
  142. spec_kitty_cli-3.2.0rc37/src/specify_cli/missions/plan/plan_interview.py +322 -0
  143. spec_kitty_cli-3.2.0rc37/src/specify_cli/missions/plan/specify_interview.py +323 -0
  144. spec_kitty_cli-3.2.0rc37/src/specify_cli/ownership/validation.py +263 -0
  145. spec_kitty_cli-3.2.0rc37/src/specify_cli/policy/commit_guard.py +156 -0
  146. spec_kitty_cli-3.2.0rc37/src/specify_cli/policy/config.py +161 -0
  147. spec_kitty_cli-3.2.0rc37/src/specify_cli/post_merge/review_artifact_consistency.py +161 -0
  148. spec_kitty_cli-3.2.0rc37/src/specify_cli/release/changelog.py +277 -0
  149. spec_kitty_cli-3.2.0rc37/src/specify_cli/retrospective/cli.py +291 -0
  150. spec_kitty_cli-3.2.0rc37/src/specify_cli/retrospective/generator.py +986 -0
  151. spec_kitty_cli-3.2.0rc37/src/specify_cli/retrospective/lifecycle_events.py +503 -0
  152. spec_kitty_cli-3.2.0rc37/src/specify_cli/retrospective/summary.py +687 -0
  153. spec_kitty_cli-3.2.0rc37/src/specify_cli/review/cycle.py +305 -0
  154. spec_kitty_cli-3.2.0rc37/src/specify_cli/runtime/agent_commands.py +375 -0
  155. spec_kitty_cli-3.2.0rc37/src/specify_cli/runtime/agent_skills.py +146 -0
  156. spec_kitty_cli-3.2.0rc37/src/specify_cli/runtime/resolver.py +334 -0
  157. spec_kitty_cli-3.2.0rc37/src/specify_cli/runtime/show_origin.py +260 -0
  158. spec_kitty_cli-3.2.0rc37/src/specify_cli/scripts/tasks/task_helpers.py +481 -0
  159. spec_kitty_cli-3.2.0rc37/src/specify_cli/scripts/tasks/tasks_cli.py +914 -0
  160. spec_kitty_cli-3.2.0rc37/src/specify_cli/skills/installer.py +339 -0
  161. spec_kitty_cli-3.2.0rc37/src/specify_cli/state/contract.py +750 -0
  162. spec_kitty_cli-3.2.0rc37/src/specify_cli/status/__init__.py +193 -0
  163. spec_kitty_cli-3.2.0rc37/src/specify_cli/status/aggregate.py +425 -0
  164. spec_kitty_cli-3.2.0rc37/src/specify_cli/status/bootstrap.py +171 -0
  165. spec_kitty_cli-3.2.0rc37/src/specify_cli/status/emit.py +770 -0
  166. spec_kitty_cli-3.2.0rc37/src/specify_cli/status/identity_audit.py +327 -0
  167. spec_kitty_cli-3.2.0rc37/src/specify_cli/status/lifecycle_events.py +767 -0
  168. spec_kitty_cli-3.2.0rc37/src/specify_cli/status/store.py +439 -0
  169. spec_kitty_cli-3.2.0rc37/src/specify_cli/status/work_package_lifecycle.py +243 -0
  170. spec_kitty_cli-3.2.0rc37/src/specify_cli/sync/__init__.py +336 -0
  171. spec_kitty_cli-3.2.0rc37/src/specify_cli/sync/_team.py +80 -0
  172. spec_kitty_cli-3.2.0rc37/src/specify_cli/sync/client.py +445 -0
  173. spec_kitty_cli-3.2.0rc37/src/specify_cli/sync/emitter.py +1946 -0
  174. spec_kitty_cli-3.2.0rc37/src/specify_cli/sync/events.py +510 -0
  175. spec_kitty_cli-3.2.0rc37/src/specify_cli/sync/local_commit.py +279 -0
  176. spec_kitty_cli-3.2.0rc37/src/specify_cli/task_utils/support.py +429 -0
  177. spec_kitty_cli-3.2.0rc37/src/specify_cli/template/manager.py +211 -0
  178. spec_kitty_cli-3.2.0rc37/src/specify_cli/tracker/origin.py +590 -0
  179. spec_kitty_cli-3.2.0rc37/src/specify_cli/upgrade/compat.py +40 -0
  180. spec_kitty_cli-3.2.0rc37/src/specify_cli/upgrade/migrations/README.md +70 -0
  181. spec_kitty_cli-3.2.0rc37/src/specify_cli/upgrade/migrations/_legacy_codex_hashes.py +54 -0
  182. spec_kitty_cli-3.2.0rc37/src/specify_cli/upgrade/migrations/m_2_1_3_restore_prompt_commands.py +414 -0
  183. spec_kitty_cli-3.2.0rc37/src/specify_cli/upgrade/migrations/m_3_2_0rc35_activate_builtin_mission_types.py +159 -0
  184. spec_kitty_cli-3.2.0rc37/src/specify_cli/upgrade/migrations/m_3_2_0rc35_charter_bundle_v2.py +115 -0
  185. spec_kitty_cli-3.2.0rc37/src/specify_cli/upgrade/migrations/m_3_2_0rc35_charter_manifest_defaults_repair.py +68 -0
  186. spec_kitty_cli-3.2.0rc37/src/specify_cli/upgrade/migrations/m_3_2_0rc35_codex_to_skills.py +351 -0
  187. spec_kitty_cli-3.2.0rc37/src/specify_cli/upgrade/migrations/m_3_2_0rc35_default_charter_pack.py +219 -0
  188. spec_kitty_cli-3.2.0rc37/src/specify_cli/upgrade/migrations/m_3_2_0rc35_fix_prompt_file_workaround.py +108 -0
  189. spec_kitty_cli-3.2.0rc37/src/specify_cli/upgrade/migrations/m_3_2_0rc35_kittify_profile_handoff.py +315 -0
  190. spec_kitty_cli-3.2.0rc37/src/specify_cli/upgrade/migrations/m_3_2_0rc35_pi_letta_backfill.py +176 -0
  191. spec_kitty_cli-3.2.0rc37/src/specify_cli/upgrade/migrations/m_3_2_0rc35_repository_root_checkout_terminology.py +127 -0
  192. spec_kitty_cli-3.2.0rc37/src/specify_cli/upgrade/migrations/m_3_2_0rc35_spk_skill_pack.py +181 -0
  193. spec_kitty_cli-3.2.0rc37/src/specify_cli/upgrade/migrations/m_3_2_0rc35_strip_selection_config.py +132 -0
  194. spec_kitty_cli-3.2.0rc37/src/specify_cli/upgrade/migrations/m_3_2_0rc35_sync_state_gitignore.py +114 -0
  195. spec_kitty_cli-3.2.0rc37/src/specify_cli/upgrade/migrations/m_3_2_0rc35_unified_bundle.py +285 -0
  196. spec_kitty_cli-3.2.0rc37/src/specify_cli/upgrade/migrations/m_3_2_0rc35_update_planning_templates.py +195 -0
  197. spec_kitty_cli-3.2.0rc37/src/specify_cli/upgrade/runner.py +462 -0
  198. spec_kitty_cli-3.2.0rc37/src/specify_cli/verify_enhanced.py +461 -0
  199. spec_kitty_cli-3.2.0rc37/src/specify_cli/widen/state.py +191 -0
  200. spec_kitty_cli-3.2.0rc37/src/specify_cli/workspace/assert_initialized.py +120 -0
  201. spec_kitty_cli-3.2.0rc37/src/specify_cli/workspace/context.py +811 -0
  202. spec_kitty_cli-3.2.0rc37/src/specify_cli/workspace/root_resolver.py +205 -0
  203. spec_kitty_cli-3.2.0rc35/CHANGELOG.md +0 -4496
  204. spec_kitty_cli-3.2.0rc35/PKG-INFO +0 -328
  205. spec_kitty_cli-3.2.0rc35/architecture/3.x/adr/README.md +0 -53
  206. spec_kitty_cli-3.2.0rc35/docs/reference/README.md +0 -27
  207. spec_kitty_cli-3.2.0rc35/pyproject.toml +0 -490
  208. spec_kitty_cli-3.2.0rc35/src/charter/_io.py +0 -382
  209. spec_kitty_cli-3.2.0rc35/src/charter/invocation_context.py +0 -270
  210. spec_kitty_cli-3.2.0rc35/src/charter/pack_manager.py +0 -725
  211. spec_kitty_cli-3.2.0rc35/src/charter/packs/default.yaml +0 -222
  212. spec_kitty_cli-3.2.0rc35/src/charter/sync.py +0 -395
  213. spec_kitty_cli-3.2.0rc35/src/doctrine/agent_profiles/README.md +0 -70
  214. spec_kitty_cli-3.2.0rc35/src/doctrine/agent_profiles/built-in/README.md +0 -27
  215. spec_kitty_cli-3.2.0rc35/src/doctrine/graph.yaml +0 -2327
  216. spec_kitty_cli-3.2.0rc35/src/doctrine/missions/mission-steps/software-dev/implement/prompt.md +0 -332
  217. spec_kitty_cli-3.2.0rc35/src/doctrine/missions/mission_step_repository.py +0 -363
  218. spec_kitty_cli-3.2.0rc35/src/doctrine/missions/repository.py +0 -415
  219. spec_kitty_cli-3.2.0rc35/src/doctrine/skills/README.md +0 -71
  220. spec_kitty_cli-3.2.0rc35/src/doctrine/skills/debugger-debbie/SKILL.md +0 -289
  221. spec_kitty_cli-3.2.0rc35/src/doctrine/skills/debugger-debbie/references/orthogonality-matrix.md +0 -36
  222. spec_kitty_cli-3.2.0rc35/src/doctrine/skills/debugger-debbie/references/paradigm-prompts.md +0 -83
  223. spec_kitty_cli-3.2.0rc35/src/doctrine/skills/paula-patterns/SKILL.md +0 -191
  224. spec_kitty_cli-3.2.0rc35/src/doctrine/skills/paula-patterns/references/scout-prompts.md +0 -85
  225. spec_kitty_cli-3.2.0rc35/src/doctrine/skills/paula-patterns/references/synthesis-matrix.md +0 -38
  226. spec_kitty_cli-3.2.0rc35/src/runtime/next/_internal_runtime/engine.py +0 -1469
  227. spec_kitty_cli-3.2.0rc35/src/runtime/next/_internal_runtime/planner.py +0 -483
  228. spec_kitty_cli-3.2.0rc35/src/runtime/next/_internal_runtime/schema.py +0 -571
  229. spec_kitty_cli-3.2.0rc35/src/runtime/next/runtime_bridge.py +0 -3449
  230. spec_kitty_cli-3.2.0rc35/src/specify_cli/.contextive/execution.yml +0 -35
  231. spec_kitty_cli-3.2.0rc35/src/specify_cli/.contextive/orchestration.yml +0 -71
  232. spec_kitty_cli-3.2.0rc35/src/specify_cli/__init__.py +0 -330
  233. spec_kitty_cli-3.2.0rc35/src/specify_cli/acceptance/__init__.py +0 -1182
  234. spec_kitty_cli-3.2.0rc35/src/specify_cli/agent_upgrade_prompt.py +0 -49
  235. spec_kitty_cli-3.2.0rc35/src/specify_cli/agent_utils/status.py +0 -576
  236. spec_kitty_cli-3.2.0rc35/src/specify_cli/audit/engine.py +0 -459
  237. spec_kitty_cli-3.2.0rc35/src/specify_cli/audit/models.py +0 -202
  238. spec_kitty_cli-3.2.0rc35/src/specify_cli/charter_activate.py +0 -246
  239. spec_kitty_cli-3.2.0rc35/src/specify_cli/charter_runtime/preflight/hook.py +0 -125
  240. spec_kitty_cli-3.2.0rc35/src/specify_cli/charter_runtime/preflight/result.py +0 -116
  241. spec_kitty_cli-3.2.0rc35/src/specify_cli/charter_runtime/preflight/runner.py +0 -461
  242. spec_kitty_cli-3.2.0rc35/src/specify_cli/cli/commands/_teamspace_mission_state_gate.py +0 -212
  243. spec_kitty_cli-3.2.0rc35/src/specify_cli/cli/commands/agent/config.py +0 -592
  244. spec_kitty_cli-3.2.0rc35/src/specify_cli/cli/commands/agent/mission.py +0 -2947
  245. spec_kitty_cli-3.2.0rc35/src/specify_cli/cli/commands/agent/status.py +0 -910
  246. spec_kitty_cli-3.2.0rc35/src/specify_cli/cli/commands/agent/tasks.py +0 -4306
  247. spec_kitty_cli-3.2.0rc35/src/specify_cli/cli/commands/agent/workflow.py +0 -2530
  248. spec_kitty_cli-3.2.0rc35/src/specify_cli/cli/commands/charter/_widen.py +0 -492
  249. spec_kitty_cli-3.2.0rc35/src/specify_cli/cli/commands/charter/activate.py +0 -324
  250. spec_kitty_cli-3.2.0rc35/src/specify_cli/cli/commands/decision.py +0 -488
  251. spec_kitty_cli-3.2.0rc35/src/specify_cli/cli/commands/doctor.py +0 -3177
  252. spec_kitty_cli-3.2.0rc35/src/specify_cli/cli/commands/implement.py +0 -1067
  253. spec_kitty_cli-3.2.0rc35/src/specify_cli/cli/commands/init.py +0 -1155
  254. spec_kitty_cli-3.2.0rc35/src/specify_cli/cli/commands/lifecycle.py +0 -215
  255. spec_kitty_cli-3.2.0rc35/src/specify_cli/cli/commands/materialize.py +0 -137
  256. spec_kitty_cli-3.2.0rc35/src/specify_cli/cli/commands/merge.py +0 -2381
  257. spec_kitty_cli-3.2.0rc35/src/specify_cli/cli/commands/migrate/charter_encoding.py +0 -355
  258. spec_kitty_cli-3.2.0rc35/src/specify_cli/cli/commands/mission_type.py +0 -896
  259. spec_kitty_cli-3.2.0rc35/src/specify_cli/cli/commands/next_cmd.py +0 -570
  260. spec_kitty_cli-3.2.0rc35/src/specify_cli/cli/commands/retrospect.py +0 -1063
  261. spec_kitty_cli-3.2.0rc35/src/specify_cli/cli/commands/safe_commit_cmd.py +0 -200
  262. spec_kitty_cli-3.2.0rc35/src/specify_cli/cli/commands/upgrade.py +0 -1036
  263. spec_kitty_cli-3.2.0rc35/src/specify_cli/cli/commands/validate_encoding.py +0 -193
  264. spec_kitty_cli-3.2.0rc35/src/specify_cli/cli/commands/validate_tasks.py +0 -193
  265. spec_kitty_cli-3.2.0rc35/src/specify_cli/cli/commands/verify.py +0 -352
  266. spec_kitty_cli-3.2.0rc35/src/specify_cli/context/mission_resolver.py +0 -272
  267. spec_kitty_cli-3.2.0rc35/src/specify_cli/context/resolver.py +0 -275
  268. spec_kitty_cli-3.2.0rc35/src/specify_cli/coordination/outbound.py +0 -125
  269. spec_kitty_cli-3.2.0rc35/src/specify_cli/coordination/policy.py +0 -217
  270. spec_kitty_cli-3.2.0rc35/src/specify_cli/coordination/status_service.py +0 -295
  271. spec_kitty_cli-3.2.0rc35/src/specify_cli/coordination/status_transition.py +0 -531
  272. spec_kitty_cli-3.2.0rc35/src/specify_cli/coordination/transaction.py +0 -1061
  273. spec_kitty_cli-3.2.0rc35/src/specify_cli/coordination/types.py +0 -132
  274. spec_kitty_cli-3.2.0rc35/src/specify_cli/coordination/workspace.py +0 -297
  275. spec_kitty_cli-3.2.0rc35/src/specify_cli/core/execution_context.py +0 -306
  276. spec_kitty_cli-3.2.0rc35/src/specify_cli/core/git_ops.py +0 -419
  277. spec_kitty_cli-3.2.0rc35/src/specify_cli/core/mission_creation.py +0 -607
  278. spec_kitty_cli-3.2.0rc35/src/specify_cli/core/paths.py +0 -491
  279. spec_kitty_cli-3.2.0rc35/src/specify_cli/core/project_resolver.py +0 -107
  280. spec_kitty_cli-3.2.0rc35/src/specify_cli/core/vcs/detection.py +0 -272
  281. spec_kitty_cli-3.2.0rc35/src/specify_cli/core/worktree_topology.py +0 -308
  282. spec_kitty_cli-3.2.0rc35/src/specify_cli/dashboard/scanner.py +0 -785
  283. spec_kitty_cli-3.2.0rc35/src/specify_cli/decisions/emit.py +0 -235
  284. spec_kitty_cli-3.2.0rc35/src/specify_cli/decisions/service.py +0 -619
  285. spec_kitty_cli-3.2.0rc35/src/specify_cli/doctrine_synthesizer/apply.py +0 -842
  286. spec_kitty_cli-3.2.0rc35/src/specify_cli/dossier/api.py +0 -474
  287. spec_kitty_cli-3.2.0rc35/src/specify_cli/events/decision_log.py +0 -221
  288. spec_kitty_cli-3.2.0rc35/src/specify_cli/git/commit_helpers.py +0 -1029
  289. spec_kitty_cli-3.2.0rc35/src/specify_cli/git/sparse_checkout.py +0 -494
  290. spec_kitty_cli-3.2.0rc35/src/specify_cli/lanes/lifecycle_sync.py +0 -202
  291. spec_kitty_cli-3.2.0rc35/src/specify_cli/lanes/merge.py +0 -473
  292. spec_kitty_cli-3.2.0rc35/src/specify_cli/lanes/recovery.py +0 -739
  293. spec_kitty_cli-3.2.0rc35/src/specify_cli/lanes/worktree_allocator.py +0 -271
  294. spec_kitty_cli-3.2.0rc35/src/specify_cli/manifest.py +0 -276
  295. spec_kitty_cli-3.2.0rc35/src/specify_cli/merge/conflict_resolver.py +0 -249
  296. spec_kitty_cli-3.2.0rc35/src/specify_cli/merge/ordering.py +0 -201
  297. spec_kitty_cli-3.2.0rc35/src/specify_cli/migration/mission_state.py +0 -1758
  298. spec_kitty_cli-3.2.0rc35/src/specify_cli/migration/rewrite_shims.py +0 -253
  299. spec_kitty_cli-3.2.0rc35/src/specify_cli/mission.py +0 -736
  300. spec_kitty_cli-3.2.0rc35/src/specify_cli/mission_loader/command.py +0 -319
  301. spec_kitty_cli-3.2.0rc35/src/specify_cli/missions/_read_path_resolver.py +0 -186
  302. spec_kitty_cli-3.2.0rc35/src/specify_cli/missions/plan/plan_interview.py +0 -321
  303. spec_kitty_cli-3.2.0rc35/src/specify_cli/missions/plan/specify_interview.py +0 -322
  304. spec_kitty_cli-3.2.0rc35/src/specify_cli/ownership/validation.py +0 -262
  305. spec_kitty_cli-3.2.0rc35/src/specify_cli/policy/commit_guard.py +0 -155
  306. spec_kitty_cli-3.2.0rc35/src/specify_cli/policy/config.py +0 -138
  307. spec_kitty_cli-3.2.0rc35/src/specify_cli/post_merge/review_artifact_consistency.py +0 -161
  308. spec_kitty_cli-3.2.0rc35/src/specify_cli/release/changelog.py +0 -276
  309. spec_kitty_cli-3.2.0rc35/src/specify_cli/retrospective/cli.py +0 -290
  310. spec_kitty_cli-3.2.0rc35/src/specify_cli/retrospective/generator.py +0 -985
  311. spec_kitty_cli-3.2.0rc35/src/specify_cli/retrospective/lifecycle_events.py +0 -502
  312. spec_kitty_cli-3.2.0rc35/src/specify_cli/retrospective/summary.py +0 -686
  313. spec_kitty_cli-3.2.0rc35/src/specify_cli/review/cycle.py +0 -303
  314. spec_kitty_cli-3.2.0rc35/src/specify_cli/runtime/agent_commands.py +0 -360
  315. spec_kitty_cli-3.2.0rc35/src/specify_cli/runtime/agent_skills.py +0 -114
  316. spec_kitty_cli-3.2.0rc35/src/specify_cli/runtime/resolver.py +0 -311
  317. spec_kitty_cli-3.2.0rc35/src/specify_cli/runtime/show_origin.py +0 -235
  318. spec_kitty_cli-3.2.0rc35/src/specify_cli/scripts/tasks/task_helpers.py +0 -479
  319. spec_kitty_cli-3.2.0rc35/src/specify_cli/scripts/tasks/tasks_cli.py +0 -912
  320. spec_kitty_cli-3.2.0rc35/src/specify_cli/skills/installer.py +0 -319
  321. spec_kitty_cli-3.2.0rc35/src/specify_cli/state/contract.py +0 -748
  322. spec_kitty_cli-3.2.0rc35/src/specify_cli/status/__init__.py +0 -173
  323. spec_kitty_cli-3.2.0rc35/src/specify_cli/status/bootstrap.py +0 -167
  324. spec_kitty_cli-3.2.0rc35/src/specify_cli/status/emit.py +0 -769
  325. spec_kitty_cli-3.2.0rc35/src/specify_cli/status/identity_audit.py +0 -326
  326. spec_kitty_cli-3.2.0rc35/src/specify_cli/status/lifecycle_events.py +0 -766
  327. spec_kitty_cli-3.2.0rc35/src/specify_cli/status/store.py +0 -438
  328. spec_kitty_cli-3.2.0rc35/src/specify_cli/status/work_package_lifecycle.py +0 -242
  329. spec_kitty_cli-3.2.0rc35/src/specify_cli/sync/__init__.py +0 -335
  330. spec_kitty_cli-3.2.0rc35/src/specify_cli/sync/_team.py +0 -76
  331. spec_kitty_cli-3.2.0rc35/src/specify_cli/sync/client.py +0 -445
  332. spec_kitty_cli-3.2.0rc35/src/specify_cli/sync/emitter.py +0 -1943
  333. spec_kitty_cli-3.2.0rc35/src/specify_cli/sync/events.py +0 -509
  334. spec_kitty_cli-3.2.0rc35/src/specify_cli/sync/local_commit.py +0 -279
  335. spec_kitty_cli-3.2.0rc35/src/specify_cli/task_utils/support.py +0 -422
  336. spec_kitty_cli-3.2.0rc35/src/specify_cli/template/manager.py +0 -211
  337. spec_kitty_cli-3.2.0rc35/src/specify_cli/tracker/origin.py +0 -589
  338. spec_kitty_cli-3.2.0rc35/src/specify_cli/upgrade/compat.py +0 -39
  339. spec_kitty_cli-3.2.0rc35/src/specify_cli/upgrade/migrations/README.md +0 -75
  340. spec_kitty_cli-3.2.0rc35/src/specify_cli/upgrade/migrations/_legacy_codex_hashes.py +0 -54
  341. spec_kitty_cli-3.2.0rc35/src/specify_cli/upgrade/migrations/m_2_1_3_restore_prompt_commands.py +0 -391
  342. spec_kitty_cli-3.2.0rc35/src/specify_cli/upgrade/migrations/m_3_2_0_codex_to_skills.py +0 -351
  343. spec_kitty_cli-3.2.0rc35/src/specify_cli/upgrade/migrations/m_3_2_0_update_planning_templates.py +0 -195
  344. spec_kitty_cli-3.2.0rc35/src/specify_cli/upgrade/migrations/m_3_2_1_strip_selection_config.py +0 -132
  345. spec_kitty_cli-3.2.0rc35/src/specify_cli/upgrade/migrations/m_3_2_3_unified_bundle.py +0 -285
  346. spec_kitty_cli-3.2.0rc35/src/specify_cli/upgrade/migrations/m_3_2_4_kittify_profile_handoff.py +0 -315
  347. spec_kitty_cli-3.2.0rc35/src/specify_cli/upgrade/migrations/m_3_2_4_repository_root_checkout_terminology.py +0 -127
  348. spec_kitty_cli-3.2.0rc35/src/specify_cli/upgrade/migrations/m_3_2_5_fix_prompt_file_workaround.py +0 -108
  349. spec_kitty_cli-3.2.0rc35/src/specify_cli/upgrade/migrations/m_3_2_6_charter_bundle_v2.py +0 -115
  350. spec_kitty_cli-3.2.0rc35/src/specify_cli/upgrade/migrations/m_3_2_6_charter_manifest_defaults_repair.py +0 -68
  351. spec_kitty_cli-3.2.0rc35/src/specify_cli/upgrade/migrations/m_3_2_7_activate_builtin_mission_types.py +0 -159
  352. spec_kitty_cli-3.2.0rc35/src/specify_cli/upgrade/migrations/m_3_2_8_default_charter_pack.py +0 -219
  353. spec_kitty_cli-3.2.0rc35/src/specify_cli/upgrade/migrations/m_3_2_9_sync_state_gitignore.py +0 -114
  354. spec_kitty_cli-3.2.0rc35/src/specify_cli/upgrade/runner.py +0 -461
  355. spec_kitty_cli-3.2.0rc35/src/specify_cli/verify_enhanced.py +0 -459
  356. spec_kitty_cli-3.2.0rc35/src/specify_cli/widen/state.py +0 -189
  357. spec_kitty_cli-3.2.0rc35/src/specify_cli/workspace/assert_initialized.py +0 -119
  358. spec_kitty_cli-3.2.0rc35/src/specify_cli/workspace/context.py +0 -804
  359. spec_kitty_cli-3.2.0rc35/src/specify_cli/workspace/root_resolver.py +0 -204
  360. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/.gitignore +0 -0
  361. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/LICENSE +0 -0
  362. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/README.md +0 -0
  363. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/1.x/README.md +0 -0
  364. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/1.x/adr/README.md +0 -0
  365. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/1.x/notes/README.md +0 -0
  366. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/2.x/00_landscape/README.md +0 -0
  367. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/2.x/01_context/README.md +0 -0
  368. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/2.x/02_containers/README.md +0 -0
  369. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/2.x/03_components/README.md +0 -0
  370. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/2.x/04_implementation_mapping/README.md +0 -0
  371. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/2.x/README.md +0 -0
  372. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/2.x/adr/README.md +0 -0
  373. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/2.x/initiatives/2026-02-architecture-discovery-and-restructure/README.md +0 -0
  374. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/2.x/initiatives/2026-03-054-postmortem/README.md +0 -0
  375. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/2.x/initiatives/2026-03-doctrine-execution-integration/README.md +0 -0
  376. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/2.x/initiatives/2026-04-mission-nomenclature-reconciliation/README.md +0 -0
  377. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/2.x/initiatives/2026-04-tracker-binding-context-discovery/README.md +0 -0
  378. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/2.x/initiatives/README.md +0 -0
  379. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/2.x/initiatives/next-mission-mappings/README.md +0 -0
  380. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/2.x/initiatives/test_improvement/README.md +0 -0
  381. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/2.x/user_journey/README.md +0 -0
  382. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/3.x/README.md +0 -0
  383. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/README.md +0 -0
  384. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/adrs/README.md +0 -0
  385. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/audience/README.md +0 -0
  386. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/audience/external/README.md +0 -0
  387. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/audience/internal/README.md +0 -0
  388. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/calibration/README.md +0 -0
  389. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/architecture/glossary/README.md +0 -0
  390. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/docs/development/tracking/next-mission-mappings/README.md +0 -0
  391. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/docs/doctrine/README.md +0 -0
  392. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/docs/engineering_notes/architectural-review/README.md +0 -0
  393. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/docs/engineering_notes/finding/README.md +0 -0
  394. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/docs/engineering_notes/reflections/README.md +0 -0
  395. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/docs/engineering_notes/triage/README.md +0 -0
  396. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/glossary/README.md +0 -0
  397. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/007-frontmatter-only-lane/tasks/README.md +0 -0
  398. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/008-unified-python-cli/tasks/README.md +0 -0
  399. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/010-workspace-per-work-package-for-parallel-development/tasks/README.md +0 -0
  400. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/011-constitution-packaging-safety-and-redesign/tasks/README.md +0 -0
  401. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/012-documentation-mission/tasks/README.md +0 -0
  402. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/014-comprehensive-end-user-documentation/tasks/README.md +0 -0
  403. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/017-smarter-feature-merge-with-preflight/tasks/README.md +0 -0
  404. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/018-merge-preflight-documentation/tasks/README.md +0 -0
  405. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/019-autonomous-multi-agent-orchestration-research/tasks/README.md +0 -0
  406. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/020-autonomous-multi-agent-orchestrator/tasks/README.md +0 -0
  407. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/021-orchestrator-end-to-end-testing-suite/tasks/README.md +0 -0
  408. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/028-cli-event-emission-sync/tasks/README.md +0 -0
  409. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/032-identity-aware-cli-event-sync/tasks/README.md +0 -0
  410. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/034-feature-status-state-model-remediation/tasks/README.md +0 -0
  411. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/039-cli-2x-readiness/tasks/README.md +0 -0
  412. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/041-enable-plan-mission-runtime-support/tasks/README.md +0 -0
  413. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/045-mission-handoff-package-version-matrix/handoff/README.md +0 -0
  414. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/045-mission-handoff-package-version-matrix/tasks/README.md +0 -0
  415. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/047-mutmut-mutation-testing-ci/tasks/README.md +0 -0
  416. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/047-namespace-aware-artifact-body-sync/tasks/README.md +0 -0
  417. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/048-tracker-publish-resource-routing/tasks/README.md +0 -0
  418. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/049-fix-merge-target-resolution/tasks/README.md +0 -0
  419. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/050-state-model-cleanup-foundations/tasks/README.md +0 -0
  420. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/051-canonical-state-authority-single-metadata-writer/tasks/README.md +0 -0
  421. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/052-acceptance-pipeline-regression-fixes/tasks/README.md +0 -0
  422. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/053-orchestrator-api-json-contract-fidelity/tasks/README.md +0 -0
  423. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/054-constitution-interview-compiler-and-bootstrap/tasks/README.md +0 -0
  424. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/054-state-architecture-cleanup-phase-2/tasks/README.md +0 -0
  425. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/055-agent-skills-pack/tasks/README.md +0 -0
  426. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/056-documentation-parity-sprint/tasks/README.md +0 -0
  427. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/057-canonical-context-architecture-cleanup/tasks/README.md +0 -0
  428. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/058-hybrid-prompt-and-shim-agent-surface/tasks/README.md +0 -0
  429. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/059-saas-mediated-cli-tracker-reflow/tasks/README.md +0 -0
  430. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/060-canonical-status-model-cleanup/tasks/README.md +0 -0
  431. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/061-ticket-first-mission-origin-binding/tasks/README.md +0 -0
  432. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/062-fix-doctrine-migration-test-failures/tasks/README.md +0 -0
  433. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/062-tracker-binding-context-discovery/tasks/README.md +0 -0
  434. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/063-universal-charter-rename/tasks/README.md +0 -0
  435. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/064-complete-mission-identity-cutover/tasks/README.md +0 -0
  436. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/065-tasks-and-lane-stabilization/tasks/README.md +0 -0
  437. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/065-wp-metadata-state-type-hardening/tasks/README.md +0 -0
  438. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/066-review-loop-stabilization/tasks/README.md +0 -0
  439. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/067-runtime-recovery-and-audit-safety/tasks/README.md +0 -0
  440. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/068-post-merge-reliability-and-release-hardening/tasks/README.md +0 -0
  441. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/069-planning-pipeline-integrity/tasks/README.md +0 -0
  442. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/076-init-command-overhaul/tasks/README.md +0 -0
  443. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/077-mission-terminology-cleanup/tasks/README.md +0 -0
  444. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/078-planning-artifact-and-query-consistency/tasks/README.md +0 -0
  445. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/079-post-555-release-hardening/tasks/README.md +0 -0
  446. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/080-ci-hardening-and-lint-cleanup/tasks/README.md +0 -0
  447. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/080-wpstate-lane-consumer-strangler-fig-phase-2/tasks/README.md +0 -0
  448. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/081-canonical-baseline-and-repository-boundary/tasks/README.md +0 -0
  449. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/082-stealth-gated-saas-sync-hardening/tasks/README.md +0 -0
  450. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/083-agent-skills-codex-vibe/tasks/README.md +0 -0
  451. {spec_kitty_cli-3.2.0rc35/kitty-specs/auth-local-trust-and-multi-process-hardening-01KQW587 → spec_kitty_cli-3.2.0rc37/kitty-specs/agent-harness-install-audit-follow-through-01KT5YTQ}/tasks/README.md +0 -0
  452. {spec_kitty_cli-3.2.0rc35/kitty-specs/auth-readiness-from-any-command-01KS7PQZ → spec_kitty_cli-3.2.0rc37/kitty-specs/auth-local-trust-and-multi-process-hardening-01KQW587}/tasks/README.md +0 -0
  453. {spec_kitty_cli-3.2.0rc35/kitty-specs/autonomous-runtime-safety-followups-01KS52BD → spec_kitty_cli-3.2.0rc37/kitty-specs/auth-readiness-from-any-command-01KS7PQZ}/tasks/README.md +0 -0
  454. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/auth-tranche-2-5-cli-contract-consumption-01KQEJZK/tasks/README.md +0 -0
  455. {spec_kitty_cli-3.2.0rc35/kitty-specs/backward-transition-cli-emit-01KRV8GC → spec_kitty_cli-3.2.0rc37/kitty-specs/autonomous-runtime-safety-followups-01KS52BD}/tasks/README.md +0 -0
  456. {spec_kitty_cli-3.2.0rc35/kitty-specs/bulk-edit-occurrence-classification-guardrail-01KP423X → spec_kitty_cli-3.2.0rc37/kitty-specs/backward-transition-cli-emit-01KRV8GC}/tasks/README.md +0 -0
  457. {spec_kitty_cli-3.2.0rc35/kitty-specs/canonical-producer-lint-01KS4XX4 → spec_kitty_cli-3.2.0rc37/kitty-specs/bulk-edit-occurrence-classification-guardrail-01KP423X}/tasks/README.md +0 -0
  458. {spec_kitty_cli-3.2.0rc35/kitty-specs/charter-contract-cleanup-tranche-1-01KQATS4 → spec_kitty_cli-3.2.0rc37/kitty-specs/canonical-producer-lint-01KS4XX4}/tasks/README.md +0 -0
  459. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/charter-828-implementation-sprint-01KQD7VB/tasks/README.md +0 -0
  460. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/charter-contract-cleanup-tranche-1-01KQATS4/contracts/README.md +0 -0
  461. {spec_kitty_cli-3.2.0rc35/kitty-specs/charter-e2e-827-followups-01KQAJA0 → spec_kitty_cli-3.2.0rc37/kitty-specs/charter-contract-cleanup-tranche-1-01KQATS4}/tasks/README.md +0 -0
  462. {spec_kitty_cli-3.2.0rc35/kitty-specs/charter-end-user-docs-828-01KQCSYD → spec_kitty_cli-3.2.0rc37/kitty-specs/charter-e2e-827-followups-01KQAJA0}/tasks/README.md +0 -0
  463. {spec_kitty_cli-3.2.0rc35/kitty-specs/charter-ownership-consolidation-and-neutrality-hardening-01KPD880 → spec_kitty_cli-3.2.0rc37/kitty-specs/charter-end-user-docs-828-01KQCSYD}/tasks/README.md +0 -0
  464. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/charter-golden-path-e2e-tranche-1-01KQ806X/tasks/README.md +0 -0
  465. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/charter-mediated-doctrine-selection-01KRTZCA/tasks/README.md +0 -0
  466. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/charter-ownership-consolidation-and-neutrality-hardening-01KPD880/contracts/README.md +0 -0
  467. {spec_kitty_cli-3.2.0rc35/kitty-specs/charter-p7-release-closure-01KQF9B9 → spec_kitty_cli-3.2.0rc37/kitty-specs/charter-ownership-consolidation-and-neutrality-hardening-01KPD880}/tasks/README.md +0 -0
  468. {spec_kitty_cli-3.2.0rc35/kitty-specs/charter-p7-schema-versioning-provenance-01KQEG13 → spec_kitty_cli-3.2.0rc37/kitty-specs/charter-p7-release-closure-01KQF9B9}/tasks/README.md +0 -0
  469. {spec_kitty_cli-3.2.0rc35/kitty-specs/charter-ux-and-org-pack-vocabulary-01KSAF14 → spec_kitty_cli-3.2.0rc37/kitty-specs/charter-p7-schema-versioning-provenance-01KQEG13}/tasks/README.md +0 -0
  470. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/charter-pack-activation-layer-01KSYE4V/tasks/README.md +0 -0
  471. {spec_kitty_cli-3.2.0rc35/kitty-specs/cli-decision-moment-widen-mode-readiness-01KRC12S → spec_kitty_cli-3.2.0rc37/kitty-specs/charter-ux-and-org-pack-vocabulary-01KSAF14}/tasks/README.md +0 -0
  472. {spec_kitty_cli-3.2.0rc35/kitty-specs/cli-interview-decision-moments-01KPWT8P → spec_kitty_cli-3.2.0rc37/kitty-specs/cli-decision-moment-widen-mode-readiness-01KRC12S}/tasks/README.md +0 -0
  473. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/cli-interview-decision-moments-01KPWT8P/contracts/README.md +0 -0
  474. {spec_kitty_cli-3.2.0rc35/kitty-specs/cli-saas-fanout-preserves-local-at-01KRNS87 → spec_kitty_cli-3.2.0rc37/kitty-specs/cli-interview-decision-moments-01KPWT8P}/tasks/README.md +0 -0
  475. {spec_kitty_cli-3.2.0rc35/kitty-specs/cli-session-survival-daemon-singleton-01KQ9M3M → spec_kitty_cli-3.2.0rc37/kitty-specs/cli-saas-fanout-preserves-local-at-01KRNS87}/tasks/README.md +0 -0
  476. {spec_kitty_cli-3.2.0rc35/kitty-specs/cli-startup-readiness-coordinator-skeleton-01KS7JRV → spec_kitty_cli-3.2.0rc37/kitty-specs/cli-session-survival-daemon-singleton-01KQ9M3M}/tasks/README.md +0 -0
  477. {spec_kitty_cli-3.2.0rc35/kitty-specs/cli-upgrade-nag-lazy-project-migrations-01KQ6YDN → spec_kitty_cli-3.2.0rc37/kitty-specs/cli-startup-readiness-coordinator-skeleton-01KS7JRV}/tasks/README.md +0 -0
  478. {spec_kitty_cli-3.2.0rc35/kitty-specs/cli-widen-mode-and-write-back-01KPXFGJ → spec_kitty_cli-3.2.0rc37/kitty-specs/cli-upgrade-nag-lazy-project-migrations-01KQ6YDN}/tasks/README.md +0 -0
  479. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/cli-widen-mode-and-write-back-01KPXFGJ/contracts/README.md +0 -0
  480. {spec_kitty_cli-3.2.0rc35/kitty-specs/doctrine-enrichment-frontend-brownfield-normalization-01KQ48XA → spec_kitty_cli-3.2.0rc37/kitty-specs/cli-widen-mode-and-write-back-01KPXFGJ}/tasks/README.md +0 -0
  481. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/complexity-code-smell-remediation-01KP15HB/tasks/README.md +0 -0
  482. {spec_kitty_cli-3.2.0rc35/kitty-specs/documentation-mission-composition-fixup-01KQ6N5X → spec_kitty_cli-3.2.0rc37/kitty-specs/doctrine-enrichment-frontend-brownfield-normalization-01KQ48XA}/tasks/README.md +0 -0
  483. {spec_kitty_cli-3.2.0rc35/kitty-specs/documentation-mission-composition-rewrite-01KQ5M1Y → spec_kitty_cli-3.2.0rc37/kitty-specs/documentation-mission-composition-fixup-01KQ6N5X}/tasks/README.md +0 -0
  484. {spec_kitty_cli-3.2.0rc35/kitty-specs/drg-phase-zero-01KP2YCE → spec_kitty_cli-3.2.0rc37/kitty-specs/documentation-mission-composition-rewrite-01KQ5M1Y}/tasks/README.md +0 -0
  485. {spec_kitty_cli-3.2.0rc35/kitty-specs/event-architecture-cli-git-truth-01KT119Y → spec_kitty_cli-3.2.0rc37/kitty-specs/drg-phase-zero-01KP2YCE}/tasks/README.md +0 -0
  486. {spec_kitty_cli-3.2.0rc35/kitty-specs/excise-doctrine-curation-and-inline-references-01KP54J6 → spec_kitty_cli-3.2.0rc37/kitty-specs/event-architecture-cli-git-truth-01KT119Y}/tasks/README.md +0 -0
  487. {spec_kitty_cli-3.2.0rc35/kitty-specs/functional-ownership-map-01KPDY72 → spec_kitty_cli-3.2.0rc37/kitty-specs/excise-doctrine-curation-and-inline-references-01KP54J6}/tasks/README.md +0 -0
  488. {spec_kitty_cli-3.2.0rc35/kitty-specs/glossary-drg-chokepoint-01KPTE0P → spec_kitty_cli-3.2.0rc37/kitty-specs/execution-state-domain-remediation-01KT6HVH}/tasks/README.md +0 -0
  489. {spec_kitty_cli-3.2.0rc35/kitty-specs/glossary-functional-module-extraction-01KPDYM9 → spec_kitty_cli-3.2.0rc37/kitty-specs/functional-ownership-map-01KPDY72}/tasks/README.md +0 -0
  490. {spec_kitty_cli-3.2.0rc35/kitty-specs/glossary-seed-file-schema-validation-01KSN752 → spec_kitty_cli-3.2.0rc37/kitty-specs/glossary-drg-chokepoint-01KPTE0P}/tasks/README.md +0 -0
  491. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/glossary-drg-surfaces-and-charter-lint-01KPTY5Y/designs/README.md +0 -0
  492. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/glossary-drg-surfaces-and-charter-lint-01KPTY5Y/tasks/README.md +0 -0
  493. {spec_kitty_cli-3.2.0rc35/kitty-specs/implement-review-retrospect-reliability-01KQQSCW → spec_kitty_cli-3.2.0rc37/kitty-specs/glossary-functional-module-extraction-01KPDYM9}/tasks/README.md +0 -0
  494. {spec_kitty_cli-3.2.0rc35/kitty-specs/investigate-canary-followups-1142-1141-01KS02TV → spec_kitty_cli-3.2.0rc37/kitty-specs/glossary-seed-file-schema-validation-01KSN752}/tasks/README.md +0 -0
  495. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/identity-boundary-ci-gate-rerun-01KS51YK/tasks/README.md +0 -0
  496. {spec_kitty_cli-3.2.0rc35/kitty-specs/legacy-sparse-and-review-lock-hardening-01KP54ZW → spec_kitty_cli-3.2.0rc37/kitty-specs/implement-review-retrospect-reliability-01KQQSCW}/tasks/README.md +0 -0
  497. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/intake-auto-detect-01KPNGCX/tasks/README.md +0 -0
  498. {spec_kitty_cli-3.2.0rc35/kitty-specs/local-custom-mission-loader-01KQ2VNJ → spec_kitty_cli-3.2.0rc37/kitty-specs/investigate-canary-followups-1142-1141-01KS02TV}/tasks/README.md +0 -0
  499. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/layered-doctrine-org-layer-01KRNPEE/tasks/README.md +0 -0
  500. {spec_kitty_cli-3.2.0rc35/kitty-specs/logged-out-teamspace-cli-recovery-01KRC6CY → spec_kitty_cli-3.2.0rc37/kitty-specs/legacy-sparse-and-review-lock-hardening-01KP54ZW}/tasks/README.md +0 -0
  501. {spec_kitty_cli-3.2.0rc35/kitty-specs/merge-review-status-hardening-sprint-01KQFF35 → spec_kitty_cli-3.2.0rc37/kitty-specs/local-custom-mission-loader-01KQ2VNJ}/tasks/README.md +0 -0
  502. {spec_kitty_cli-3.2.0rc35/kitty-specs/migration-shim-ownership-rules-01KPDYDW → spec_kitty_cli-3.2.0rc37/kitty-specs/logged-out-teamspace-cli-recovery-01KRC6CY}/tasks/README.md +0 -0
  503. {spec_kitty_cli-3.2.0rc35/kitty-specs/mission-coordination-branch-atomic-event-log-01KSPTVW → spec_kitty_cli-3.2.0rc37/kitty-specs/merge-review-status-hardening-sprint-01KQFF35}/tasks/README.md +0 -0
  504. {spec_kitty_cli-3.2.0rc35/kitty-specs/mission-retrospective-learning-loop-01KQ6YEG → spec_kitty_cli-3.2.0rc37/kitty-specs/migration-shim-ownership-rules-01KPDYDW}/tasks/README.md +0 -0
  505. {spec_kitty_cli-3.2.0rc35/kitty-specs/mission-state-migration-determinism-cleanup-01KRC7JG → spec_kitty_cli-3.2.0rc37/kitty-specs/mission-coordination-branch-atomic-event-log-01KSPTVW}/tasks/README.md +0 -0
  506. {spec_kitty_cli-3.2.0rc35/kitty-specs/mvp-sync-boundary-cli-01KRVCQS → spec_kitty_cli-3.2.0rc37/kitty-specs/mission-retrospective-learning-loop-01KQ6YEG}/tasks/README.md +0 -0
  507. {spec_kitty_cli-3.2.0rc35/kitty-specs/offline-queue-enqueue-performance-01KRC4HN → spec_kitty_cli-3.2.0rc37/kitty-specs/mission-state-migration-determinism-cleanup-01KRC7JG}/tasks/README.md +0 -0
  508. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/mvp-cli-sync-boundary-completion-01KRX11M/tasks/README.md +0 -0
  509. {spec_kitty_cli-3.2.0rc35/kitty-specs/p0-test-failure-resolution-1298-1305-01KT1R2G → spec_kitty_cli-3.2.0rc37/kitty-specs/mvp-sync-boundary-cli-01KRVCQS}/tasks/README.md +0 -0
  510. {spec_kitty_cli-3.2.0rc35/kitty-specs/p1-dependency-cycle-cleanup-01KQFXVC → spec_kitty_cli-3.2.0rc37/kitty-specs/offline-queue-enqueue-performance-01KRC4HN}/tasks/README.md +0 -0
  511. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/org-doctrine-profile-integrity-activation-closure-01KT1TV1/contracts/README.md +0 -0
  512. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/org-doctrine-profile-integrity-activation-closure-01KT1TV1/tasks/README.md +0 -0
  513. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/org-doctrine-profile-integrity-closeout-01KT3G68/tasks/README.md +0 -0
  514. {spec_kitty_cli-3.2.0rc35/kitty-specs/phase-3-charter-synthesizer-pipeline-01KPE222 → spec_kitty_cli-3.2.0rc37/kitty-specs/p0-test-failure-resolution-1298-1305-01KT1R2G}/tasks/README.md +0 -0
  515. {spec_kitty_cli-3.2.0rc35/kitty-specs/phase-4-cli-blockers-1141-1142-01KS0H5Y → spec_kitty_cli-3.2.0rc37/kitty-specs/p1-dependency-cycle-cleanup-01KQFXVC}/tasks/README.md +0 -0
  516. {spec_kitty_cli-3.2.0rc35/kitty-specs/phase-4-closeout-host-surfaces-and-trail-01KPWA5X → spec_kitty_cli-3.2.0rc37/kitty-specs/phase-3-charter-synthesizer-pipeline-01KPE222}/tasks/README.md +0 -0
  517. {spec_kitty_cli-3.2.0rc35/kitty-specs/phase4-canary-gate-01KS1W46 → spec_kitty_cli-3.2.0rc37/kitty-specs/phase-4-cli-blockers-1141-1142-01KS0H5Y}/tasks/README.md +0 -0
  518. {spec_kitty_cli-3.2.0rc35/kitty-specs/phase6-composition-stabilization-01KQ2JAS → spec_kitty_cli-3.2.0rc37/kitty-specs/phase-4-closeout-host-surfaces-and-trail-01KPWA5X}/tasks/README.md +0 -0
  519. {spec_kitty_cli-3.2.0rc35/kitty-specs/private-teamspace-ingress-safeguards-01KQH03Y → spec_kitty_cli-3.2.0rc37/kitty-specs/phase4-canary-gate-01KS1W46}/tasks/README.md +0 -0
  520. {spec_kitty_cli-3.2.0rc35/kitty-specs/profile-invocation-runtime-audit-trail-01KPQRX2 → spec_kitty_cli-3.2.0rc37/kitty-specs/phase6-composition-stabilization-01KQ2JAS}/tasks/README.md +0 -0
  521. {spec_kitty_cli-3.2.0rc35/kitty-specs/release-320-workflow-reliability-01KQKV85 → spec_kitty_cli-3.2.0rc37/kitty-specs/pi-and-letta-agent-support-01KT4Q26}/tasks/README.md +0 -0
  522. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/pre-doctrine-test-stabilization-01KSMG8Y/tasks/README.md +0 -0
  523. {spec_kitty_cli-3.2.0rc35/kitty-specs/rename-ceremony-to-status-commit-01KSPN6C → spec_kitty_cli-3.2.0rc37/kitty-specs/private-teamspace-ingress-safeguards-01KQH03Y}/tasks/README.md +0 -0
  524. {spec_kitty_cli-3.2.0rc35/kitty-specs/research-mission-composition-rewrite-v2-01KQ4QVV → spec_kitty_cli-3.2.0rc37/kitty-specs/profile-invocation-runtime-audit-trail-01KPQRX2}/tasks/README.md +0 -0
  525. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/profile-roles-as-value-object-01KPRJRY/tasks/README.md +0 -0
  526. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/quality-devex-hardening-3-2-01KRJGKH/tasks/README.md +0 -0
  527. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/release-3-2-0a5-tranche-1-01KQ7YXH/tasks/README.md +0 -0
  528. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/release-3-2-0a6-tranche-2-01KQ9MKP/tasks/README.md +0 -0
  529. {spec_kitty_cli-3.2.0rc35/kitty-specs/retire-mission-identity-drift-window-01KP2JNZ → spec_kitty_cli-3.2.0rc37/kitty-specs/release-320-workflow-reliability-01KQKV85}/tasks/README.md +0 -0
  530. {spec_kitty_cli-3.2.0rc35/kitty-specs/retrospective-default-policy-01KS049J → spec_kitty_cli-3.2.0rc37/kitty-specs/rename-ceremony-to-status-commit-01KSPN6C}/tasks/README.md +0 -0
  531. {spec_kitty_cli-3.2.0rc35/kitty-specs/runtime-mission-execution-extraction-01KPDYGW → spec_kitty_cli-3.2.0rc37/kitty-specs/research-mission-composition-rewrite-v2-01KQ4QVV}/tasks/README.md +0 -0
  532. {spec_kitty_cli-3.2.0rc35/kitty-specs/shared-package-boundary-cutover-01KQ22DS → spec_kitty_cli-3.2.0rc37/kitty-specs/retire-mission-identity-drift-window-01KP2JNZ}/tasks/README.md +0 -0
  533. {spec_kitty_cli-3.2.0rc35/kitty-specs/slash-command-install-pipeline-repair-01KT3H00 → spec_kitty_cli-3.2.0rc37/kitty-specs/retrospective-default-policy-01KS049J}/tasks/README.md +0 -0
  534. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/review-merge-gate-hardening-3-2-x-01KRC57C/tasks/README.md +0 -0
  535. {spec_kitty_cli-3.2.0rc35/kitty-specs/software-dev-composition-rewrite-01KQ26CY → spec_kitty_cli-3.2.0rc37/kitty-specs/runtime-mission-execution-extraction-01KPDYGW}/tasks/README.md +0 -0
  536. {spec_kitty_cli-3.2.0rc35/kitty-specs/spec-kitty-3-2-docs-01KS4KSZ → spec_kitty_cli-3.2.0rc37/kitty-specs/shared-package-boundary-cutover-01KQ22DS}/tasks/README.md +0 -0
  537. {spec_kitty_cli-3.2.0rc35/kitty-specs/specify-brief-intake-mode-01KPMXQB → spec_kitty_cli-3.2.0rc37/kitty-specs/slash-command-install-pipeline-repair-01KT3H00}/tasks/README.md +0 -0
  538. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/slice-f-multi-context-extensibility-01KRX5C8/tasks/README.md +0 -0
  539. {spec_kitty_cli-3.2.0rc35/kitty-specs/stability-and-hygiene-hardening-2026-04-01KQ4ARB → spec_kitty_cli-3.2.0rc37/kitty-specs/software-dev-composition-rewrite-01KQ26CY}/tasks/README.md +0 -0
  540. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/spdd-reasons-doctrine-pack-01KQC4AX/tasks/README.md +0 -0
  541. {spec_kitty_cli-3.2.0rc35/kitty-specs/stabilization-release-core-bug-fixes-01KPQJAN → spec_kitty_cli-3.2.0rc37/kitty-specs/spec-kitty-3-2-docs-01KS4KSZ}/tasks/README.md +0 -0
  542. {spec_kitty_cli-3.2.0rc35/kitty-specs/stable-320-release-blocker-cleanup-01KQW4DF → spec_kitty_cli-3.2.0rc37/kitty-specs/specify-brief-intake-mode-01KPMXQB}/tasks/README.md +0 -0
  543. {spec_kitty_cli-3.2.0rc35/kitty-specs/sync-diagnose-canonical-allowlist-01KS4F8H → spec_kitty_cli-3.2.0rc37/kitty-specs/stability-and-hygiene-hardening-2026-04-01KQ4ARB}/tasks/README.md +0 -0
  544. {spec_kitty_cli-3.2.0rc35/kitty-specs/sync-rejection-classification-and-queue-retry-hygiene-01KRC3TV → spec_kitty_cli-3.2.0rc37/kitty-specs/stabilization-release-core-bug-fixes-01KPQJAN}/tasks/README.md +0 -0
  545. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/stable-320-p0-cli-stabilization-01KQSNGY/tasks/README.md +0 -0
  546. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/stable-320-p1-release-confidence-01KQTPZC/tasks/README.md +0 -0
  547. {spec_kitty_cli-3.2.0rc35/kitty-specs/test-stabilization-and-debt-pass-01KSF9HJ → spec_kitty_cli-3.2.0rc37/kitty-specs/stable-320-release-blocker-cleanup-01KQW4DF}/tasks/README.md +0 -0
  548. {spec_kitty_cli-3.2.0rc35/kitty-specs/test-stabilization-pre-existing-cluster-fix-01KT396S → spec_kitty_cli-3.2.0rc37/kitty-specs/sync-diagnose-canonical-allowlist-01KS4F8H}/tasks/README.md +0 -0
  549. {spec_kitty_cli-3.2.0rc35/kitty-specs/unblock-sync-identity-boundary-canary-01KRZJ07 → spec_kitty_cli-3.2.0rc37/kitty-specs/sync-rejection-classification-and-queue-retry-hygiene-01KRC3TV}/tasks/README.md +0 -0
  550. {spec_kitty_cli-3.2.0rc35/kitty-specs/unified-charter-bundle-chokepoint-01KP5Q2G → spec_kitty_cli-3.2.0rc37/kitty-specs/test-stabilization-and-debt-pass-01KSF9HJ}/tasks/README.md +0 -0
  551. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/unblock-sync-identity-boundary-canary-01KRZJ07/canary-evidence/README.md +0 -0
  552. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/workflow-parity-988-989-991-01KRKTT5/tasks/README.md +0 -0
  553. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/kitty-specs/wp-prompt-governance-payload-01KRR8HS/tasks/README.md +0 -0
  554. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/scripts/release/README.md +0 -0
  555. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/scripts/tool_configs/README.md +0 -0
  556. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/ERROR_CODES.md +0 -0
  557. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/README.md +0 -0
  558. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/__init__.py +0 -0
  559. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/_activation_render.py +0 -0
  560. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/_catalog_miss.py +0 -0
  561. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/_diagnostics.py +0 -0
  562. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/_doctrine_paths.py +0 -0
  563. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/_drg_helpers.py +0 -0
  564. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/activation_engine.py +0 -0
  565. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/activations.py +0 -0
  566. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/bundle.py +0 -0
  567. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/cascade.py +0 -0
  568. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/catalog.py +0 -0
  569. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/compact.py +0 -0
  570. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/compiler.py +0 -0
  571. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/consistency_check.py +0 -0
  572. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/context.py +0 -0
  573. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/context_renderers/__init__.py +0 -0
  574. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/context_renderers/authority_paths.py +0 -0
  575. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/context_renderers/fetch_stanza.py +0 -0
  576. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/context_renderers/section_bodies.py +0 -0
  577. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/context_renderers/token_budget.py +0 -0
  578. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/corpus/__init__.py +0 -0
  579. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/corpus/generic.corpus.yaml +0 -0
  580. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/corpus/javascript.corpus.yaml +0 -0
  581. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/corpus/python.corpus.yaml +0 -0
  582. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/defaults.yaml +0 -0
  583. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/drg.py +0 -0
  584. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/evidence/__init__.py +0 -0
  585. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/evidence/code_reader.py +0 -0
  586. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/evidence/corpus_loader.py +0 -0
  587. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/evidence/orchestrator.py +0 -0
  588. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/exceptions.py +0 -0
  589. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/extractor.py +0 -0
  590. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/generator.py +0 -0
  591. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/governance_references.py +0 -0
  592. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/hasher.py +0 -0
  593. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/interview.py +0 -0
  594. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/kind_vocabulary.py +0 -0
  595. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/language_scope.py +0 -0
  596. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/mission_steps.py +0 -0
  597. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/mission_type_profiles.py +0 -0
  598. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/neutrality/__init__.py +0 -0
  599. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/neutrality/banned_terms.yaml +0 -0
  600. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/neutrality/language_scoped_allowlist.yaml +0 -0
  601. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/neutrality/lint.py +0 -0
  602. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/pack_context.py +0 -0
  603. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/packs/__init__.py +0 -0
  604. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/parser.py +0 -0
  605. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/primitives.py +0 -0
  606. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/profiles.py +0 -0
  607. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/reference_resolver.py +0 -0
  608. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/resolution.py +0 -0
  609. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/resolver.py +0 -0
  610. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/schemas.py +0 -0
  611. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/scope.py +0 -0
  612. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/scope_router.py +0 -0
  613. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/synthesizer/__init__.py +0 -0
  614. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/synthesizer/adapter.py +0 -0
  615. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/synthesizer/artifact_naming.py +0 -0
  616. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/synthesizer/errors.py +0 -0
  617. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/synthesizer/evidence.py +0 -0
  618. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/synthesizer/fixture_adapter.py +0 -0
  619. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/synthesizer/generated_artifact_adapter.py +0 -0
  620. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/synthesizer/interview_mapping.py +0 -0
  621. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/synthesizer/manifest.py +0 -0
  622. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/synthesizer/orchestrator.py +0 -0
  623. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/synthesizer/path_guard.py +0 -0
  624. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/synthesizer/project_drg.py +0 -0
  625. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/synthesizer/provenance.py +0 -0
  626. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/synthesizer/request.py +0 -0
  627. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/synthesizer/resynthesize_pipeline.py +0 -0
  628. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/synthesizer/staging.py +0 -0
  629. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/synthesizer/synthesize_pipeline.py +0 -0
  630. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/synthesizer/targets.py +0 -0
  631. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/synthesizer/topic_resolver.py +0 -0
  632. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/synthesizer/validation_gate.py +0 -0
  633. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/synthesizer/write_pipeline.py +0 -0
  634. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/template_catalog.py +0 -0
  635. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/template_resolver.py +0 -0
  636. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/charter/versioning.py +0 -0
  637. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/README.md +0 -0
  638. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/__init__.py +0 -0
  639. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/agent_profiles/__init__.py +0 -0
  640. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/agent_profiles/built-in/architect-alphonso.agent.yaml +0 -0
  641. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/agent_profiles/built-in/curator-carla.agent.yaml +0 -0
  642. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/agent_profiles/built-in/debugger-debbie.agent.yaml +0 -0
  643. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/agent_profiles/built-in/designer-dagmar.agent.yaml +0 -0
  644. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/agent_profiles/built-in/frontend-freddy.agent.yaml +0 -0
  645. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/agent_profiles/built-in/generic-agent.agent.yaml +0 -0
  646. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/agent_profiles/built-in/human-in-charge.agent.yaml +0 -0
  647. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/agent_profiles/built-in/implementer-ivan.agent.yaml +0 -0
  648. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/agent_profiles/built-in/java-jenny.agent.yaml +0 -0
  649. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/agent_profiles/built-in/node-norris.agent.yaml +0 -0
  650. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/agent_profiles/built-in/planner-priti.agent.yaml +0 -0
  651. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/agent_profiles/built-in/python-pedro.agent.yaml +0 -0
  652. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/agent_profiles/built-in/researcher-robbie.agent.yaml +0 -0
  653. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/agent_profiles/built-in/retrospective-facilitator.agent.yaml +0 -0
  654. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/agent_profiles/built-in/reviewer-renata.agent.yaml +0 -0
  655. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/agent_profiles/capabilities.py +0 -0
  656. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/agent_profiles/diagnostics.py +0 -0
  657. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/agent_profiles/profile.py +0 -0
  658. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/agent_profiles/repository.py +0 -0
  659. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/agent_profiles/schema_models.py +0 -0
  660. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/agent_profiles/schema_version.py +0 -0
  661. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/agent_profiles/validation.py +0 -0
  662. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/artifact_kinds.py +0 -0
  663. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/base.py +0 -0
  664. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/directives/README.md +0 -0
  665. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/directives/__init__.py +0 -0
  666. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/directives/built-in/001-architectural-integrity-standard.directive.yaml +0 -0
  667. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/directives/built-in/003-decision-documentation-requirement.directive.yaml +0 -0
  668. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/directives/built-in/010-specification-fidelity-requirement.directive.yaml +0 -0
  669. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/directives/built-in/018-doctrine-versioning-requirement.directive.yaml +0 -0
  670. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/directives/built-in/024-locality-of-change.directive.yaml +0 -0
  671. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/directives/built-in/025-boy-scout-rule.directive.yaml +0 -0
  672. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/directives/built-in/028-search-tool-discipline.directive.yaml +0 -0
  673. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/directives/built-in/029-agent-commit-signing-policy.directive.yaml +0 -0
  674. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/directives/built-in/030-test-and-typecheck-quality-gate.directive.yaml +0 -0
  675. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/directives/built-in/031-context-aware-design.directive.yaml +0 -0
  676. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/directives/built-in/032-conceptual-alignment.directive.yaml +0 -0
  677. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/directives/built-in/033-targeted-staging-policy.directive.yaml +0 -0
  678. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/directives/built-in/034-test-first-development.directive.yaml +0 -0
  679. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/directives/built-in/035-bulk-edit-occurrence-classification.directive.yaml +0 -0
  680. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/directives/built-in/036-black-box-integration-testing.directive.yaml +0 -0
  681. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/directives/built-in/037-living-documentation-sync.directive.yaml +0 -0
  682. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/directives/built-in/038-structured-prompt-boundary.directive.yaml +0 -0
  683. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/directives/built-in/039-lynn-cole-engineering-culture.directive.yaml +0 -0
  684. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/directives/built-in/040-recurring-bug-structural-intervention.directive.yaml +0 -0
  685. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/directives/models.py +0 -0
  686. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/directives/repository.py +0 -0
  687. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/directives/test-first.directive.yaml +0 -0
  688. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/directives/validation.py +0 -0
  689. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/drg/__init__.py +0 -0
  690. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/drg/loader.py +0 -0
  691. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/drg/merge.py +0 -0
  692. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/drg/migration/__init__.py +0 -0
  693. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/drg/migration/calibrator.py +0 -0
  694. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/drg/migration/extractor.py +0 -0
  695. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/drg/migration/id_normalizer.py +0 -0
  696. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/drg/models.py +0 -0
  697. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/drg/org_pack_config.py +0 -0
  698. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/drg/org_pack_loader.py +0 -0
  699. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/drg/query.py +0 -0
  700. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/drg/validator.py +0 -0
  701. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/import_candidates/__init__.py +0 -0
  702. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/import_candidates/models.py +0 -0
  703. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/README.md +0 -0
  704. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/__init__.py +0 -0
  705. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/action_index.py +0 -0
  706. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/built_in_step_contracts/__init__.py +0 -0
  707. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/built_in_step_contracts/documentation-accept.step-contract.yaml +0 -0
  708. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/built_in_step_contracts/documentation-audit.step-contract.yaml +0 -0
  709. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/built_in_step_contracts/documentation-design.step-contract.yaml +0 -0
  710. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/built_in_step_contracts/documentation-discover.step-contract.yaml +0 -0
  711. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/built_in_step_contracts/documentation-generate.step-contract.yaml +0 -0
  712. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/built_in_step_contracts/documentation-publish.step-contract.yaml +0 -0
  713. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/built_in_step_contracts/documentation-validate.step-contract.yaml +0 -0
  714. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/built_in_step_contracts/implement.step-contract.yaml +0 -0
  715. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/built_in_step_contracts/plan.step-contract.yaml +0 -0
  716. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/built_in_step_contracts/research-gathering.step-contract.yaml +0 -0
  717. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/built_in_step_contracts/research-methodology.step-contract.yaml +0 -0
  718. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/built_in_step_contracts/research-output.step-contract.yaml +0 -0
  719. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/built_in_step_contracts/research-scoping.step-contract.yaml +0 -0
  720. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/built_in_step_contracts/research-synthesis.step-contract.yaml +0 -0
  721. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/built_in_step_contracts/review.step-contract.yaml +0 -0
  722. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/built_in_step_contracts/specify.step-contract.yaml +0 -0
  723. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/built_in_step_contracts/tasks.step-contract.yaml +0 -0
  724. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/README.md +0 -0
  725. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/actions/accept/guidelines.md +0 -0
  726. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/actions/accept/index.yaml +0 -0
  727. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/actions/audit/guidelines.md +0 -0
  728. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/actions/audit/index.yaml +0 -0
  729. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/actions/design/guidelines.md +0 -0
  730. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/actions/design/index.yaml +0 -0
  731. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/actions/discover/guidelines.md +0 -0
  732. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/actions/discover/index.yaml +0 -0
  733. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/actions/generate/guidelines.md +0 -0
  734. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/actions/generate/index.yaml +0 -0
  735. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/actions/publish/guidelines.md +0 -0
  736. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/actions/publish/index.yaml +0 -0
  737. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/actions/retrospect/index.yaml +0 -0
  738. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/actions/validate/guidelines.md +0 -0
  739. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/actions/validate/index.yaml +0 -0
  740. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/expected-artifacts.yaml +0 -0
  741. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/governance-profile.yaml +0 -0
  742. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/mission-runtime.yaml +0 -0
  743. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/mission.yaml +0 -0
  744. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/templates/README.md +0 -0
  745. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/templates/divio/README.md +0 -0
  746. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/templates/divio/explanation-template.md +0 -0
  747. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/templates/divio/howto-template.md +0 -0
  748. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/templates/divio/reference-template.md +0 -0
  749. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/templates/divio/tutorial-template.md +0 -0
  750. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/templates/generators/README.md +0 -0
  751. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/templates/generators/jsdoc.json.template +0 -0
  752. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/templates/generators/sphinx-conf.py.template +0 -0
  753. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/templates/plan-template.md +0 -0
  754. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/templates/release-template.md +0 -0
  755. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/templates/spec-template.md +0 -0
  756. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/templates/task-prompt-template.md +0 -0
  757. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/documentation/templates/tasks-template.md +0 -0
  758. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/glossary_hook.py +0 -0
  759. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/accept/prompt.md +0 -0
  760. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/accept/step.yaml +0 -0
  761. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/analyze/prompt.md +0 -0
  762. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/analyze/step.yaml +0 -0
  763. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/charter/prompt.md +0 -0
  764. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/charter/step.yaml +0 -0
  765. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/implement/guidelines.md +0 -0
  766. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/implement/step.yaml +0 -0
  767. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/plan/guidelines.md +0 -0
  768. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/plan/prompt.md +0 -0
  769. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/plan/step.yaml +0 -0
  770. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/research/prompt.md +0 -0
  771. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/research/step.yaml +0 -0
  772. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/review/guidelines.md +0 -0
  773. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/review/prompt.md +0 -0
  774. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/review/step.yaml +0 -0
  775. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/specify/guidelines.md +0 -0
  776. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/specify/prompt.md +0 -0
  777. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/specify/step.yaml +0 -0
  778. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/tasks/guidelines.md +0 -0
  779. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/tasks/prompt.md +0 -0
  780. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/tasks/step.yaml +0 -0
  781. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/tasks-finalize/prompt.md +0 -0
  782. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/tasks-finalize/step.yaml +0 -0
  783. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/tasks-outline/prompt.md +0 -0
  784. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/tasks-outline/step.yaml +0 -0
  785. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/tasks-packages/prompt.md +0 -0
  786. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission-steps/software-dev/tasks-packages/step.yaml +0 -0
  787. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission_type_repository.py +0 -0
  788. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission_types/documentation.yaml +0 -0
  789. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission_types/plan.yaml +0 -0
  790. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission_types/research.yaml +0 -0
  791. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/mission_types/software-dev.yaml +0 -0
  792. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/models.py +0 -0
  793. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/plan/README.md +0 -0
  794. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/plan/governance-profile.yaml +0 -0
  795. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/plan/mission-runtime.yaml +0 -0
  796. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/plan/mission.yaml +0 -0
  797. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/plan/templates/.gitkeep +0 -0
  798. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/plan/templates/README.md +0 -0
  799. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/primitives.py +0 -0
  800. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/README.md +0 -0
  801. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/actions/gathering/guidelines.md +0 -0
  802. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/actions/gathering/index.yaml +0 -0
  803. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/actions/methodology/guidelines.md +0 -0
  804. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/actions/methodology/index.yaml +0 -0
  805. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/actions/output/guidelines.md +0 -0
  806. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/actions/output/index.yaml +0 -0
  807. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/actions/retrospect/index.yaml +0 -0
  808. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/actions/scoping/guidelines.md +0 -0
  809. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/actions/scoping/index.yaml +0 -0
  810. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/actions/synthesis/guidelines.md +0 -0
  811. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/actions/synthesis/index.yaml +0 -0
  812. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/expected-artifacts.yaml +0 -0
  813. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/governance-profile.yaml +0 -0
  814. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/mission-runtime.yaml +0 -0
  815. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/mission.yaml +0 -0
  816. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/templates/README.md +0 -0
  817. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/templates/data-model-template.md +0 -0
  818. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/templates/plan-template.md +0 -0
  819. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/templates/research/README.md +0 -0
  820. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/templates/research/evidence-log.csv +0 -0
  821. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/templates/research/source-register.csv +0 -0
  822. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/templates/research-template.md +0 -0
  823. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/templates/spec-template.md +0 -0
  824. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/templates/task-prompt-template.md +0 -0
  825. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/research/templates/tasks-template.md +0 -0
  826. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/software-dev/README.md +0 -0
  827. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/software-dev/actions/implement/guidelines.md +0 -0
  828. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/software-dev/actions/implement/index.yaml +0 -0
  829. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/software-dev/actions/plan/guidelines.md +0 -0
  830. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/software-dev/actions/plan/index.yaml +0 -0
  831. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/software-dev/actions/retrospect/index.yaml +0 -0
  832. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/software-dev/actions/review/guidelines.md +0 -0
  833. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/software-dev/actions/review/index.yaml +0 -0
  834. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/software-dev/actions/specify/guidelines.md +0 -0
  835. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/software-dev/actions/specify/index.yaml +0 -0
  836. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/software-dev/actions/tasks/guidelines.md +0 -0
  837. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/software-dev/actions/tasks/index.yaml +0 -0
  838. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/software-dev/expected-artifacts.yaml +0 -0
  839. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/software-dev/governance-profile.yaml +0 -0
  840. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/software-dev/mission-runtime.yaml +0 -0
  841. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/software-dev/mission.yaml +0 -0
  842. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/software-dev/templates/README.md +0 -0
  843. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/software-dev/templates/plan-template.md +0 -0
  844. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/software-dev/templates/spec-template.md +0 -0
  845. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/software-dev/templates/task-prompt-template.md +0 -0
  846. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/software-dev/templates/tasks-template.md +0 -0
  847. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/missions/step_contracts.py +0 -0
  848. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/model_task_routing/__init__.py +0 -0
  849. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/model_task_routing/models.py +0 -0
  850. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/paradigms/README.md +0 -0
  851. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/paradigms/__init__.py +0 -0
  852. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/paradigms/built-in/atomic-design.paradigm.yaml +0 -0
  853. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/paradigms/built-in/behaviour-driven-development.paradigm.yaml +0 -0
  854. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/paradigms/built-in/brownfield-onboarding.paradigm.yaml +0 -0
  855. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/paradigms/built-in/c4-incremental-detail-modeling.paradigm.yaml +0 -0
  856. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/paradigms/built-in/deep-module-design.paradigm.yaml +0 -0
  857. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/paradigms/built-in/domain-driven-design.paradigm.yaml +0 -0
  858. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/paradigms/built-in/execution-lanes.paradigm.yaml +0 -0
  859. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/paradigms/built-in/git-flow.paradigm.yaml +0 -0
  860. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/paradigms/built-in/shared-branch-ci.paradigm.yaml +0 -0
  861. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/paradigms/built-in/specification-by-example.paradigm.yaml +0 -0
  862. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/paradigms/built-in/structured-prompt-driven-development.paradigm.yaml +0 -0
  863. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/paradigms/built-in/trunk-based.paradigm.yaml +0 -0
  864. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/paradigms/models.py +0 -0
  865. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/paradigms/repository.py +0 -0
  866. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/paradigms/test-first.paradigm.yaml +0 -0
  867. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/paradigms/validation.py +0 -0
  868. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/procedures/README.md +0 -0
  869. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/procedures/__init__.py +0 -0
  870. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/procedures/built-in/bdd-scenario-lifecycle.procedure.yaml +0 -0
  871. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/procedures/built-in/disciplined-defect-diagnosis.procedure.yaml +0 -0
  872. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/procedures/built-in/documentation-gap-prioritization.procedure.yaml +0 -0
  873. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/procedures/built-in/domain-aware-decision-interview.procedure.yaml +0 -0
  874. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/procedures/built-in/drill-down-documentation.procedure.yaml +0 -0
  875. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/procedures/built-in/event-storming-discovery.procedure.yaml +0 -0
  876. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/procedures/built-in/example-mapping-workshop.procedure.yaml +0 -0
  877. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/procedures/built-in/issue-triage-state-machine.procedure.yaml +0 -0
  878. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/procedures/built-in/legacy-codebase-triage.procedure.yaml +0 -0
  879. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/procedures/built-in/migrate-project-guidance-to-spec-kitty-charter.procedure.yaml +0 -0
  880. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/procedures/built-in/refactoring.procedure.yaml +0 -0
  881. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/procedures/built-in/situational-assessment.procedure.yaml +0 -0
  882. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/procedures/built-in/test-first-bug-fixing.procedure.yaml +0 -0
  883. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/procedures/models.py +0 -0
  884. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/procedures/repository.py +0 -0
  885. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/procedures/validation.py +0 -0
  886. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/pyproject.toml +0 -0
  887. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/resolver.py +0 -0
  888. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/schemas/README.md +0 -0
  889. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/schemas/agent-profile.schema.yaml +0 -0
  890. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/schemas/directive.schema.yaml +0 -0
  891. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/schemas/import-candidate.schema.yaml +0 -0
  892. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/schemas/mission.schema.yaml +0 -0
  893. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/schemas/model-to-task_type.schema.yaml +0 -0
  894. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/schemas/occurrence-map.schema.yaml +0 -0
  895. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/schemas/paradigm.schema.yaml +0 -0
  896. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/schemas/procedure.schema.yaml +0 -0
  897. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/schemas/styleguide.schema.yaml +0 -0
  898. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/schemas/tactic.schema.yaml +0 -0
  899. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/schemas/toolguide.schema.yaml +0 -0
  900. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/service.py +0 -0
  901. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/shared/__init__.py +0 -0
  902. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/shared/errors.py +0 -0
  903. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/shared/exceptions.py +0 -0
  904. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/shared/models.py +0 -0
  905. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/shared/schema_utils.py +0 -0
  906. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/shared/scoping.py +0 -0
  907. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/ad-hoc-profile-load/SKILL.md +0 -0
  908. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-bulk-edit-classification/SKILL.md +0 -0
  909. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-charter-doctrine/SKILL.md +0 -0
  910. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-charter-doctrine/references/charter-command-map.md +0 -0
  911. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-charter-doctrine/references/doctrine-artifact-structure.md +0 -0
  912. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-git-workflow/SKILL.md +0 -0
  913. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-git-workflow/references/git-operations-matrix.md +0 -0
  914. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-glossary-context/SKILL.md +0 -0
  915. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-glossary-context/references/glossary-field-guide.md +0 -0
  916. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-glossary-context/references/semantic-drift-examples.md +0 -0
  917. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-implement-review/SKILL.md +0 -0
  918. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-implement-review/references/agent-dispatch-matrix.md +0 -0
  919. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-implement-review/references/rejection-loop-checklist.md +0 -0
  920. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-mission-review/SKILL.md +0 -0
  921. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-mission-review/references/mission-review-fr-trace-guide.md +0 -0
  922. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-mission-system/SKILL.md +0 -0
  923. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-mission-system/references/mission-comparison-matrix.md +0 -0
  924. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-orchestrator-api-operator/SKILL.md +0 -0
  925. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-orchestrator-api-operator/references/host-boundary-rules.md +0 -0
  926. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-orchestrator-api-operator/references/orchestrator-api-contract.md +0 -0
  927. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-program-orchestrate/SKILL.md +0 -0
  928. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-runtime-next/SKILL.md +0 -0
  929. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-runtime-next/references/blocked-state-recovery.md +0 -0
  930. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-runtime-next/references/runtime-result-taxonomy.md +0 -0
  931. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-runtime-review/SKILL.md +0 -0
  932. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-runtime-review/references/review-checklist.md +0 -0
  933. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-setup-doctor/SKILL.md +0 -0
  934. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-setup-doctor/references/agent-path-matrix.md +0 -0
  935. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-setup-doctor/references/common-failure-signatures.md +0 -0
  936. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-setup-doctor/scripts/.gitkeep +0 -0
  937. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/skills/spec-kitty-spdd-reasons/SKILL.md +0 -0
  938. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/spdd_reasons/__init__.py +0 -0
  939. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/spdd_reasons/activation.py +0 -0
  940. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/spdd_reasons/charter_context.py +0 -0
  941. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/spdd_reasons/template_renderer.py +0 -0
  942. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/styleguides/README.md +0 -0
  943. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/styleguides/__init__.py +0 -0
  944. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/styleguides/built-in/aggregate-design-rules.styleguide.yaml +0 -0
  945. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/styleguides/built-in/deployable-skill-authoring.styleguide.yaml +0 -0
  946. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/styleguides/built-in/java-conventions.styleguide.yaml +0 -0
  947. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/styleguides/built-in/mutation-aware-test-design.styleguide.yaml +0 -0
  948. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/styleguides/built-in/python-conventions.styleguide.yaml +0 -0
  949. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/styleguides/built-in/reasons-canvas-writing.styleguide.yaml +0 -0
  950. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/styleguides/built-in/testing-principles.styleguide.yaml +0 -0
  951. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/styleguides/built-in/writing/kitty-glossary-writing.styleguide.yaml +0 -0
  952. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/styleguides/models.py +0 -0
  953. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/styleguides/python-implementation.styleguide.yaml +0 -0
  954. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/styleguides/repository.py +0 -0
  955. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/styleguides/validation.py +0 -0
  956. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/styleguides/writing/README.md +0 -0
  957. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/styleguides/writing/kitty-glossary-writing.styleguide.yaml +0 -0
  958. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/README.md +0 -0
  959. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/__init__.py +0 -0
  960. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/acceptance-test-first.tactic.yaml +0 -0
  961. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/adversarial-qa-handoff.tactic.yaml +0 -0
  962. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/analysis/ammerse-impact-analysis.tactic.yaml +0 -0
  963. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/analysis/analysis-extract-before-interpret.tactic.yaml +0 -0
  964. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/analysis/bounded-context-canvas-fill.tactic.yaml +0 -0
  965. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/analysis/bounded-context-identification.tactic.yaml +0 -0
  966. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/analysis/code-documentation-analysis.tactic.yaml +0 -0
  967. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/analysis/connascence-analysis.tactic.yaml +0 -0
  968. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/analysis/context-boundary-inference.tactic.yaml +0 -0
  969. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/analysis/context-mapping-classification.tactic.yaml +0 -0
  970. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/analysis/entity-value-object-classification.tactic.yaml +0 -0
  971. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/analysis/forensic-repository-audit.tactic.yaml +0 -0
  972. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/analysis/premortem-risk-identification.tactic.yaml +0 -0
  973. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/analysis/requirements-validation-workflow.tactic.yaml +0 -0
  974. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/analysis/reverse-speccing.tactic.yaml +0 -0
  975. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/analysis/safe-to-fail-experiment.tactic.yaml +0 -0
  976. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/analysis/strategic-domain-classification.tactic.yaml +0 -0
  977. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/analysis/terminology-extraction-mapping.tactic.yaml +0 -0
  978. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/architecture/aggregate-boundary-design.tactic.yaml +0 -0
  979. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/architecture/anti-corruption-layer.tactic.yaml +0 -0
  980. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/architecture/architecture-diagram-review-checklist.tactic.yaml +0 -0
  981. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/architecture/atomic-design-review-checklist.tactic.yaml +0 -0
  982. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/architecture/atomic-state-ownership.tactic.yaml +0 -0
  983. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/architecture/c4-zoom-in-architecture-documentation.tactic.yaml +0 -0
  984. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/architecture/compositional-stream-boundaries.tactic.yaml +0 -0
  985. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/architecture/cross-cutting-state-via-store.tactic.yaml +0 -0
  986. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/architecture/deepening-opportunity-assessment.tactic.yaml +0 -0
  987. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/architecture/dependency-hygiene.tactic.yaml +0 -0
  988. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/architecture/development-bdd.tactic.yaml +0 -0
  989. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/architecture/domain-event-capture.tactic.yaml +0 -0
  990. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/architecture/interface-variation-design.tactic.yaml +0 -0
  991. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/architecture/language-driven-design.tactic.yaml +0 -0
  992. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/architecture/paula-patterns-architecture-scout-review.tactic.yaml +0 -0
  993. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/architecture/problem-decomposition.tactic.yaml +0 -0
  994. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/architecture/reference-architectural-patterns.tactic.yaml +0 -0
  995. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/autonomous-operation-protocol.tactic.yaml +0 -0
  996. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/avoid-gold-plating.tactic.yaml +0 -0
  997. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/behavior-driven-development.tactic.yaml +0 -0
  998. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/boring-code-review.tactic.yaml +0 -0
  999. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/change-apply-smallest-viable-diff.tactic.yaml +0 -0
  1000. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/code-patterns/chain-of-responsibility-rule-pipeline.tactic.yaml +0 -0
  1001. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/code-review-incremental.tactic.yaml +0 -0
  1002. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/communication/adr-drafting-workflow.tactic.yaml +0 -0
  1003. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/communication/decision-marker-capture.tactic.yaml +0 -0
  1004. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/communication/documentation-curation-audit.tactic.yaml +0 -0
  1005. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/communication/glossary-curation-interview.tactic.yaml +0 -0
  1006. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/communication/stakeholder-alignment.tactic.yaml +0 -0
  1007. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/communication/traceable-decisions.tactic.yaml +0 -0
  1008. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/communication/usage-examples-sync.tactic.yaml +0 -0
  1009. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/easy-to-change.tactic.yaml +0 -0
  1010. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/eisenhower-prioritisation.tactic.yaml +0 -0
  1011. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/five-paradigm-parallel-debugging.tactic.yaml +0 -0
  1012. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/focused-function-complexity-check.tactic.yaml +0 -0
  1013. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/generated-code-stewardship.tactic.yaml +0 -0
  1014. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/input-validation-fail-fast.tactic.yaml +0 -0
  1015. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/locality-of-change.tactic.yaml +0 -0
  1016. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/occurrence-classification-workflow.tactic.yaml +0 -0
  1017. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/reasons-canvas-fill.tactic.yaml +0 -0
  1018. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/reasons-canvas-review.tactic.yaml +0 -0
  1019. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/refactoring/refactoring-change-function-declaration.tactic.yaml +0 -0
  1020. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/refactoring/refactoring-combine-functions-into-transform.tactic.yaml +0 -0
  1021. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/refactoring/refactoring-conditional-to-strategy.tactic.yaml +0 -0
  1022. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/refactoring/refactoring-consolidate-conditional-expression.tactic.yaml +0 -0
  1023. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/refactoring/refactoring-encapsulate-record.tactic.yaml +0 -0
  1024. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/refactoring/refactoring-encapsulate-variable.tactic.yaml +0 -0
  1025. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/refactoring/refactoring-extract-class-by-responsibility-split.tactic.yaml +0 -0
  1026. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/refactoring/refactoring-extract-first-order-concept.tactic.yaml +0 -0
  1027. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/refactoring/refactoring-guard-clauses-before-polymorphism.tactic.yaml +0 -0
  1028. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/refactoring/refactoring-inline-temp.tactic.yaml +0 -0
  1029. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/refactoring/refactoring-introduce-null-object.tactic.yaml +0 -0
  1030. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/refactoring/refactoring-move-field.tactic.yaml +0 -0
  1031. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/refactoring/refactoring-move-method.tactic.yaml +0 -0
  1032. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/refactoring/refactoring-replace-magic-number-with-symbolic-constant.tactic.yaml +0 -0
  1033. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/refactoring/refactoring-replace-temp-with-query.tactic.yaml +0 -0
  1034. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/refactoring/refactoring-retry-pattern.tactic.yaml +0 -0
  1035. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/refactoring/refactoring-state-pattern-for-behavior.tactic.yaml +0 -0
  1036. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/refactoring/refactoring-strangler-fig.tactic.yaml +0 -0
  1037. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/review-intent-and-risk-first.tactic.yaml +0 -0
  1038. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/secure-design-checklist.tactic.yaml +0 -0
  1039. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/secure-regex-catastrophic-backtracking.tactic.yaml +0 -0
  1040. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/stopping-conditions.tactic.yaml +0 -0
  1041. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/testing/acceptance-test-first.tactic.yaml +0 -0
  1042. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/testing/atdd-adversarial-acceptance.tactic.yaml +0 -0
  1043. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/testing/black-box-integration-testing.tactic.yaml +0 -0
  1044. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/testing/bug-fixing-checklist.tactic.yaml +0 -0
  1045. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/testing/formalized-constraint-testing.tactic.yaml +0 -0
  1046. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/testing/function-over-form-testing.tactic.yaml +0 -0
  1047. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/testing/mutation-testing-workflow.tactic.yaml +0 -0
  1048. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/testing/no-parallel-duplicate-test-runs.tactic.yaml +0 -0
  1049. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/testing/quality-gate-verification.tactic.yaml +0 -0
  1050. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/testing/tdd-red-green-refactor.tactic.yaml +0 -0
  1051. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/testing/test-boundaries-by-responsibility.tactic.yaml +0 -0
  1052. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/testing/test-minimisation.tactic.yaml +0 -0
  1053. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/testing/test-pyramid-progression.tactic.yaml +0 -0
  1054. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/testing/test-readability-clarity-check.tactic.yaml +0 -0
  1055. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/testing/test-to-system-reconstruction.tactic.yaml +0 -0
  1056. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/testing/testing-select-appropriate-level.tactic.yaml +0 -0
  1057. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/testing/zombies-tdd.tactic.yaml +0 -0
  1058. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/built-in/work-package-completion-validation.tactic.yaml +0 -0
  1059. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/glossary-curation-interview.tactic.yaml +0 -0
  1060. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/models.py +0 -0
  1061. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/repository.py +0 -0
  1062. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/tdd-red-green-refactor.tactic.yaml +0 -0
  1063. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/validation.py +0 -0
  1064. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/tactics/zombies-tdd.tactic.yaml +0 -0
  1065. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/template_catalog.py +0 -0
  1066. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/AGENTS.md +0 -0
  1067. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/README.md +0 -0
  1068. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/agent-file-template.md +0 -0
  1069. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/architecture/README.md +0 -0
  1070. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/architecture/adr-template.md +0 -0
  1071. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/architecture/ammerse-analysis-template.md +0 -0
  1072. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/architecture/bounded-context-canvas-template.md +0 -0
  1073. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/architecture/c4-component-mermaid-template.md +0 -0
  1074. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/architecture/c4-container-mermaid-template.md +0 -0
  1075. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/architecture/c4-context-mermaid-template.md +0 -0
  1076. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/architecture/glossary-template.md +0 -0
  1077. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/architecture/lightweight-prestudy-template.md +0 -0
  1078. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/architecture/quality-attribute-assessment-template.md +0 -0
  1079. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/architecture/risk-identification-assessment-template.md +0 -0
  1080. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/architecture/stakeholder-persona-template.md +0 -0
  1081. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/architecture/swot-analysis-template.md +0 -0
  1082. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/architecture/system-context-canvas-template.md +0 -0
  1083. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/architecture/user-journey-template.md +0 -0
  1084. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/checklist-template.md +0 -0
  1085. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/claudeignore-template +0 -0
  1086. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/diagrams/README.md +0 -0
  1087. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/diagrams/mermaid/README.md +0 -0
  1088. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/diagrams/mermaid/examples/causal-map-mermaid-template.md +0 -0
  1089. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/diagrams/mermaid/examples/content-map-mermaid-template.md +0 -0
  1090. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/diagrams/mermaid/examples/frontend-architecture-mermaid-template.md +0 -0
  1091. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/diagrams/mermaid/examples/repo-content-graph-mermaid-template.md +0 -0
  1092. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/diagrams/mermaid/examples/request-lifecycle-sequence-mermaid-template.md +0 -0
  1093. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/diagrams/mermaid/examples/structure-meta-model-mermaid-template.md +0 -0
  1094. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/diagrams/mermaid/examples/system-map-mermaid-template.md +0 -0
  1095. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/diagrams/mermaid/themes/mermaid-theme-bluegray-conversation-template.md +0 -0
  1096. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/diagrams/mermaid/themes/mermaid-theme-common-template.md +0 -0
  1097. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/diagrams/plantuml/README.md +0 -0
  1098. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/diagrams/plantuml/examples/causal-map-plantuml-template.md +0 -0
  1099. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/diagrams/plantuml/examples/content-map-plantuml-template.md +0 -0
  1100. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/diagrams/plantuml/examples/event-storming-plantuml-template.md +0 -0
  1101. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/diagrams/plantuml/examples/frontend-architecture-plantuml-template.md +0 -0
  1102. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/diagrams/plantuml/examples/repo-content-graph-plantuml-template.md +0 -0
  1103. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/diagrams/plantuml/examples/request-lifecycle-plantuml-template.md +0 -0
  1104. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/diagrams/plantuml/examples/structure-meta-model-plantuml-template.md +0 -0
  1105. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/diagrams/plantuml/examples/system-map-plantuml-template.md +0 -0
  1106. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/diagrams/plantuml/themes/plantuml-theme-bluegray-conversation-template.md +0 -0
  1107. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/diagrams/plantuml/themes/plantuml-theme-common-template.md +0 -0
  1108. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/diagrams/plantuml/themes/plantuml-theme-stickies-template.md +0 -0
  1109. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/diagrams/themes/mermaid-theme-bluegray-conversation-template.md +0 -0
  1110. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/diagrams/themes/mermaid-theme-common-template.md +0 -0
  1111. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/fragments/reasons-canvas-template.md +0 -0
  1112. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/guides/HOW-TO.template.md +0 -0
  1113. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/occurrence-map-template.yaml +0 -0
  1114. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/plan-template.md +0 -0
  1115. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/profile-context.md +0 -0
  1116. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/sets/README.md +0 -0
  1117. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/spec-template.md +0 -0
  1118. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/structure/README.md +0 -0
  1119. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/structure/REPO_MAP.md +0 -0
  1120. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/structure/SURFACES.md +0 -0
  1121. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/task-prompt-template.md +0 -0
  1122. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/tasks-template.md +0 -0
  1123. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/triage/agent-brief-template.md +0 -0
  1124. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/triage/out-of-scope-record-template.md +0 -0
  1125. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/templates/vscode-settings.json +0 -0
  1126. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/POWERSHELL_SYNTAX.md +0 -0
  1127. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/README.md +0 -0
  1128. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/__init__.py +0 -0
  1129. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/built-in/CONTEXTIVE.md +0 -0
  1130. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/built-in/EFFICIENT_LOCAL_TOOLING.md +0 -0
  1131. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/built-in/GIT_AGENT_COMMIT_SIGNING.md +0 -0
  1132. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/built-in/MAVEN_REVIEW_CHECKS.md +0 -0
  1133. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/built-in/MERMAID_DIAGRAMMING.md +0 -0
  1134. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/built-in/PLANTUML_DIAGRAMMING.md +0 -0
  1135. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/built-in/PYTHON_MUTATION_TOOLS.md +0 -0
  1136. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/built-in/PYTHON_REVIEW_CHECKS.md +0 -0
  1137. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/built-in/TYPESCRIPT_MUTATION_TOOLS.md +0 -0
  1138. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/built-in/contextive.toolguide.yaml +0 -0
  1139. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/built-in/efficient-local-tooling.toolguide.yaml +0 -0
  1140. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/built-in/git-agent-commit-signing.toolguide.yaml +0 -0
  1141. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/built-in/maven-review-checks.toolguide.yaml +0 -0
  1142. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/built-in/mermaid-diagramming.toolguide.yaml +0 -0
  1143. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/built-in/plantuml-diagramming.toolguide.yaml +0 -0
  1144. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/built-in/python-mutation-tools.toolguide.yaml +0 -0
  1145. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/built-in/python-review-checks.toolguide.yaml +0 -0
  1146. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/built-in/system_tools/RTK_SEARCH_TOOLING.md +0 -0
  1147. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/built-in/system_tools/__init__.py +0 -0
  1148. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/built-in/system_tools/rtk-search-tooling.toolguide.yaml +0 -0
  1149. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/built-in/typescript-mutation-tools.toolguide.yaml +0 -0
  1150. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/models.py +0 -0
  1151. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/powershell-syntax.toolguide.yaml +0 -0
  1152. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/repository.py +0 -0
  1153. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/toolguides/validation.py +0 -0
  1154. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/versioning.py +0 -0
  1155. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/workflows/_fixtures/our-team-design-first.workflow.yaml +0 -0
  1156. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/workflows/software-dev-default.workflow.yaml +0 -0
  1157. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/doctrine/yaml_utils.py +0 -0
  1158. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/glossary/.contextive.yml +0 -0
  1159. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/glossary/__init__.py +0 -0
  1160. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/glossary/attachment.py +0 -0
  1161. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/glossary/checkpoint.py +0 -0
  1162. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/glossary/chokepoint.py +0 -0
  1163. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/glossary/clarification.py +0 -0
  1164. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/glossary/conflict.py +0 -0
  1165. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/glossary/drg_builder.py +0 -0
  1166. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/glossary/entity_pages.py +0 -0
  1167. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/glossary/events.py +0 -0
  1168. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/glossary/exceptions.py +0 -0
  1169. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/glossary/extraction.py +0 -0
  1170. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/glossary/middleware.py +0 -0
  1171. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/glossary/models.py +0 -0
  1172. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/glossary/observation.py +0 -0
  1173. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/glossary/pipeline.py +0 -0
  1174. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/glossary/py.typed +0 -0
  1175. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/glossary/resolution.py +0 -0
  1176. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/glossary/scope.py +0 -0
  1177. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/glossary/seed_schema.py +0 -0
  1178. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/glossary/seed_validation.py +0 -0
  1179. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/glossary/semantic_events.py +0 -0
  1180. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/glossary/store.py +0 -0
  1181. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/glossary/strictness.py +0 -0
  1182. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/kernel/README.md +0 -0
  1183. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/kernel/__init__.py +0 -0
  1184. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/kernel/_safe_re.py +0 -0
  1185. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/kernel/atomic.py +0 -0
  1186. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/kernel/errors.py +0 -0
  1187. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/kernel/glossary_runner.py +0 -0
  1188. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/kernel/glossary_types.py +0 -0
  1189. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/kernel/paths.py +0 -0
  1190. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/kernel/schema_utils.py +0 -0
  1191. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/runtime/__init__.py +0 -0
  1192. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/runtime/next/__init__.py +0 -0
  1193. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/runtime/next/_internal_runtime/__init__.py +0 -0
  1194. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/runtime/next/_internal_runtime/contracts.py +0 -0
  1195. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/runtime/next/_internal_runtime/discovery.py +0 -0
  1196. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/runtime/next/_internal_runtime/emitter.py +0 -0
  1197. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/runtime/next/_internal_runtime/events.py +0 -0
  1198. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/runtime/next/_internal_runtime/lifecycle.py +0 -0
  1199. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/runtime/next/_internal_runtime/models.py +0 -0
  1200. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/runtime/next/_internal_runtime/raci.py +0 -0
  1201. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/runtime/next/_internal_runtime/retrospective_hook.py +0 -0
  1202. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/runtime/next/_internal_runtime/retrospective_terminus.py +0 -0
  1203. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/runtime/next/_internal_runtime/significance.py +0 -0
  1204. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/runtime/next/_internal_runtime/workflow_registry.py +0 -0
  1205. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/runtime/next/_internal_runtime/workflow_schema.py +0 -0
  1206. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/runtime/next/_runtime_pkg_notice.py +0 -0
  1207. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/runtime/next/decision.py +0 -0
  1208. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/runtime/next/discovery.py +0 -0
  1209. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/runtime/next/prompt_builder.py +0 -0
  1210. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/.contextive/dossier.yml +0 -0
  1211. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/.contextive/governance.yml +0 -0
  1212. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/.contextive/lexical.yml +0 -0
  1213. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/.contextive/system-events.yml +0 -0
  1214. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/.contextive/technology-foundations.yml +0 -0
  1215. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/__main__.py +0 -0
  1216. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/acceptance/__main__.py +0 -0
  1217. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/acceptance/matrix.py +0 -0
  1218. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/acceptance_matrix.py +0 -0
  1219. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/agent_utils/README.md +0 -0
  1220. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/agent_utils/__init__.py +0 -0
  1221. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/agent_utils/directories.py +0 -0
  1222. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/audit/__init__.py +0 -0
  1223. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/audit/classifiers/__init__.py +0 -0
  1224. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/audit/classifiers/_details.py +0 -0
  1225. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/audit/classifiers/decisions_events.py +0 -0
  1226. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/audit/classifiers/handoff_events.py +0 -0
  1227. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/audit/classifiers/meta.py +0 -0
  1228. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/audit/classifiers/mission_events.py +0 -0
  1229. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/audit/classifiers/status_events.py +0 -0
  1230. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/audit/classifiers/status_json.py +0 -0
  1231. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/audit/classifiers/wp_files.py +0 -0
  1232. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/audit/detectors.py +0 -0
  1233. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/audit/fixtures/clean_modern/meta.json +0 -0
  1234. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/audit/fixtures/corrupt_jsonl/meta.json +0 -0
  1235. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/audit/fixtures/corrupt_jsonl/status.events.jsonl +0 -0
  1236. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/audit/fixtures/forbidden_event_type/meta.json +0 -0
  1237. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/audit/fixtures/forbidden_event_type/status.events.jsonl +0 -0
  1238. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/audit/fixtures/legacy_feature_slug/meta.json +0 -0
  1239. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/audit/fixtures/legacy_feature_slug/status.events.jsonl +0 -0
  1240. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/audit/identity_adapter.py +0 -0
  1241. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/audit/serializer.py +0 -0
  1242. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/audit/shape_registry.py +0 -0
  1243. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/__init__.py +0 -0
  1244. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/config.py +0 -0
  1245. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/device_flow/__init__.py +0 -0
  1246. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/device_flow/poller.py +0 -0
  1247. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/device_flow/state.py +0 -0
  1248. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/errors.py +0 -0
  1249. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/flows/__init__.py +0 -0
  1250. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/flows/_session_payload.py +0 -0
  1251. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/flows/authorization_code.py +0 -0
  1252. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/flows/device_code.py +0 -0
  1253. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/flows/refresh.py +0 -0
  1254. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/flows/revoke.py +0 -0
  1255. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/http/__init__.py +0 -0
  1256. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/http/me_fetch.py +0 -0
  1257. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/http/transport.py +0 -0
  1258. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/loopback/__init__.py +0 -0
  1259. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/loopback/browser_launcher.py +0 -0
  1260. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/loopback/callback_handler.py +0 -0
  1261. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/loopback/callback_server.py +0 -0
  1262. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/loopback/pkce.py +0 -0
  1263. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/loopback/state.py +0 -0
  1264. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/loopback/state_manager.py +0 -0
  1265. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/manager.py +0 -0
  1266. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/refresh_transaction.py +0 -0
  1267. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/secure_storage/__init__.py +0 -0
  1268. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/secure_storage/abstract.py +0 -0
  1269. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/secure_storage/file_fallback.py +0 -0
  1270. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/secure_storage/windows_storage.py +0 -0
  1271. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/session.py +0 -0
  1272. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/session_hot_path.py +0 -0
  1273. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/token_manager.py +0 -0
  1274. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/transport.py +0 -0
  1275. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/websocket/__init__.py +0 -0
  1276. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/auth/websocket/token_provisioning.py +0 -0
  1277. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/bulk_edit/__init__.py +0 -0
  1278. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/bulk_edit/diff_check.py +0 -0
  1279. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/bulk_edit/gate.py +0 -0
  1280. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/bulk_edit/inference.py +0 -0
  1281. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/bulk_edit/occurrence_map.py +0 -0
  1282. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/calibration/__init__.py +0 -0
  1283. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/calibration/inequality.py +0 -0
  1284. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/calibration/walker.py +0 -0
  1285. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/charter_freshness/__init__.py +0 -0
  1286. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/charter_lint/__init__.py +0 -0
  1287. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/charter_preflight/__init__.py +0 -0
  1288. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/charter_runtime/__init__.py +0 -0
  1289. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/charter_runtime/facade/__init__.py +0 -0
  1290. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/charter_runtime/freshness/__init__.py +0 -0
  1291. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/charter_runtime/freshness/computer.py +0 -0
  1292. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/charter_runtime/lint/__init__.py +0 -0
  1293. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/charter_runtime/lint/_drg.py +0 -0
  1294. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/charter_runtime/lint/checks/__init__.py +0 -0
  1295. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/charter_runtime/lint/checks/contradiction.py +0 -0
  1296. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/charter_runtime/lint/checks/org_layer.py +0 -0
  1297. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/charter_runtime/lint/checks/orphan.py +0 -0
  1298. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/charter_runtime/lint/checks/reference_integrity.py +0 -0
  1299. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/charter_runtime/lint/checks/staleness.py +0 -0
  1300. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/charter_runtime/lint/engine.py +0 -0
  1301. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/charter_runtime/lint/findings.py +0 -0
  1302. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/charter_runtime/preflight/__init__.py +0 -0
  1303. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/charter_runtime/preflight/cli.py +0 -0
  1304. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/charter_runtime/preflight/config.py +0 -0
  1305. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/charter_runtime/preflight/dashboard_warning.py +0 -0
  1306. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/.contextive.yml +0 -0
  1307. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/__init__.py +0 -0
  1308. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/__init__.py +0 -0
  1309. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/_auth_doctor.py +0 -0
  1310. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/_auth_login.py +0 -0
  1311. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/_auth_logout.py +0 -0
  1312. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/_auth_recovery.py +0 -0
  1313. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/_auth_status.py +0 -0
  1314. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/_auth_whoami.py +0 -0
  1315. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/_branch_strategy_gate.py +0 -0
  1316. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/_doctrine_health.py +0 -0
  1317. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/_test_env_check.py +0 -0
  1318. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/accept.py +0 -0
  1319. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/advise.py +0 -0
  1320. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/agent/README.md +0 -0
  1321. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/agent/__init__.py +0 -0
  1322. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/agent/context.py +0 -0
  1323. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/agent/release.py +0 -0
  1324. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/agent/tests.py +0 -0
  1325. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/agent_retrospect.py +0 -0
  1326. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/auth.py +0 -0
  1327. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/charter/__init__.py +0 -0
  1328. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/charter/_app.py +0 -0
  1329. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/charter/_common.py +0 -0
  1330. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/charter/_fresh_doctrine.py +0 -0
  1331. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/charter/_layer_roots.py +0 -0
  1332. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/charter/_status_collectors.py +0 -0
  1333. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/charter/_synthesis.py +0 -0
  1334. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/charter/context.py +0 -0
  1335. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/charter/deactivate.py +0 -0
  1336. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/charter/generate.py +0 -0
  1337. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/charter/interview.py +0 -0
  1338. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/charter/lint.py +0 -0
  1339. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/charter/list_cmd.py +0 -0
  1340. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/charter/mission_type.py +0 -0
  1341. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/charter/pack.py +0 -0
  1342. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/charter/resynthesize.py +0 -0
  1343. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/charter/status.py +0 -0
  1344. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/charter/sync.py +0 -0
  1345. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/charter/synthesize.py +0 -0
  1346. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/charter_bundle.py +0 -0
  1347. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/config_cmd.py +0 -0
  1348. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/context.py +0 -0
  1349. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/dashboard.py +0 -0
  1350. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/do_cmd.py +0 -0
  1351. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/doctrine.py +0 -0
  1352. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/glossary.py +0 -0
  1353. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/init_help.py +0 -0
  1354. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/intake.py +0 -0
  1355. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/invocations_cmd.py +0 -0
  1356. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/merge_driver.py +0 -0
  1357. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/migrate/__init__.py +0 -0
  1358. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/migrate_cmd.py +0 -0
  1359. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/mission.py +0 -0
  1360. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/ops.py +0 -0
  1361. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/profiles_cmd.py +0 -0
  1362. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/research.py +0 -0
  1363. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/review/ERROR_CODES.md +0 -0
  1364. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/review/__init__.py +0 -0
  1365. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/review/_ble001_audit.py +0 -0
  1366. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/review/_dead_code.py +0 -0
  1367. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/review/_diagnostics.py +0 -0
  1368. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/review/_issue_matrix.py +0 -0
  1369. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/review/_lane_gate.py +0 -0
  1370. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/review/_mode.py +0 -0
  1371. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/review/_report.py +0 -0
  1372. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/sync.py +0 -0
  1373. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/tracker.py +0 -0
  1374. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/commands/workflow.py +0 -0
  1375. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/helpers.py +0 -0
  1376. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/logging_bootstrap.py +0 -0
  1377. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/selector_resolution.py +0 -0
  1378. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/step_tracker.py +0 -0
  1379. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/cli/ui.py +0 -0
  1380. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/compat/__init__.py +0 -0
  1381. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/compat/_adapters/__init__.py +0 -0
  1382. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/compat/_adapters/detector.py +0 -0
  1383. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/compat/_adapters/gate.py +0 -0
  1384. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/compat/_adapters/version_checker.py +0 -0
  1385. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/compat/_detect/__init__.py +0 -0
  1386. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/compat/_detect/install_method.py +0 -0
  1387. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/compat/cache.py +0 -0
  1388. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/compat/config.py +0 -0
  1389. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/compat/doctor.py +0 -0
  1390. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/compat/messages.py +0 -0
  1391. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/compat/planner.py +0 -0
  1392. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/compat/provider.py +0 -0
  1393. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/compat/registry.py +0 -0
  1394. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/compat/safety.py +0 -0
  1395. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/compat/safety_modes.py +0 -0
  1396. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/compat/upgrade_hint.py +0 -0
  1397. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/configured_command.py +0 -0
  1398. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/context/__init__.py +0 -0
  1399. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/context/errors.py +0 -0
  1400. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/context/middleware.py +0 -0
  1401. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/context/models.py +0 -0
  1402. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/context/store.py +0 -0
  1403. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/coordination/__init__.py +0 -0
  1404. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/__init__.py +0 -0
  1405. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/agent_config.py +0 -0
  1406. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/atomic.py +0 -0
  1407. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/config.py +0 -0
  1408. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/constants.py +0 -0
  1409. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/context_validation.py +0 -0
  1410. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/contract_gate.py +0 -0
  1411. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/dependency_graph.py +0 -0
  1412. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/dependency_parser.py +0 -0
  1413. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/file_lock.py +0 -0
  1414. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/git_preflight.py +0 -0
  1415. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/identity_aliases.py +0 -0
  1416. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/stale_detection.py +0 -0
  1417. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/tool_checker.py +0 -0
  1418. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/upgrade_notifier.py +0 -0
  1419. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/upgrade_probe.py +0 -0
  1420. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/upstream_contract.json +0 -0
  1421. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/utils.py +0 -0
  1422. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/vcs/__init__.py +0 -0
  1423. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/vcs/exceptions.py +0 -0
  1424. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/vcs/git.py +0 -0
  1425. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/vcs/protocol.py +0 -0
  1426. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/vcs/types.py +0 -0
  1427. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/version_checker.py +0 -0
  1428. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/worktree.py +0 -0
  1429. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/core/wps_manifest.py +0 -0
  1430. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dashboard/__init__.py +0 -0
  1431. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dashboard/api_types.py +0 -0
  1432. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dashboard/charter_path.py +0 -0
  1433. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dashboard/diagnostics.py +0 -0
  1434. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dashboard/handlers/__init__.py +0 -0
  1435. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dashboard/handlers/api.py +0 -0
  1436. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dashboard/handlers/base.py +0 -0
  1437. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dashboard/handlers/features.py +0 -0
  1438. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dashboard/handlers/glossary.py +0 -0
  1439. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dashboard/handlers/lint.py +0 -0
  1440. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dashboard/handlers/router.py +0 -0
  1441. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dashboard/handlers/static.py +0 -0
  1442. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dashboard/lifecycle.py +0 -0
  1443. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dashboard/server.py +0 -0
  1444. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dashboard/static/dashboard/dashboard.css +0 -0
  1445. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dashboard/static/dashboard/dashboard.js +0 -0
  1446. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dashboard/static/js/dossier-panel.js +0 -0
  1447. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dashboard/static/spec-kitty.png +0 -0
  1448. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dashboard/templates/__init__.py +0 -0
  1449. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dashboard/templates/glossary.html +0 -0
  1450. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dashboard/templates/index.html +0 -0
  1451. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/decisions/__init__.py +0 -0
  1452. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/decisions/models.py +0 -0
  1453. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/decisions/store.py +0 -0
  1454. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/decisions/verify.py +0 -0
  1455. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/diagnostics/__init__.py +0 -0
  1456. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/diagnostics/dedup.py +0 -0
  1457. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/doc_analysis/__init__.py +0 -0
  1458. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/doc_analysis/doc_generators.py +0 -0
  1459. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/doc_analysis/doc_state.py +0 -0
  1460. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/doc_analysis/gap_analysis.py +0 -0
  1461. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/doc_generators.py +0 -0
  1462. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/doc_state.py +0 -0
  1463. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/doctrine/__init__.py +0 -0
  1464. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/doctrine/config.py +0 -0
  1465. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/doctrine/org_charter.py +0 -0
  1466. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/doctrine/org_charter_loader.py +0 -0
  1467. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/doctrine/pack_assembler.py +0 -0
  1468. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/doctrine/pack_validator.py +0 -0
  1469. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/doctrine/snapshot.py +0 -0
  1470. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/doctrine/sources/__init__.py +0 -0
  1471. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/doctrine/sources/api_source.py +0 -0
  1472. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/doctrine/sources/git_source.py +0 -0
  1473. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/doctrine/sources/https_source.py +0 -0
  1474. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/doctrine/sources/protocol.py +0 -0
  1475. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/doctrine_synthesizer/__init__.py +0 -0
  1476. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/doctrine_synthesizer/conflict.py +0 -0
  1477. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/doctrine_synthesizer/provenance.py +0 -0
  1478. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dossier/.contextive.yml +0 -0
  1479. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dossier/__init__.py +0 -0
  1480. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dossier/drift_detector.py +0 -0
  1481. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dossier/emitter_adapter.py +0 -0
  1482. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dossier/events.py +0 -0
  1483. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dossier/hasher.py +0 -0
  1484. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dossier/indexer.py +0 -0
  1485. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dossier/manifest.py +0 -0
  1486. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dossier/models.py +0 -0
  1487. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/dossier/snapshot.py +0 -0
  1488. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/encoding.py +0 -0
  1489. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/events/__init__.py +0 -0
  1490. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/events/adapter.py +0 -0
  1491. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/events/sanitizer.py +0 -0
  1492. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/frontmatter.py +0 -0
  1493. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/gap_analysis.py +0 -0
  1494. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/git/__init__.py +0 -0
  1495. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/git/sparse_checkout_remediation.py +0 -0
  1496. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/gitignore_manager.py +0 -0
  1497. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/glossary/__init__.py +0 -0
  1498. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/identity/__init__.py +0 -0
  1499. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/identity/aliases.py +0 -0
  1500. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/identity/project.py +0 -0
  1501. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/intake/__init__.py +0 -0
  1502. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/intake/brief_writer.py +0 -0
  1503. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/intake/errors.py +0 -0
  1504. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/intake/provenance.py +0 -0
  1505. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/intake/scanner.py +0 -0
  1506. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/intake_sources.py +0 -0
  1507. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/invocation/__init__.py +0 -0
  1508. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/invocation/errors.py +0 -0
  1509. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/invocation/executor.py +0 -0
  1510. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/invocation/lifecycle.py +0 -0
  1511. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/invocation/modes.py +0 -0
  1512. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/invocation/projection_policy.py +0 -0
  1513. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/invocation/propagator.py +0 -0
  1514. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/invocation/record.py +0 -0
  1515. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/invocation/registry.py +0 -0
  1516. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/invocation/router.py +0 -0
  1517. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/invocation/writer.py +0 -0
  1518. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/lanes/__init__.py +0 -0
  1519. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/lanes/auto_rebase.py +0 -0
  1520. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/lanes/branch_naming.py +0 -0
  1521. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/lanes/compute.py +0 -0
  1522. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/lanes/implement_support.py +0 -0
  1523. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/lanes/lane_env.py +0 -0
  1524. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/lanes/models.py +0 -0
  1525. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/lanes/persistence.py +0 -0
  1526. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/lanes/stale_check.py +0 -0
  1527. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/legacy_detector.py +0 -0
  1528. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/merge/.contextive.yml +0 -0
  1529. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/merge/__init__.py +0 -0
  1530. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/merge/config.py +0 -0
  1531. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/merge/conflict_classifier.py +0 -0
  1532. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/merge/preflight.py +0 -0
  1533. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/merge/state.py +0 -0
  1534. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/merge/workspace.py +0 -0
  1535. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/migration/__init__.py +0 -0
  1536. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/migration/backfill_identity.py +0 -0
  1537. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/migration/backfill_ownership.py +0 -0
  1538. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/migration/canonicalization.py +0 -0
  1539. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/migration/gate.py +0 -0
  1540. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/migration/normalize_mission_lifecycle.py +0 -0
  1541. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/migration/rebuild_state.py +0 -0
  1542. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/migration/runner.py +0 -0
  1543. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/migration/schema_version.py +0 -0
  1544. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/migration/strip_frontmatter.py +0 -0
  1545. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/mission_brief.py +0 -0
  1546. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/mission_loader/__init__.py +0 -0
  1547. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/mission_loader/contract_synthesis.py +0 -0
  1548. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/mission_loader/errors.py +0 -0
  1549. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/mission_loader/registry.py +0 -0
  1550. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/mission_loader/retrospective.py +0 -0
  1551. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/mission_loader/validator.py +0 -0
  1552. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/mission_metadata.py +0 -0
  1553. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/mission_step_contracts/__init__.py +0 -0
  1554. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/mission_step_contracts/executor.py +0 -0
  1555. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/mission_v1/__init__.py +0 -0
  1556. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/mission_v1/compat.py +0 -0
  1557. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/mission_v1/events.py +0 -0
  1558. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/mission_v1/guards.py +0 -0
  1559. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/mission_v1/runner.py +0 -0
  1560. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/mission_v1/schema.py +0 -0
  1561. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/.contextive.yml +0 -0
  1562. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/__init__.py +0 -0
  1563. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/_create.py +0 -0
  1564. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/_legacy_aliases.py +0 -0
  1565. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/_resolve_planning_branch.py +0 -0
  1566. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/_substantive.py +0 -0
  1567. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/documentation/expected-artifacts.yaml +0 -0
  1568. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/documentation/mission-runtime.yaml +0 -0
  1569. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/documentation/mission.yaml +0 -0
  1570. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/documentation/templates/divio/explanation-template.md +0 -0
  1571. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/documentation/templates/divio/howto-template.md +0 -0
  1572. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/documentation/templates/divio/reference-template.md +0 -0
  1573. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/documentation/templates/divio/tutorial-template.md +0 -0
  1574. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/documentation/templates/generators/jsdoc.json.template +0 -0
  1575. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/documentation/templates/generators/sphinx-conf.py.template +0 -0
  1576. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/documentation/templates/plan-template.md +0 -0
  1577. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/documentation/templates/release-template.md +0 -0
  1578. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/documentation/templates/spec-template.md +0 -0
  1579. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/documentation/templates/task-prompt-template.md +0 -0
  1580. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/documentation/templates/tasks-template.md +0 -0
  1581. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/plan/__init__.py +0 -0
  1582. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/plan/mission-runtime.yaml +0 -0
  1583. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/plan/mission.yaml +0 -0
  1584. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/plan/templates/.gitkeep +0 -0
  1585. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/research/expected-artifacts.yaml +0 -0
  1586. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/research/mission-runtime.yaml +0 -0
  1587. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/research/mission.yaml +0 -0
  1588. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/research/templates/data-model-template.md +0 -0
  1589. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/research/templates/plan-template.md +0 -0
  1590. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/research/templates/research/evidence-log.csv +0 -0
  1591. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/research/templates/research/source-register.csv +0 -0
  1592. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/research/templates/research-template.md +0 -0
  1593. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/research/templates/spec-template.md +0 -0
  1594. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/research/templates/task-prompt-template.md +0 -0
  1595. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/research/templates/tasks-template.md +0 -0
  1596. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/software-dev/expected-artifacts.yaml +0 -0
  1597. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/software-dev/mission-runtime.yaml +0 -0
  1598. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/software-dev/mission.yaml +0 -0
  1599. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/software-dev/templates/plan-template.md +0 -0
  1600. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/software-dev/templates/spec-template.md +0 -0
  1601. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/software-dev/templates/task-prompt-template.md +0 -0
  1602. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/missions/software-dev/templates/tasks-template.md +0 -0
  1603. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/next/__init__.py +0 -0
  1604. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/orchestrator_api/__init__.py +0 -0
  1605. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/orchestrator_api/commands.py +0 -0
  1606. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/orchestrator_api/envelope.py +0 -0
  1607. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/ownership/__init__.py +0 -0
  1608. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/ownership/audit_targets.py +0 -0
  1609. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/ownership/inference.py +0 -0
  1610. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/ownership/models.py +0 -0
  1611. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/ownership/workspace_strategy.py +0 -0
  1612. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/paths/__init__.py +0 -0
  1613. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/paths/windows_migrate.py +0 -0
  1614. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/paths/windows_paths.py +0 -0
  1615. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/plan_validation.py +0 -0
  1616. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/policy/__init__.py +0 -0
  1617. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/policy/audit.py +0 -0
  1618. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/policy/commit_guard_hook.py +0 -0
  1619. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/policy/hook_installer.py +0 -0
  1620. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/policy/merge_gates.py +0 -0
  1621. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/policy/risk_scorer.py +0 -0
  1622. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/post_merge/__init__.py +0 -0
  1623. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/post_merge/stale_assertions.py +0 -0
  1624. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/readiness/__init__.py +0 -0
  1625. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/readiness/auth.py +0 -0
  1626. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/readiness/coordinator.py +0 -0
  1627. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/readiness/render.py +0 -0
  1628. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/readiness/upgrade_ux.py +0 -0
  1629. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/release/__init__.py +0 -0
  1630. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/release/payload.py +0 -0
  1631. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/release/version.py +0 -0
  1632. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/requirement_mapping.py +0 -0
  1633. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/retrospective/__init__.py +0 -0
  1634. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/retrospective/config.py +0 -0
  1635. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/retrospective/deprecation.py +0 -0
  1636. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/retrospective/events.py +0 -0
  1637. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/retrospective/gate.py +0 -0
  1638. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/retrospective/lifecycle.py +0 -0
  1639. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/retrospective/mode.py +0 -0
  1640. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/retrospective/policy.py +0 -0
  1641. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/retrospective/reader.py +0 -0
  1642. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/retrospective/schema.py +0 -0
  1643. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/retrospective/writer.py +0 -0
  1644. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/review/__init__.py +0 -0
  1645. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/review/antipattern_checklist.py +0 -0
  1646. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/review/arbiter.py +0 -0
  1647. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/review/artifacts.py +0 -0
  1648. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/review/baseline.py +0 -0
  1649. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/review/dirty_classifier.py +0 -0
  1650. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/review/fix_prompt.py +0 -0
  1651. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/review/lock.py +0 -0
  1652. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/review/prompt_metadata.py +0 -0
  1653. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/runtime/__init__.py +0 -0
  1654. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/runtime/bootstrap.py +0 -0
  1655. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/runtime/doctor.py +0 -0
  1656. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/runtime/home.py +0 -0
  1657. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/runtime/merge.py +0 -0
  1658. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/runtime/migrate.py +0 -0
  1659. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/saas/__init__.py +0 -0
  1660. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/saas/readiness.py +0 -0
  1661. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/saas/rollout.py +0 -0
  1662. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/saas_client/__init__.py +0 -0
  1663. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/saas_client/auth.py +0 -0
  1664. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/saas_client/client.py +0 -0
  1665. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/saas_client/endpoints.py +0 -0
  1666. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/saas_client/errors.py +0 -0
  1667. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/schemas/wps.schema.json +0 -0
  1668. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/scripts/tasks/acceptance_support.py +0 -0
  1669. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/shims/__init__.py +0 -0
  1670. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/shims/generator.py +0 -0
  1671. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/shims/registry.py +0 -0
  1672. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/skills/__init__.py +0 -0
  1673. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/skills/_user_input_block.py +0 -0
  1674. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/skills/command_installer.py +0 -0
  1675. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/skills/command_renderer.py +0 -0
  1676. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/skills/data/__init__.py +0 -0
  1677. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/skills/data/skills-manifest.schema.json +0 -0
  1678. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/skills/manifest.py +0 -0
  1679. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/skills/manifest_errors.py +0 -0
  1680. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/skills/manifest_store.py +0 -0
  1681. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/skills/paths.py +0 -0
  1682. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/skills/registry.py +0 -0
  1683. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/skills/verifier.py +0 -0
  1684. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/skills/vibe_config.py +0 -0
  1685. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/state/__init__.py +0 -0
  1686. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/state/doctor.py +0 -0
  1687. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/state_contract.py +0 -0
  1688. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/status/.contextive.yml +0 -0
  1689. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/status/adapters.py +0 -0
  1690. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/status/doctor.py +0 -0
  1691. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/status/event_log_merge.py +0 -0
  1692. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/status/history_parser.py +0 -0
  1693. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/status/lane_reader.py +0 -0
  1694. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/status/lifecycle.py +0 -0
  1695. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/status/locking.py +0 -0
  1696. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/status/models.py +0 -0
  1697. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/status/preflight.py +0 -0
  1698. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/status/progress.py +0 -0
  1699. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/status/reducer.py +0 -0
  1700. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/status/transition_context.py +0 -0
  1701. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/status/transitions.py +0 -0
  1702. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/status/uninitialized_hint.py +0 -0
  1703. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/status/validate.py +0 -0
  1704. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/status/views.py +0 -0
  1705. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/status/wp_metadata.py +0 -0
  1706. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/status/wp_state.py +0 -0
  1707. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/status_lanes.py +0 -0
  1708. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/background.py +0 -0
  1709. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/batch.py +0 -0
  1710. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/body_queue.py +0 -0
  1711. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/body_transport.py +0 -0
  1712. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/body_upload.py +0 -0
  1713. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/clock.py +0 -0
  1714. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/config.py +0 -0
  1715. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/daemon.py +0 -0
  1716. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/diagnose.py +0 -0
  1717. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/diagnostics.py +0 -0
  1718. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/dossier_pipeline.py +0 -0
  1719. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/feature_flags.py +0 -0
  1720. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/git_metadata.py +0 -0
  1721. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/namespace.py +0 -0
  1722. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/orphan_sweep.py +0 -0
  1723. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/owner.py +0 -0
  1724. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/preflight.py +0 -0
  1725. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/project_identity.py +0 -0
  1726. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/queue.py +0 -0
  1727. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/replay.py +0 -0
  1728. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/restart.py +0 -0
  1729. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/routing.py +0 -0
  1730. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/runtime.py +0 -0
  1731. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/runtime_event_emitter.py +0 -0
  1732. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/sharing_client.py +0 -0
  1733. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/sync/tracker_client_glue.py +0 -0
  1734. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/task_metadata_validation.py +0 -0
  1735. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/task_profile.py +0 -0
  1736. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/task_utils/__init__.py +0 -0
  1737. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/tasks/__init__.py +0 -0
  1738. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/tasks/issue_matrix.py +0 -0
  1739. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/tasks_support.py +0 -0
  1740. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/template/__init__.py +0 -0
  1741. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/template/asset_generator.py +0 -0
  1742. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/template/renderer.py +0 -0
  1743. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/templates/AGENTS.md +0 -0
  1744. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/templates/POWERSHELL_SYNTAX.md +0 -0
  1745. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/templates/agent-file-template.md +0 -0
  1746. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/templates/checklist-template.md +0 -0
  1747. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/templates/claudeignore-template +0 -0
  1748. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/templates/plan-template.md +0 -0
  1749. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/templates/spec-template.md +0 -0
  1750. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/templates/task-prompt-template.md +0 -0
  1751. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/templates/tasks-template.md +0 -0
  1752. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/templates/vscode-settings.json +0 -0
  1753. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/text_sanitization.py +0 -0
  1754. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/tracker/__init__.py +0 -0
  1755. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/tracker/config.py +0 -0
  1756. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/tracker/credentials.py +0 -0
  1757. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/tracker/discovery.py +0 -0
  1758. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/tracker/factory.py +0 -0
  1759. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/tracker/feature_flags.py +0 -0
  1760. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/tracker/local_service.py +0 -0
  1761. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/tracker/origin_models.py +0 -0
  1762. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/tracker/saas_client.py +0 -0
  1763. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/tracker/saas_service.py +0 -0
  1764. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/tracker/service.py +0 -0
  1765. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/tracker/store.py +0 -0
  1766. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/tracker/ticket_context.py +0 -0
  1767. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/__init__.py +0 -0
  1768. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/detector.py +0 -0
  1769. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/feature_meta.py +0 -0
  1770. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/metadata.py +0 -0
  1771. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/__init__.py +0 -0
  1772. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/base.py +0 -0
  1773. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_10_0_python_only.py +0 -0
  1774. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_10_12_charter_cleanup.py +0 -0
  1775. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_10_14_update_implement_slash_command.py +0 -0
  1776. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_10_1_populate_slash_commands.py +0 -0
  1777. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_10_2_update_slash_commands.py +0 -0
  1778. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_10_6_workflow_simplification.py +0 -0
  1779. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_10_8_fix_memory_structure.py +0 -0
  1780. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_10_9_repair_templates.py +0 -0
  1781. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_11_1_improved_workflow_templates.py +0 -0
  1782. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_11_1_update_implement_slash_command.py +0 -0
  1783. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_11_2_improved_workflow_templates.py +0 -0
  1784. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_11_3_workflow_agent_flag.py +0 -0
  1785. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_12_0_documentation_mission.py +0 -0
  1786. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_12_1_remove_kitty_specs_from_gitignore.py +0 -0
  1787. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_13_0_research_csv_schema_check.py +0 -0
  1788. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_13_0_update_charter_templates.py +0 -0
  1789. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_13_0_update_research_implement_templates.py +0 -0
  1790. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_13_1_exclude_worktrees.py +0 -0
  1791. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_13_5_add_commit_workflow_to_templates.py +0 -0
  1792. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_13_8_target_branch.py +0 -0
  1793. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_14_0_centralized_feature_detection.py +0 -0
  1794. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_16_2_remove_wp_status_gitignore_rule.py +0 -0
  1795. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_2_0_specify_to_kittify.py +0 -0
  1796. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_4_8_gitignore_agents.py +0 -0
  1797. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_6_5_commands_rename.py +0 -0
  1798. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_6_7_ensure_missions.py +0 -0
  1799. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_7_2_worktree_commands_dedup.py +0 -0
  1800. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_7_3_update_scripts.py +0 -0
  1801. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_8_0_remove_active_mission.py +0 -0
  1802. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_8_0_worktree_agents_symlink.py +0 -0
  1803. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_9_0_frontmatter_only_lanes.py +0 -0
  1804. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_9_1_complete_lane_migration.py +0 -0
  1805. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_0_9_2_research_mission_templates.py +0 -0
  1806. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_2_0_0_charter_directory.py +0 -0
  1807. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_2_0_0_historical_status_migration.py +0 -0
  1808. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_2_0_0_retire_git_hooks.py +0 -0
  1809. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_2_0_11_install_skills.py +0 -0
  1810. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_2_0_11_remove_clarify_command.py +0 -0
  1811. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_2_0_1_fix_generated_command_templates.py +0 -0
  1812. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_2_0_1_tool_config_key_rename.py +0 -0
  1813. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_2_0_2_charter_context_bootstrap.py +0 -0
  1814. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_2_0_6_consistency_sweep.py +0 -0
  1815. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_2_0_7_fix_stale_overrides.py +0 -0
  1816. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_2_0_9_state_gitignore.py +0 -0
  1817. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_2_1_1_repair_skill_pack.py +0 -0
  1818. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_2_1_2_fix_charter_doctrine_skill.py +0 -0
  1819. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_2_1_2_fix_glossary_context_skill.py +0 -0
  1820. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_2_1_2_fix_orchestrator_api_skill.py +0 -0
  1821. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_2_1_2_fix_runtime_next_skill.py +0 -0
  1822. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_2_1_2_install_git_workflow_skill.py +0 -0
  1823. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_2_1_2_install_mission_system_skill.py +0 -0
  1824. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_2_1_2_remove_release_skill.py +0 -0
  1825. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_2_1_3_fix_planning_repository_terminology.py +0 -0
  1826. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_2_1_4_enforce_command_file_state.py +0 -0
  1827. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_2_2_0_profile_context_deployment.py +0 -0
  1828. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_3_0_0_canonical_context.py +0 -0
  1829. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_3_0_2_restore_prompt_commands.py +0 -0
  1830. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_3_0_3_globalize_skill_pack.py +0 -0
  1831. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_3_1_1_charter_rename.py +0 -0
  1832. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_3_1_1_direct_canonical_commands.py +0 -0
  1833. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_3_1_1_event_log_merge_driver.py +0 -0
  1834. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_3_1_1_normalize_status_json.py +0 -0
  1835. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_3_1_2_globalize_commands.py +0 -0
  1836. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_3_2_0a4_normalize_mission_lifecycle.py +0 -0
  1837. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_3_2_0a4_safe_globalize_commands.py +0 -0
  1838. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_3_2_0rc28_github_diff_attributes.py +0 -0
  1839. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/migrations/m_3_2_0rc30_fix_runtime_next_result_default.py +0 -0
  1840. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/registry.py +0 -0
  1841. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/upgrade/skill_update.py +0 -0
  1842. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/validators/__init__.py +0 -0
  1843. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/validators/csv_schema.py +0 -0
  1844. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/validators/paths.py +0 -0
  1845. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/validators/research.py +0 -0
  1846. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/version_utils.py +0 -0
  1847. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/widen/__init__.py +0 -0
  1848. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/widen/audience.py +0 -0
  1849. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/widen/flow.py +0 -0
  1850. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/widen/interview_helpers.py +0 -0
  1851. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/widen/models.py +0 -0
  1852. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/widen/prereq.py +0 -0
  1853. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/widen/review.py +0 -0
  1854. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/workspace/__init__.py +0 -0
  1855. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/src/specify_cli/workspace_context.py +0 -0
  1856. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/tests/README.md +0 -0
  1857. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/tests/architectural/README.md +0 -0
  1858. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/tests/doctrine/fixtures/relationship_packs/README.md +0 -0
  1859. {spec_kitty_cli-3.2.0rc35 → spec_kitty_cli-3.2.0rc37}/tests/reliability/fixtures/README.md +0 -0
@@ -0,0 +1,4531 @@
1
+ # Changelog
2
+
3
+ <!-- markdownlint-disable MD024 -->
4
+
5
+ All notable changes to the Spec Kitty CLI and templates are documented here.
6
+
7
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
8
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
9
+
10
+ ## [Unreleased]
11
+
12
+ ## [3.2.0rc37] - 2026-06-04
13
+
14
+ ### Added
15
+
16
+ - Added execution-state domain remediation artifacts, ADRs, and glossary
17
+ context covering ExecutionContext ownership, command targets, effector
18
+ actors, mission/MissionRun boundaries, and status aggregate behavior.
19
+ - Added architectural ratchets for execution-context parity, status module
20
+ boundaries, and raw `kitty-specs/<mission>` path construction.
21
+
22
+ ### Changed
23
+
24
+ - Routed command and runtime path handling through shared execution-context and
25
+ feature-directory resolution so raw mission spec paths consistently resolve
26
+ through the active action context.
27
+ - Refreshed Contextive execution glossary and doctrine skill metadata while
28
+ removing the retired `spk-integrate-ci` skill from the bundled doctrine pack.
29
+ - Hardened release-candidate CI ownership and release workflow checks around
30
+ path filters, candidate metadata, and downstream compatibility validation.
31
+
32
+ ### Fixed
33
+
34
+ - Fixed 3.1.10 acceptance and move-task regressions across transactional
35
+ coordination, protected branch bypass handling, and clean-tree acceptance
36
+ fixtures.
37
+ - Suppressed SaaS ingress warnings when SaaS sync is disabled.
38
+ - Addressed low-risk Sonar cleanup findings and mission-review follow-up
39
+ issues from execution-state domain remediation.
40
+
41
+ ## [3.2.0rc36] - 2026-06-03
42
+
43
+ ### Changed
44
+
45
+ - Polished 3.2 CLI UX around init next steps, scaffold state, widen guidance,
46
+ and charter preflight output.
47
+ - Updated agent harness installation guidance and snapshots for Codex, Kiro,
48
+ Antigravity, and public harness docs.
49
+ - Added execution-state/runtime architecture notes covering mission vs.
50
+ MissionRun boundaries and context decomposition.
51
+ - Hardened release-candidate CI around charter checks, workflow status
52
+ coordination, and Next runtime task parsing.
53
+
54
+ ## [3.2.0rc35] - 2026-06-02
55
+
56
+ ### Added
57
+
58
+ - Added agent upgrade prompts and slash-command repair diagnostics so project
59
+ upgrades can detect and repair stale agent command surfaces.
60
+ - Added doctrine/profile activation closure work, including canonical kind
61
+ resolution, DRG-backed profile lineage, layered charter listing, template
62
+ discovery, and single-source doctrine health reporting.
63
+
64
+ ### Changed
65
+
66
+ - Reworked parent-mission acceptance docs and charter boundary documentation
67
+ around status-commit terminology and profile integrity closeout.
68
+ - Tightened coordination topology handling across runtime prompts, decision
69
+ logs, dependency gates, move-task transitions, and orchestrator API paths.
70
+
71
+ ### Fixed
72
+
73
+ - Fixed slash-command install and audit gaps that left generated command files
74
+ stale after upgrades.
75
+ - Fixed coordination-topology edge cases that could read stale checkout state,
76
+ miss decision logs, or proceed across topology gaps without failing closed.
77
+ - Fixed charter activation and closeout CI instability, including layer-aware
78
+ activation and clean-install latency recalibration.
79
+
80
+ ## [3.2.0rc34] - 2026-06-02
81
+
82
+ ### Changed
83
+
84
+ - Clarified that live canary and cross-repo end-to-end runs remain required
85
+ release-candidate hygiene under the charter, but are run locally before
86
+ tagging instead of as tag-time PyPI publish workflow blockers.
87
+ - Transactional mission status reads now resolve the coordination worktree
88
+ without creating or mutating checkout state, keeping lane views aligned with
89
+ the coordination branch.
90
+
91
+ ### Fixed
92
+
93
+ - Planning-artifact commits now preserve append-only coordination event logs
94
+ instead of clobbering lane history with stale primary-checkout copies.
95
+ - Planning-artifact claim commits now parse git porcelain status structurally,
96
+ fail closed on unrelated structural changes, and skip idempotent
97
+ already-on-coordination content.
98
+ - Move-task transitions now derive source and target lanes from transactional
99
+ coordination status so review handoffs do not fail after coordination/feature
100
+ branch desync.
101
+ - `.kittify/sync-state.json` is treated as local relay state, while charter
102
+ synthesis provenance can be tracked with the required commit reminder.
103
+
104
+ ## [3.2.0rc33] - 2026-06-01
105
+
106
+ ### Changed
107
+
108
+ - Tag-time PyPI publishing now stays focused on release-local checks. Live
109
+ canary evidence and the cross-repo end-to-end consumer scenario are no longer
110
+ blocking jobs in `.github/workflows/release.yml`; they remain required local
111
+ release-candidate hygiene before tagging.
112
+ - Release metadata now aligns `.kittify/metadata.yaml` with `pyproject.toml`
113
+ for `3.2.0rc33`.
114
+
115
+ ## [3.2.0rc32] - 2026-06-01
116
+
117
+ ### Added
118
+
119
+ - Charter governance references: `governance_references` declarations in `charter.md`
120
+ now surface supporting public governance docs in `charter context` text/JSON and
121
+ `charter status` diagnostics, with repo-root-scoped path safety.
122
+ - Release authority now has a machine-readable shared-package compatibility
123
+ manifest, plus gates that validate CLI ranges, `uv.lock`, SaaS consumer
124
+ contracts, and exact PyPI installability for published artifacts.
125
+
126
+ ### Changed
127
+
128
+ - Release metadata now aligns `.kittify/metadata.yaml` with `pyproject.toml`
129
+ for `3.2.0rc32`.
130
+ - Glossary runtime modules are packaged under canonical top-level `glossary`
131
+ while `specify_cli.glossary` remains a registered compatibility shim.
132
+
133
+ ### Fixed
134
+
135
+ - `spec-kitty agent decision open --json` now emits exactly one parseable JSON
136
+ object on stdout. The response includes a retry-safe idempotency key so callers
137
+ can rerun the same logical open by mission slug and recover the same
138
+ `decision_id` after wrapper parse/process failures. Idempotent retries repair
139
+ a missing opened event when local decision files were persisted before event
140
+ emission failed, and dry-run output no longer advertises persisted recovery.
141
+ - `charter generate --force` now refuses to overwrite symlinked `charter.md` paths,
142
+ preventing silent writes through symlink targets.
143
+ - Sync WebSocket connections now send ephemeral `ws_token` credentials in the
144
+ `Authorization: Bearer` upgrade header instead of an ignored `?token=` query
145
+ parameter, restoring authenticated live event delivery.
146
+ - Prerelease PyPI publishing no longer waives downstream consumer evidence; the
147
+ release workflow now requires the private consumer suite before any PyPI
148
+ promotion.
149
+ - A circular work-package dependency in `tasks.md` no longer leaves the canonical
150
+ status uninitialized with a misleading, looping error (#1589). `finalize-tasks`
151
+ aborts on the cycle before bootstrapping status; `spec-kitty next`/`move-task`
152
+ and lane reads now name the dependency cycle as the root cause instead of an
153
+ infinite "run finalize-tasks to bootstrap the event log" hint.
154
+ - `spec-kitty agent status doctor` no longer reports a mission as "Healthy" when
155
+ it has work-package definitions but no canonical status (e.g. after a
156
+ cycle-aborted `finalize-tasks`); it now emits an `uninitialized_status` warning
157
+ naming the cycle when present (#1589).
158
+ - CI: the shared-package drift check now skips gracefully when
159
+ `SPEC_KITTY_SAAS_READ_TOKEN` is unavailable (fork PRs) instead of hard-failing;
160
+ the cross-repo drift is still enforced by the push-to-main CI that holds the
161
+ secret.
162
+
163
+ ### Documentation
164
+
165
+ - Clarified that `.kittify/charter/charter.md` is the Spec Kitty runtime governance
166
+ center, while public docs such as `spec/constitution.md` are supporting context
167
+ rather than alternate authoritative charter paths.
168
+ - Added migration guidance for constitution-era `.kittify/memory/constitution.md`
169
+ and `.kittify/constitution/*` layouts.
170
+
171
+ ## [3.2.0rc31] (rolled into rc32)
172
+
173
+ ### Fixed
174
+
175
+ - Legacy `specify_cli.charter_lint.checks.*` shim imports now preserve canonical
176
+ `specify_cli.charter_runtime.lint.checks.*` module identity and fail loudly if a
177
+ nested alias is missing, preventing duplicate checker module instances.
178
+
179
+ ## [3.2.0rc30] - 2026-05-29
180
+
181
+ ### Added
182
+
183
+ - **ADR 2026-05-28-1**: Documents CI dependency resolution and test surface consistency —
184
+ five structural gaps identified from CI run 26558837157, chosen remediations, and
185
+ confirmation criteria.
186
+ (`architecture/adrs/2026-05-28-1-ci-dependency-resolution-and-test-surface-consistency.md`)
187
+ - Typer-surface smoke test (`tests/agent/test_json_group_typer_surface.py`) that exercises
188
+ the `_JSONErrorGroup` / JSON-envelope contract end-to-end using `typer.Exit` (not
189
+ `click.exceptions.Exit`). Acts as a canary for the typer 0.26+ vendored-click regression.
190
+ - `agent` pytest marker for orchestrator-api / agent-facing contract surface tests.
191
+
192
+ ### Changed
193
+
194
+ - **CI: all test and lint jobs now use `uv sync --frozen --all-extras`** instead of
195
+ `pip install -e .[test]`. The lockfile is the single environment contract for both
196
+ local and CI, eliminating resolver drift between `uv.lock` and `pyproject.toml` bounds.
197
+ Three infrastructure jobs (`uv-lock-check`, `build-wheel`, `clean-install-verification`)
198
+ are unaffected.
199
+ - Python version pinned to `3.11.15` in `.python-version` for reproducibility.
200
+
201
+ ### Fixed
202
+
203
+ - `_JSONErrorGroup` exception handlers now use `_CLICK_USAGE_ERRORS` / `_CLICK_ABORTS`
204
+ tuples that include both `click.exceptions.*` and `typer._click.exceptions.*` variants,
205
+ fixing silent miss of all exceptions raised by typer 0.26+ which vendors click
206
+ internally as `typer._click`.
207
+ - Charter-preflight test fixtures (`tests/specify_cli/charter_preflight/_fixtures.py`)
208
+ now use `charter.hasher.hash_content()` instead of raw `hashlib.sha256(bytes)`,
209
+ aligning with the production algorithm and eliminating hash-format divergence.
210
+ - E2e conftest synthesises `.kittify/charter/metadata.yaml` after `copytree` using
211
+ the production `charter.hasher.hash_content()` helper, making fixtures self-contained
212
+ and reproducible on clean clones without gitignored runtime state.
213
+ - Missing `import click` in `orchestrator_api/commands.py` that caused `NameError` in the
214
+ `except ImportError` fallback when importing the module on typer < 0.26.
215
+ - Restored `doctrine` CLI group registration (incorrectly removed when a stale regression
216
+ test was treated as a contract); narrowed the curation-excision guard to `curate`/`promote`
217
+ only; restored `spec-kitty doctrine` sections in `docs/reference/cli-commands.md`.
218
+
219
+ ### Security / Lint
220
+
221
+ - `TID251` (`flake8-tidy-imports` banned-api) added to ruff: `hashlib.sha256` usage in
222
+ `tests/` must go through `charter.hasher.hash_content()`; `click.exceptions.Exit`,
223
+ `UsageError`, and `Abort` in tests must use `typer.*` equivalents instead.
224
+ - `TID251` is now **enforced**, not advisory: a dedicated `[ENFORCED] banned-API lint
225
+ gate (TID251)` step in `ci-quality.yml` runs `ruff check src tests --select TID251`
226
+ without `continue-on-error`, so an unannotated banned call fails the build. The
227
+ previous whole-directory `per-file-ignores` (which silently exempted 10 test trees and
228
+ defeated the "new sha256 still needs a `# noqa`" policy) were removed; every legitimate
229
+ raw `hashlib.sha256` now carries an inline `# noqa: TID251 — <justification>`. A guard
230
+ test (`tests/architectural/test_tid251_enforcement.py`) pins the enforcement so it
231
+ cannot silently regress to advisory. (Closes the adversarial review block on #1395.)
232
+
233
+ ## [3.2.0rc29] - 2026-05-29
234
+
235
+ 3.2.0rc29 rerolls the coordination branch atomic event-log candidate after
236
+ PR review and publishes the launch-readiness hardening merged after the yanked
237
+ 3.2.0rc28 candidate.
238
+
239
+ ### Added
240
+
241
+ - Added mission coordination branches, sparse coordination worktrees,
242
+ `BookkeepingTransaction`, and `WorkflowMutationPolicy` so mission status
243
+ mutations are staged, audited, and committed away from protected target
244
+ branches.
245
+ - Added regression, integration, stress, and architectural coverage for
246
+ coordination worktree creation, safe-commit branch assertions, legacy mission
247
+ fallback, workflow rollback, post-merge indexing, and concurrent status
248
+ emission.
249
+ - Added `mission close --discard` and doctor diagnostics for coordination
250
+ workspace health, restart-daemon timing, command/skill manifest drift, and
251
+ upgrade remediation provenance.
252
+ - Added external-orchestrator install and compatibility documentation, including
253
+ PyPI installation paths, orchestrator API JSON-error guidance, host-surface
254
+ governance docs, and environment-variable references.
255
+
256
+ ### Changed
257
+
258
+ - **BREAKING (CLI)**: `spec-kitty safe-commit` now requires
259
+ `--to-branch <ref>`. The temporary `SPEC_KITTY_INFER_DESTINATION_REF=1`
260
+ compatibility path lets the CLI resolve and pass the destination explicitly
261
+ during rollout; the helper itself never infers it.
262
+ - **BREAKING (internal)**: `safe_commit()` now requires keyword-only
263
+ `worktree_root`, `destination_ref`, and `paths`, and structurally verifies
264
+ that the worktree HEAD matches the declared destination before staging.
265
+ - Removed Spec Kitty internal protected-branch commit exceptions for planning
266
+ artifacts and merged-WP done records. Remaining exceptions are limited to
267
+ documented non-Spec-Kitty upgrade/release workflows.
268
+ - Hardened release CI ownership by deduplicating release-readiness checks,
269
+ adding installed-entrypoint smoke coverage, and preserving clean-install
270
+ latency evidence.
271
+ - Documented the host-surface parity matrix and Mode of Work governance layer
272
+ so advise/ask/do behavior has a visible README entry point.
273
+ - Clarified correlation link and projection policy / read-model policy coverage
274
+ for the 3.2.0 trail-model tranche, including deferred Tier 2 items.
275
+
276
+ ### Fixed
277
+
278
+ - Migrated remaining production `safe_commit()` call sites to the
279
+ destination-ref-aware API so agent task, mission, merge, upgrade, and
280
+ orchestrator paths no longer crash on the removed legacy signature.
281
+ - Fixed protected-branch leakage from `agent action implement` by routing
282
+ planning artifacts and workflow status writes through coordination-owned
283
+ commit paths instead of target-branch bypasses.
284
+ - Serialized first-time coordination worktree creation under the feature
285
+ status lock to prevent concurrent emitters from racing on `git worktree add`.
286
+ - Fixed idempotent squash-merge retry behavior, finalize-tasks dependency
287
+ source precedence, safe-commit recovery reporting, workflow path mirroring,
288
+ configured command execution on Windows, charter JSON error envelopes, and
289
+ command/skill manifest repair drift.
290
+ - Restored upgrade-readiness preference preservation and compatibility hints,
291
+ including uv-tool pytest remediation provenance fallbacks.
292
+ - Restored compatibility for older unit-test fakes that do not expose the new
293
+ coordination branch or commit-result fields.
294
+
295
+ ### Deferred
296
+
297
+ - Continued tracking deferred follow-up work such as
298
+ [#534](https://github.com/Priivacy-ai/spec-kitty/issues/534) outside the
299
+ 3.2.0 readiness tranche.
300
+
301
+ ## [3.2.0rc28] - 2026-05-27
302
+
303
+ 3.2.0rc28 fixes acceptance lane ownership and a clean-install dependency gap.
304
+
305
+ ### Changed
306
+
307
+ - `accept` and orchestrator-api `accept-mission` now keep `approved` and
308
+ `done` distinct: acceptance reports accepted-ready, approved,
309
+ merge-pending, and already-merged WPs without closing approved WPs. Merge
310
+ remains the owner of the `approved -> done` integration transition.
311
+ - Software-dev mission guards now treat `approved` and `done` as
312
+ accepted-ready for mission advancement.
313
+
314
+ ### Fixed
315
+
316
+ - Declared `click` as a direct runtime dependency because CLI modules import it
317
+ directly. This fixes pipx/Windows clean-install import failures.
318
+
319
+ ## [3.2.0rc27] - 2026-05-26
320
+
321
+ 3.2.0rc27 fixes a charter freshness/preflight false positive found in the
322
+ post-rc26 mainline checks.
323
+
324
+ ### Fixed
325
+
326
+ - Charter freshness now uses the same canonical hash semantics as
327
+ `charter sync`, so whitespace-normalized stored hashes do not falsely mark a
328
+ project stale.
329
+ - Fresh built-in doctrine seeds now produce the charter synthesis manifest
330
+ expected by preflight, preventing new projects from failing with
331
+ `charter_source stale` before any local charter exists.
332
+ - Synced charter bundles no longer become stale from source mtime drift when
333
+ metadata hashes and required bundle files already prove the source is fresh.
334
+
335
+ ## [3.2.0rc26] - 2026-05-26
336
+
337
+ Rolls up the charter preflight, built-in vocabulary, and CI stabilization
338
+ guardrails merged after rc25.
339
+
340
+ ### Breaking changes
341
+
342
+ - **`shipped` → `built-in` vocabulary rename.** Public CLI JSON surfaces that
343
+ previously emitted `"shipped"` as a doctrine layer label now emit `"built-in"`.
344
+ This aligns user-facing terminology with the on-disk `built-in/` directory
345
+ layout that already existed. Affected commands:
346
+ - `spec-kitty charter status --json`
347
+ - `spec-kitty charter lint --json`
348
+ - `spec-kitty charter preflight --json` (new in this release)
349
+ - `spec-kitty agent profile list --json`
350
+ - `spec-kitty doctrine pack validate --json`
351
+
352
+ External tooling that pattern-matched the string `"shipped"` MUST be updated.
353
+ No deprecation period: the rename is mechanical and the architectural test
354
+ `tests/architectural/test_no_shipped_layer_label.py` prevents regression.
355
+
356
+ Related: ADR `architecture/3.x/adr/2026-05-24-3-shipped-to-built-in-cutover.md`.
357
+
358
+ ### Changed
359
+
360
+ - **Deprecated paths:** `specify_cli.charter_lint`, `specify_cli.charter_freshness`,
361
+ and `specify_cli.charter_preflight` now re-export from
362
+ `specify_cli.charter_runtime.{lint,freshness,preflight}` under a shared
363
+ charter-runtime umbrella (LD-5 / FR-014). The old paths emit no
364
+ `DeprecationWarning` yet; they will in the next minor release. External
365
+ importers should update to the new paths during this deprecation window
366
+ (spec C-008). The `charter_runtime.facade` slot is reserved for a future
367
+ charter-facade consolidation.
368
+
369
+ ### Added
370
+
371
+ - **`spec-kitty charter preflight` command.** Caller-facing preflight contract
372
+ for governance freshness (FR-006, FR-007, FR-008). Returns a structured JSON
373
+ report that `next`, `implement`, and the dashboard consume to decide whether
374
+ to proceed, prompt for `charter synthesize`, or block. See
375
+ `docs/reference/charter-commands.md` and ADR
376
+ `architecture/3.x/adr/2026-05-24-1-charter-freshness-ux-contract.md`.
377
+
378
+ - Pre-launch and launch-readiness operator docs for hosted SaaS
379
+ sync (#1095). Public docs remain local-first; hosted readiness
380
+ stays opt-in via `SPEC_KITTY_ENABLE_SAAS_SYNC=1`. The new
381
+ `docs/how-to/internal-hosted-readiness.md` covers the dogfooding
382
+ workflow for internal / pre-launch operators, and the new
383
+ `docs/explanation/launch-readiness-future.md` stages the launch-day
384
+ behavior shift behind an explicit "Status: pre-launch" banner.
385
+
386
+ ## [3.2.0rc25] - 2026-05-23
387
+
388
+ Rolls up the post-rc24 static-analysis and upgrade UX type-boundary fixes.
389
+
390
+ - Tightens acceptance package imports, compatibility cache typing, and
391
+ readiness upgrade UX helper boundaries after the overnight Sonar sweep.
392
+ - Keeps the 3.2.0 stable release candidate line current with `main`
393
+ after `#1293`.
394
+
395
+ ## [3.2.0rc24] - 2026-05-22
396
+
397
+ Ships the canonical SaaS-bound producer refactor for CLI lifecycle,
398
+ sync, decision, glossary, and migration emitters.
399
+
400
+ - Routes known SaaS-bound CLI payloads through the `spec-kitty-events`
401
+ 5.2 canonical models where those contracts exist, while preserving
402
+ transitional legacy wire payloads required by current SaaS consumers.
403
+ - Preserves local `artifact_path` metadata on artifact-phase Started
404
+ events and projects those payloads to the strict canonical SaaS wire
405
+ shape before queueing.
406
+ - Adds producer conformance coverage, strict lifecycle validation,
407
+ handler-reset isolation, and a documented canonical-producer lint
408
+ baseline for remaining local-only/test producers.
409
+
410
+ ## [3.2.0rc23] - 2026-05-21
411
+
412
+ Rolls up the autonomous-runtime safety sweep needed before the 3.2.0
413
+ stable cut, plus the documentation and CI guardrails merged after rc22.
414
+ The candidate focuses on removing operator-required workarounds from
415
+ fully autonomous local missions.
416
+
417
+ - Closes `#1255`: retrospective files written by `retrospect create`
418
+ are now accepted by `retrospect synthesize`, with regression coverage
419
+ for both dry-run and apply flows.
420
+ - Closes `#1256`: decisions deferred during planning can be resolved
421
+ cleanly at terminus, and `decision verify` no longer reports resolved
422
+ clarification markers as drift.
423
+ - Closes `#1235` and `#1257`: task finalization rejects
424
+ `kitty-specs/` paths in WP `owned_files` with a clear WP/path error,
425
+ while bulk-edit preflight treats WPs that author planning artifacts
426
+ such as `occurrence_map.yaml` as informational.
427
+ - Closes `#1236`: lane computation now preserves parallel lanes for
428
+ upstream WPs with disjoint `owned_files`; fan-in WPs remain the
429
+ synchronization point.
430
+ - Closes `#1258`: autonomous local mission docs now include the
431
+ focused-PR fallback for `TARGET_BRANCH_NOT_SYNCHRONIZED` when local
432
+ `main` contains orchestration commits.
433
+ - Adds the 3.2 documentation refresh, harness/install lifecycle pages,
434
+ docs freshness checks, drift-detector CI, canonical-producer linting,
435
+ acceptance-matrix extension preservation, and charter-context envelope
436
+ repair merged after rc22.
437
+
438
+ ## [3.2.0rc22] - 2026-05-21
439
+
440
+ Ships the `sync diagnose` canonical-allowlist fix so canary diagnostic
441
+ output stops flagging known event types (`TasksCompleted`,
442
+ `PlanCompleted`, `GatePassed`, etc.) as unknown. The `sync diagnose`
443
+ allowlist is replaced with delegation to
444
+ `spec_kitty_events.conformance.validators._EVENT_TYPE_TO_MODEL` — the
445
+ canonical registry shared with the SaaS strict validator. A
446
+ drift-detector regression test asserts the union remains in sync, so
447
+ future events releases self-validate. The CLI's outbound emission
448
+ gate (`emitter.VALID_EVENT_TYPES`) is intentionally untouched.
449
+
450
+ - Fixes `spec-kitty sync diagnose` false-positive "unknown event"
451
+ warnings by sourcing recognised types from the canonical events
452
+ registry (`Priivacy-ai/spec-kitty#1222`).
453
+ - Adds a drift-detector regression test that fails when the events
454
+ package adds or removes an event type without the registry being
455
+ re-imported.
456
+
457
+ ## [3.2.0rc21] - 2026-05-20
458
+
459
+ Rolls up the minor issue-queue cleanup selected before the 3.2.0
460
+ stable release, plus the post-merge test hardening needed to keep
461
+ `main` green after those fixes landed.
462
+
463
+ - Fixes tasking help assertions to validate Typer option metadata
464
+ instead of Rich-rendered, platform-truncated help text, restoring
465
+ the full main test sweep after the task command cleanup.
466
+ - Refreshes the rc20 lockfile metadata so branch and release
467
+ validation agree on the packaged dependency graph.
468
+ - Improves task finalization and review-state behavior: rejected
469
+ review overrides are described with the canonical tasking language,
470
+ finalize-tasks dependency prose no longer produces false positives,
471
+ and the main test sweep covers those edge cases.
472
+ - Tightens CI and repository hygiene by requiring PR suffixes in the
473
+ protect-main check and tracking research evidence logs.
474
+ - Hardens sync, acceptance, retrospective, and dashboard edges found
475
+ during the pre-3.2.0 issue sweep: doctor daemon health checks are
476
+ isolated, acceptance clarification markers match the canonical
477
+ contract, retrospective event emission is materialized, and the
478
+ dashboard exposes the glossary shell.
479
+
480
+ ## [3.2.0rc20] - 2026-05-20
481
+
482
+ Closes the next dormant mask from epic `#1198`, surfaced by the
483
+ rc19 canary now that the `#1202` observability fix is in place.
484
+
485
+ - Closes `#1203` mask 1: `EventEmitter.emit_wp_created` in
486
+ `src/specify_cli/sync/emitter.py` now constructs the payload
487
+ matching the canonical events 5.1.0 `wp_created_payload` schema.
488
+ Four simultaneous violations are closed in a single change:
489
+ `title` renamed to `wp_title` at the payload boundary,
490
+ `dependencies` renamed to `depends_on`, required `actor`
491
+ parameter added (default `"cli"`) and placed in the payload,
492
+ and `mission_id` removed from the payload (the parameter is
493
+ still accepted for backward compatibility but is no longer
494
+ written to the wire — it isn't in the schema's allowed set).
495
+ The local emitter's per-event-type validator table is updated
496
+ to match the canonical required-fields contract; the
497
+ singleton-level `emit_wp_created` mirror in
498
+ `src/specify_cli/sync/events.py` gains an `actor` parameter and
499
+ passes it through; and the production caller in
500
+ `src/specify_cli/cli/commands/agent/mission.py:2448` passes
501
+ `actor="spec-kitty agent mission finalize-tasks"`.
502
+
503
+ This was the four-violation drift P4 predicted in the differential
504
+ matrix and that the rc19 canary surfaced in full detail thanks to
505
+ the per-event-violation observability restored in `#1202`. The
506
+ structural follow-up `#1200` (construct payloads via pydantic
507
+ models across every `emit_*` site) still pending; this surgical
508
+ close prevents the immediate canary blocker while that work
509
+ proceeds.
510
+
511
+ ## [3.2.0rc19] - 2026-05-20
512
+
513
+ Ships the combined `#1199` + `#1202` surgical fix from epic `#1198`:
514
+ the immediate Phase 4 canary blocker plus the observability fix that
515
+ restores the SaaS's per-event violation diversity to operators.
516
+
517
+ - Closes `#1199`: `emit_mission_created_local` in
518
+ `src/specify_cli/status/lifecycle_events.py` now accepts
519
+ `mission_type` (required) and `wp_count` (default 0) and places
520
+ both in the payload. The canonical events 5.1.0 schema for
521
+ `mission_created_payload` lists both as required; the deployed
522
+ SaaS jsonschema gate rejects payloads without them with
523
+ `'mission_type' is a required property`. The sibling call site in
524
+ `src/specify_cli/core/mission_creation.py:412` now passes both
525
+ fields, matching the sync-events path at `:468-470`.
526
+ - `_validate_lifecycle_payload` widened from `extra_forbidden`-only
527
+ to fail on ALL model violations (extras + missing-required +
528
+ every other `violation_type`). The historical comment block that
529
+ rationalised the narrow scope as matching SaaS tolerance was
530
+ based on the SaaS-side `_should_validate_strict_envelope` hole
531
+ (`Priivacy-ai/spec-kitty-saas#217`) and is no longer true. The
532
+ widened validator catches MissionCreated, WPStatusChanged,
533
+ MissionDossierArtifactIndexed, and every other event type the
534
+ events package recognises, preventing the next analogous drift
535
+ from reaching the offline queue.
536
+ - Closes `#1202`: `_parse_error_response` in
537
+ `src/specify_cli/sync/batch.py` now reads `details[*].detail`
538
+ (the key the SaaS actually ships) before falling back to
539
+ `.error` / `.reason`. Without this fix, every per-event line
540
+ in a SaaS rejection collapsed to the outer `error_msg` —
541
+ hiding the SaaS's full per-event violation diversity for the
542
+ entire `rc12 → rc18` drift-chain investigation. With the fix,
543
+ the next failed batch surfaces every distinct violation per
544
+ event, dramatically compressing any remaining mask-peeling.
545
+
546
+ Sequenced first per epic `#1198`. The structural follow-up
547
+ `#1200` (pydantic-construct payloads across all `emit_*` sites +
548
+ CI conformance gate) and `#1203` (dormant masks sweep) are next,
549
+ with `spec-kitty-saas#217` (close the strict-envelope hole)
550
+ sequenced after.
551
+
552
+ ## [3.2.0rc18] - 2026-05-20
553
+
554
+ Ships the final observed Phase 4 launch-gate payload drift fix after the
555
+ rc17 `WPStatusChanged` envelope cleanup.
556
+
557
+ - Closes `#1190` via `#1191`: `emit_mission_created_local` no longer writes
558
+ `actor` into the `MissionCreated` payload. The canonical
559
+ `spec-kitty-events` 5.1.0 schema declares `additionalProperties: false` for
560
+ `mission_created_payload` and does not allow `actor`, so deployed SaaS batch
561
+ ingest rejected every batch containing one of these events.
562
+ - Refactors `_validate_lifecycle_payload` to delegate to
563
+ `spec_kitty_events.conformance.validate_event`, replacing the previous
564
+ hand-maintained lifecycle payload map that missed `MissionCreated` and other
565
+ known event types. The local guard now catches extra-property drift before
566
+ queue fan-out while still tolerating currently accepted missing-field
567
+ violations.
568
+ - Adds regression coverage for the cleaned `MissionCreated` payload, the
569
+ conformance guard's extra-field rejection, valid-payload pass-through, and
570
+ graceful fallback for event types not recognised by the installed events
571
+ package.
572
+
573
+ ## [3.2.0rc17] - 2026-05-20
574
+
575
+ Ships the third Phase 4 launch-gate fix: the actual SaaS-side schema
576
+ violation that was hiding behind the parser and canary issues fixed in
577
+ rc16.
578
+
579
+ - Closes `#1188`: `emit_wp_status_changed` in
580
+ `src/specify_cli/sync/emitter.py` no longer passes
581
+ `envelope_fields=` to `_emit`. The payload-only keys (`from_lane`,
582
+ `to_lane`, `actor`, `force`, `reason`, `review_ref`,
583
+ `execution_mode`, `evidence`) were being duplicated at the envelope
584
+ level alongside the canonical envelope keys, and the SaaS schema at
585
+ `/api/v1/events/batch/` rejected every batch containing a
586
+ `WPStatusChanged` event with
587
+ `Additional properties are not allowed ('actor' was unexpected)`
588
+ (HTTP 400). On rc16 this surfaced as scenarios 1, 2, and 4 of the
589
+ deployed-dev identity-boundary canary failing with
590
+ `Synced: 0 Duplicates: 0 Errors: N (unknown: N)`; scenario 3 passed
591
+ because it never emits events through the batch endpoint.
592
+ - Extends `envelope.forbidden_fields` in
593
+ `src/specify_cli/core/upstream_contract.json` to include the
594
+ payload-only keys, so the existing
595
+ `test_no_forbidden_fields_in_envelope` contract test now guards
596
+ against regressions.
597
+ - Updates the unit tests in `tests/sync/test_events.py` that
598
+ previously asserted the top-level duplicates; the new assertions
599
+ pin the contract that those keys live in `payload` only.
600
+
601
+ The bug has been on `main` since commit `533e47d2` (2026-04-14,
602
+ "Harden SaaS auth and restore build sync emission"). It was masked on
603
+ earlier RCs by the audit-predicate gap fixed in rc15
604
+ (`#1142`), the parser misclassification fixed in rc16 (`#1182`), and
605
+ the canary-command shape fixed in
606
+ `spec-kitty-end-to-end-testing#45` (`#1141`). With those three out of
607
+ the way, the underlying envelope drift was finally visible end-to-end
608
+ and could be fixed.
609
+
610
+ ## [3.2.0rc16] - 2026-05-20
611
+
612
+ Ships the Phase 4 canary launch-gate unblock: the actual root-cause fix for
613
+ `#1141` and the parser/classification fix for `#1182`.
614
+
615
+ - Closes `#1182`: `_parse_event_results` in `src/specify_cli/sync/batch.py`
616
+ now routes per-event `status="queued"` / `status="pending"` responses to a
617
+ new `pending_count` bucket on `BatchSyncResult` instead of folding them
618
+ into the rejected catch-all with `category=unknown`. `sync now` previously
619
+ reported durably-queued events as `Errors: N (unknown: N)` and exited
620
+ non-zero when the in-process final-sync hit its 5s timeout; pending-only
621
+ drains now exit 0 and surface as `Pending: N` in the summary. Queue
622
+ mutation policy unchanged (pending rows are left for the next daemon tick,
623
+ same disposition as `failed_transient`).
624
+ - Closes `#1141` (companion fix in `spec-kitty-end-to-end-testing#45`): the
625
+ canary scenario 4 `move-task --to planned` invocation was omitting
626
+ `--review-feedback-file`, so the CLI hard-rejected the command at the
627
+ argument-validation layer before reaching `emit_status_transition`. The
628
+ rc15 diagnostic breadcrumb in `fire_saas_fanout` could never fire because
629
+ the codepath never reached fan-out. The e2e fix passes a structured
630
+ feedback markdown so the backward emit actually lands. No CLI change is
631
+ required; the events #32 force-required contract and the CLI's
632
+ review-feedback hardening are both intentional and remain in force.
633
+ - New unit coverage in `tests/sync/test_batch_error_surfacing.py` pins the
634
+ contract: per-event `queued` / `pending` are not errors, never count
635
+ toward `success_count` (they are durable in-flight, not terminal), but
636
+ do count toward sync activity so the "no progress" guard does not fire
637
+ on a pending-only drain.
638
+
639
+ ## [3.2.0rc15] - 2026-05-19
640
+
641
+ Ships the Phase 4 canary unblock work landed via PR `#1180`:
642
+
643
+ - Closes `#1142`: broadens `is_mission_lifecycle_row` in
644
+ `src/specify_cli/audit/shape_registry.py` to accept all four canonical
645
+ aggregate types (`Project`, `Mission`, `WorkPackage`, `MissionDossier`)
646
+ rather than `Mission` alone. Fresh missions no longer trip the
647
+ `FORBIDDEN_KEY` TeamSpace gate when `sync now` runs.
648
+ - Closes `#1141`: adds a diagnostic breadcrumb at `fire_saas_fanout` entry in
649
+ `src/specify_cli/status/adapters.py` plus regression coverage that the
650
+ backward `in_review → planned` rollback reaches fanout with the expected
651
+ shape. **Note**: this is a diagnostic landing, not the full root-cause fix
652
+ — the silent replacement that the canary scenario 4 peek catches likely
653
+ lives downstream in `OfflineQueue.queue_event` and is expected to be
654
+ chased on a follow-up RC if it reproduces.
655
+ - Bundles the +30 targeted audit / status-emit-sequence tests from `#1180`.
656
+
657
+ ## [3.2.0rc14] - 2026-05-19
658
+
659
+ Ships the next 3.2 release candidate after the doctrine/charter and
660
+ sync-boundary follow-up window:
661
+
662
+ - Adds the three-layer doctrine and charter DRG work: org-pack loading across
663
+ every configured pack, project/org/built-in precedence diagnostics,
664
+ org-charter interview pre-fill, collision warnings, and the related
665
+ workflow/governance payload hardening.
666
+ - Closes the org-pack and charter-scope safety follow-ups by blocking archive
667
+ traversal, unsafe server-provided filenames, symlink/hardlink extraction, and
668
+ scope roots that escape the repository.
669
+ - Documents recovery from partially installed command namespace packages for
670
+ `spec-kitty-events`, including the concrete import error signature and
671
+ reinstall path.
672
+ - Keeps local workflow test suites honest under the hosted sync preflight:
673
+ e2e workflow tests now opt out of `SPEC_KITTY_ENABLE_SAAS_SYNC` the same way
674
+ integration and tasks suites do, while sync/auth suites retain hosted-sync
675
+ coverage.
676
+ - Restores strict mission-step-contract type checking by making ambiguous DRG
677
+ URN matches explicitly typed.
678
+ - Carries review and release hygiene fixes for unsafe target-branch merge
679
+ guidance, retrospective workflow wording, doctrine language-bias lint, fresh
680
+ sync Sonar findings, and Windows/main CI health.
681
+ - Aligns the release checklist with the main-branch protection workflow:
682
+ release PRs should be squash-merged so the resulting commit retains the PR
683
+ marker that `Protect Main Branch` recognizes.
684
+
685
+ ## [3.2.0rc13] - 2026-05-19
686
+
687
+ Ships a focused sync-boundary hotfix for pipx-style CLI installs:
688
+
689
+ - Fixes `#1120`: daemon owner records now canonicalize
690
+ `executable_path` at the `DaemonOwnerRecord` boundary, and foreground
691
+ sync identity uses the same canonicalization helper. Pipx-installed CLIs
692
+ whose `sys.executable` flows through a symlink no longer report a spurious
693
+ `daemon_executable_path` mismatch during `sync status --check` or
694
+ sync-producing command preflight.
695
+ - Adds adversarial coverage for owner-record dataclass canonicalization,
696
+ resolve-failure fallback behavior, and the asymmetric one-sided resolve
697
+ failure class that could reintroduce false split-brain detection.
698
+
699
+ ## [3.2.0rc12] - 2026-05-18
700
+
701
+ Ships the MVP CLI sync-boundary preflight surface required by the Teamspace
702
+ auth-boundary hardening launch gate:
703
+
704
+ - Includes `#1115`: `specify_cli.sync.owner` daemon owner record with
705
+ mismatch / orphan detection, `specify_cli.sync.preflight` read-only
706
+ auth/daemon/queue boundary preflight, and the new identity-boundary rows
707
+ exposed by `sync status --check` / `sync doctor`.
708
+ - Closes `#1087` (sync status/doctor expose auth/queue/daemon split brain),
709
+ `#1088` (sync daemon coherent machine-global owner), `#1089` (setup-plan
710
+ evidence enqueued in one sync scope), and `#1090` (scoped queue migration
711
+ does not strand authenticated work).
712
+ - Unblocks the deployed-dev sync identity-boundary canary
713
+ (`spec-kitty-end-to-end-testing#42` / `#41`) by providing a packaged CLI
714
+ whose `sync status --check` output is parseable by the canary harness.
715
+
716
+ ## [3.2.0rc11] - 2026-05-17
717
+
718
+ Closes the planning#16 backward-transition follow-up across the CLI release
719
+ surface:
720
+
721
+ - `spec-kitty backwards --note ...` now preserves the canonical
722
+ `backward rewind:` transition-reason prefix when callers supply a note,
723
+ keeping emitted `WPStatusChanged` events accepted by the shared contract and
724
+ SaaS ingestion.
725
+ - The resolved lockfile moves to `spec-kitty-events==5.1.0`, which ships the
726
+ review-rejection replay conformance fixture used to verify forced backward
727
+ transition handling.
728
+
729
+ ## [3.2.0rc10] - 2026-05-17
730
+
731
+ Rolls forward `3.2.0rc9` (never tagged) and adds the Teamspace MVP
732
+ canonical-lifecycle / sync-daemon launch-gate followups:
733
+
734
+ - **#1067 follow-up.** `core/mission_creation.py:create_mission_core`
735
+ now emits the canonical `SpecifyStarted` event immediately after
736
+ `MissionCreated`, referencing the freshly scaffolded `spec.md`
737
+ artifact path. Previously the constant was defined but never emitted,
738
+ so the canonical lifecycle stream skipped straight from
739
+ `MissionCreated` to `SpecifyCompleted` at setup-plan time — leaving
740
+ TeamSpace replay and the local dashboard blind to in-progress
741
+ specifying. Regression coverage in
742
+ `tests/specify_cli/core/test_mission_creation_specify_started.py`.
743
+ - **#1071 follow-up.** `sync status --check` and `sync doctor` now
744
+ surface the daemon PID/port and any orphan `run_sync_daemon`
745
+ processes (via the existing `scan_sync_daemons` helper), so operators
746
+ see cross-checkout daemon divergence without grepping `ps`.
747
+ `_kill_and_cleanup` now waits for the killed PID to actually exit
748
+ before clearing `DAEMON_STATE_FILE` — closing the AC bullet that
749
+ required version-mismatch replacement not leave older daemons live.
750
+ Module docstring updated to be honest about state-file-scoped
751
+ singleton semantics. Regression coverage in
752
+ `tests/cli/commands/test_sync_status_singleton_diagnostics.py` and
753
+ `tests/sync/test_daemon_replace_on_version_mismatch.py`.
754
+
755
+ Everything previously slated for rc9 (below) is included in rc10.
756
+
757
+ ## [3.2.0rc9] (rolled into rc10)
758
+
759
+ The `quality-devex-hardening-3-2-01KRJGKH` mission closes six epic-#822
760
+ tickets and lands the doctrine tactics, canonical-terminology glossary,
761
+ and code-patterns catalog that underpin the 3.2.0 stable release. Push-time
762
+ Sonar restoration (#825) is the only remaining operator-action gate.
763
+
764
+ ### Added
765
+
766
+ - **Stale-lane auto-rebase with conflict classification** (#771). New
767
+ `specify_cli.merge.conflict_classifier` rule pipeline (Validator-flavor;
768
+ 5 conflict shapes — pyproject deps union, `__init__.py` import-block
769
+ union, urls.py URL list union, `uv.lock` regenerate, default manual)
770
+ and `specify_cli.lanes.auto_rebase` orchestrator. `spec-kitty merge`
771
+ now attempts `git merge <mission-branch>` inside a stale lane worktree
772
+ before halting, auto-resolves additive-only conflicts via a union-merge
773
+ driver, regenerates `uv.lock` under a global file lock, runs
774
+ `ruff --fix --select I001` on touched `__init__.py` files, and reports
775
+ auto-resolved vs manual lanes. Semantic conflicts still halt with the
776
+ current actionable error. ADR
777
+ `architecture/2.x/adr/2026-05-14-1-stale-lane-auto-rebase-classifier-policy.md`
778
+ documents the fail-safe-default policy.
779
+ - **No-upgrade UX notification** (#740). New `core/upgrade_probe.py`
780
+ (PyPI probe + 2 s timeout-bounded channel classification:
781
+ ALREADY_CURRENT / AHEAD_OF_PYPI / NO_UPGRADE_PATH / UNKNOWN) and
782
+ `core/upgrade_notifier.py` (cache-aware emitter). Distinguishes
783
+ "already on the latest supported version" from "build/channel with no
784
+ upgrade path"; never blocks the CLI on network failure; rate-limited
785
+ to once per 24 h with `SPEC_KITTY_NO_UPGRADE_CHECK=1` opt-out; reuses
786
+ `should_check_version()` rather than introducing a parallel gate.
787
+ Cache-warm budget < 100 ms.
788
+ - **`secure-regex-catastrophic-backtracking` doctrine tactic** codifying
789
+ the four dangerous regex shapes, the rewrite ladder, and the escape
790
+ hatches. Every regex change now requires a wall-clock regression test
791
+ asserting linear runtime on adversarial input (default budget: < 100 ms
792
+ for 100 000 chars) per FR-008.
793
+ - **`chain-of-responsibility-rule-pipeline` doctrine tactic** with three
794
+ flavors (Validator / Transformer / Scorer) and the typed
795
+ `CanonicalRule` Protocol at
796
+ `src/specify_cli/migration/canonicalization.py` as the canonical
797
+ Transformer-flavor implementation.
798
+ - **Core code-patterns catalog** at
799
+ `architecture/2.x/04_implementation_mapping/code-patterns.md` listing
800
+ the recurring shapes used across the codebase (Rule-Based Pipeline,
801
+ Append-Only Event Log + Reducer, etc.) with doctrine cross-references.
802
+ - **Canonical-terminology glossary entries** for `characterization test`,
803
+ `pipeline-shape`, `rule pipeline`, `catastrophic backtracking`,
804
+ `structural debt`, `deliberate linearity`, and `Sonar quality gate`
805
+ in `.kittify/glossaries/spec_kitty_core.yaml`, each cross-referencing
806
+ the doctrine tactic or architectural document that codifies it
807
+ (FR-013).
808
+ - **Targeted symlink-fallback test** for the
809
+ `m_0_8_0_worktree_agents_symlink` migration's `OSError -> shutil.copy2`
810
+ fallback (#629). Runs on every CI pass via `monkeypatch`, not gated
811
+ by `windows_ci`. Covers both happy-fallback and dual-failure arms.
812
+ - **Behavior-driven coverage tests** for `cli/commands/charter.py`,
813
+ `cli/commands/charter_bundle.py`, `cli/commands/agent/config.py`,
814
+ `next/_internal_runtime/engine.py`, and `core/file_lock.py`
815
+ (Bucket A/B/C split; `CliRunner` + `tmp_path` real I/O; no
816
+ `mock.patch` on Path methods) per the `function-over-form-testing`
817
+ tactic (#595 workstream A).
818
+ - **Wall-clock regression guard** at
819
+ `tests/regressions/test_changelog_regex_redos.py` (20 tests; < 100 ms
820
+ on 100 000-line adversarial input) against future re-introduction of
821
+ the three Sonar-flagged patterns in `release/changelog.py` (pre-fixed
822
+ in PR #592) (#595 workstream B / FR-008).
823
+ - **`dev` dependency-group type stubs** (`types-jsonschema`,
824
+ `types-psutil`, `types-PyYAML`, `types-requests`, `types-toml`) in
825
+ `[dependency-groups] dev` so `uv run --with mypy mypy --strict`
826
+ resolves stubs from the default env.
827
+
828
+ ### Changed
829
+
830
+ - **mypy strict baseline** is now green for `src/specify_cli`,
831
+ `src/charter`, `src/doctrine` per decision moment
832
+ `DM-01KRJHT7QD7XQMY33Y5TDTQ80V` (option A — fix the existing target;
833
+ #971). Includes `doctor.py::_print_overdue_details` annotation fix
834
+ (typed `ShimRegistryReport` under `TYPE_CHECKING`) and
835
+ `_resolve_fail_on` return-type tightening to
836
+ `tuple[Severity | None, bool]`.
837
+ - **`_canonicalize_status_row` and `rebuild_state.py`** refactored onto
838
+ the typed `CanonicalRule` Protocol with characterization-test coverage
839
+ preceding the refactor commits (NFR-003 / `tdd-red-green-refactor`).
840
+ - **`doctor.py::mission_state`** refactored from cognitive complexity 57
841
+ to a CC 3 thin orchestrator plus per-mode runners
842
+ (`_validate_modes`, `_resolve_fail_on`, `_resolve_audit_root`,
843
+ `_emit_mission_state`, `_run_audit_mode`, `_run_mission_repair`,
844
+ `_run_teamspace_dry_run_mode`), with 17 characterization tests
845
+ guarding behavior across all three dispatch arms (`--audit`, `--fix`,
846
+ `--teamspace-dry-run`) (#595 workstream C).
847
+ - **`review.py` split into `cli/commands/review/` package** with sibling
848
+ files for cleaner ownership boundaries.
849
+
850
+ ### Fixed
851
+
852
+ - **`doctor.py:1092` `MissionRepairResult.findings` real-branch bug**:
853
+ `report` variable was dual-typed as `RepairReport` /
854
+ `RepoAuditReport` across mutually exclusive branches; runtime correct
855
+ but typing broken. Now closes mypy strict on `doctor.py`.
856
+ - **Pre-existing YAML scanner error** in
857
+ `.kittify/glossaries/spec_kitty_core.yaml` line 484: the `unsafe bypass`
858
+ definition contained an unquoted backtick-wrapped `bypass_used: true`
859
+ literal that `yaml.safe_load` interpreted as a nested mapping. The
860
+ definition value is now double-quoted; semantic content unchanged.
861
+ File now parses cleanly under `yaml.safe_load` and `ruamel.yaml`.
862
+
863
+ ### Documentation
864
+
865
+ - **Mission-review report** at
866
+ `kitty-specs/quality-devex-hardening-3-2-01KRJGKH/mission-review.md`
867
+ citing every doctrine tactic applied per WP and linking the
868
+ code-patterns catalog (NFR-006 / FR-012).
869
+ - **Post-merge audit report** at
870
+ `kitty-specs/quality-devex-hardening-3-2-01KRJGKH/post-merge-review.md` —
871
+ independent adversarial review confirming PASS WITH NOTES (no code
872
+ defects; release-readiness gated on three operator-action items:
873
+ Sonar hotspot rationale application, NFR-001 smoke execution, and the
874
+ push-time Sonar workflow flip). Documents FR coverage matrix, drift
875
+ findings, silent-failure scan, and security notes. All four
876
+ post-merge stale-assertion findings classified as false alarms.
877
+ - **NFR-001 release-stability smoke recipe** at
878
+ `kitty-specs/quality-devex-hardening-3-2-01KRJGKH/nfr-001-smoke-recipe.md`
879
+ for operator execution post-merge.
880
+ - **SonarCloud hotspot rationales** at
881
+ `kitty-specs/quality-devex-hardening-3-2-01KRJGKH/sonar-hotspot-rationales.md`
882
+ documenting the 4 encrypt-data hotspots for operator application in the
883
+ Sonar UI before push-time CI restoration (#825).
884
+ - **ADR `2026-05-14-1-stale-lane-auto-rebase-classifier-policy`** for #771.
885
+
886
+ ### Deferred
887
+
888
+ - **Push-time SonarCloud restoration** (#825 / FR-004): gated on the
889
+ operator applying the four hotspot rationales in the Sonar UI and the
890
+ Sonar quality gate flipping to `OK` (at audit time: ERROR —
891
+ `new_coverage` 58.9% vs threshold 80%; `new_security_hotspots_reviewed`
892
+ 0% vs threshold 100%). The
893
+ `.github/workflows/ci-quality.yml::sonarcloud` conditional remains on
894
+ `schedule || workflow_dispatch` until gate is OK. See
895
+ `kitty-specs/quality-devex-hardening-3-2-01KRJGKH/sonar-pre-flip-verification.txt`.
896
+
897
+ ### Removed
898
+
899
+ ## [3.2.0rc8] - 2026-05-14
900
+
901
+ 3.2.0rc8 rolls up the post-rc7 TeamSpace launch fixes and compatibility
902
+ cleanup needed before the final 3.2.0 cut. It includes defensive sync batching
903
+ for real edge-proxy limits, the Mission Dossier event-envelope migration for
904
+ `spec-kitty-events>=5.0.0`, and the small compatibility/quality fixes that
905
+ landed after rc7.
906
+
907
+ ### Changed
908
+
909
+ - Reduced the CLI's default sync batch decompressed byte budget to 256 KiB and
910
+ added a 512 KiB hard ceiling for over-generous server-advertised limits, so
911
+ large TeamSpace queue drains split into safe requests instead of relying on
912
+ HTTP 413 retry shrinkage.
913
+ - Migrated all four Mission Dossier event emitters to the namespaced envelope
914
+ required by `spec-kitty-events>=5.0.0`, including `namespace`,
915
+ `artifact_id`/`expected_identity`, content refs, and schema-compatible
916
+ diagnostics.
917
+ - Preserved legacy queued Mission Dossier events by migrating flat queued
918
+ payloads on drain when namespace data is available, and kept queue coalescing
919
+ scoped correctly across both legacy and namespaced payload shapes.
920
+
921
+ ### Fixed
922
+
923
+ - Restored agent profile list compatibility after the rc7 candidate.
924
+ - Reduced SonarCloud noise in path helper and charter synthesizer code without
925
+ changing runtime behavior.
926
+ - Fixed the deployed-dev TeamSpace sync canary failure where a 1200-event
927
+ backlog could cascade into 1000 HTTP 413 failures.
928
+ - Fixed SaaS ingestion rejection of CLI-emitted Mission Dossier artifact events
929
+ caused by the old flat payload shape being rejected with
930
+ `Additional properties are not allowed`.
931
+
932
+ ## [3.2.0rc7] - 2026-05-12
933
+
934
+ 3.2.0rc7 lands the `review-merge-gate-hardening-3-2-x-01KRC57C` mission
935
+ covering the remaining 3.2.x P1 release blockers plus a narrowed slice of the
936
+ charter encoding chokepoint, with post-merge remediation, SonarCloud
937
+ new-code gate cleanup, and CI portability fixes folded in.
938
+
939
+ ### Added
940
+
941
+ - New canonical `KittyInternalConsistencyError` base under
942
+ `src/kernel/errors.py`, with `CharterEncodingError` now inheriting from it
943
+ so any UI/CLI/TUI surface can render structured remediation uniformly.
944
+ - Reusable SonarCloud branch-review snippet at
945
+ `work/snippets/sonarcloud_branch_review.sh` (qualitygates/project_status +
946
+ measures/component_tree + issues/search via REST API).
947
+ - Architectural decision record
948
+ `architecture/adrs/2026-05-11-1-defer-391-structural-extraction-from-3-2-x.md`
949
+ deferring still-open `#391` sub-tickets (`#612` / `#613` / `#614`) from
950
+ 3.2.x scope, on top of the shared-package-boundary cutover precedent.
951
+
952
+ ### Changed
953
+
954
+ - Refactored `_bake_mission_number_into_mission_branch` in
955
+ `src/specify_cli/cli/commands/merge.py` from cognitive complexity 22 down
956
+ to a flat coordinator backed by six named predicate / effect helpers, with
957
+ no behavior change.
958
+ - Narrowed broad `except` clauses in `src/charter/_io.py`,
959
+ `src/charter/compiler.py`, and `src/charter/interview.py` so charter
960
+ encoding errors propagate to the canonical handler instead of being
961
+ swallowed.
962
+ - Wired `assert_pytest_available()` into the production review preflight in
963
+ `src/specify_cli/cli/commands/review/__init__.py`.
964
+
965
+ ### Fixed
966
+
967
+ - Pre-merge mission-review remediation of findings `D1`, `D2`, `D3`, `S1`,
968
+ and `S2` against the canonical issue matrix at
969
+ `kitty-specs/review-merge-gate-hardening-3-2-x-01KRC57C/issue-matrix.md`.
970
+ - Repaired 18 pre-existing test failures by extracting a shared
971
+ `setup_mocked_env()` context manager to `tests/mocked_env.py` and rewiring
972
+ the affected sites onto it.
973
+ - CI portability: `tests/integration/test_pytest_venv_concurrency.py` now
974
+ invokes pytest through `sys.executable` instead of relying on a bare `uv`
975
+ on `$PATH`, which is not guaranteed inside slow-test CI shards.
976
+ - Cleared the SonarCloud new-code coverage gate for the branch by adding 26
977
+ focused coverage tests under `tests/kernel/`, `tests/charter/`, and
978
+ `tests/core/test_paths_coverage_supplements.py`.
979
+ - Repaired dead links to the deleted `kitty-specs/_drafts/` directory in the
980
+ 3.2.x deferral ADR and the mission spec after the pre-PR cleanup pass.
981
+
982
+ ## [3.2.0rc6] - 2026-05-11
983
+
984
+ 3.2.0rc6 includes the post-rc5 TeamSpace migration enforcement and dry-run
985
+ compatibility fixes needed before publishing the next TeamSpace-ready CLI
986
+ candidate.
987
+
988
+ ### Changed
989
+
990
+ - Surface pending TeamSpace mission-state migration during `spec-kitty upgrade`
991
+ and require a clean migration before hosted TeamSpace connection flows.
992
+ - Allow the release compatibility gate to prove SaaS-supported dependency
993
+ versions when the candidate CLI declares a compatible range instead of an
994
+ exact pin.
995
+
996
+ ### Fixed
997
+
998
+ - Render user-friendly TeamSpace migration gate failures when mission-state
999
+ repair raises unexpected payload or filesystem errors.
1000
+ - Preserve SaaS-disabled sync opt-in behavior while still enforcing
1001
+ mission-state readiness for hosted sync paths.
1002
+ - Synthesize historical approval evidence during TeamSpace dry-run conversion
1003
+ so approved/done mission-state rows can validate against the canonical event
1004
+ contract.
1005
+
1006
+ ## [3.2.0rc5] - 2026-05-11
1007
+
1008
+ 3.2.0rc5 closes the remaining CLI-side TeamSpace migration readiness gaps found
1009
+ while rechecking the historical mission-state migration parent issue.
1010
+
1011
+ ### Changed
1012
+
1013
+ - Documented the deterministic historical mission-state repair contract and
1014
+ safe release sequencing used before any repository-wide repair is required.
1015
+
1016
+ ### Fixed
1017
+
1018
+ - Block TeamSpace dry-run/import envelope synthesis when audit findings still
1019
+ contain TeamSpace blockers, so legacy mission-state rows cannot bypass the
1020
+ readiness audit.
1021
+ - Reject historical mission-state sync batches with legacy status fields before
1022
+ network submission, preserving the local queue and returning remediation.
1023
+
1024
+ ## [3.2.0rc4] - 2026-05-11
1025
+
1026
+ 3.2.0rc4 tightens the TeamSpace release candidate against the published
1027
+ `spec-kitty-events` 5.0.0 contract and includes the latest migration rehearsal
1028
+ diagnostics.
1029
+
1030
+ ### Changed
1031
+
1032
+ - Tightened the CLI `spec-kitty-events` dependency to `>=5.0.0,<6.0.0` now
1033
+ that the 5.0.0 TeamSpace canonical event contract is published to PyPI
1034
+ (#978).
1035
+ - Included the TeamSpace dry-run row mapping diagnostics merged after rc3 so
1036
+ migration rehearsals can trace source rows to synthesized TeamSpace envelopes
1037
+ (#1014).
1038
+
1039
+ ## [3.2.0rc3] - 2026-05-06
1040
+
1041
+ 3.2.0rc3 fixes a TeamSpace dry-run compatibility gap found during the
1042
+ historical mission-state migration rehearsal.
1043
+
1044
+ ### Fixed
1045
+
1046
+ - Synthesized minimal repo evidence for historical done rows that only
1047
+ preserved review evidence, allowing `doctor mission-state --teamspace-dry-run`
1048
+ to validate those rows against the `spec-kitty-events` 5.0.0 payload contract
1049
+ (#997).
1050
+
1051
+ ## [3.2.0rc2] - 2026-05-05
1052
+
1053
+ 3.2.0rc2 adds the TeamSpace mission-state repair and validation surface needed
1054
+ before public TeamSpace import. The repair command is available now; the
1055
+ TeamSpace dry-run path requires `spec-kitty-events>=5.0.0` once that contract
1056
+ package is published.
1057
+
1058
+ ### Added
1059
+
1060
+ - Added deterministic `doctor mission-state --fix` repair for historical
1061
+ `kitty-specs/` state, including Git safety checks, migration manifests, legacy
1062
+ key cleanup, typed-row quarantine, lane normalization, and production
1063
+ `status.json` rematerialization (#980).
1064
+ - Added `doctor mission-state --teamspace-dry-run` to synthesize canonical
1065
+ TeamSpace envelopes in memory and validate them with the 5.0.0 event contract
1066
+ when available (#980).
1067
+ - Documented the distributed Git repair workflow for coordinated repository
1068
+ migration before TeamSpace launch (#980).
1069
+ - Added `doctor mission-state --include-fixtures` and the packaged
1070
+ mission-state survey fixture pack used by the TeamSpace readiness audit
1071
+ contract (#920, #922, #929).
1072
+ - Added an opt-in `TeamSpace Mission-State Readiness` GitHub Actions workflow
1073
+ that runs `doctor mission-state --audit --fail-on teamspace-blocker` and
1074
+ uploads the JSON audit artifact (#920, #934).
1075
+
1076
+ ### Changed
1077
+
1078
+ - Aligned CLI sync emission for `WPStatusChanged` and `MissionClosed` with the
1079
+ canonical TeamSpace event payload shape while keeping launch dry-run gated on
1080
+ the published events contract (#980).
1081
+ - `doctor mission-state --audit` JSON reports now expose TeamSpace blocker
1082
+ counts, and `--fail-on teamspace-blocker` gates import/sync readiness
1083
+ without requiring network access (#920, #934).
1084
+
1085
+ ## [3.2.0rc1] - 2026-05-05
1086
+
1087
+ 3.2.0rc1 is the first release candidate for the 3.2.0 line. It rolls up the
1088
+ workflow stabilization work from the alpha series and the final release
1089
+ confidence missions.
1090
+
1091
+ ### Fixed
1092
+
1093
+ - Hardened the mission status, review, and merge surfaces that block reliable
1094
+ implement-review-retrospect loops, including stale review verdict handling,
1095
+ finalized-board routing, canonical review feedback pointers, and first-class
1096
+ retrospective synthesis paths.
1097
+ - Fixed task-board progress semantics so done-only counts are no longer paired
1098
+ with unlabeled weighted readiness percentages; JSON status output now exposes
1099
+ explicit progress semantics and weighted readiness fields (#966).
1100
+ - Added an installed dependency drift guard for shared packages so release and
1101
+ review evidence fail when the active environment disagrees with `uv.lock` for
1102
+ `spec-kitty-events` or `spec-kitty-tracker` (#848).
1103
+ - Addressed final mission-review regressions around machine-facing contract
1104
+ output, sync-control side effects, and the charter golden-path E2E assertion.
1105
+
1106
+ ### Release Validation
1107
+
1108
+ - Closed the stale ruff blocker after `uv run ruff check src tests` passed on
1109
+ current `main` (#869).
1110
+ - Re-ran final local release gates from fresh `origin/main`: dependency sync,
1111
+ lock validation, installed shared-package drift guard, ruff, and the
1112
+ contract/architectural/release pytest batch all passed.
1113
+ - GitHub Actions on the release candidate base commit passed `CI Quality`,
1114
+ `ci-windows`, and `Protect Main Branch`.
1115
+
1116
+ ### Known Limitations
1117
+
1118
+ - The broad strict mypy gate remains tracked for follow-up in #971 and is not a
1119
+ blocking gate for this release candidate.
1120
+ - Hosted sync drain reliability has a known SaaS-sync limitation tracked in
1121
+ #889; do not treat this release candidate as proof of full hosted drain
1122
+ reliability until that issue is fixed.
1123
+
1124
+ ## [3.2.0a10] - 2026-05-04
1125
+
1126
+ 3.2.0a10 is a prerelease that stabilizes the implement-review-retrospect
1127
+ control loop after the 3.2.0 release-blocker triage.
1128
+
1129
+ ### Fixed
1130
+
1131
+ - Rejection transitions from `in_review` now derive or require structured
1132
+ rejected review results before mutating task state, closing the gap where
1133
+ reviewer feedback could fail without a durable review result (#960).
1134
+ - Review feedback pointers are canonicalized to `review-cycle://...` URIs and
1135
+ legacy `feedback://` references are normalized or resolved with a warning,
1136
+ preserving focused fix-mode context across rejection cycles (#962).
1137
+ - Written `review-cycle-N.md` artifacts now include required YAML frontmatter
1138
+ before they can be referenced, and invalid review artifacts fail closed
1139
+ instead of leaving dangling status pointers (#963).
1140
+ - `spec-kitty next` now treats finalized task boards and work-package lane
1141
+ state as authoritative in query mode without bypassing mutating runtime
1142
+ composition or retrospective terminus handling (#961).
1143
+ - Completed missions now have a usable `agent retrospect synthesize` path when
1144
+ `retrospective.yaml` is missing, with JSON output that distinguishes created,
1145
+ synthesized, insufficient-artifacts, and mission-not-found outcomes (#965).
1146
+
1147
+ ### Internal
1148
+
1149
+ - Added targeted regression coverage for the shared review-cycle domain,
1150
+ rejection transitions, canonical feedback resolution, finalized routing,
1151
+ retrospective synthesis, and the focused implement-review-retrospect smoke
1152
+ path.
1153
+
1154
+ ## [3.2.0a9] - 2026-05-03
1155
+
1156
+ 3.2.0a9 is a prerelease that adds mission-state audit diagnostics and hardens
1157
+ the 3.2.0 workflow reliability path for implementation, review, merge, and
1158
+ release-blocker triage.
1159
+
1160
+ ### Added
1161
+
1162
+ - Added a read-only mission-state audit engine for inspecting mission status,
1163
+ work package state, review artifacts, and lifecycle consistency without
1164
+ mutating project state.
1165
+ - Added reliability fixture coverage for branch, mission, review prompt, and
1166
+ sync workflows used by the 3.2.0 release-blocker tranche.
1167
+
1168
+ ### Fixed
1169
+
1170
+ - Implementation start is now idempotent across planned, claimed, and
1171
+ in-progress task states, preventing duplicate or inconsistent lifecycle
1172
+ transitions (#946).
1173
+ - Merge preflight now refreshes the target branch tracking ref before enforcing
1174
+ target-branch synchronization, so stale local `origin/main` state cannot
1175
+ allow an unsafe merge (#959).
1176
+ - Merge, review prompt, worktree ownership, sync finalization, and review
1177
+ artifact consistency checks now have tighter diagnostics and regression
1178
+ coverage for the 3.2.0 workflow reliability tranche (#959).
1179
+ - Command JSON output now avoids leaking non-serializable status event mocks in
1180
+ covered move-task paths, preserving strict JSON command contracts.
1181
+
1182
+ ### Internal
1183
+
1184
+ - Recorded the atomic work-package start lifecycle ADR and expanded regression
1185
+ coverage around status persistence, bootstrap seeding, merge preflight, and
1186
+ test sync isolation.
1187
+ - Restored CI release confidence by covering the previously failing
1188
+ `fast-tests-core-misc`, `integration-tests-merge`, `integration-tests-cli`,
1189
+ and `diff-coverage` gates.
1190
+
1191
+ ## [3.2.0a8] - 2026-05-01
1192
+
1193
+ 3.2.0a8 is a prerelease that hardens direct SaaS sync ingress around the
1194
+ Private Teamspace boundary. CLI sync side effects now resolve a canonical
1195
+ Private Teamspace target, rehydrate session membership once when needed, and
1196
+ skip direct ingress with a diagnostic instead of falling back to a shared team.
1197
+
1198
+ ### Fixed
1199
+
1200
+ - Direct sync ingress for `/api/v1/events/batch/` and `/api/v1/ws-token` now
1201
+ uses a strict Private Teamspace resolver and refuses shared-team fallbacks
1202
+ from stale `default_team_id`, `teams[0]`, or websocket state (#943).
1203
+ - Auth refresh and session rehydration now update team membership from
1204
+ `/api/v1/me`, recomputing `default_team_id` from the refreshed private team
1205
+ list instead of preserving stale shared defaults (#943).
1206
+ - `--json` command stdout remains parseable when SaaS sync cannot connect or
1207
+ cannot resolve a Private Teamspace; sync diagnostics route to stderr or
1208
+ structured logs rather than contaminating stdout (#943).
1209
+
1210
+ ### Internal
1211
+
1212
+ - Added strict resolver, sync call-site, websocket, offline queue, and
1213
+ strict-JSON regression coverage for the Private Teamspace ingress boundary.
1214
+ - Added mission review evidence for
1215
+ `private-teamspace-ingress-safeguards-01KQH03Y`.
1216
+
1217
+ ## [3.2.0a7] - 2026-05-01
1218
+
1219
+ 3.2.0a7 is a focused prerelease that bounds WebSocket sync startup and
1220
+ shutdown behavior. Short-lived agent commands now fail over to batch sync
1221
+ instead of hanging indefinitely when a local sync socket accepts the
1222
+ connection but never emits the initial snapshot.
1223
+
1224
+ ### Fixed
1225
+
1226
+ - WebSocket sync startup now has bounded open, initial snapshot, and close
1227
+ deadlines so `spec-kitty agent mission setup-plan` and other short-lived
1228
+ commands degrade to batch sync instead of blocking forever on a stalled
1229
+ sync socket (#936).
1230
+
1231
+ ### Internal
1232
+
1233
+ - Added regression coverage for a WebSocket connection that never sends the
1234
+ initial snapshot and for shutdown paths where the close handshake stalls.
1235
+ - Aligned existing Bandit suppressions in touched sync/readiness callsites so
1236
+ local and CI security scans recognize the intended safe dynamic SQL and
1237
+ localhost URL patterns.
1238
+
1239
+ ## [3.2.0a6] - 2026-04-30
1240
+
1241
+ 3.2.0a6 is a prerelease hardening sweep that restores the documented
1242
+ fresh-project golden path (`init` → charter `setup`/`generate`/
1243
+ `synthesize` → `next`), locks in strict JSON for covered `--json` commands
1244
+ under any SaaS state, fixes agent identity parsing and review-cycle
1245
+ accounting, adds paired profile-invocation lifecycle observability for
1246
+ `spec-kitty next`, and tightens merge/review/status recovery paths. The
1247
+ release introduces the new top-level `spec-kitty review` mission-review
1248
+ command and no new top-level runtime dependencies.
1249
+
1250
+ ### Fixed
1251
+
1252
+ - `charter bundle validate --json` now fail-closes on incomplete Charter
1253
+ synthesis state while preserving strict JSON stdout. Sidecar-only bundles,
1254
+ manifest-only bundles, incompatible bundle versions, missing provenance
1255
+ sidecars, dangling sidecar references, and synthesis manifest integrity
1256
+ failures all produce parseable failure envelopes with actionable
1257
+ `synthesis_state` details (#914, closes the final Phase 7 release gap for
1258
+ #469/#515).
1259
+ - Stamp `schema_version` and a `schema_capabilities` block in
1260
+ `.kittify/metadata.yaml` on `spec-kitty init` so a fresh project no
1261
+ longer requires hand-edits before subsequent CLI commands; existing
1262
+ schema fields are preserved (additive, idempotent) (#840, WP01).
1263
+ - Strict JSON envelope contract for covered `--json` commands: stdout is
1264
+ parseable by `json.loads` regardless of SaaS sync state (disabled,
1265
+ unauthorized, network-failed, success); sync/auth diagnostics route to
1266
+ stderr or nest inside the envelope (#842, WP02).
1267
+ - `WPMetadata.resolved_agent()` parses 4-segment colon-delimited agent
1268
+ strings (`tool:model:profile:role`) and preserves every supplied field
1269
+ through implement and review prompt rendering, with deterministic
1270
+ fallback for partial strings (#833, WP03).
1271
+ - Review-cycle counter advances exactly once per genuine reviewer
1272
+ rejection; reclaim/regenerate of an `implement` prompt no longer
1273
+ inflates the counter or writes a spurious `review-cycle-N.md`
1274
+ artifact (#676, WP04).
1275
+ - `spec-kitty next` writes paired `started`/`completed` profile-invocation
1276
+ lifecycle records keyed to the canonical mission step + action it
1277
+ issued, observable via `spec-kitty doctor invocation-pairing` (#843,
1278
+ WP05).
1279
+ - `charter generate` auto-tracks the produced `charter.md` and ensures
1280
+ the required `.gitignore` entries exist; `charter bundle validate`
1281
+ succeeds immediately afterwards with no operator `git add` between
1282
+ the two commands. Outside a git working tree, `generate` fails fast
1283
+ with an actionable error that names `git init` as the remediation
1284
+ (#841, WP06).
1285
+ - `charter synthesize` succeeds on a fresh project via the public CLI
1286
+ with no hand-seeded `.kittify/doctrine/`; the bounded fresh-project
1287
+ path materialises a minimal doctrine tree (`PROVENANCE.md`) so the
1288
+ shipped doctrine layer can supply content (#839, WP06).
1289
+ - `spec-kitty merge --abort` now clears the global merge lock, removes
1290
+ legacy merge-state files, aborts an in-progress Git merge when present,
1291
+ and remains idempotent when no merge is active (#903).
1292
+ - Approved/done work packages with stale `verdict: rejected` review
1293
+ artifacts are now surfaced across status views, including
1294
+ `spec-kitty agent tasks status` and `show_kanban_status()`. Review
1295
+ artifact lookup follows the real `tasks/<WP-slug>/review-cycle-N.md`
1296
+ layout, and `in_review` work packages now warn when reviewer movement
1297
+ stalls beyond the configured threshold (#904, #909).
1298
+ - Review lane-guard failures now name the planning branch and include a
1299
+ concrete `git show <planning-branch>:<path>` command for the first
1300
+ contaminated path, instead of a placeholder path (#905).
1301
+ - Work-package review definition-of-done coverage now includes real error
1302
+ path and artifact-deletion regressions, not only happy-path review
1303
+ behavior (#906).
1304
+ - Broad `except Exception` / BLE001 suppressions in touched runtime paths
1305
+ were audited and now carry inline justification where fail-open behavior
1306
+ is intentional (#907).
1307
+ - `spec-kitty review <mission>` is now a first-class mission-review CLI
1308
+ command with structured status/exit behavior for post-merge mission
1309
+ fidelity checks (#908).
1310
+
1311
+ ### Internal
1312
+
1313
+ - Consolidated golden-path E2E (`tests/e2e/test_charter_epic_golden_path.py`)
1314
+ rewritten to drive the fresh-project chain through the public CLI
1315
+ only — no hand seeding of `.kittify/doctrine/`, no edits to
1316
+ `.kittify/metadata.yaml`, no manual `git add` of charter artifacts
1317
+ between `generate` and `bundle validate`. Runs in well under the
1318
+ 120-second NFR-007 budget. Also exercises strict JSON parsability of
1319
+ `mission branch-context --json` (WP02 spot-check) and the `started`
1320
+ lifecycle record (WP05 spot-check) (WP07).
1321
+ - Governance setup docs (`docs/how-to/setup-governance.md`) note that
1322
+ `charter generate` now auto-tracks `charter.md`, removing any
1323
+ expectation that operators run `git add` between `generate` and
1324
+ `bundle validate` (WP07).
1325
+ - Added regression coverage for merge abort cleanup, stale rejected review
1326
+ artifacts, stalled in-review work packages, lane-guard remediation text,
1327
+ mission-review command behavior, review DoD deletion/error cases, and
1328
+ agent-shard coverage for status warning paths (#903-#909).
1329
+
1330
+ ### Tranche-2 acceptance pass (SC-001..SC-008)
1331
+
1332
+ - **SC-001 (Fresh-path completion)** — `tests/e2e/test_charter_epic_golden_path.py::test_charter_epic_golden_path` walks `init → charter interview → generate → bundle validate → synthesize → mission create → setup-plan → finalize-tasks → next` against a fresh project with no `.kittify/` hand-edits and no `git add` of charter artifacts. Passes locally in <20s.
1333
+ - **SC-002 (JSON parsability)** — `tests/integration/test_json_envelope_strict.py` (WP02) covers the SaaS state matrix; the consolidated E2E spot-checks `mission branch-context --json` via `json.loads(stdout)`.
1334
+ - **SC-003 (Identity preservation rate)** — WP03 unit + integration tests cover colon arities 1–4 and assert `model`/`profile_id`/`role` in rendered prompts.
1335
+ - **SC-004 (Review-cycle precision)** — WP04 tests assert the counter is unchanged across ≥3 reclaim/regenerate runs and advances by exactly 1 on a real rejection.
1336
+ - **SC-005 (Lifecycle observability)** — `tests/integration/test_next_lifecycle_records.py` (WP05) covers ≥5 issuances with mid-cycle orphan; the consolidated E2E asserts at least one `started` record after `next` issues an action and that the `canonical_action_id` matches the issued step id.
1337
+ - **SC-006 (Charter parity rate)** — `tests/specify_cli/cli/commands/test_charter_generate_autotrack.py` (WP06) covers the auto-track + non-git fail-fast contract; the consolidated E2E exercises `generate → bundle validate` with no intervening git ops.
1338
+ - **SC-007 (Documentation/CLI agreement)** — `docs/how-to/setup-governance.md` updated; no documented governance-setup flow contains a `git add charter.md` step between `charter generate` and `charter bundle validate`.
1339
+ - **SC-008 (Release-surface discipline)** — Diff inventory: one new top-level public CLI command, `spec-kitty review`, added for mission-review fidelity checks (#908); one new `spec-kitty doctor invocation-pairing` subcommand under the existing `doctor` group for lifecycle observability; zero new top-level runtime dependencies in `pyproject.toml` `[project.dependencies]`.
1340
+
1341
+ ## [3.2.0a5] - 2026-04-27
1342
+
1343
+ ### Fixed
1344
+
1345
+ - CLI auth now consumes the server Tranche 2 contract end to end: logout posts refresh tokens to `/oauth/revoke`, local credential cleanup failures are reported truthfully, refresh handles benign 409 replay without resubmitting a spent token, and `auth doctor --server` checks `/api/v1/session-status` with safe re-authentication guidance (#902).
1346
+ - Fix `spec-kitty upgrade` silently leaving projects in PROJECT_MIGRATION_NEEDED state by stamping `schema_version` after metadata save (#705, WP01).
1347
+ - `spec-kitty init` in a non-git directory now prints an actionable "run `git init`" message (#636, WP05).
1348
+ - Suppress misleading "shutdown / final-sync" red error lines after a successful `spec-kitty agent mission create --json` payload (#735, WP06).
1349
+ - Deduplicate "Not authenticated, skipping sync" / "token refresh failed" diagnostics to at most once per CLI invocation (#717, WP06).
1350
+ - Fix `read_events()` raising `KeyError('wp_id')` on `DecisionPointOpened` / `DecisionPointResolved` events that share `status.events.jsonl` with lane-transition events. Restores `finalize-tasks` / `materialize` / dashboard for any mission that uses the Decision Moment Protocol (#830, WP08).
1351
+
1352
+ ### Changed
1353
+
1354
+ - Loosen `.python-version` from a hard `3.13` pin to `3.11` (the floor declared by `pyproject.toml`) and restore `mypy --strict` cleanliness on `mission_step_contracts/executor.py` (#805, WP03).
1355
+
1356
+ ### Removed
1357
+
1358
+ - Retire the deprecated `/spec-kitty.checklist` command surface from every supported agent's rendered output. The canonical requirements checklist at `kitty-specs/<mission>/checklists/requirements.md` is unaffected (#815, supersedes #635, WP04).
1359
+
1360
+ ### Internal
1361
+
1362
+ - Add regression tests confirming `--feature` aliases stay hidden from `--help` while remaining accepted (#790, WP07).
1363
+ - Add regression test confirming `spec-kitty agent decision` command shape stays consistent across docs / help / skill snapshots (#774, WP07).
1364
+
1365
+ ### Added
1366
+
1367
+ - **Frontend Freddy agent profile** — browser-side implementer specialising in HTML/CSS/JavaScript/TypeScript, component frameworks (React, Vue, Svelte), WCAG 2.1 accessibility, Core Web Vitals performance, and frontend testing (vitest, Playwright). Specialises from `implementer-ivan`. Self-review protocol enforces lint, type-check, unit/component tests, e2e smoke, axe accessibility gate, and bundle budget. Avoidance boundary explicitly names Node Norris's server-side domain.
1368
+ - **Node Norris agent profile** — server-side Node.js implementer specialising in HTTP APIs (Express/Fastify/NestJS), async/Promise discipline, streaming, npm security (`npm audit`), and integration testing (supertest). Specialises from `implementer-ivan`. Avoidance boundary explicitly names Frontend Freddy's browser-rendering domain. The two profiles are mutually exclusive by design.
1369
+ - **BDD paradigm** (`behaviour-driven-development`) — encodes BDD as a three-phase collaboration practice: Discovery (Three Amigos conversations), Formulation (Given/When/Then specifications), and Automation (executable living documentation). References `DIRECTIVE_034` and `DIRECTIVE_037`.
1370
+ - **BDD Scenario Lifecycle procedure** (`bdd-scenario-lifecycle`) — covers the Formulation → Automation → Maintenance phases that follow an Example Mapping Workshop. Toolchain-agnostic (Cucumber-JVM, Cucumber-JS, Behave, SpecFlow). Encodes four anti-patterns: imperative Gherkin, rubber-stamp scenarios, shared mutable state, and orphaned step definitions.
1371
+ - **New tactics:**
1372
+ - `reference-architectural-patterns` — structured selection of named reference patterns (Layered, Hexagonal, Event-Driven, CQRS, Microservices, Modular Monolith) scored against coupling, scalability, and operational complexity constraints.
1373
+ - `development-bdd` — architecture-level BDD tactic for expressing observable behavioral contracts at system boundaries before implementation; distinct from the existing `behavior-driven-development` technique tactic.
1374
+ - `bug-fixing-checklist` — language-agnostic test-first defect resolution: write a reproduction test before touching production code.
1375
+ - `test-readability-clarity-check` — dual-perspective reconstruction check: read only tests, reconstruct system understanding, compare against spec to surface documentation gaps.
1376
+ - `code-documentation-analysis` — brownfield boundary discovery by extracting and clustering domain terminology from code and documentation artifacts. Contributes foundational analysis tactics toward the brownfield investigation skill described in [#666](https://github.com/Priivacy-ai/spec-kitty/issues/666).
1377
+ - `terminology-extraction-mapping` — systematic extraction and relationship mapping of domain terms across multiple sources to produce a maintainable glossary. Complementary artifact to the bounded-context linguistic discovery approach targeted by [#666](https://github.com/Priivacy-ai/spec-kitty/issues/666).
1378
+ - **Tactic directory normalization** — shipped tactics reorganised into four category subdirectories: `testing/` (15 tactics), `analysis/` (14), `communication/` (7), `architecture/` (14). Cross-cutting tactics remain in the `shipped/` root. The existing `rglob` loader requires no changes.
1379
+ - **`tasks-finalize` command skill** — added to `CANONICAL_COMMANDS` in the agent skills pipeline and deployed to `.agents/skills/spec-kitty.tasks-finalize/`. Closes the gap where this command was missing from Codex/Vibe skill packages.
1380
+
1381
+ ### Changed
1382
+
1383
+ - **Profile enrichment** — four existing profiles updated with additive tactic and paradigm references:
1384
+ - `implementer-ivan`: `bug-fixing-checklist` tactic reference (propagates to all specialist profiles via `resolve_profile()` union merge).
1385
+ - `reviewer-renata`: `test-readability-clarity-check` and `bdd-scenario-lifecycle` tactic references; `behaviour-driven-development` paradigm in context sources.
1386
+ - `architect-alphonso`: `development-bdd` tactic reference; BDD paradigm, example-mapping-workshop, and bdd-scenario-lifecycle in additional context sources.
1387
+ - `java-jenny`: `behavior-driven-development` and `bdd-scenario-lifecycle` tactic references; `bdd-scenarios` self-review step (Cucumber-JVM + Serenity BDD gate).
1388
+ - **`behavior-driven-development` tactic enriched** — extended `notes` with a toolchain landscape section (Cucumber family, Playwright, Selenium, Serenity BDD, custom DSLs; source: `patterns.sddevelopment.be/primers/toolchain-and-automation/bdd`); three new `failure_modes` (rubber-stamp scenarios, shared mutable state between scenarios, orphaned step definitions); cross-references to the new BDD paradigm and procedure.
1389
+ - **`tactic-references` union-merged in `resolve_profile()`** — `tactic-references` added to `_LIST_FIELDS` in `src/doctrine/agent_profiles/repository.py`. Specialist profiles now inherit base-profile tactic references via `_union_merge` at resolution time rather than overriding them.
1390
+ - **Tactic compliance test extended** — `test_tactic_compliance.py` `ARTIFACT_DIRS` now includes `procedure` and `paradigm` types, enabling cross-type reference validation for tactics that reference procedures or paradigms.
1391
+ - **Shared package boundary cutover** (mission `shared-package-boundary-cutover-01KQ22DS`) — `spec-kitty-runtime` is no longer a dependency of `spec-kitty-cli`. The CLI now owns its own runtime internally under `src/specify_cli/next/_internal_runtime/`; `spec-kitty next` works from a clean install of `spec-kitty-cli` alone. `spec-kitty-events` and `spec-kitty-tracker` are external PyPI dependencies consumed via their public import surfaces (`spec_kitty_events`, `spec_kitty_tracker`). The vendored events tree under `src/specify_cli/spec_kitty_events/` has been removed (~23 kLoC). Developers who relied on editable cross-package overrides should consult [`docs/development/local-overrides.md`](docs/development/local-overrides.md); operators upgrading from a pre-cutover release should consult [`docs/migration/shared-package-boundary-cutover.md`](docs/migration/shared-package-boundary-cutover.md). Decision rationale recorded in [ADR 2026-04-25-1](architecture/2.x/adr/2026-04-25-1-shared-package-boundary.md).
1392
+
1393
+ ### Removed
1394
+
1395
+ - **`constraints.txt`** — the file existed solely to paper over a transitive pin conflict with the retired `spec-kitty-runtime` package and is no longer needed.
1396
+
1397
+ ### Fixed
1398
+
1399
+ - `spec-kitty agent config list/status` now checks global command roots for slash-command agents instead of reporting missing project-local command directories after `init`.
1400
+ - `spec-kitty agent config add/sync --create-missing` no longer recreates retired project-local command directories for globally managed slash-command agents.
1401
+ - `spec-kitty agent config remove/sync` now removes only the managed command surface for project-local agent directories, preserving unrelated files such as `.github/workflows/`.
1402
+
1403
+ ### Added — Documentation mission composition rewrite (#502, #461, Phase 6 WP6.4)
1404
+
1405
+ - Documentation mission now runs on the StepContractExecutor composition substrate, mirroring research (#504) and software-dev (#503). The runtime resolves the new composed step contracts ahead of the legacy `mission.yaml` workflow via the existing `_resolve_runtime_template_in_root` precedence — no loader changes were required.
1406
+ - New runtime sidecar templates: `src/specify_cli/missions/documentation/mission-runtime.yaml` and `src/doctrine/missions/documentation/mission-runtime.yaml`.
1407
+ - Six shipped step contracts under `src/doctrine/mission_step_contracts/shipped/documentation-{discover,audit,design,generate,validate,publish}.step-contract.yaml`.
1408
+ - Six action doctrine bundles under `src/doctrine/missions/documentation/actions/{discover,audit,design,generate,validate,publish}/` (governance guidelines + directive/tactic indices).
1409
+ - DRG action nodes and edges for `action:documentation/{discover,audit,design,generate,validate,publish}` in `src/doctrine/graph.yaml`.
1410
+ - Composition wiring in `src/specify_cli/next/runtime_bridge.py`: `_COMPOSED_ACTIONS_BY_MISSION["documentation"]` and a fail-closed guard branch in `_check_composed_action_guard()` raising a structured error for unknown documentation actions. `src/specify_cli/mission_step_contracts/executor.py` adds six `_ACTION_PROFILE_DEFAULTS` entries (`researcher-robbie` for discover/audit, `architect-alphonso` for design, `implementer-ivan` for generate, `reviewer-renata` for validate/publish).
1411
+ - Real-runtime integration walk at `tests/integration/test_documentation_runtime_walk.py` proving SC-001 / SC-003 / SC-004 from a freshly initialized temp repo.
1412
+
1413
+ #### Backward compatibility
1414
+
1415
+ - The legacy `src/specify_cli/missions/documentation/mission.yaml` and `src/doctrine/missions/documentation/mission.yaml` files remain on disk for backward reference. Existing documentation-mission projects that authored against the legacy workflow continue to work; runtime template resolution prefers the new `mission-runtime.yaml` ahead of the legacy file via the existing precedence in `_resolve_runtime_template_in_root` (no loader changes in this PR).
1416
+
1417
+ ### Added
1418
+
1419
+ - **Upgrade compatibility planner** — `spec-kitty upgrade` now separates CLI
1420
+ update guidance from current-project schema compatibility. New flags
1421
+ `--cli`, `--project`, `--yes`, and `--no-nag` support CLI-only guidance,
1422
+ project-only migrations, non-interactive confirmation, and explicit nag
1423
+ suppression. `spec-kitty upgrade --dry-run --json` emits the stable
1424
+ compatibility-plan contract for automation.
1425
+ - **Host-surface parity matrix** at `docs/host-surface-parity.md` — authoritative record of how each of the 15 supported host surfaces teaches the advise/ask/do governance-injection contract. Closes the remaining `#496` host-surface breadth rollout.
1426
+ - **Mode of work runtime derivation** — every `advise`, `ask`, `do` invocation now records its `mode_of_work` (`advisory`, `task_execution`, `mission_step`, `query`) on the `started` event. Derivation is from the CLI entry command.
1427
+ - **Correlation links** — `spec-kitty profile-invocation complete` accepts `--artifact <path>` (repeatable) and `--commit <sha>` (singular); each appends an additive event to the invocation JSONL for single-file request→artifact/commit correlation.
1428
+ - **SaaS read-model policy** at `src/specify_cli/invocation/projection_policy.py` — typed module mapping `(mode, event)` to projection rules. Documented in `docs/trail-model.md`.
1429
+ - **Tier 2 SaaS projection decision** — decisively documented as deferred in `docs/trail-model.md`. Tier 2 evidence stays local-only in 3.2.x.
1430
+ - **README Governance layer subsection** — entry point for operators discovering the advise/ask/do surface.
1431
+ - **Decision Moment Ledger (V1)** — new `spec-kitty agent decision` subgroup with five
1432
+ subcommands: `open`, `resolve`, `defer`, `cancel`, `verify`. Mints ULID `decision_id`s
1433
+ at interview ask-time, writes paper trail under `kitty-specs/<mission>/decisions/`
1434
+ (`index.json` + `DM-<id>.md`), and appends `DecisionPointOpened(interview)` /
1435
+ `DecisionPointResolved(interview)` events to `status.events.jsonl`. Local-only;
1436
+ no SaaS sync required.
1437
+ - **Charter integration** — `spec-kitty charter interview` now calls `decision open`
1438
+ before each question and the appropriate terminal command after each answer.
1439
+ `answers.yaml` behavior is unchanged.
1440
+ - **Specify + Plan template updates** — `specify.md` and `plan.md` source templates
1441
+ gain a Decision Moment Protocol section instructing the LLM to call decision
1442
+ subcommands at ask/resolution time and write `<!-- decision_id: <id> -->` anchors
1443
+ for deferred decisions.
1444
+ - **`decision verify` gate** — scans `spec.md` / `plan.md` for
1445
+ `[NEEDS CLARIFICATION: ...] <!-- decision_id: <id> -->` sentinels and
1446
+ cross-checks against the decisions index. Exits non-zero on drift
1447
+ (`DEFERRED_WITHOUT_MARKER`, `MARKER_WITHOUT_DECISION`, `STALE_MARKER`).
1448
+ - **Widen Mode (#758)** — `spec-kitty agent decision widen` + `resolve --from-widen`
1449
+ lifecycle. Writes `widen-pending.jsonl`, emits `DecisionPointWidened` events,
1450
+ integrates with charter/specify/plan widen affordances. Surfaces decision
1451
+ write-back errors explicitly instead of silently suppressing them.
1452
+
1453
+ ### Changed
1454
+
1455
+ - Project schema compatibility is now enforced by the centralized compat
1456
+ planner. Out-of-date CLI notices are passive and throttled; incompatible
1457
+ project schemas block unsafe commands with exit codes 4, 5, or 6 and exact
1458
+ remediation guidance.
1459
+ - `spec-kitty profile-invocation complete --evidence` is now mode-gated: rejected on `advisory` / `query` invocations with `InvalidModeForEvidenceError`. Rejection occurs before any write; the invocation stays open.
1460
+ - `_propagate_one` consults the new projection policy after the sync-gate and authentication lookup. Existing `task_execution` / `mission_step` projection behaviour is preserved exactly.
1461
+ - Dashboard user-visible wording: the mission selector, current-mission header, overview heading, analysis heading, and empty-state prompt now read "Mission Run" / "mission" instead of "Feature". Backend identifiers (CSS classes, HTML IDs, cookie keys, API route segments, JSON field names) are unchanged.
1462
+ - **`spec-kitty-events` bumped to `==4.0.0`** — vendored copy at
1463
+ `src/specify_cli/spec_kitty_events/` refreshed. Introduces
1464
+ `DecisionPointOpenedInterviewPayload`, `DecisionPointResolvedInterviewPayload`,
1465
+ `OriginSurface.PLANNING_INTERVIEW` (`origin_surface: planning_interview`),
1466
+ `OriginFlow` enum (values `specify`, `plan`), `DecisionPointWidened`, and
1467
+ `TerminalOutcome` enum.
1468
+ - **`[tool.uv.sources]`** redirects `spec-kitty-events` to `../spec-kitty-events/`
1469
+ in editable mode for monorepo development. Dev-only; ignored by pip / PyPI.
1470
+
1471
+ ### Deferred
1472
+
1473
+ - `spec-kitty explain` (issue #534) remains deferred to Phase 5 pending DRG glossary addressability (#499, #759).
1474
+
1475
+ ### Out of scope (tracked separately)
1476
+
1477
+ - SaaS sync projection for widened decisions — tracked in spec-kitty-saas#110, #111.
1478
+ - Tasks-phase interview support — future mission.
1479
+
1480
+ ### Migration notes
1481
+
1482
+ **No operator action required for routine upgrade.** The trail model is additive:
1483
+
1484
+ - Pre-mission invocation records (no `mode_of_work`) continue to accept `--evidence` and project under legacy `task_execution` rules.
1485
+ - Existing SaaS dashboards see no change for `task_execution` / `mission_step` traffic.
1486
+ - New advisory events now appear in the SaaS timeline as minimal entries without body — this is a deliberate behaviour change documented in the SaaS Read-Model Policy table.
1487
+
1488
+ ### Added (Phase 4 trail follow-on)
1489
+
1490
+ - `docs/trail-model.md`: Formal operator documentation for the Phase 4 trail contract,
1491
+ mode-of-work taxonomy, tier promotion rules, SaaS projection policy, intake positioning,
1492
+ and explain deferral (WP04).
1493
+ - "Governance context injection" section in `.agents/skills/spec-kitty.advise/SKILL.md`
1494
+ for Codex/Vibe hosts, enabling Tier 1 trail recording without host-side SaaS auth (WP03).
1495
+ - "Standalone invocations (outside missions)" section in
1496
+ `src/doctrine/skills/spec-kitty-runtime-next/SKILL.md` for Claude Code and gstack hosts,
1497
+ covering when to open an invocation record outside the mission workflow (WP04).
1498
+ - End-to-end invocation integration tests in
1499
+ `tests/specify_cli/invocation/test_invocation_e2e.py` covering Tier 1 JSONL write,
1500
+ complete-event append, local-only list read, and sync-gate suppression (WP05).
1501
+
1502
+ ### Fixed
1503
+
1504
+ - `propagator.py` (`_propagate_one`): Invocation events are now suppressed when
1505
+ `effective_sync_enabled = False`, even when the user is authenticated. Previously,
1506
+ sync-disabled checkouts could still emit SaaS events if a WebSocket client was
1507
+ connected (WP01).
1508
+ - `executor.complete_invocation` now calls `promote_to_evidence()` when the
1509
+ `--evidence` flag is supplied, enabling correct Tier 2 artifact promotion (WP03).
1510
+
1511
+ ### Changed
1512
+
1513
+ - Issue #496: Priority-surface slice complete in 3.2.x (Claude Code via
1514
+ `spec-kitty-runtime-next` doctrine skill, Codex CLI via SKILL.md governance context
1515
+ injection). Remaining 9 surfaces tracked in #496 for a follow-on patch or Phase 5.
1516
+ - Issue #534: `spec-kitty explain` explicitly deferred to Phase 5 (requires DRG
1517
+ glossary addressability, issue #499). A partial implementation without glossary
1518
+ citations would be misleading.
1519
+
1520
+ ## [3.2.0a4] - 2026-04-21
1521
+
1522
+ ### Added
1523
+
1524
+ - **Mutation-aware test suites** — kill-the-survivor passes for `doctrine.resolver`, `doctrine.agent_profiles`, `doctrine.missions`, `doctrine.shared`, and `specify_cli.compat.registry`. Achieves 75–85 % kill rates per module; residuals documented as trampoline-equivalent, unloadable, or functionally equivalent in `docs/development/mutation-testing-findings.md`.
1525
+ - `_OPTIONAL_KEYS` / `_ALL_KNOWN_KEYS` constants in `specify_cli.compat.registry._validate_entry` — unknown YAML keys now raise `RegistrySchemaError` before `ShimEntry(**entry)` can raise `TypeError`.
1526
+ - `model_dump(mode="json")` on WP frontmatter serialization in `finalize_tasks` — prevents `Path` objects from reaching YAML serialization.
1527
+
1528
+ ### Added
1529
+
1530
+ ## [3.2.0a3] - 2026-04-21
1531
+
1532
+ ### Fixed
1533
+
1534
+ - Release publish no longer hard-fails when the private `SPEC_KITTY_SAAS_READ_TOKEN` secret is absent. The pipeline still enforces runtime drift and exact wheel installability, and it runs the SaaS consumer-contract check whenever the private compatibility reference can actually be fetched.
1535
+
1536
+ ## [3.2.0a2] - 2026-04-21
1537
+
1538
+ ### Changed
1539
+
1540
+ - `spec-kitty-runtime` is now pinned to `0.4.4`, matching the corrected published runtime line rather than the broken `0.4.3` metadata.
1541
+ - Release readiness and tag-time publish pipelines now verify shared-package drift, candidate-wheel installability with plain `pip`, and candidate compatibility against the SaaS consumer contract before publish.
1542
+
1543
+ ### Removed
1544
+
1545
+ - Temporary `tool.uv.override-dependencies` masking for `spec-kitty-events`. Release validation now requires the published runtime metadata to resolve cleanly without local overrides.
1546
+
1547
+ ## [3.2.0a1] - 2026-04-20
1548
+
1549
+ ### Added
1550
+
1551
+ - **Mutation testing** — `mutmut` 3.5.0 added to `[project.optional-dependencies.test]` and configured in `[tool.mutmut]` as a **local-only** quality gate. Includes a curated doctrine set: `tactic:mutation-testing-workflow`, `styleguide:mutation-aware-test-design`, and language-specific toolguides for Python (`mutmut`) and TypeScript (`stryker`), all anchored to `DIRECTIVE_034` in the DRG graph. ADR `2026-04-20-1-mutation-testing-as-local-only-quality-gate.md` records the decision, the sandbox constraints, and the two-marker exclusion taxonomy.
1552
+ - **`non_sandbox` / `flaky` pytest markers** — registered in `pytest.ini` and `pyproject.toml[tool.pytest.ini_options].markers`. Per-file `--ignore=` entries for sandbox-incompatible tests have been migrated to module-level `pytestmark` declarations; `[tool.mutmut].pytest_add_cli_args` now deselects via `-m "not non_sandbox and not flaky ..."`. Directory-level ignores remain only where tests fail during pytest *collection* (import errors that markers cannot intercept). 1 test is currently marked `flaky` as debt to be root-caused.
1553
+ - **`docs/how-to/run-mutation-tests.md`** — Contributor how-to covering local `mutmut run` invocation, the kill-the-survivor workflow, equivalent-mutant suppression, and the `non_sandbox` / `flaky` marker taxonomy.
1554
+ - Charter synthesizer now has a real harness-owned operator path: the new generated-artifact adapter reads agent-authored YAML from `.kittify/charter/generated/` and promotes validated doctrine into the live `.kittify/doctrine/` tree.
1555
+ - `spec-kitty charter resynthesize --list-topics` now lists valid project-artifact selectors, DRG URNs, and interview-section selectors, including hyphenated aliases for section names.
1556
+ - `spec-kitty charter status --provenance` now reports synthesis generation state, evidence summary, manifest health, and per-artifact provenance visibility alongside the older charter sync surface.
1557
+ - ADR `2026-04-19-6-harness-owned-generated-artifact-charter-handoff.md` now records the host-side charter handoff contract: exact file layout, identity rules, and CLI sequence.
1558
+ - **`architecture/2.x/06_migration_and_shim_rules.md`** — Authoritative compatibility shim lifecycle
1559
+ rulebook covering 4 rule families: schema/version gating, bundle/runtime migration authoring contract,
1560
+ shim lifecycle (with copy-paste template), and removal plans/registry contract. Required reading for
1561
+ all future extraction missions (#615).
1562
+ - **`architecture/2.x/shim-registry.yaml`** — Machine-readable registry of all known compatibility
1563
+ shims. Starts empty (zero-shim baseline confirmed at mission-615 start). Future shims must be
1564
+ registered here before merging. Validated by `spec-kitty doctor shim-registry` (#615).
1565
+ - **`spec-kitty doctor shim-registry`** — New CI enforcement subcommand that classifies each
1566
+ registered shim as `pending`, `overdue`, `grandfathered`, or `removed`. Exits 1 when any shim
1567
+ is overdue; exits 2 on configuration error. Supports `--json` for machine-readable CI output (#615).
1568
+
1569
+ ### Changed
1570
+
1571
+ - `spec-kitty charter synthesize` and `spec-kitty charter resynthesize` now default to the generated-artifact adapter. `--adapter fixture` remains available only for deterministic offline regression runs.
1572
+ - `spec-kitty charter synthesize --dry-run` is now a real stage-and-validate pass: it writes the staged artifact set, runs project DRG validation and neutrality gating, and only skips the final promote step.
1573
+ - Shared contract-library pins now align with the current released pair consumed across the CLI and SaaS surfaces: `spec-kitty-events==3.2.0` and `spec-kitty-tracker==0.4.2`.
1574
+ - Release pipeline now generates and attaches a CycloneDX SBOM (`sbom.cdx.json`) to every GitHub Release. The SBOM is an environment-snapshot of the fully resolved dependency tree at build time, making it straightforward for enterprise users to ingest the inventory into tools like Dependency-Track for continuous CVE monitoring without rescanning the package themselves.
1575
+
1576
+ ### Fixed
1577
+
1578
+ - Directive provenance now records canonical URNs (`directive:PROJECT_<NNN>`) instead of slug-based placeholders, which restores correct directive filenames, provenance reload, and `directive:PROJECT_<NNN>` resynthesis.
1579
+ - Bounded resynthesis now preserves evidence inputs end-to-end, so regenerated provenance entries keep the correct `evidence_bundle_hash` and `corpus_snapshot_id`.
1580
+ - Generated-artifact synthesis errors now point to the exact expected file path and exact expected artifact id, which makes harness handoff mistakes easier to diagnose.
1581
+ - Charter neutrality lint now scans mission `templates/` directories in addition to `command-templates/`, so banned terms in generic mission prompt files are caught by the default repo scan (#653 tripwire).
1582
+ - Bump `requests` floor to `>=2.33.0` (CVE-2026-25645).
1583
+ - Bump `pytest` floor to `>=9.0.3` (CVE-2025-71176).
1584
+ - Pin `pygments>=2.20.0` explicitly to resolve CVE-2026-4539 in the transitive dependency pulled in via `rich`.
1585
+ - `auth refresh` now treats `HTTP 401` responses with `invalid_grant` or `session_invalid` error codes identically to `HTTP 400`, and clears the locally stored session on server-side refresh rejection so `auth status` no longer reports stale credentials as authenticated.
1586
+
1587
+ ### Removed
1588
+
1589
+ - **`specify_cli.charter` compatibility shim** — The re-export shim at `src/specify_cli/charter/` has been
1590
+ removed. External code importing `specify_cli.charter.*` must migrate to the canonical package:
1591
+ `from charter import <name>`. See
1592
+ [architecture/2.x/05_ownership_map.md](architecture/2.x/05_ownership_map.md) for the full
1593
+ charter slice entry and the reference exemplar pattern. Closes #611.
1594
+
1595
+ ## [3.1.8] - 2026-04-29
1596
+
1597
+ ### Fixed
1598
+
1599
+ - Dashboard feature polling now tolerates `/api/features` error responses and
1600
+ malformed payloads without crashing on an undefined `features` array, so the
1601
+ UI no longer gets stuck loading when feature scanning fails.
1602
+ - OpenCode global command installation now targets OpenCode's config command
1603
+ directory, honoring `OPENCODE_CONFIG_DIR` and `XDG_CONFIG_HOME` before
1604
+ falling back to `~/.config/opencode/commands`.
1605
+
1606
+ ## [3.1.7] - 2026-04-28
1607
+
1608
+ ### Fixed
1609
+
1610
+ - Compact charter context now preserves charter section anchors, directive IDs,
1611
+ and tactic IDs so follow-on agent prompts keep project charter rules in LLM
1612
+ context after bootstrap load.
1613
+ - Review claims now enter the canonical `in_review` lane while still
1614
+ recognizing legacy review-claim events, avoiding review-loop false blocks.
1615
+ - Merge completion now keeps post-merge status transitions stable and avoids
1616
+ duplicate done/approved emissions.
1617
+ - `spec-kitty intake` now caps oversized plan files, ignores out-of-repo and
1618
+ symlinked auto-detected plans, and writes mission brief/provenance files
1619
+ atomically.
1620
+ - `auth refresh` now treats `HTTP 401` responses with `invalid_grant` or
1621
+ `session_invalid` error codes like `HTTP 400`, and clears locally stored
1622
+ sessions after server-side refresh rejection.
1623
+ - Local dashboard mission selectors now sort by mission recency instead of
1624
+ lexical slug order.
1625
+ - `agent config list/status/add/sync/remove` now respects global command roots
1626
+ for slash-command agents and avoids recreating retired project-local command
1627
+ directories.
1628
+ - Status event readers now ignore non-lane mission events in
1629
+ `status.events.jsonl` while still failing loudly for malformed lane events.
1630
+ - Sync shutdown diagnostics are deduplicated within a process and suppressed
1631
+ after successful JSON mission creation.
1632
+
1633
+ ### Changed
1634
+
1635
+ - `spec-kitty-tracker` is pinned to `0.4.3` for the latest tracker-side
1636
+ stability fixes.
1637
+ - The local `.python-version` pin now uses `3.13` instead of a patch-specific
1638
+ interpreter version.
1639
+
1640
+ ## [3.1.6] - 2026-04-20
1641
+
1642
+ ### Fixed
1643
+
1644
+ - `spec-kitty agent action implement` now exposes and forwards
1645
+ `--acknowledge-not-bulk-edit` to the underlying workspace-allocation command,
1646
+ allowing non-bulk-edit missions to suppress false-positive bulk-edit inference
1647
+ warnings during workspace creation.
1648
+
1649
+ ### Docs
1650
+
1651
+ - Spec Kitty's internal maintainer charter now records the ownership boundary
1652
+ for user-authored custom commands, custom skills, and project overrides, with
1653
+ an explicit proof trail showing that package-owned mutation flows must preserve
1654
+ files whose ownership is not proven by managed-path or manifest data.
1655
+
1656
+ ## [3.1.5] - 2026-04-16
1657
+
1658
+ ### Changed
1659
+
1660
+ - Keep `main` on the stable `3.x` release line. Release docs, install guidance,
1661
+ and README messaging now point new users at `3.1.x` on GitHub Releases and PyPI,
1662
+ while keeping `1.x-maintenance` explicitly maintenance-only.
1663
+
1664
+ ### Fixed
1665
+
1666
+ - Make `spec-kitty upgrade` auto-commit safely through the charter rename migration.
1667
+ The `safe_commit` backstop now disables rename collapsing during its staged-path
1668
+ probe, and upgrade auto-commit expands changed directories into concrete paths
1669
+ before validating the staging area. This closes the false-positive abort reported
1670
+ in [#643](https://github.com/Priivacy-ai/spec-kitty/issues/643).
1671
+ - Remove pytest/junit prompt bias from charter defaults, plan templates, and doctrine
1672
+ guidance. Packaged defaults now start from neutral selections, language inference
1673
+ flows through explicit repo signals, and language-scoped doctrine artifacts remain
1674
+ available when no active language filter is provided.
1675
+
1676
+ ### Docs
1677
+
1678
+ - Align README and user-facing release docs around swim-lane terminology and the
1679
+ `3.1.x` stable release line.
1680
+
1681
+ ## [3.1.4] - 2026-04-15
1682
+
1683
+ ### Fixed
1684
+
1685
+ - Make `/spec-kitty.plan` stop instructing agents to update imaginary
1686
+ agent-specific context files or hunt for non-existent `agent context update`
1687
+ commands. Planning now stays focused on the actual mission artifacts it owns.
1688
+ - Clarify `/spec-kitty.specify` mission-handle timing and non-blocking charter
1689
+ behavior so creation-time flows do not assume a mission already exists or stop
1690
+ on missing charter state.
1691
+ - Tighten generated `/spec-kitty.implement`, `/spec-kitty.review`, and
1692
+ `/spec-kitty.merge` wrappers so they use the canonical `--mission <handle>`
1693
+ language and explicitly avoid redundant context rediscovery, including
1694
+ separate charter loads.
1695
+
1696
+ ## [3.1.3] - 2026-04-15
1697
+
1698
+ ### Fixed
1699
+
1700
+ - Make `/spec-kitty.charter` use an LLM-led interview by default, with better
1701
+ repo-scan guidance for greenfield/bootstrap repos, explicit doctrine-gap
1702
+ handling, natural-language questioning, depth scaling, and commit-after-generate
1703
+ behavior.
1704
+ - Preserve explicit empty `selected_paradigms`, `selected_directives`, and
1705
+ `available_tools` during charter compilation instead of broadening them to
1706
+ packaged defaults.
1707
+
1708
+ ### Docs
1709
+
1710
+ - Add ADR recording that explicit empty charter selections must remain empty and
1711
+ must not silently expand to shipped defaults.
1712
+
1713
+ ## [3.1.2] - 2026-04-15
1714
+
1715
+ ### Fixed — CI recovery & release readiness
1716
+
1717
+ - **`release-readiness` workflow now filters `windows_ci` tests** on the Linux runner. The job was running the full suite with no marker filter, failing 10 Windows-only tests (auth file-fallback, kernel paths, sync daemon paths, tracker credentials, migrate messaging, keyring packaging, lock contention, Windows home path). Those tests continue to run on the native `ci-windows.yml` job.
1718
+ - **Kiro agent registration completed**: added `.kiro/` to `gitignore_manager.AGENT_DIRECTORIES`, regenerated 11 canonical command baselines under `tests/specify_cli/regression/_twelve_agent_baseline/kiro/`, and updated the four count constants that had drifted after PR #626 (13 slash-command agents, 15 `AGENT_DIRECTORIES` entries).
1719
+ - **Auth test fixtures aligned with the hardened HTTP transport** introduced in `Harden SaaS auth and restore build sync emission`. Tests for `AuthorizationCodeFlow`, `TokenRefreshFlow`, `WebSocketTokenProvisioner`, and the browser-login/refresh-transport integration paths now patch `PublicHttpClient` in each flow module's own namespace (matching the production call graph) instead of raw `httpx.AsyncClient`. Network-error paths raise `NetworkError` from the client mock rather than `httpx.ConnectError` to match the new `except NetworkError` contract.
1720
+ - **`ResolutionTier` unified across `doctrine.resolver` and `specify_cli.runtime.resolver`**. `specify_cli.runtime.resolver` is now a thin re-export shim, as its own docstring had claimed. Tests assert tier equivalence via `.name` to stay robust against `pytestarch`'s filesystem-walk loader, which can load the same source file under alternate module names during `pytest --import-mode=importlib`.
1721
+ - **Post-`unified-charter-bundle-chokepoint` test fixture hardening**: three pre-existing tests (`test_local_support_declarations_end_to_end`, `test_template_prompt_bootstrap_context_first_load`, `test_all_pass_with_healthy_setup`) now `git init` their tmp directories to satisfy the new `resolve_canonical_repo_root` precondition that calls `git rev-parse --git-common-dir`.
1722
+ - **Codex / Vibe Agent Skills migration test alignment**: five tests that pre-dated mission 083 were updated to assert the new `.agents/skills/spec-kitty.<cmd>/SKILL.md` layout rather than the retired `.codex/prompts/` layout. Invariants preserved (direct `spec-kitty agent action` CLI calls, per-agent argument handling, agent assets generation); only the probe path changed to match the post-083 architecture.
1723
+ - **Contract handoff fixture** updated to include `BuildRegistered` and `BuildHeartbeat` event types added on the emitter side by the SaaS-auth hardening.
1724
+ - **Miscellaneous tails**: redacted a dev-machine path literal in an architecture review doc (caught by `test_command_template_cleanliness`); fixed `test_rewrite_shims.py::test_result_counts` to use two slash-command agents since codex is no longer one; marked `test_home_unit.py::TestGetKittifyHomeWindows::test_windows_default_path` `windows_ci` since DRIFT-3 of the Windows Compatibility Hardening mission made `get_kittify_home()` delegate to `specify_cli.paths.get_runtime_root().base`, which the monkeypatch-based simulation no longer drives reliably on non-Windows runners.
1725
+ - **Kiro regenerated baselines** for all 12 canonical commands, closing the `tests/specify_cli/regression/test_twelve_agent_parity.py` baseline-missing cluster introduced by PR #626.
1726
+
1727
+ ### Added
1728
+
1729
+ - **Unified charter bundle manifest v1.0.0** at `src/charter/bundle.py` declaring the three `sync()`-produced derivatives (`governance.yaml`, `directives.yaml`, `metadata.yaml`) as the authoritative bundle contract. `references.yaml` and `context-state.json` are explicitly out of v1.0.0 scope; they are produced by other pipelines.
1730
+ - **Canonical-root resolver** at `src/charter/resolution.py` (`resolve_canonical_repo_root()`). Readers running inside a git worktree now transparently observe the main-checkout charter bundle without per-worktree materialisation. Closes Priivacy-ai/spec-kitty#339.
1731
+ - **`spec-kitty charter bundle validate [--json]`** CLI surface for operator and CI bundle-health checks.
1732
+ - **Migration `m_3_2_3_unified_bundle`** advances 3.x projects to the unified bundle layout. On a populated project it validates the bundle against the v1.0.0 manifest, invokes `ensure_charter_bundle_fresh()` to regenerate any missing derivatives, and emits a structured JSON report (see `kitty-specs/unified-charter-bundle-chokepoint-01KP5Q2G/contracts/migration-report.schema.json`). Idempotent — the second apply against an already-upgraded project is a clean no-op. Refs Priivacy-ai/spec-kitty#464, #479.
1733
+
1734
+ ### Changed
1735
+
1736
+ - **`SyncResult` extended with `canonical_root: Path`** — `files_written` remains a list of file names relative to `canonical_root / .kittify/charter/`. Existing readers were rewired in lockstep; no compatibility shim.
1737
+ - **`ensure_charter_bundle_fresh()` is now the sole chokepoint** for readers of `governance.yaml`, `directives.yaml`, and `metadata.yaml`. Direct reads of those files are forbidden and are enforced by an AST-walk coverage test (`tests/charter/test_chokepoint_coverage.py`). Refs Priivacy-ai/spec-kitty#461, #464.
1738
+
1739
+ ### Unchanged (explicitly)
1740
+
1741
+ - **`.kittify/memory/` and `.kittify/AGENTS.md` symlinks in worktrees** remain as-is — they provide project-memory and agent-instructions sharing, documented-intentional per `src/specify_cli/templates/AGENTS.md:168-179`. They are NOT part of the charter bundle; the canonical-root resolver fixes the worktree charter-visibility story without touching `src/specify_cli/core/worktree.py` (C-011).
1742
+ - **Files under `.kittify/charter/` that are not v1.0.0 manifest files** (`references.yaml`, `context-state.json`, `interview/answers.yaml`, `library/*.md`) are unchanged. The migration lists them under `bundle_validation.unexpected` for operator visibility but does not delete, move, or rewrite them (C-012).
1743
+ - **Project `.gitignore` is not reconciled** by the migration. The v1.0.0 manifest's required entries already match the repository `.gitignore` verbatim; the migration performs no read or write against `.gitignore` (D-12).
1744
+
1745
+ ### Refs
1746
+
1747
+ - EPIC: Priivacy-ai/spec-kitty#461 (Charter as Synthesis & Doctrine Reference Graph).
1748
+ - Phase 2 tracking: Priivacy-ai/spec-kitty#464.
1749
+ - Closes on merge: Priivacy-ai/spec-kitty#339, #451.
1750
+
1751
+ ### Fixed
1752
+
1753
+ - **`mission merge` no longer silently loses content when the repository carries legacy sparse-checkout state** — the stash/merge/stash-pop cascade used by the merge driver previously recorded phantom deletions for paths filtered out by a sparse-checkout pattern, and the subsequent housekeeping commit silently reverted content the preceding merge had introduced. Merge and `agent action implement` now run a sparse-checkout preflight and fail closed unless the operator passes `--allow-sparse-checkout`, `safe_commit` now aborts commits whose staging area contains paths outside the intended scope, and `mission merge` performs a post-merge refresh and invariant check before leaving the integration branch. Closes Priivacy-ai/spec-kitty#588.
1754
+ - **`move-task --to approved` and `--to planned` on a lane-worktree review no longer require `--force` when the only untracked content is `.spec-kitty/`** — the review-lock uncommitted-changes guard now treats the execution lane's own `.spec-kitty/` scratch directory as expected content rather than an unexplained untracked path, so operators stop being trained to pass `--force` reflexively. Closes Priivacy-ai/spec-kitty#589.
1755
+ - **Retry guidance emitted by the uncommitted-changes guard now names the actual target lane** rather than hardcoded `for_review`, so operators see the transition they were attempting instead of a misleading default.
1756
+
1757
+ ### Added
1758
+
1759
+ - **`spec-kitty doctor sparse-checkout --fix`** — detection and one-command migration for repositories upgraded from pre-3.0 spec-kitty that still carry `core.sparseCheckout=true` and a `.git/info/sparse-checkout` pattern file. The fix removes the git-config entry, clears the pattern file, and verifies post-fix state.
1760
+ - **`--allow-sparse-checkout` flag on `mission merge` and `agent action implement`** — explicit escape hatch for users with intentional sparse configurations. Use of the flag emits a `WARNING`-level structured log record (`spec_kitty.override.sparse_checkout`) at the CLI layer. Durable cross-repo audit event support is tracked as Priivacy-ai/spec-kitty#617.
1761
+ - **Commit-time backstop inside `safe_commit`** — fail-closed check that aborts commits whose staging area contains paths outside the intended scope, independent of the preflight. This is the universal defence that catches sparse-stash-pop phantom-deletion cascades regardless of which command initiated them.
1762
+ - **Per-worktree `.spec-kitty/` exclude entry** — every lane worktree now receives a local git exclude entry for `.spec-kitty/` at worktree creation, so lane scratch content stays invisible to the working-tree guard even in worktrees initialised before the fix.
1763
+ - **Session-scoped sparse-checkout warning** at review-lock and task-command entry points — surfaces detected legacy sparse-checkout state once per process before an operator wastes a commit cycle, without blocking.
1764
+ - **ADR `2026-04-14-1-sparse-checkout-defense-in-depth`** — documents the four-layer hybrid defence (merge/implement preflight, `safe_commit` backstop, session warning, `doctor --fix`) and the alternatives considered.
1765
+
1766
+ ### Recovery for users already affected
1767
+
1768
+ If a prior `mission merge` landed on your target branch with a silent content
1769
+ reversion (symptoms: a follow-up `chore: record done transitions` commit that
1770
+ deleted content merged in the preceding commit), restore the content from the
1771
+ merge commit that introduced it:
1772
+
1773
+ ```bash
1774
+ # Identify the merge commit
1775
+ git log --merges --oneline -- <affected-file>
1776
+
1777
+ # Restore content from that merge
1778
+ git checkout <merge-sha> -- <affected-file> [...]
1779
+
1780
+ # Commit the restoration
1781
+ git add <affected-file> [...]
1782
+ git commit -m "fix: restore content reverted by phantom-deletion bug"
1783
+ ```
1784
+
1785
+ Then run the migration to prevent recurrence:
1786
+
1787
+ ```bash
1788
+ spec-kitty doctor sparse-checkout --fix
1789
+ ```
1790
+
1791
+ Root-cause diagnostic trail: [Priivacy-ai/spec-kitty#588 (comment)](https://github.com/Priivacy-ai/spec-kitty/issues/588#issuecomment-4242179946).
1792
+
1793
+ ## [3.1.2a4] - 2026-04-14
1794
+
1795
+ ### Added
1796
+
1797
+ - **Kiro CLI as first-class agent** — `spec-kitty init --ai kiro` registers the Kiro CLI (Amazon Q Developer CLI's rebrand) with its own `.kiro/prompts/` directory and `kiro-cli` binary check. Legacy `--ai q` (→ `.amazonq/prompts/`) remains supported for backwards compatibility. README and `docs/reference/supported-agents.md` now document the shell-quoting requirement for `$ARGUMENTS` pass-through (see kirodotdev/Kiro#4141). Closes #246.
1798
+
1799
+ ### Fixed
1800
+
1801
+ - **`diff-coverage` CI job no longer fails with "no merge base"** — the base-branch fetch was passing `--depth=1` after `actions/checkout@v6` had already fetched full history, which truncated `origin/<base>` back to a single commit and broke `diff-cover`'s merge-base computation. Dropped `--depth=1`.
1802
+ - **`test_mission_v1_guards_unit.py::test_registry_keys` now matches the guard registry** — synchronised the `EXPECTED_GUARDS` set with the `occurrence_map_complete` guard added in #616.
1803
+
1804
+ ## [3.1.2a3] - 2026-04-12
1805
+
1806
+ ### Fixed
1807
+
1808
+ - **Merge-time numbering lock and retry safety** — `mission_number` assignment now acquires a file lock before scanning existing prefixes, MergeState uses `mission_id` as its canonical key, and interrupted merges no longer risk duplicate or skipped numbers on retry. Closes #601.
1809
+ - **CLI no longer hangs 15–20 min when offline queue is full and session expired** — the offline queue drain path now respects a bounded timeout instead of blocking indefinitely on expired-session retries. Closes #598, #602.
1810
+ - **Sonar readiness and parser findings addressed** — actionable maintenance issues flagged by SonarCloud (code smells, complexity, minor bugs) are resolved. Closes #599, #600.
1811
+
1812
+ ## [3.1.2a2] - 2026-04-11
1813
+
1814
+ ### Added
1815
+
1816
+ - **Hosted readiness control surfaces** — the CLI now exposes the canonical SaaS rollout/readiness module, a six-state hosted readiness evaluator, and a background-daemon policy/intent model that keeps stealth rollout behavior explicit while making enabled-mode failures actionable.
1817
+
1818
+ ### Changed
1819
+
1820
+ - **Tracker command classification is corrected for first-run flows** — `tracker discover` no longer requires an existing mission binding, `tracker providers` remains available as static output without hosted prerequisites, and hosted/manual-daemon checks are applied according to command intent rather than indiscriminately.
1821
+ - **Tracker dependency advances to the hardened hosted-discovery release line** — the CLI now targets `spec-kitty-tracker==0.4.1`, aligning the prerelease with the published runtime validation and canonical discovery contract shipped in the tracker SDK.
1822
+
1823
+ ### Fixed
1824
+
1825
+ - **Background-daemon policy no longer blocks local-provider sync flows** — local tracker providers continue to execute direct sync operations even when hosted SaaS daemon startup is set to manual.
1826
+
1827
+ ## [3.1.2a1] - 2026-04-10
1828
+
1829
+ ### Added
1830
+
1831
+ - **Browser-mediated CLI auth preview** — `spec-kitty auth login` now supports browser-based OAuth with Device Authorization Flow fallback, centralized token management, secure storage, and WebSocket token provisioning against the SaaS contract.
1832
+
1833
+ ### Changed
1834
+
1835
+ - **Human CLI auth now flows through the new auth subsystem** — HTTP transport, sync runtime, and tracker SaaS callers now refresh through the shared token manager instead of the legacy password/JWT credential path.
1836
+
1837
+ ### Fixed
1838
+
1839
+ - **Browser auth CI coverage gaps** — test dependencies and stale tracker refresh patch targets were corrected so the new auth stack passes the core and integration suites reliably in CI.
1840
+
1841
+ ## [3.1.1] - 2026-04-09
1842
+
1843
+ ### Added
1844
+
1845
+ - **Semantic status-event merge driver** — `kitty-specs/**/status.events.jsonl` now uses a Spec Kitty merge driver that unions append-only event logs by `event_id`, rejects conflicting payloads, and fails closed when merged WPs do not reach `done` in the canonical event log.
1846
+ - **Forward-safe mission identity** — newly created missions now mint a ULID `mission_id` at creation time, persist it to `meta.json`, and emit it through mission-created event payloads.
1847
+ - **Release hygiene guardrail** — release validation now enforces `pyproject.toml` and `.kittify/metadata.yaml` version sync before a cut can proceed.
1848
+
1849
+ ### Changed
1850
+
1851
+ - **`spec-kitty init` now produces a minimal file scaffold** — init no longer initializes git, creates bootstrap commits, or seeds `.agents/skills/`. The generated next steps now point users at `spec-kitty next` plus `spec-kitty agent action implement/review` as the canonical workflow.
1852
+ - **Planning-artifact WPs are first-class lane-owned items** — the canonical planning lane is now `lane-planning`, and it resolves to the main repository checkout instead of an ad hoc special-case path.
1853
+ - **Top-level `implement` is de-emphasized** — onboarding and command docs now treat `spec-kitty implement` as internal infrastructure rather than the primary user-facing flow.
1854
+
1855
+ ### Fixed
1856
+
1857
+ - **Merge conflict recovery for `status.events.jsonl`** — append-only status events are no longer silently dropped during merge conflict resolution, and fresh repositories now self-heal the local git merge-driver config when running merge flows. Closes #574.
1858
+ - **Planning/query consistency after PR #555** — mixed planning/code review-context resolution no longer crashes when a dependency resolves to the repo-root workspace, and fresh-run query mode now returns `run_id: null` instead of leaking a deleted temporary run id.
1859
+ - **Dependency parser trailing-prose bleed** — the final WP section is now bounded at non-WP `##` headings so trailing prose does not get misread as dependency declarations.
1860
+ - **Concurrent auth refresh race** — stale 401 responses during token rotation no longer wipe valid shared credentials from active CLI sessions.
1861
+
1862
+ ## [3.1.1a3] - 2026-04-07
1863
+
1864
+ ### Added
1865
+
1866
+ - **Global slash command installation** — all 16 spec-kitty slash commands are now installed globally to `~/.<agent-dir>/` (e.g. `~/.claude/commands/`, `~/.gemini/commands/`, `~/.codex/prompts/`, etc.) at every CLI startup, for all 13 supported agents. No `spec-kitty init` or per-project `spec-kitty upgrade` is required for commands to be available. Commands update automatically when the CLI is upgraded.
1867
+ - **Migration `3.1.2_globalize_commands`** — removes existing per-project `spec-kitty.*` command files from `.claude/commands/`, `.gemini/commands/`, and equivalent directories in all configured agents. Runs automatically on `spec-kitty upgrade`.
1868
+ - **ADR `2026-04-07-1-global-slash-command-installation`** — documents the decision to install commands globally, the full 13-agent table with global roots, and the rationale.
1869
+
1870
+ ### Changed
1871
+
1872
+ - `spec-kitty init` no longer writes per-project command files. Commands are managed exclusively by the global startup hook.
1873
+
1874
+ ## [3.1.1a2] - 2026-04-07
1875
+
1876
+ ### Fixed
1877
+
1878
+ - **`spec-kitty init` / any CLI command no longer dirties the git repo** — every CLI invocation that touched status was unconditionally rewriting `kitty-specs/*/status.json`, even when nothing had changed, leaving ~60 files modified in `git status`. Root cause: `materialize()` stamped a fresh `datetime.now(UTC)` into `materialized_at` on every call. Fixed in `reducer.py` (3.1.1a1): `materialized_at` is now derived deterministically from the last event's `at` timestamp (or `""` for features with no events), and a content-equality guard skips the write when the file is already up to date. Closes #524.
1879
+
1880
+ ### Added
1881
+
1882
+ - **Migration `3.1.1_normalize_status_json`** — one-shot upgrade migration that normalises all existing `kitty-specs/*/status.json` files to the new deterministic format. Runs automatically on `spec-kitty upgrade` for any project where the committed files still carry old wall-clock timestamps or the legacy `feature_slug` field. After the migration the skip-write guard in `materialize()` keeps all status snapshots stable indefinitely.
1883
+
1884
+ ### Changed
1885
+
1886
+ - **`StatusSnapshot` and `ProgressResult` serialisation no longer emits `feature_slug`** — `with_tracked_mission_slug_aliases` previously injected a redundant `feature_slug` alias into every serialised snapshot. Now only `mission_slug` is written. Reading still accepts both keys for backward compat with existing files.
1887
+
1888
+ ## [3.1.1a1] - 2026-04-07
1889
+
1890
+ ### Added
1891
+
1892
+ - **Typed `WPMetadata` Pydantic model** (`src/specify_cli/status/wp_metadata.py`) — immutable, validated work package metadata with `update()` builder API; replaces all raw `frontmatter.get()` dict access across consumer files. Closes #410.
1893
+ - **`Lane` enum state machine** — valid lane transitions enforced at the type level; all runtime consumers migrated from string comparisons to `Lane` enum values.
1894
+ - **Typed dashboard API contracts** (`src/specify_cli/dashboard/handlers/api.py`) — Pydantic response models replace untyped dicts.
1895
+ - **RE2 shim** (`src/kernel/_safe_re.py`) — `types.ModuleType`-based shim backed by `google-re2`; exposes the full `re` API and mitigates Sonar DOS hotspot findings. `google-re2>=1.1` added as a core runtime dependency.
1896
+ - **CI status-layer test stages** — new `fast-tests-status` and `integration-tests-status` jobs run the `tests/status/` and `tests/specify_cli/status/` suites in parallel with existing core/doctrine jobs; their coverage outputs feed the `diff-coverage` gate.
1897
+ - **`WPMetadata.display_title` property** — safe fallback for missing or empty WP titles.
1898
+
1899
+ ### Changed
1900
+
1901
+ - All `frontmatter.get()` calls outside `frontmatter.py` migrated to typed `WPMetadata` access. Migration scripts retain raw dict access annotated `# MIGRATION-ONLY`.
1902
+ - `WPMetadata.title` is now optional; WP read errors propagate gracefully via `read_wp_frontmatter()`.
1903
+ - `OwnershipManifest.from_frontmatter()` accepts `WPMetadata` directly.
1904
+ - `diff-coverage` job wired to consume `coverage-kernel.xml`, `coverage-fast-status.xml`, and `coverage-integration-status.xml` in both enforced (critical-path 90%) and advisory (full-diff) steps.
1905
+ - GitHub Actions upgraded to Node.js 24 compatible versions (`actions/checkout@v6`, `actions/setup-python@v6`, `actions/setup-node@v6`, `actions/upload-artifact@v7`, `actions/download-artifact@v8`) across all workflow files.
1906
+
1907
+ ### Fixed
1908
+
1909
+ - `ValidationError` caught in phase-1 status mirror (`status/emit.py`) — prevents NoneType crashes on malformed WP files.
1910
+ - Ruff and mypy violations cleaned up in all files touched by the migration.
1911
+ - Sonar false-positive NOSONAR suppressions added in `arbiter.py` and `dashboard/handlers/api.py`.
1912
+ - WP03 validation report (mission 068) decision corrected from `close_with_evidence` to `tighten_workflow` to reflect the CI logic additions; `test_tighten_workflow_passes_large_pr_sample` implemented to verify the advisory-only contract.
1913
+
1914
+ ## [3.1.0] - 2026-04-07
1915
+
1916
+ ### Added
1917
+
1918
+ - **Planning pipeline integrity (mission 069)** — four structural fixes eliminating fragilities discovered during mission 068:
1919
+ - **Dirty-git reads fix (WP01)** — `materialize()` now derives `materialized_at` from the last event timestamp (deterministic) and skips the write when content is byte-identical. `materialize_if_stale()` returns a read-only `reduce()` call. All read-only commands leave zero modified files in `git status`. Fixes #524.
1920
+ - **Structured WP manifest — `wps.yaml` (WP02, WP03, WP04)** — new `src/specify_cli/core/wps_manifest.py` with Pydantic model, YAML loader, and `generate_tasks_md_from_manifest()`. JSON Schema at `src/specify_cli/schemas/wps.schema.json`. When `wps.yaml` is present, `finalize-tasks` derives dependencies exclusively from the manifest; `tasks.md` is regenerated as a derived artifact. `/spec-kitty.tasks-outline` and `/spec-kitty.tasks-packages` templates updated to produce/consume `wps.yaml`. Migration `m_3_2_0_update_planning_templates` propagates changes to existing installations. Fixes #525.
1921
+ - **`spec-kitty next` query mode (WP05)** — bare `spec-kitty next` (no `--result`) enters query mode: returns current step with `[QUERY — no result provided, state not advanced]` prefix without advancing the state machine. Prevents ghost completions when agents call `next` while disoriented. Fixes #526.
1922
+ - **Slug validator digit-prefix support (WP06)** — `KEBAB_CASE_PATTERN` updated to accept `NNN-*` slugs following spec-kitty's own naming convention. Fixes #527.
1923
+
1924
+ ## [3.1.0a8] - 2026-04-07
1925
+
1926
+ ### Added
1927
+
1928
+ - **Post-merge reliability and release hardening (mission 068)** — 5 work packages closing the workflow-stabilization track:
1929
+ - **Stale-assertion analyzer (WP01)** — new `src/specify_cli/post_merge/` package: stdlib `ast`-based tool that detects test assertions likely invalidated by merged source changes. CLI: `spec-kitty agent tests stale-check --base <ref> --head <ref> [--json]`. Integrated into the merge runner. No new dependencies, no network calls.
1930
+ - **Merge strategy + safe-commit + linear-history hint (WP02)** — `MergeStrategy` enum (MERGE/SQUASH/REBASE) in new `src/specify_cli/merge/config.py` with `--strategy` CLI flag (resolves: flag → `.kittify/config.yaml` → squash default). `safe_commit()` called after `_mark_wp_merged_done` before worktree removal (FR-019). Linear-history rejection hint guides users past protected-branch push failures. Closes #456.
1931
+ - **Diff-coverage policy validation (WP03)** — validation report confirms the enforce/advisory split already satisfies the policy intent. CI step names tightened to `diff-coverage (critical-path, enforced)` and `diff-coverage (full-diff, advisory)`. Closes #455.
1932
+ - **Release-prep CLI (WP04)** — new `src/specify_cli/release/` package: `propose_version()`, `build_changelog_block()`, `ReleasePrepPayload`. CLI: `spec-kitty agent release prep --channel {alpha,beta,stable} [--json]`. Zero network calls. Closes #457.
1933
+ - **Recovery extension + mission close (WP05)** — `scan_recovery_state()` extended with `consult_status_events=True` to detect merged-and-deleted WPs via event log; new `RecoveryState.ready_to_start_from_target` field. `spec-kitty implement` gains `--base <ref>` flag for explicit worktree branching. Closes #415.
1934
+
1935
+ ### Fixed
1936
+
1937
+ - **`implement --base` Typer pattern** — changed to Annotated pattern, fixing test isolation failures where direct Python calls received `OptionInfo` objects instead of `None`
1938
+ - **`implement` console capsys isolation** — `_json_safe_output` wrapper now resets `console._file = None` in `finally` to prevent "I/O operation on closed file" when tests run in sequence with pytest capsys
1939
+ - **Replay parity test** — corrected `reduced.mission_key == "replay-mission"` (was wrong field name and wrong value)
1940
+
1941
+ ## [3.1.0a7] - 2026-04-06
1942
+
1943
+ ### Added
1944
+
1945
+ - **Runtime recovery and audit safety (mission 067)** -- 6 work packages delivering resilience and audit infrastructure:
1946
+ - **Merge resume recovery (WP01)** -- `spec-kitty merge --resume` recovers from interrupted merges with persistent state tracking in `.kittify/merge-state.json`
1947
+ - **Implementation crash recovery (WP02)** -- `spec-kitty implement --recover` restores execution context after agent crashes, rebuilding worktree state and resuming from last known checkpoint
1948
+ - **Stale-claim doctor checks (WP03)** -- `spec-kitty doctor` detects orphaned claims, stale locks, and zombie worktrees with structured diagnostic output
1949
+ - **Audit-mode scope relaxation (WP04)** -- ownership validation supports `scope: codebase-wide` for audit/cutover WPs; new `validate_audit_coverage()` warns on uncovered audit targets
1950
+ - **Shim-to-canonical migration (WP05)** -- all `spec-kitty agent shim <action>` calls replaced with direct `spec-kitty agent action <action>` across 48 agent command files
1951
+ - **Finalize-tasks audit wiring (WP06)** -- `validate_audit_coverage()` integrated into finalize-tasks ownership validation pipeline as a soft warning check
1952
+
1953
+ ### Fixed
1954
+
1955
+ - **Agent command files** -- regenerated all 48 agent command files to use canonical `spec-kitty agent action` instead of deprecated `spec-kitty agent shim`
1956
+ - **Post-merge test regressions** -- fixed 4 stale test assertions after mission 067 merge (implement template content, merge resume behavior, --recover flag default)
1957
+
1958
+ ## [3.1.0a6] - 2026-04-06
1959
+
1960
+ ### Added
1961
+
1962
+ - **Review loop stabilization (mission 066)** — new `src/specify_cli/review/` module with 6 submodules:
1963
+ - `artifacts.py` — persisted review-cycle artifacts at `kitty-specs/<mission>/tasks/<WP-slug>/review-cycle-{N}.md` with YAML frontmatter. Replaces ephemeral `.git/spec-kitty/feedback/` storage. Backward-compatible `feedback://` pointer resolution retained (#432, #433).
1964
+ - `fix_prompt.py` — focused fix-mode prompt generation from review-cycle artifacts. Rejected WPs get ~40-line targeted prompts instead of replaying 400-500 line full WP prompts (#430).
1965
+ - `dirty_classifier.py` — dirty-state classification for review handoff. Partitions `git status --porcelain` output into blocking (WP-owned files) vs benign (status artifacts, other WP files, metadata). External reviewers no longer need `--force` for unrelated dirtiness (#439).
1966
+ - `baseline.py` — baseline test capture at implement time via `pytest --junitxml` + JUnit XML parsing. Review prompts include "Baseline Context" section distinguishing pre-existing failures from regressions. Configurable `review.test_command` for non-pytest projects (#444).
1967
+ - `lock.py` — concurrent review serialization via `.spec-kitty/review-lock.json`. Stale lock detection via PID check. Opt-in env-var isolation for projects that configure `review.concurrent_isolation` in config.yaml (#440).
1968
+ - `arbiter.py` — structured arbiter checklist with 5 standard rationale categories (pre-existing failure, wrong context, cross-scope, infra/environmental, custom). Override detection on forward `--force` from planned after rejection event. Decisions persisted in review-cycle artifact frontmatter (#441).
1969
+ - **147 new tests** across the review module (avg 93% coverage, range 91-99%)
1970
+ - **Implement-review skill update** — parallel sprint pattern, merge/conflict resolution guide, dead-code detection warning, post-merge validation steps
1971
+ - **Tasks template handoff** — `/spec-kitty.tasks` now offers to invoke `/spec-kitty-implement-review` skill at completion for automated full-sprint execution
1972
+
1973
+ ### Fixed
1974
+
1975
+ - **ReviewLock wired into live command path** — `ReviewLock.acquire()` called in `workflow.py review()` after workspace resolution; `ReviewLock.release()` called in `tasks.py move-task` on review completion
1976
+ - **Removed dead `wp_prompt_path` parameter** from `generate_fix_prompt()` and all callers
1977
+
1978
+ ## [3.1.0a5] - 2026-04-06
1979
+
1980
+ ### Fixed
1981
+
1982
+ - **Dependency parsing in finalize-tasks** — new shared parser (`core/dependency_parser.py`) recognizes inline, colon-header, and bullet-list dependency formats. Both `agent mission finalize-tasks` and `agent tasks finalize-tasks` use the same parser. Non-empty disagreement between tasks.md and WP frontmatter triggers a diagnostic error instead of silently overwriting (#406).
1983
+ - **validate-only is genuinely non-mutating** — all file writes gated behind `if not validate_only`. JSON output reports `would_modify`/`unchanged`/`preserved` without touching disk (#417).
1984
+ - **Lane computation completeness** — every executable WP must appear in `lanes.json` or lane computation fails with a diagnostic error. Missing ownership manifests are a hard failure. Planning-artifact WPs surfaced in diagnostic summary. Zero-match globs and `src/**` fallback emit warnings (#422).
1985
+ - **Parallelism collapse reporting** — new `CollapseReport` records every union-find merge with rule name and evidence. Rule 3 (surface heuristics) now gated on `_are_disjoint()` — WPs with provably disjoint owned files are not collapsed by keyword matches alone (#423).
1986
+ - **Pipe-table mark-status support** — column-aware parser recognizes `[P]` in Parallel column (not corrupted), updates Status column or appends one. Checkbox format remains canonical for new generation (#438).
1987
+ - **Agent command guidance** — all error messages, shim templates, and command-template examples now use `--mission` consistently. Five `require_explicit_feature()` callers fixed from `--feature` to `--mission`. Error messages include complete copy-pasteable example commands (#434).
1988
+ - **Full --feature → --mission sweep** — 12 typer.Option declarations, 4 argparse declarations, 11 error messages, and 5 docstrings updated. `--mission` is the primary displayed flag name; `--feature` retained as hidden backward-compatibility alias (#448).
1989
+
1990
+ ### Added
1991
+
1992
+ - `src/specify_cli/core/dependency_parser.py` — canonical shared dependency parser
1993
+ - `CollapseEvent` and `CollapseReport` data models in `lanes/models.py`
1994
+ - `LaneComputationError` exception for diagnostic lane failures
1995
+ - `validate_glob_matches()` in ownership validation
1996
+ - `planning_artifact_wps` field on `LanesManifest`
1997
+ - Charter regression vigilance rules for `--mission` terminology canon
1998
+
1999
+ ## [3.1.0a4] - 2026-04-06
2000
+
2001
+ ### Fixed
2002
+
2003
+ - **Mission-era host surface cleanup** — removed remaining feature-era host command references from shipped templates, agent-facing prompts, and smoke-test scaffolding so new missions no longer regenerate `create-feature`, `feature_slug`, or `--feature` guidance on canonical paths.
2004
+ - **Runtime mission metadata normalization** — mission resolution now prefers canonical `mission_type` metadata and rehydrates mission identity consistently in diagnostics, verification, and rebuild-state migrations.
2005
+ - **Release-readiness regressions after host cutover** — updated cross-cutting, orchestrator, parity, body-sync, gitignore-isolation, and e2e smoke coverage to validate the mission-era CLI and contract instead of the removed feature-era host surface.
2006
+
2007
+ ## [3.1.0a3] - 2026-04-05
2008
+
2009
+ ### Fixed
2010
+
2011
+ - **Doctrine artifact discovery in subdirectories** — all 7 doctrine repositories now use `rglob()` instead of `glob()`, so artifacts in subdirectories of `shipped/` are no longer silently skipped (#396).
2012
+ - **Dashboard `/api/features` empty response** — `StatusEvent.from_dict()` now accepts both `feature_slug` and `mission_slug` field names and normalizes the legacy `in_review` lane to `for_review`.
2013
+ - **Stale `patch()` targets caught at lint time** — new `scripts/check_patch_targets.py` validates every `@patch()` target string resolves, added as an `[ENFORCED]` CI lint step (#394).
2014
+ - **Architectural layer coverage guards** — meta-tests fail when a `src/` package has no layer assignment or a defined layer matches no module (#395).
2015
+ - **Sonar reliability bugs** — resolved 7 findings: unreachable code (S1763), identical branches (S3923), premature async task GC (S7502), always-true condition (S2583), tautological assertion (S3981), CSS shorthand override (S4657), parameter shadowing (S1226).
2016
+ - **Async task GC in event emitter** — `asyncio.ensure_future()` results held in `_pending_tasks` set with done-callback cleanup, preventing premature garbage collection.
2017
+ - **`check-readiness` CI gate unblocked** — post-release version bump missed after tagging v3.1.0a2 (#408).
2018
+
2019
+ ### Changed
2020
+
2021
+ - **CI test parallelization** — `fast-tests` and `integration-tests` split into `doctrine` + `core` phases running in parallel (#397).
2022
+ - **`--mission-run` as canonical CLI flag** — added as alias for `--feature` across all CLI commands. `--feature` remains accepted as legacy alias.
2023
+ - **Node.js 20 → 22** in CI workflows (current LTS).
2024
+ - **Mutation testing CI job disabled** — too slow to run reliably.
2025
+ - **Ruff max line length** increased from 120 to 164.
2026
+ - **Defunct `tests/legacy` references removed**.
2027
+
2028
+ ### Added
2029
+
2030
+ - **RTK search tooling toolguide** — new shipped doctrine artifact documenting RTK interception patterns and correct search tooling for worktree sessions.
2031
+ - **`last_updated` field** on Toolguide model and schema.
2032
+ - **Integration tests for nested artifact discovery** — 281-line test suite covering all 8 doctrine repository types.
2033
+ - **`integration` pytest marker** registered in `pyproject.toml`.
2034
+
2035
+ ## [3.1.0a2] - 2026-04-05
2036
+
2037
+ ### Changed
2038
+
2039
+ - **Prerelease publishing is now first-class** — tag-mode release validation accepts matching prerelease tags such as `v3.1.0a0`, GitHub Releases are marked as prereleases automatically for those tags, and maintainer docs now document the end-to-end prerelease PyPI/GitHub publish path.
2040
+ - **Rebased doctrine-stack work onto `main`'s execution architecture** — carry forward the doctrine, constitution, and template-repository work from PR #305 into PR #348 while preserving `main`'s context, ownership, event-log, merge-engine, and shim foundations instead of reviving deleted subsystems.
2041
+ - **Kernel established as the shared dependency floor** — `src/kernel/` now owns shared path, atomic-write, and glossary-boundary primitives; doctrine no longer reaches back into `specify_cli`, and the package boundary is documented by ADRs and enforced by architectural tests.
2042
+ - **Constitution now acts as the local routing layer for governance assets** — project-local mission path construction flows through `ProjectMissionPaths`, while doctrine-backed mission/template access is routed through `MissionTemplateRepository` and constitution-facing resolvers instead of scattered path assembly.
2043
+ - **Mission terminology split clarified as the architectural answer to issue #241** — a direct `--feature` → `--mission` rename would have collided with the existing mission-type concept, so the branch now separates `mission type` (`--mission-type`) from `mission run` (`--mission-run`) and keeps legacy `--feature` compatibility where required during the deprecation window.
2044
+ - **CI flows extended for the new package layout** — quality workflows now cover doctrine and kernel explicitly, including dedicated kernel coverage enforcement and updated readiness/release paths.
2045
+ - **Fork-safe SonarCloud targeting via repository variables** — CI now resolves SonarCloud settings from `SONAR_ORGANIZATION`, `SONAR_PROJECT_KEY`, and optional `SONAR_HOST_URL`, with upstream-safe defaults and a fallback project-key convention of `<organization>_<repo-name>` when `SONAR_PROJECT_KEY` is unset.
2046
+
2047
+ ### Fixed
2048
+
2049
+ - **Dashboard loading regressions on shared mission installs** — repaired the shared dashboard JavaScript syntax error, made feature scanning tolerate unreadable legacy event logs, hardened `/api/features` error handling, and marked the scanner regressions as part of the `fast` suite so CI/Sonar coverage reflects the new branches.
2050
+ - **Narrow exception handlers in doctrine repositories** — Replace 21 bare `except Exception` handlers across `src/doctrine/` with specific exception tuples (`YAMLError`, `ValidationError`, `OSError`, `ModuleNotFoundError`, `TypeError`, `UnicodeDecodeError`) matching actual failure modes. Addresses PR #305 review finding M1.
2051
+ - **Fix `spec-kitty --help` crash** — Add missing `Optional` import to `workflow.py` and `tasks.py`. `from __future__ import annotations` defers annotation evaluation; Typer's `eval()` of `Optional[str]` annotations raised `NameError` at app construction time.
2052
+ - **Address PR #305 architectural review gaps in the rebased branch** — resolve the core review findings by removing doctrine→`specify_cli` dependency leakage, bringing doctrine into CI coverage, lifting shared glossary/path primitives into kernel, and documenting the resulting boundary in the architecture corpus.
2053
+
2054
+ ### Documentation
2055
+
2056
+ - **Doctrine inclusion assessment** — `docs/development/doctrine-inclusion-assessment.md` evaluates the current state of the three Doctrine+Kitty merger pillars (agent profiles ~80%, mission type customization ~45%, ad-hoc experimentation ~25%) with gap analysis, dependency violation status, and phased recommendations.
2057
+ - **Doctrine skills README** — `src/doctrine/skills/README.md` documents the skills-vs-mission-composition boundary, the iterative context loading pattern, and the skill inventory. Captures the architectural distinction from the PR #305 review.
2058
+ - **Updated skill: spec-kitty-runtime-next** — new "Doctrine-Aware Step Execution" section teaches agents to load agent profiles at init, apply action-scoped constitution context at step boundaries, and pull specific tactics/directives on demand instead of dumping all doctrine upfront.
2059
+ - **Updated skill: spec-kitty-constitution-doctrine** — new "Programmatic Doctrine Access", "Doctrine Artifact Kinds", and "Iterative Context Loading Pattern" sections document `DoctrineService` entry points, explain all 8 artifact kinds (directives, tactics, paradigms, styleguides, toolguides, procedures, agent profiles, step contracts) with access patterns, and teach the anti-pattern of upfront context dumps.
2060
+ - **Updated skill: spec-kitty-mission-system** — new "Doctrine Composition Layer" section documents `MissionStepContract`, `Procedure`, and action index artifacts as the structured primitives backing mission behavior.
2061
+ - **New skill: ad-hoc-profile-load** — teaches agents how to load a profile on demand for interactive sessions outside the mission loop: resolve by ID or task context, adopt identity/boundaries/governance scope, maintain role throughout the session, and persist to tool context.
2062
+ - **Recorded the remaining follow-on work after the PR #305 -> PR #348 transition** — the compiler-backed mission-bundle follow-up remains relevant, the skills-vs-mission-composition boundary still needs to stay explicit, constitution-local routing should expand beyond mission-path centralization, issue #241 still has compatibility/documentation cleanup left on older `--feature`-based surfaces, and residual runtime/test debt remains outside this rebase-focused integration.
2063
+
2064
+ ## [3.0.3] - 2026-04-01
2065
+
2066
+ ### Added
2067
+
2068
+ - **Ticket-first mission origin binding** (feature 061): Service-layer workflow for starting a mission from an existing Jira or Linear ticket. Adds `search_origin_candidates()`, `bind_mission_origin()`, and `start_mission_from_ticket()` in `tracker/origin.py`. Persists durable `origin_ticket` provenance in `meta.json` with 7-field validation. Emits `MissionOriginBound` observational telemetry event. SaaS-first write ordering ensures local metadata never runs ahead of the authoritative control plane.
2069
+ - **Reusable feature-creation API**: Extracted `create_feature_core()` from the CLI command into `core/feature_creation.py` — a stable, programmatic API returning `FeatureCreationResult` with domain exceptions instead of `typer.Exit()`.
2070
+ - **SaaS tracker client extensions**: `search_issues()` and `bind_mission_origin()` transport methods on `SaaSTrackerClient` with full retry, auth refresh, and error handling.
2071
+
2072
+ ## [3.0.2] - 2026-04-01
2073
+
2074
+ ### Fixed
2075
+
2076
+ - **Missing prompt-driven slash commands**: `rewrite_agent_shims()` (3.0.0 migration step 6) deleted 9 prompt-driven template files (specify, plan, tasks, etc.) leaving only 7 CLI shims. Now regenerates all 16 command files per the hybrid architecture (feature 058). Added `m_3_0_2` migration to restore prompt files for already-affected projects.
2077
+ - **Event log not created at feature birth**: `status.events.jsonl` was only bootstrapped during `finalize-tasks`, causing `CanonicalStatusNotFoundError` when the dashboard scanned features in the specify/plan phase. Now initialized when `create-feature` runs.
2078
+ - **Dashboard scanner crash on pre-finalization features**: `_count_wps_by_lane()` and `_process_wp_file()` propagate `CanonicalStatusNotFoundError` (hard-fail contract); callers `scan_all_features()` and `scan_feature_kanban()` catch at feature level with actionable error messages.
2079
+ - **Stale `/spec-kitty.clarify` references**: Removed 14 remaining references to the deleted clarify command across kitty-specs checklists, coverage tables, and `pyproject.toml`.
2080
+ - **Missing `.gitignore` entries**: Added `.kittify/workspaces/` and `.kittify/merge-state.json` to match `state_contract.py` expectations.
2081
+
2082
+ ## [3.0.1] - 2026-03-31
2083
+
2084
+ ### Fixed
2085
+
2086
+ - **Canonical status hard cutover completed.** Work-package lane state is now consistently sourced from `status.events.jsonl` across active CLI commands, packaged task tooling, templates, docs, and standalone helpers. Frontmatter lane fallbacks and `lane=` body-log writes are removed from active 3.0 flows.
2087
+ - **Canonical bootstrap and hard-fail behavior hardened.** `finalize-tasks` now seeds canonical `planned` state for generated WPs, while runtime commands fail explicitly when canonical status is missing instead of silently reconstructing it from abandoned frontmatter state.
2088
+ - **Release automation updated for 3.x.** GitHub release validation, maintainer docs, and workflow tag handling now use semantic `vX.Y.Z` tags generically, so `v3.0.1` publishes correctly to GitHub Releases and PyPI.
2089
+
2090
+ ## [3.0.0] - 2026-03-30
2091
+
2092
+ ### Breaking Changes
2093
+
2094
+ - **Event log is sole authority for mutable WP state.** Frontmatter `lane`, `review_status`, `reviewed_by`, and `progress` fields are no longer written or read at runtime. Status is read from `status.events.jsonl` via the reducer.
2095
+ - **`feature_detection.py` deleted.** All commands require explicit `--feature <slug>` in multi-feature repos. No branch scanning, no env var detection, no cwd walking.
2096
+ - **Legacy worktree file filtering removed.** `planning_artifact` WPs work in-repo; `code_change` WPs use standard full worktrees.
2097
+ - **Command templates restored as hybrid.** Planning commands (specify, plan, tasks, etc.) install as full prompts; execution commands (implement, review, merge, etc.) install as thin CLI-dispatch shims.
2098
+
2099
+ ### Added
2100
+
2101
+ - **MissionContext** — opaque token-based bound identity for all workflow commands (`src/specify_cli/context/`)
2102
+ - **WP Ownership Manifest** — `execution_mode`, `owned_files`, `authoritative_surface` per WP (`src/specify_cli/ownership/`)
2103
+ - **Lane-weighted progress** — `planned=0.0`, `in_progress=0.3`, `for_review=0.6`, `done=1.0` (`src/specify_cli/status/progress.py`)
2104
+ - **`spec-kitty materialize`** command for CI/debugging regeneration of derived views
2105
+ - **Dedicated merge workspace** at `.kittify/runtime/merge/` with per-mission state and atomic lock
2106
+ - **Merge conflict auto-resolution** for event logs (append-merge) and metadata (take-theirs)
2107
+ - **Thin agent shims** for CLI-driven commands with `spec-kitty agent shim <command>` entrypoints
2108
+ - **Schema version gate** (disabled until 3.0.0 migration ships to consumers)
2109
+ - **One-shot migration framework** — `backfill_identity`, `backfill_ownership`, `rebuild_state`, `strip_frontmatter`
2110
+ - **`--validate-only`** flag on `finalize-tasks`
2111
+ - **`spec-kitty next`** hint in `tasks status` output
2112
+ - **Integration Verification** section in WP prompt template
2113
+ - **Doctor `command-files`** check — detects stale/missing/wrong-type agent command files
2114
+ - **Version markers** in generated command files (`<!-- spec-kitty-command-version: X.Y.Z -->`)
2115
+ - **Migration `m_2_1_4`** — unconditionally enforces correct hybrid command file state
2116
+
2117
+ ### Removed
2118
+
2119
+ - `feature_detection.py` (668 lines) — replaced by MissionContext tokens
2120
+ - `status/legacy_bridge.py`, `status/phase.py`, `status/reconcile.py`, `status/migrate.py`
2121
+ - `merge/executor.py`, `merge/forecast.py`, `merge/status_resolver.py`
2122
+ - `core/agent_context.py` — tech-stack parsing no longer needed
2123
+ - ~56 command template files (replaced by 9 canonical prompts + 7 thin shims)
2124
+ - Sparse checkout policy enforcement
2125
+ - Frontmatter lane/review_status read/write throughout codebase
2126
+ - Dual-write (event log + frontmatter) behavior
2127
+
2128
+ ### Fixed
2129
+
2130
+ - "planning repository" → "project root checkout" terminology (migration included)
2131
+ - Template path references removed from agent prompts (agents no longer search for `.kittify/missions/` files)
2132
+ - Workflow `implement`/`review` now emit status events (was silently failing)
2133
+ - Merge reconciliation marks ALL ancestor WPs as done (not just effective tips)
2134
+ - `require_explicit_feature()` lists available features in error message
2135
+ - YAML parse errors in frontmatter now logged as warnings (not silently swallowed)
2136
+ - Merge engine uses `git reset --hard` on detached HEAD (not `git checkout` which fails when branch is checked out elsewhere)
2137
+ - Migration backup covers `kitty-specs/` and `.gitignore` (not just `.kittify/`)
2138
+ - `rebuild_state.py` uses max timestamp (not last file line) for terminal state
2139
+ - Merge lock uses atomic `open('x')` (not TOCTOU `exists()` + `write_text()`)
2140
+ - `merge --resume` errors when multiple paused merges exist (not silently picks first)
2141
+
2142
+ ## [2.1.4] - 2026-03-27
2143
+
2144
+ ### Added
2145
+
2146
+ **Enforce correct command file state**: Version markers and migration to guarantee all agent command files are always in the correct state.
2147
+
2148
+ - `<!-- spec-kitty-command-version: X.Y.Z -->` marker added as the first line of every generated command file (both full prompts and thin shims)
2149
+ - Migration `m_2_1_4_enforce_command_file_state` unconditionally writes all 16 command files per configured agent; idempotent on subsequent runs when version markers match
2150
+ - `spec-kitty doctor command-files` subcommand checks all agent command files for missing files, stale version markers, and wrong file type (full prompt vs thin shim)
2151
+
2152
+ ## [2.1.3] - 2026-03-27
2153
+
2154
+ ### 🐛 Fixed
2155
+
2156
+ **Preserve explicit WP args in workflow prompts**: Slash-command arguments passed to `/spec-kitty.implement` and `/spec-kitty.review` are now forwarded into the resolver-first flow instead of being silently dropped. Agents receiving explicit WP selectors (e.g., `WP03`, `--base WP01`) will correctly pass them to `spec-kitty agent context resolve` via `--wp-id` and `--base` flags.
2157
+
2158
+ - `implement.md` and `review.md` mission templates now include an `{ARGS}` placeholder with conditional forwarding instructions
2159
+ - Public slash-command docs updated: `/spec-kitty.implement` documents `[--base WP_ID]` support; `/spec-kitty.review` is now WP-only (removed stale "or prompt path" syntax)
2160
+ - Regression tests added across Markdown and TOML agent formats to ensure argument placeholders survive rendering
2161
+
2162
+ ## [2.1.2] - 2026-03-23
2163
+
2164
+ ### 🔧 Improved
2165
+
2166
+ **Skills audit and expansion**: All 6 distributed skills audited, command-verified, and expanded with full architecture documentation. Skills now document internal systems (glossary pipeline, constitution extraction, runtime DAG, git workflow boundary) so agents can operate effectively.
2167
+
2168
+ - setup-doctor: Fixed wrong CLI commands (`verify` → `verify-setup`, `status` → `agent tasks status`), added `--remove-orphaned` safety warning
2169
+ - runtime-review: Added discovery step, `--feature` flags, empty-lane guidance
2170
+ - glossary-context: Added 5-layer middleware pipeline, extraction methods, checkpoint/resume, step config
2171
+ - constitution-doctrine: Added extraction rules, governance.yaml schema, interview profiles, answers.yaml schema
2172
+ - runtime-next: Added decision algorithm, WP iteration logic, 6 guard primitives, agent loop pattern
2173
+ - orchestrator-api: Added JSON output examples, error code catalog, idempotency behavior, preflight details
2174
+
2175
+ ### ✨ Added
2176
+
2177
+ **2 new skills**: `spec-kitty-mission-system` (explains missions, 4 types, template resolution, guards) and `spec-kitty-git-workflow` (documents Python vs agent git operation boundary).
2178
+
2179
+ **Reusable skill update utility**: `src/specify_cli/upgrade/skill_update.py` for finding and patching skill files across all 13 agent skill roots.
2180
+
2181
+ **10 upgrade migrations** for consumer projects: 6 skill fixes, 1 release skill removal, 2 new skill installations, 1 glossary skill expansion.
2182
+
2183
+ **Documentation parity sprint (Feature 056)**: DocFX build now includes all 4 Divio categories (was only building 1x/ and 2x/). 5 new user guides distilled from skills, 4 existing docs expanded, 22 fact-check corrections across 20 files.
2184
+
2185
+ ### 🐛 Fixed
2186
+
2187
+ **DocFX build gap**: 56 docs files (tutorials, how-to, reference, explanation) were in the repo but excluded from the docs.spec-kitty.ai build. Now included via updated `docfx.json`.
2188
+
2189
+ **8-lane state machine documentation**: All docs updated from outdated 4-lane model (planned/doing/for_review/done) to correct 8-lane model (planned/claimed/in_progress/for_review/approved/done/blocked/canceled) with 24 allowed transitions.
2190
+
2191
+ **CLI reference completeness**: Added 12 missing commands to cli-commands.md, 7 missing subcommands to agent-subcommands.md. Fixed `spec-kitty sync` (documented as flat command, actually a group with 6 subcommands).
2192
+
2193
+ ### 🧹 Maintenance
2194
+
2195
+ - Removed `release` skill from distribution (spec-kitty development only, not for consumers)
2196
+ - Removed obsolete `docs/how-to/upgrade-to-0-11-0.md`
2197
+ - Fixed all cross-reference links in new docs (0 new DocFX build warnings)
2198
+
2199
+ ## [2.1.1] - 2026-03-21
2200
+
2201
+ ### 🐛 Fixed
2202
+
2203
+ - **Bundled doctrine payload in wheels**: the PyPI wheel now includes the full `doctrine/` package tree, including the canonical skill pack under `doctrine/skills/`, so `spec-kitty init` and `spec-kitty upgrade` can install managed skills for shipped builds.
2204
+ - **2.1.0 repair migration**: added `2.1.1_repair_skill_pack` so projects that already upgraded on broken `2.1.0` wheels reinstall the canonical managed skill pack on `spec-kitty upgrade`.
2205
+ - **Release verification guard**: the release workflow now fails if the built wheel omits doctrine files or bundled skills, and distribution tests now assert that a wheel-installed `spec-kitty init` produces the managed skill manifest and installed skill files.
2206
+
2207
+ ## [2.1.0] - 2026-03-21
2208
+
2209
+ ### ✅ Added
2210
+
2211
+ - **Agent Skills Pack (`#330`)**: added canonical bundled skills, registry/installer/verification flow, manifest support, and upgrade migration `m_2_0_11_install_skills`.
2212
+ - **Structured requirement mapping (`#329`)**: added requirement-to-work-package mapping support with CLI integration for tracing delivery intent into execution planning.
2213
+
2214
+ ### 🔧 Changed
2215
+
2216
+ - **Deterministic planning branch intent (`#328`)**: `specify` and `plan` commands now inject explicit target-branch metadata into templates to reduce ambiguity in downstream execution.
2217
+ - **Primary release line promotion**: `2.x` becomes the stable `main` line, with GitHub Releases and PyPI publication starting at `2.1.0`.
2218
+
2219
+ ### ⚠️ Deprecated
2220
+
2221
+ - **`1.x` overall**: the former `1.x` line is now deprecated and moves to `1.x-maintenance` for critical fixes only. No new `1.x` PyPI releases are planned.
2222
+
2223
+ ### 🗑️ Removed
2224
+
2225
+ - **Public `/spec-kitty.clarify` slash command (`#322`)**: removed the legacy clarify command, template, and migration path in favor of the current planning/discovery flow.
2226
+
2227
+ ## [2.0.11] - 2026-03-20
2228
+
2229
+ ### 📄 Documentation
2230
+
2231
+ - **2.x release metadata refresh**: updated the README's current-release banner so the branch advertises the active GitHub-only 2.x release line instead of the initial `v2.0.0` placeholder.
2232
+
2233
+ ## [2.0.10] - 2026-03-20
2234
+
2235
+ ### ✅ Added
2236
+
2237
+ - **Project-level `auto_commit` setting (`#321`)**: repos can now configure automatic commit behavior directly in project config.
2238
+ - **Sync queue resilience and diagnostics (`#320`)**: offline queue now supports FIFO eviction, coalescing, configurable caps, and sync doctor coverage for failure recovery.
2239
+
2240
+ ### 🐛 Fixed
2241
+
2242
+ - **Merge target resolution (`#272`)**: merge target branch is now resolved from feature `meta.json`, preventing merges from targeting the wrong branch.
2243
+ - **Acceptance and state persistence hardening (`#319`)**: state writes are now centralized around canonical metadata/state handling to reduce drift across acceptance, mission, and status flows.
2244
+ - **Feature context fallback restored**: ambiguous agent/task resolution now falls back to the latest incomplete feature instead of stopping on a stale explicit-selection error.
2245
+ - **Upgrade downgrade protection**: `spec-kitty upgrade` now refuses older targets instead of silently rewriting project metadata backwards.
2246
+ - **Migration discovery fail-fast**: broken `m_*.py` modules now fail discovery immediately instead of being skipped with a stderr warning.
2247
+ - **Upgrade metadata durability**: successful and failed migration records are now persisted immediately so retries can resume from an accurate state after mid-run failures.
2248
+ - **Safe auto-commit stash isolation**: `safe_commit()` now restores only the stash entry it created, preventing unrelated user stashes from being popped during upgrade/status auto-commits.
2249
+ - **Embedded task script compatibility**: copied `.kittify/scripts/tasks` helpers now fall back cleanly when the host `specify_cli` install is older than the copied templates.
2250
+
2251
+ ### 🔧 Changed
2252
+
2253
+ - **State architecture cleanup phase 2 (`#319`)**: consolidated atomic-write and state-contract handling across runtime, acceptance, and feature metadata paths.
2254
+ - **Test and quality isolation follow-ups**: retained the refactors that separated policy/test churn from release-critical behavior on the 2.x line.
2255
+
2256
+ ## [2.0.9] - 2026-03-15
2257
+
2258
+ ### ✅ Added
2259
+
2260
+ - **Mutation testing CI integration (feat #047)**: mutmut toolchain setup, CI integration, and targeted kill sessions for `status/` reducer and transitions.
2261
+ - **Agentic mutation testing remediation workflow**: GitHub Agentic Workflow (gh-aw) replaces the legacy Claude workflow for mutation testing remediation.
2262
+ - **SonarCloud integration**: added SonarCloud config; `develop` branch recognized as 2.x-equivalent in CI quality gates.
2263
+ - **Architecture corpus restructure**: versioned architecture docs under `architecture/1.x/` and `architecture/2.x/`, 45 ADRs, glossary contexts across 10 bounded domains, Contextive integration, and stakeholder persona definitions.
2264
+ - **`meta.json` schema example in specify template**: documents `"target_branch"` and `"vcs"` as required explicit fields.
2265
+
2266
+ ### 🐛 Fixed
2267
+
2268
+ - **Post-rebase quality fixes**: resolved unmatched `)` syntax error, `gap_analysis_path` undefined name (F821), `timezone` → `UTC` reference, unused `type: ignore` comments, and `toml` import-untyped mypy errors.
2269
+ - **Test isolation**: moved misplaced test package; fixed 3 test failures and Pydantic V1 deprecation warnings.
2270
+ - **Sync offline queue**: redirect offline queue warning to stderr instead of stdout.
2271
+ - **CI branch detection**: `develop` now recognized as a 2.x branch for branch-contract guards.
2272
+
2273
+ ### 🔧 Changed
2274
+
2275
+ - **Ruff lint compliance**: full ruff clean pass across `src/` and `tests/`; added ruff lint config to `pyproject.toml`.
2276
+ - **Documentation site updates**: 2.x docs site refresh with Contextive IDE integration guide.
2277
+ - **Test suite restructuring**: migrated to vertical-slice layout; redesigned CI quality workflow; annotated suite with fast/slow/git_repo markers; deleted tests/legacy/ after extracting unique behaviours.
2278
+
2279
+ ## [2.0.8] - 2026-03-11
2280
+
2281
+ ### 🐛 Fixed
2282
+
2283
+ - **Dashboard approved lane**: WPs with `lane: "approved"` no longer silently fall back to the "planned" column. Added "Approved" as a 5th kanban column between For Review and Done, with `claimed`→planned and `in_progress`→doing lane normalization in the scanner.
2284
+ - **Slim FEATURE_CONTEXT_UNRESOLVED payload**: reduced error payload size for LLM consumption to stay within agent context budgets.
2285
+
2286
+ ## [2.0.7] - 2026-03-11
2287
+
2288
+ ### ✅ Added
2289
+
2290
+ - **Mutation testing CI integration (feat #047)**: mutmut toolchain setup, CI integration, and targeted kill sessions for `status/` reducer and transitions (#275).
2291
+ - **Agentic mutation testing remediation workflow**: GitHub Agentic Workflow (gh-aw) replaces the legacy Claude workflow for mutation testing remediation.
2292
+ - **SonarCloud integration**: added SonarCloud config; `develop` branch recognized as 2.x-equivalent in CI quality gates.
2293
+ - **Architecture corpus restructure**: versioned architecture docs under `architecture/1.x/` and `architecture/2.x/`, 45 ADRs, glossary contexts across 10 bounded domains, Contextive integration, and stakeholder persona definitions.
2294
+ - **Google Antigravity as first-class agent (#266)**: added Google Antigravity to the supported agent roster with directory, templates, and migration coverage.
2295
+ - **Commands own workflow context (#261)**: commands now carry their own workflow context rather than relying on ambient state.
2296
+ - **Tracker snapshot publish payload (feat #048)**: resource routing in publish path (WP01) and batch API contract for tracker snapshot publish (WP02).
2297
+
2298
+ ### 🐛 Fixed
2299
+
2300
+ - **Stale overrides from upgrade version-skew (#285)**: `classify_asset()` now compares project `.kittify/` files against immutable package-bundled defaults (`get_package_asset_root()`) instead of the mutable `~/.kittify/` directory. This prevents old managed templates from being misclassified as user customizations and permanently shadowing newer templates in `.kittify/overrides/` during upgrades.
2301
+ - **New `SUPERSEDED` disposition**: managed files that differ from the current package default are now correctly classified as `SUPERSEDED` (removed) rather than `CUSTOMIZED` (moved to overrides). Only files with no package counterpart are treated as genuine user customizations.
2302
+ - **Repair migration for already-affected users**: new `2.0.7_fix_stale_overrides` migration scans `.kittify/overrides/` for files byte-identical to current package defaults and removes them. Genuine user customizations are preserved.
2303
+ - **Constitution: resolve_doctrine_root fallback for pip-installed users (#278)**: `resolve_doctrine_root()` no longer crashes when the `doctrine` package directory is missing from pip wheels; falls back to `specify_cli` package root.
2304
+ - **Merge: worktree/branch cleanup when feature is already integrated (#271)**: `spec-kitty merge` now runs worktree removal and branch deletion when all WP branches are already merged, instead of exiting with "Nothing to merge" and leaving cleanup to the user.
2305
+ - **Post-rebase quality fixes (#273)**: resolved unmatched `)` syntax error, `gap_analysis_path` undefined name (F821), `timezone` → `UTC` reference, unused `type: ignore` comments, and `toml` import-untyped mypy errors.
2306
+ - **Test isolation**: moved misplaced test package; fixed 3 test failures and Pydantic V1 deprecation warnings.
2307
+ - **Sync offline queue**: redirect offline queue warning to stderr instead of stdout.
2308
+ - **CI branch detection**: `develop` now recognized as a 2.x branch for branch-contract guards.
2309
+ - **Tracker publish path normalization (feat #048)**: normalize provider in publish path and document auth token resolution.
2310
+
2311
+ ### 🔧 Changed
2312
+
2313
+ - **Ruff lint compliance**: full ruff clean pass across `src/` and `tests/`; added ruff lint config to `pyproject.toml`.
2314
+ - **Documentation site updates**: 2.x docs site refresh with Contextive IDE integration guide.
2315
+
2316
+ ## [2.0.6] - 2026-03-10
2317
+
2318
+ ### 🐛 Fixed
2319
+
2320
+ - **Upgrade consistency sweep**: added a new `2.0.6_consistency_sweep` migration that backfills missing or blank feature `meta.json`, infers `target_branch` from feature docs or the repo primary branch, reconstructs missing `status.events.jsonl`, regenerates `status.json` and generated `tasks.md` status blocks, normalizes legacy WP frontmatter lane aliases/quoting, rewrites stale prompt paths, and archives orphan empty `status.json` snapshots before rebuilding canonical state.
2321
+ - **Worktree upgrade coverage**: `spec-kitty upgrade` now upgrades worktrees that have `kitty-specs/` or legacy `.specify/` state even when `.kittify/` has not been created yet.
2322
+ - **Detector false positives**: runtime-managed 2.x installs no longer trip legacy project-local mission migrations, and the constitution migration only flags the legacy `.kittify/memory/constitution.md` path.
2323
+ - **Target-branch backfill correctness**: the `0.13.8_target_branch` migration now uses repo-aware branch inference instead of the obsolete hardcoded Feature 025 exception.
2324
+
2325
+ ## [2.0.5] - 2026-03-10
2326
+
2327
+ ### ✅ Added
2328
+
2329
+ - **Namespace-aware artifact body sync (Feature 047)**: Full offline-first pipeline for pushing spec artifact bodies (markdown content) to the SaaS backend, including `NamespaceRef` typed identifiers, `OfflineBodyUploadQueue` SQLite persistence, body upload preparation and filtering, HTTP transport with response classification, dossier pipeline orchestration with partial failure handling, background sync queue drain, and end-to-end diagnostics/logging.
2330
+
2331
+ ### 🐛 Fixed
2332
+
2333
+ - **Init default directory (`#258`)**: `spec-kitty init` now defaults to the current directory when project name is omitted on the 2.x line.
2334
+ - **Sync integration**: Completed namespace artifact body sync wiring for end-to-end operation.
2335
+
2336
+ ### 📄 Documentation
2337
+
2338
+ - **Connector auth binding ADR**: Added architectural decision record for connector authentication binding and installation model gap analysis.
2339
+ - **Command-owned action context ADR**: Defined command-owned action context pattern.
2340
+
2341
+ ## [2.0.4] - 2026-03-06
2342
+
2343
+ ### 🐛 Fixed
2344
+
2345
+ - **Upgrade JSON machine-parseability hardening (`#254`)**: `spec-kitty upgrade --json` now emits raw JSON output without Rich console wrapping.
2346
+ - **Upgrade migration status consistency (`#256`)**: non-applicable migrations are reported as `skipped` instead of incorrectly marked as applied.
2347
+
2348
+ ### 🔧 Changed
2349
+
2350
+ - **Contract hardening closeout (`#213`-`#218`)**: merged deterministic branch/runtime contracts, typed artifact-path payloads, merge/preflight JSON enrichment, and banner suppression in agent contexts.
2351
+ - **Codex/Copilot slash-flow reliability (`#128`)**: integrated slash-command output stability improvements via deterministic JSON/banners/template alignment.
2352
+ - **Worktree/preflight stability (`#226`)**: released preflight and command-contract hardening on the 2.x line for end-to-end spec→implement→review runs.
2353
+
2354
+ ## [2.0.2] - 2026-02-27
2355
+
2356
+ ### ✅ Added
2357
+
2358
+ - **Flag-gated tracker command group**: added `spec-kitty tracker ...` commands behind `SPEC_KITTY_ENABLE_SAAS_SYNC`, including provider listing, bind/unbind, mapping, local sync pull/push/run, and snapshot publish.
2359
+ - **Tracker host-local persistence + credentials support**: added CLI-owned tracker SQLite cache/checkpoints and provider credential handling consistent with existing Spec Kitty host persistence patterns.
2360
+
2361
+ ### 🔧 Changed
2362
+
2363
+ - **Dependency floor hardening for 2.x installs**: added explicit lower bounds for previously unbounded core CLI direct dependencies to reduce resolver drift in fresh environments.
2364
+ - **Workflow review lane guard**: review start now requires a valid `for_review` lane state before progressing.
2365
+
2366
+ ## [2.0.1] - 2026-02-26
2367
+
2368
+ ### 🐛 Fixed
2369
+
2370
+ - **Main bias fix**: `resolve_primary_branch()` now checks the current branch before the hardcoded `[main, master, develop]` list. Repos on non-standard primary branches (e.g., `2.x`) no longer get blocked by `spec-kitty specify`.
2371
+ - `create_feature()` records the current branch as `target_branch` in `meta.json` instead of guessing via heuristics. Added `--target-branch` CLI option for explicit override.
2372
+ - `guards.py` uses `resolve_primary_branch()` instead of hardcoded `{"main", "master"}` set.
2373
+ - `merge-feature --target` auto-detects from `meta.json` when not specified.
2374
+ - Template references to "main" replaced with "target branch" throughout command templates.
2375
+
2376
+ ### 🔧 Changed
2377
+
2378
+ - **Dashboard `--open` flag**: Browser auto-open is now disabled by default. Pass `--open` to open the dashboard URL in your browser. Prevents browser windows from spawning during tests or CI.
2379
+ - Consolidated 3 ad-hoc branch-check functions into `_show_branch_context()` for consistent branch banners across all planning commands.
2380
+
2381
+ ## [2.0.0] - 2026-02-22
2382
+
2383
+ ### 🔧 Changed
2384
+
2385
+ - Start semantic versioning for `2.x` GitHub-only releases using `v2.<minor>.<patch>` tags.
2386
+ - `2.x` release automation now publishes GitHub Releases only (no PyPI publish step).
2387
+
2388
+ ### 🐛 Fixed
2389
+
2390
+ - `spec-kitty next` no longer short-circuits `--result failed|blocked` in the CLI bridge; both now flow through `spec-kitty-runtime` `next_step(...)`, preserving canonical runtime lifecycle behavior and run metadata.
2391
+ - Runtime mission template selection for `next` now follows deterministic precedence tiers (`explicit`, `env`, `project override`, `project legacy`, `user global`, `project config`, `builtin`) when resolving `mission-runtime.yaml`.
2392
+ - `--answer --json` integration coverage now exercises a real pending-decision success path (runtime `requires_inputs`) instead of fake decision IDs.
2393
+ - Added replay-parity integration coverage in `spec-kitty` against `spec-kitty-events` canonical fixture stream (`mission-next-replay-full-lifecycle`).
2394
+ - **WP prompt tracking reliability**: removed stale `kitty-specs/**/tasks/*.md` from tracked `.gitignore`, migrated existing projects away from that rule, and hardened workflow status commits to fail loudly if claim commits cannot be written.
2395
+
2396
+ ## [2.0.0a5] - 2026-02-14
2397
+
2398
+ ### 🐛 Fixed
2399
+
2400
+ **Backported orchestrator deadlock fixes from v0.15.3**:
2401
+
2402
+ - **Orchestrator deadlock**: Fixed false "No progress possible" detection when WP tasks raise exceptions or complete but leave WPs in intermediate states (IMPLEMENTATION/REVIEW). The orchestrator now properly marks failed WPs as FAILED and restarts orphaned WPs, preventing deadlock cascades. (Backport of #137 by @tannn)
2403
+ - **Exception handling**: Task exceptions now properly mark WPs as FAILED with error details, allowing dependent WPs to recognize failure instead of blocking indefinitely
2404
+ - **WP restart logic**: Added restart counter to prevent infinite restart loops if WP repeatedly fails to advance state. Restarts are now capped at `max_retries` (default: 3)
2405
+ - **State recovery**: Improved detection of interrupted implementations (IMPLEMENTATION status without `implementation_completed` timestamp) to automatically reset and retry
2406
+
2407
+ ### 🧹 Maintenance
2408
+
2409
+ - **Test coverage**: Added 8 new orchestrator tests covering exception handling, restart scenarios, deadlock detection, and state persistence
2410
+ - **Test quality**: Reorganized test suite with proper markers (`@pytest.mark.orchestrator_exception_handling`, `@pytest.mark.orchestrator_deadlock_detection`) and class grouping following project conventions
2411
+
2412
+ ## [2.0.0a4] - 2026-02-13
2413
+
2414
+ ### 🐛 Fixed
2415
+
2416
+ **Backported v0.15.2 hotfix from main branch**:
2417
+
2418
+ - **Branch detection**: Replaced single `rev-parse --abbrev-ref HEAD` with dual-strategy
2419
+ approach (`git branch --show-current` primary, `rev-parse` fallback). Fixes unborn branch
2420
+ detection and detached HEAD handling. Updated all inline callers in tasks.py, workflow.py,
2421
+ and vcs/git.py.
2422
+
2423
+ - **Subprocess encoding safety**: Added `encoding="utf-8", errors="replace"` to all ~135
2424
+ `subprocess.run(text=True)` calls across 36 files. Prevents crashes on non-UTF-8 git output (Windows, locale mismatches).
2425
+
2426
+ - **Pre-commit hook safety**: Removed `set -e` from encoding check hook, expanded Python
2427
+ interpreter detection (loops through python3/python/py with smoke test), fixed exit code
2428
+ handling to distinguish encoding errors (exit 2) from execution failures.
2429
+
2430
+ - **Init fail-fast**: `spec-kitty init` now raises RuntimeError immediately after git init
2431
+ failure instead of falling through to "project ready" success message.
2432
+
2433
+ - **PowerShell templates**: Added PowerShell equivalent blocks to implement.md templates
2434
+ for software-dev, research, and documentation missions.
2435
+
2436
+ ## [2.0.0a3] - 2026-02-11
2437
+
2438
+ ### 🐛 Fixed
2439
+
2440
+ **Complete Bug #119 cherry-pick**:
2441
+ - Fixed missing update to `scripts/tasks/acceptance_support.py` (root-level test helper)
2442
+ - This file was missed in the original Bug #119 cherry-pick, causing test failures
2443
+ - Now all acceptance_support.py copies correctly exclude 'done' lane from assignee requirement
2444
+
2445
+ ## [2.0.0a2] - 2026-02-11
2446
+
2447
+ ### 🐛 Fixed
2448
+
2449
+ **Cherry-picked 7 critical bug fixes from v0.15.0 (main branch)**:
2450
+
2451
+ - **Bug #95**: Enforce kebab-case validation for feature slugs
2452
+ - Rejects slugs with spaces, underscores, uppercase, or leading numbers
2453
+ - Prevents invalid directory structures and broken workflow commands
2454
+ - Added 8 comprehensive validation tests
2455
+
2456
+ - **Bug #120**: Use local git exclude for worktree ignores
2457
+ - Worktree-specific ignores now written to `.git/info/exclude` instead of `.gitignore`
2458
+ - Prevents `.gitignore` pollution when merging worktrees
2459
+ - VCS abstraction layer handles legacy worktree filtering consistently
2460
+
2461
+ - **Bug #117**: Improve dashboard lifecycle and error diagnostics
2462
+ - Dashboard process detection no longer reports false failures
2463
+ - Distinguishes between health check timeout (process running) vs actual failure
2464
+ - Provides specific error messages for missing metadata, port conflicts, permission errors
2465
+
2466
+ - **Bug #124**: Unify branch resolution, stop implicit master fallback
2467
+ - Respects user's current branch instead of auto-checkout
2468
+ - Shows notification when current branch differs from feature target
2469
+ - No more surprise checkouts during `spec-kitty implement` or `move-task`
2470
+ - Consistent branch resolution across all commands
2471
+
2472
+ - **Bug #119**: Relax strict assignee gate in acceptance validation
2473
+ - Assignee now optional for completed work packages in 'done' lane
2474
+ - Strict validation still enforces assignee for 'doing' and 'for_review'
2475
+ - Required fields (lane, agent, shell_pid) still mandatory
2476
+
2477
+ - **Bug #122**: Prevent staged files from leaking into status commits
2478
+ - New `safe_commit()` helper explicitly stages only intended files
2479
+ - Status commits no longer capture unrelated staged changes
2480
+ - Preserves user's staging area across workflow operations
2481
+
2482
+ - **Bug #123**: Call lane transition before status update (atomic state)
2483
+ - Lane transitions now happen BEFORE internal state updates
2484
+ - Prevents inconsistent state when operations fail mid-transition
2485
+ - Applies to orchestrator implementation and review phases
2486
+
2487
+ All fixes include comprehensive test coverage (54+ new tests) and maintain backward compatibility.
2488
+
2489
+ ## [0.13.26] - 2026-02-04
2490
+
2491
+ ### 🛠️ Refactored
2492
+
2493
+ **Consolidated workflow implement workspace creation**:
2494
+ - `spec-kitty agent workflow implement` now delegates workspace creation to `spec-kitty implement` when needed
2495
+ - Removes duplicated worktree setup in the agent command
2496
+ - Prevents agents from creating worktrees from inside another worktree
2497
+
2498
+ ### 🐛 Fixed
2499
+
2500
+ **Clearer recovery guidance for multi-parent merge failures**:
2501
+ - When auto-merge fails, instructions now show concrete recovery steps
2502
+ - Explicitly warns there is no `spec-kitty agent workflow merge` command
2503
+ - Points agents to the correct `spec-kitty agent feature merge` command
2504
+
2505
+ ## [0.13.25] - 2026-02-04
2506
+
2507
+ ### 🐛 Fixed
2508
+
2509
+ **`spec-kitty upgrade` not bumping version when no migrations needed**:
2510
+ - When `spec-kitty upgrade` found no applicable migrations, it returned early without updating the version in `.kittify/metadata.yaml`
2511
+ - This left the project stuck at its old version (e.g., 0.13.21) even though the CLI was newer (0.13.24)
2512
+ - The dashboard then blocked with a version mismatch error
2513
+ - Fixed both `upgrade.py` (CLI command path) and `runner.py` (programmatic path) to stamp the version even when no migrations are needed
2514
+
2515
+ ## [0.13.24] - 2026-02-04
2516
+
2517
+ ### 🔧 Improved
2518
+
2519
+ **Review workflow shows git context for reviewers**:
2520
+ - `spec-kitty agent workflow review` now displays the WP's branch name, base branch, and commit count
2521
+ - Reviewers see exactly which commits belong to the WP vs inherited history
2522
+ - Provides ready-to-use `git log <base>..HEAD` and `git diff <base>..HEAD` commands
2523
+ - Base branch auto-detected from WP dependencies (tries dependency branches first, then main/2.x)
2524
+ - Prevents reviewers from accidentally diffing against the wrong base (e.g., `main` instead of `2.x`)
2525
+
2526
+ ## [0.13.20] - 2026-01-30
2527
+
2528
+ ### 🐛 Fixed
2529
+
2530
+ **Merged Single-Parent Dependency Workflow Gap** (ADR-18):
2531
+ - Fixed `spec-kitty implement` failing when single-parent dependency has been merged to target branch
2532
+ - Issue: WP01 merged to 2.x → WP02 can't implement (looks for non-existent WP01 workspace branch)
2533
+ - Root cause: Implement command didn't distinguish between in-progress vs merged dependencies
2534
+ - Solution: Auto-detect when dependency lane is "done" and branch from target branch instead
2535
+ - Behavior:
2536
+ - If `base_wp.lane == "done"`: Branch from target branch (e.g., 2.x) - merged work already there
2537
+ - If `base_wp.lane != "done"`: Branch from workspace branch (e.g., 025-feature-WP01) - work in progress
2538
+ - Eliminates need for manual frontmatter editing (remove dependencies, update base_branch)
2539
+ - Complements ADR-15 (multi-parent all-done suggestion) for single-parent case
2540
+ - **Impact**: Critical fix for normal workspace-per-WP workflow where dependencies complete before dependents start
2541
+ - **Technical Story**: Feature 025-cli-event-log-integration WP02/WP08 blocked on merged WP01
2542
+
2543
+ ## [0.13.7] - 2026-01-27
2544
+
2545
+ ### 🐛 Fixed
2546
+
2547
+ **Activity Log Parser Failing on Hyphenated Agent Names** ([#111](https://github.com/Priivacy-ai/spec-kitty/pull/111)):
2548
+ - Fixed `activity_entries()` regex in `tasks_support.py` to handle hyphenated agent names
2549
+ - Parser was using `[^–-]+?` pattern which treated hyphens as field separators
2550
+ - Agent names like `cursor-agent`, `claude-reviewer`, `cursor-reviewer` now parse correctly
2551
+ - Acceptance validation no longer fails with "Activity Log missing entry for lane=done" for hyphenated agents
2552
+ - Changed pattern to `\S+(?:\s+\S+)*?` (matches non-whitespace), aligning with `task_helpers.py`
2553
+ - Added comprehensive test suite with 11 test cases covering hyphenated names, backward compatibility, and edge cases
2554
+ - **Contributors**: Rodrigo D. L. (bruj0)
2555
+
2556
+ **Workflow Completion Instructions Missing Git Commit Step** ([#104](https://github.com/Priivacy-ai/spec-kitty/pull/104)):
2557
+ - Fixed agents not committing implementation files before marking tasks done
2558
+ - Issue caused cascading failures where dependent work packages started from empty branches
2559
+ - WP02 worktree had HTML + CSS ✅
2560
+ - WP03 worktree had HTML only (missing WP02's CSS) ❌
2561
+ - WP04 worktree had HTML only (missing CSS and JS from WP02 and WP03) ❌
2562
+ - Root cause: "WHEN YOU'RE DONE" instructions in `workflow implement` command didn't include git commit step
2563
+ - Fix: Added explicit git commit instruction as step 1 in completion checklist
2564
+ - Updated both in-prompt instructions (shown twice) and terminal output summary
2565
+ - Added warning: "The move-task command will FAIL if you have uncommitted changes! Commit all implementation files BEFORE moving to for_review. Dependent work packages need your committed changes."
2566
+ - **Impact**: Critical fix for multi-agent parallel development workflows using workspace-per-WP model (v0.11.0+)
2567
+ - **Contributors**: Jerome Lacube
2568
+
2569
+ **Dashboard Command Template Generating Python Code Instead of Running CLI** ([#94](https://github.com/Priivacy-ai/spec-kitty/issues/94), [#99](https://github.com/Priivacy-ai/spec-kitty/pull/99)):
2570
+ - Fixed `/spec-kitty.dashboard` command template to use `spec-kitty dashboard` CLI command
2571
+ - Removed outdated Python code that manually checked dashboard status and opened browsers
2572
+ - Dashboard now properly:
2573
+ - Starts automatically if not running
2574
+ - Opens in default browser
2575
+ - Handles worktree detection automatically
2576
+ - Updated all three dashboard template files:
2577
+ - `.kittify/missions/software-dev/command-templates/dashboard.md`
2578
+ - `src/specify_cli/missions/software-dev/command-templates/dashboard.md`
2579
+ - `src/specify_cli/templates/command-templates/dashboard.md`
2580
+ - Reduced template code from ~264 lines to ~47 lines
2581
+ - **Contributors**: Jerome Lacube
2582
+
2583
+ ## [0.13.6] - 2026-01-27
2584
+
2585
+ ### 🐛 Fixed
2586
+
2587
+ **Critical JSON Mode Corruption Fix** (Release Blocker):
2588
+ - Fixed JSON output corruption in `spec-kitty implement --json` mode (GitHub Issue #72 follow-up)
2589
+ - **Bug**: Warning messages from empty branch detection were written to stdout, corrupting JSON output
2590
+ - **Impact**: Automated workflows using `--json` flag would fail with JSON parse errors
2591
+ - **Fix**: Changed warning messages to use `file=sys.stderr` to separate warnings from JSON output
2592
+ - **File**: `src/specify_cli/core/multi_parent_merge.py:142-144`
2593
+ - **Tests**: Updated 5 tests in `test_multi_parent_merge_empty_branches.py` to check stderr instead of stdout
2594
+
2595
+ **Missing Migration Fix** (Existing Users Affected):
2596
+ - Fixed missing migration for commit workflow section (GitHub Issue #72 follow-up)
2597
+ - **Bug**: New projects got commit workflow section in implement.md, but existing projects didn't after upgrade
2598
+ - **Impact**: Existing users remained vulnerable to agents forgetting to commit work
2599
+ - **Fix**: Created migration `m_0_13_5_add_commit_workflow_to_templates.py` to update all agent templates
2600
+ - **Coverage**: Updates both software-dev and documentation mission templates for all 12 agents
2601
+ - **Migration**: Automatically runs on `spec-kitty upgrade` for projects missing commit workflow
2602
+
2603
+ **Subprocess Error Handling** (Defensive Programming):
2604
+ - Added timeout and error handling to multi-parent merge git commands
2605
+ - **Bug**: Git commands in empty branch detection lacked timeout parameters and try/except blocks
2606
+ - **Impact**: Function could hang forever or crash on git errors (corrupted repo, permission issues)
2607
+ - **Fix**: Added 10-second timeouts and exception handling to all git subprocess calls
2608
+ - **File**: `src/specify_cli/core/multi_parent_merge.py:117-144`
2609
+ - **Errors handled**: TimeoutExpired (>10s git commands), general exceptions with warning
2610
+
2611
+ ### Added
2612
+
2613
+ - Git commit validation for "done" status transitions - prevents completing WPs with uncommitted changes
2614
+ - Empty branch detection in merge-base creation - warns when dependencies have no commits
2615
+ - Git commit workflow section in documentation mission template (consistency with software-dev/research)
2616
+ - Comprehensive troubleshooting guide for empty branch recovery in the legacy workspace-model documentation
2617
+ - Migration to add commit workflow section to existing projects (`m_0_13_5_add_commit_workflow_to_templates.py`)
2618
+
2619
+ ### Changed
2620
+
2621
+ - `move-task --to done` now validates git status (same checks as "for_review")
2622
+ - Use `--force` flag to bypass validation (not recommended)
2623
+ - Warning messages in multi-parent merge now output to stderr instead of stdout (preserves JSON output integrity)
2624
+
2625
+ ### Fixed (Non-Critical)
2626
+
2627
+ - WP agents can no longer mark tasks as "done" without committing implementation files
2628
+ - Multi-parent merge-bases no longer silently accept empty dependency branches
2629
+ - Documentation mission now instructs agents to commit work before review
2630
+ - Stale WP detection now correctly detects default branch name (main/master/develop) instead of hardcoding "main"
2631
+ - **Bug**: Fresh worktrees incorrectly flagged as stale when repository used non-standard default branch
2632
+ - **Root Cause**: Code hardcoded "main" as default branch; when `git merge-base HEAD main` failed, it fell through to using parent branch's old commit timestamp
2633
+ - **Fix**: Added `get_default_branch()` helper to dynamically detect default branch via origin HEAD or local branch existence
2634
+ - **Impact**: Prevents false staleness warnings for fresh worktrees in repos using "master", "develop", or other default branches
2635
+
2636
+ ## [0.13.5] - 2026-01-26
2637
+
2638
+ ### 🐛 Fixed
2639
+
2640
+ **Fixed /spec-kitty.clarify Command Template**:
2641
+ - Fixed broken placeholder in clarify template that prevented agents from running clarification workflow
2642
+ - **Bug**: Template contained `(Missing script command for sh)` placeholder instead of actual command
2643
+ - **Impact**: Agents couldn't get feature context, invented non-existent commands like `spec-kitty agent feature get-active --json`
2644
+ - **Fix**: Replaced manual detection logic with `spec-kitty agent feature check-prerequisites --json --paths-only`
2645
+ - **Consistency**: Now matches pattern used in specify.md, plan.md, and tasks.md templates
2646
+ - Migration `m_0_13_5_fix_clarify_template.py` automatically updates all 12 agent directories on upgrade
2647
+ - Source template: `src/specify_cli/missions/software-dev/command-templates/clarify.md`
2648
+
2649
+ **Testing**:
2650
+ - Added comprehensive test suite with 34 tests covering all scenarios
2651
+ - Parametrized tests for all 12 agents (claude, copilot, gemini, cursor, qwen, opencode, windsurf, codex, kilocode, auggie, roo, q)
2652
+ - Tests for detection, application, agent config respect, idempotency, dry-run
2653
+ - Template content validation (ensures no broken placeholders, matches tasks.md pattern)
2654
+ - End-to-end integration test verifying migration actually runs and fixes templates
2655
+
2656
+ ## [0.13.4] - 2026-01-26
2657
+
2658
+ ### 🐛 Fixed
2659
+
2660
+ **Critical Dependency Validation Fix**:
2661
+ - Fixed `spec-kitty agent workflow implement` not validating WP dependencies before creating workspaces
2662
+ - **Bug**: WP with single dependency could create workspace without `--base` flag
2663
+ - **Impact**: Workspace branched from main instead of dependency branch (silent correctness bug)
2664
+ - **Fix**: Added shared validation utility that errors when single dependency but no `--base` provided
2665
+ - **Example**: `WP06` depends on `WP04` → command now errors and suggests `--base WP04`
2666
+ - Created `src/specify_cli/core/implement_validation.py` with `validate_and_resolve_base()`
2667
+ - Agent commands now delegate to top-level commands (no more legacy script calls)
2668
+
2669
+ **Fixed Broken Agent Commands**:
2670
+ - Fixed `spec-kitty agent feature accept` calling non-existent `scripts/tasks/tasks_cli.py`
2671
+ - Now delegates to top-level `accept()` command
2672
+ - Fixed `spec-kitty agent feature merge` calling non-existent `scripts/tasks/tasks_cli.py`
2673
+ - Now delegates to top-level `merge()` command
2674
+ - Parameter mapping: `keep_branch` → `delete_branch` (inverted logic)
2675
+
2676
+ **Critical Merge Workflow Fix**:
2677
+ - Fixed merge failing when main branch lacks upstream tracking (Issue reported post-0.13.2 release)
2678
+ - 0.13.2 only checked if remote EXISTS, but not if branch TRACKS it
2679
+ - Added `has_tracking_branch()` function to check upstream tracking
2680
+ - Merge now skips pull if: (1) no remote OR (2) no upstream tracking
2681
+ - Affects users with local-only repos or repos where main doesn't track origin/main
2682
+
2683
+ **Testing & Prevention**:
2684
+ - Added 22 new tests for dependency validation and agent command wrappers
2685
+ - Unit tests: `test_implement_validation.py` (11 tests)
2686
+ - Integration tests: `test_agent_command_wrappers.py` (11 tests)
2687
+ - Added `TestMigrationRegistryCompleteness` test (prevents 0.13.2-style release blocker)
2688
+ - Verifies all `m_*.py` migration files are imported in `__init__.py`
2689
+ - Prevents silent bugs where migrations exist but never run
2690
+ - Added integration tests for merge with untracked branches
2691
+ - Added unit tests for `has_tracking_branch()` function
2692
+
2693
+ **Documentation**:
2694
+ - Added `src/specify_cli/cli/commands/agent/README.md` (wrapper pattern documentation)
2695
+ - Dependency validation best practices
2696
+ - Parameter mapping guidelines
2697
+ - Common pitfalls and examples
2698
+ - Updated RELEASE_CHECKLIST.md with mandatory migration registry verification
2699
+
2700
+ ## [0.13.2] - 2026-01-26
2701
+
2702
+ ### 🐛 Fixed
2703
+
2704
+ **Critical Windows Compatibility Issues**:
2705
+ - Fixed UTF-8 encoding errors causing Windows crashes (Issue #101)
2706
+ - Added `encoding='utf-8'` to all `write_text()` and `read_text()` calls
2707
+ - Affected files: feature.py, worktree.py, agent_context.py, doc_generators.py, gap_analysis.py
2708
+ - Completes PR #100 which missed several locations
2709
+ - Fixed hardcoded `python3` breaking Windows installations (Issue #105)
2710
+ - Replaced with `sys.executable` in Python code (feature.py)
2711
+ - Added dynamic Python detection in git hooks (tries python3, falls back to python)
2712
+ - Windows users no longer need to create python3 hardlinks/aliases
2713
+
2714
+ **Workflow Improvements**:
2715
+ - Added `--base` parameter to `spec-kitty agent workflow implement` (Issue #96)
2716
+ - Enables agents to create dependent WP worktrees via workflow command
2717
+ - Provides feature parity with top-level `spec-kitty implement` command
2718
+ - Example: `spec-kitty agent workflow implement WP02 --base WP01 --agent claude`
2719
+
2720
+ **Template and Documentation Fixes**:
2721
+ - Fixed broken `/spec-kitty.clarify` skill (Issue #106)
2722
+ - Removed unresolved `{SCRIPT}` and `{ARGS}` placeholders
2723
+ - Replaced with auto-detection instructions for feature paths
2724
+ - Fixed outdated template path references (Issue #102)
2725
+ - Updated 6 references from `.kittify/templates/` to `src/specify_cli/missions/`
2726
+ - Templates now reference correct bundled locations
2727
+ - Fixed upgrade version detection for modern projects (Issue #108)
2728
+ - Added detection for versions 0.7.0-0.13.0
2729
+ - Prevents unnecessary migrations on modern projects
2730
+ - Regenerated all 12 agent constitution templates (Issue #97)
2731
+ - All agents now correctly suggest `/spec-kitty.specify` as next step (not `/spec-kitty.plan`)
2732
+
2733
+ ### 📚 Documentation
2734
+
2735
+ - Added GitHub CLI authentication troubleshooting to CLAUDE.md
2736
+ - Documents `unset GITHUB_TOKEN` technique for organization repos
2737
+
2738
+ **Issues Closed**: #96, #97, #101, #102, #105, #106, #108, #103 (not a bug), #107 (not a bug)
2739
+
2740
+ ## [0.13.1] - 2026-01-25
2741
+
2742
+ ### ✨ Added
2743
+
2744
+ **Adversarial Test Suite for 0.13.0 Release**:
2745
+ - **Distribution tests**: Validate PyPI user experience without SPEC_KITTY_TEMPLATE_ROOT bypass (prevents 0.10.8-style packaging failures)
2746
+ - **Path validation security tests**: Test directory traversal, symlink attacks, case-sensitivity bypasses, and path injection prevention
2747
+ - **CSV schema attack tests**: Validate handling of formula injection, encoding errors, duplicate columns, and empty files
2748
+ - **Git state detection tests**: Verify accuracy of uncommitted work, merge state, and branch divergence detection
2749
+ - **Migration robustness tests**: Test UTF-8 encoding, idempotency, and partial/corrupted file handling
2750
+ - **Multi-parent merge tests**: Validate dependency-order merging and conflict resolution
2751
+ - **Context & config tests**: Test non-interactive modes, agent configuration, and workspace validation
2752
+
2753
+ **Test Infrastructure**:
2754
+ - New `tests/adversarial/` directory with shared fixtures and attack vectors
2755
+ - `@pytest.mark.distribution` and `@pytest.mark.slow` markers for CI optimization
2756
+ - Session-scoped `wheel_install` fixture for efficient testing
2757
+ - Platform-specific skip conditions for cross-platform compatibility
2758
+
2759
+ ### 📚 Documentation
2760
+
2761
+ **Testing**:
2762
+ - Comprehensive adversarial test documentation in feature 024 spec
2763
+ - Attack vector catalog with prevention strategies
2764
+ - CI integration guidance for slow/distribution tests
2765
+
2766
+ ## [0.13.0] - 2026-01-25
2767
+
2768
+ ### ✨ Added
2769
+
2770
+ **Deterministic CSV Schema Enforcement for Research Missions**:
2771
+ - **Canonical schema documentation**: Research CSV schemas now documented in all 12 agent implement.md templates
2772
+ - **Two schemas enforced**:
2773
+ - `evidence-log.csv`: `timestamp,source_type,citation,key_finding,confidence,notes`
2774
+ - `source-register.csv`: `source_id,citation,url,accessed_date,relevance,status`
2775
+ - **Schema visibility**: Agents see schemas before editing (in "Research CSV Schemas" section with examples)
2776
+ - **Detection migration**: `m_0_13_0_research_csv_schema_check.py` scans existing features for schema mismatches (informational only, no auto-fix)
2777
+ - **Template propagation**: `m_0_13_0_update_research_implement_templates.py` updates all agent templates with schema documentation
2778
+ - **Reusable validator**: `src/specify_cli/validators/csv_schema.py` provides `CSVSchemaValidation` dataclass for exact schema matching
2779
+ - **Exported constants**: `EVIDENCE_REQUIRED_COLUMNS` and `SOURCE_REGISTER_REQUIRED_COLUMNS` now importable from `research.py`
2780
+ - **ADR #8**: Documents architecture decision for documentation-based enforcement vs runtime enforcement/auto-migration
2781
+
2782
+ **Problem Solved**: Agents were modifying CSV schemas during implementation, creating different schemas in parallel WPs, causing merge conflicts and validation failures at review time.
2783
+
2784
+ **Solution Approach**: Document schemas where agents can see them (prevention) rather than runtime enforcement or auto-migration (data loss risk).
2785
+
2786
+ **Fully Non-Interactive Init Support**:
2787
+ - Added `--non-interactive` / `--yes` and `SPEC_KITTY_NON_INTERACTIVE` to disable prompts
2788
+ - Added `--agent-strategy`, `--preferred-implementer`, and `--preferred-reviewer` to expose all selection options via CLI
2789
+ - Non-interactive mode now avoids arrow-key menus and requires `--force` for non-empty `--here` directories
2790
+ - Updated documentation for automation and CI usage
2791
+
2792
+ ### 🐛 Fixed
2793
+
2794
+ **Windows UTF-8 Encoding Crashes**:
2795
+ - Fixed all `write_text()` calls to include `encoding='utf-8'` parameter
2796
+ - Affects feature creation, worktree setup, gap analysis, doc generators, agent context, and test fixtures
2797
+ - Windows users can now create features without charmap encoding errors
2798
+ - Fixes #101, incorporates PR #100
2799
+
2800
+ **Constitution Template Workflow**:
2801
+ - Fixed incorrect next-step suggestion after creating constitution
2802
+ - Now correctly suggests `/spec-kitty.specify` instead of `/spec-kitty.plan`
2803
+ - Propagated fix to all 12 agent directories via migration
2804
+ - Fixes #97 (inspired by PR #98)
2805
+
2806
+ **Research Mission Detection**:
2807
+ - Fixed `spec-kitty mission current` to show feature-level missions
2808
+ - Now auto-detects feature from current directory (kitty-specs or worktree)
2809
+ - Added `--feature` flag for explicit feature specification
2810
+ - No longer always defaults to software-dev for research features
2811
+ - Fixes #93
2812
+
2813
+ ### 🎉 Closed
2814
+
2815
+ **Agent Configuration Feature**:
2816
+ - Closed #51 as completed (already implemented in v0.12.0)
2817
+ - Feature: `spec-kitty agent config add/remove/list`
2818
+
2819
+ ### 📚 Documentation
2820
+
2821
+ **Release Management**:
2822
+ - Added `RELEASE_CHECKLIST.md` - Comprehensive release preparation checklist with version-specific sections for research missions, agent management, and workspace-per-WP changes
2823
+
2824
+ ### Migration Notes
2825
+
2826
+ **For users with existing research features**:
2827
+ 1. Run `spec-kitty upgrade` to trigger detection migration
2828
+ 2. See informational report with schema diffs and migration tips
2829
+ 3. Use LLM agent to help migrate data:
2830
+ - Read canonical schema in `.claude/commands/spec-kitty.implement.md`
2831
+ - Create new CSV with correct headers
2832
+ - Map old columns → new columns
2833
+ - Replace old file and commit to main
2834
+
2835
+ **For new research features (0.13.0+)**:
2836
+ - Templates already have correct schemas
2837
+ - Agents see schema documentation before editing
2838
+ - Follow append-only pattern to avoid overwrites
2839
+ - Validation passes at review
2840
+
2841
+ ## [0.12.1] - 2026-01-24
2842
+
2843
+ ### 🐛 Fixed
2844
+
2845
+ **kitty-specs/ in .gitignore Blocking Feature Creation**:
2846
+ - Fixed issue where users with `kitty-specs/` in their `.gitignore` couldn't create features
2847
+ - Error manifested as: "Issue Detected: The spec-kitty agent feature create-feature command failed to commit because .gitignore contains kitty-specs/"
2848
+ - New migration `m_0_12_1_remove_kitty_specs_from_gitignore` automatically removes blocking entries
2849
+ - Only removes patterns that block the entire `kitty-specs/` directory
2850
+ - Preserves worktree-specific patterns like `kitty-specs/**/tasks/*.md` (used to prevent merge conflicts)
2851
+
2852
+ ### Migration Notes
2853
+
2854
+ **For users experiencing this bug:**
2855
+ 1. Run `spec-kitty upgrade` to apply the fix automatically
2856
+ 2. Or manually remove `kitty-specs/` from your `.gitignore`
2857
+
2858
+ The migration will detect and remove entries like:
2859
+ - `kitty-specs`
2860
+ - `kitty-specs/`
2861
+ - `/kitty-specs`
2862
+ - `/kitty-specs/`
2863
+
2864
+ It will NOT remove specific subpath patterns that are intentionally used in worktrees.
2865
+
2866
+ ## [0.12.0] - 2026-01-23
2867
+
2868
+ ### ✨ Added
2869
+
2870
+ **Config-Driven Agent Management** (Feature 022):
2871
+ - **Single source of truth**: `.kittify/config.yaml` now controls which agents are configured
2872
+ - **New CLI commands**: `spec-kitty agent config list|add|remove|status|sync`
2873
+ - `list`: Show configured agents
2874
+ - `add <agents...>`: Add agents to configuration
2875
+ - `remove <agents...>`: Remove agents from configuration
2876
+ - `status`: Show configured vs orphaned agents
2877
+ - `sync`: Synchronize filesystem with configuration
2878
+ - **Migrations respect config**: `get_agent_dirs_for_project()` helper only processes configured agents
2879
+ - **Orphan detection**: Identifies agent directories not in config (from manual deletions)
2880
+ - **ADR #6**: Documents architectural decision for config-driven approach
2881
+
2882
+ **Smarter Feature Merge with Pre-flight** (Feature 017):
2883
+ - **Pre-flight validation**: Checks all WP worktrees for uncommitted changes, missing worktrees, and target branch divergence before any merge starts
2884
+ - **Conflict forecasting**: `--dry-run` predicts which files will conflict and classifies them as auto-resolvable (status files) or manual
2885
+ - **Smart merge order**: WPs merged in dependency order based on frontmatter `dependencies` field
2886
+ - **Status file auto-resolution**: Conflicts in WP prompt files (`kitty-specs/*/tasks/*.md`) automatically resolved by taking advanced lane status
2887
+ - **Merge state persistence**: Progress saved to `.kittify/merge-state.json` for recovery
2888
+ - **Resume/abort flags**: `--resume` continues interrupted merges, `--abort` clears state and starts fresh
2889
+ - **Auto-cleanup**: Worktrees and branches removed after successful merge (configurable with `--keep-worktree`, `--keep-branch`)
2890
+
2891
+ ### 📚 Documentation
2892
+
2893
+ **Merge Preflight Documentation** (Feature 018):
2894
+ - Added `docs/how-to/merge-feature.md` - Complete merge workflow guide with pre-flight, dry-run, strategies, and cleanup options
2895
+ - Added `docs/how-to/troubleshoot-merge.md` - Comprehensive troubleshooting guide with error reference table
2896
+ - Updated CLAUDE.md with Merge & Preflight Patterns section documenting MergeState dataclass and public API
2897
+
2898
+ **Agent Management Documentation Sprint** (Feature 023):
2899
+ - Added `docs/how-to/manage-agents.md` - Complete guide to adding, removing, and managing AI agent integrations
2900
+ - Added `docs/how-to/upgrade-to-0-12-0.md` - Migration guide for config-driven agent management
2901
+ - Updated `docs/reference/cli-commands.md` with comprehensive `agent config` subcommand documentation
2902
+ - Updated `docs/reference/agent-subcommands.md`, `docs/reference/configuration.md`, `docs/reference/supported-agents.md` with accurate cross-references
2903
+ - Updated `docs/how-to/install-spec-kitty.md` with agent configuration guidance
2904
+
2905
+ ### 🐛 Fixed
2906
+
2907
+ **Merge Resume Bug**:
2908
+ - Fixed `merge_workspace_per_wp()` missing `resume_state` parameter causing `TypeError` when using `--resume`
2909
+
2910
+ **Agent Workflow Output Truncation** (GitHub Codex compatibility):
2911
+ - Fixed workflow commands (`implement`, `review`) outputting 300+ lines which got truncated by agents like GitHub Codex
2912
+ - Prompts now written to temp file with concise 15-line summary to stdout
2913
+ - Added directive language (`▶▶▶ NEXT STEP: Read the full prompt file now:`) so agents automatically read the file
2914
+ - Agents no longer miss work package requirements due to output truncation
2915
+
2916
+ **False Staleness for Newly-Created Worktrees**:
2917
+ - Fixed stale detection flagging new worktrees as stale immediately
2918
+ - Previously, `git log -1` returned parent branch's commit time (could be hours old)
2919
+ - Now checks if branch has commits since diverging from main
2920
+ - Worktrees with no new commits are NOT flagged as stale (agent just started)
2921
+
2922
+ ## [0.11.1] - 2026-01-16
2923
+
2924
+ ### 🐛 Fixed
2925
+
2926
+ **Merge Template Improvements**:
2927
+ - Added explicit preflight validation code using `python3 -c` with `validate_worktree_location()`
2928
+ - Added clear visual "⛔ Location Pre-flight Check (CRITICAL)" section to prevent agents running merge from wrong location
2929
+ - Fixed contradictory instructions in software-dev mission merge template (was incorrectly saying "run from main")
2930
+ - Fixed empty Python code block in research mission merge template that confused agents
2931
+ - Added workspace-per-WP model (0.11.0+) documentation vs legacy pattern in worktree strategy section
2932
+
2933
+ **Documentation Accuracy** (Feature 014):
2934
+ - Rewrote `multi-agent-orchestration.md` for the 0.11.0+ isolated-WP worktree model:
2935
+ - Planning happens in main repo (not worktrees)
2936
+ - Each WP gets its own worktree (not shared)
2937
+ - Removed references to non-existent scripts
2938
+ - Updated lane tracking to frontmatter (not directories)
2939
+ - Added parallelization patterns and status monitoring
2940
+ - Fixed the legacy isolated-worktree guide merge command syntax (runs from worktree without feature argument)
2941
+ - Fixed `documentation-mission.md` broken source links
2942
+ - Fixed `reference/README.md` - replaced outdated "Planned Content" with actual content links
2943
+ - Fixed `kanban-workflow.md` - clarified `/spec-kitty.accept` works on features, not individual WPs
2944
+
2945
+ ### 📚 Added
2946
+
2947
+ **Comprehensive End-User Documentation** (Feature 014):
2948
+ - Complete Divio 4-type documentation suite:
2949
+ - **Tutorials**: Getting Started, Your First Feature, Claude Code Integration, Claude Code Workflow, Multi-Agent Workflow, Missions Overview
2950
+ - **How-To Guides**: 14 task-oriented guides covering installation, specifications, planning, implementation, review, dependencies, parallel development, dashboard usage, and migration
2951
+ - **Reference**: CLI Commands, Slash Commands, Agent Subcommands, Configuration, Environment Variables, File Structure, Missions, Supported Agents
2952
+ - **Explanations**: Spec-Driven Development, Divio Documentation, legacy isolated worktree model, Git Worktrees, Mission System, Kanban Workflow, AI Agent Architecture, Documentation Mission, Multi-Agent Orchestration
2953
+ - Cross-references between all documentation types
2954
+ - DocFX-compatible structure with `toc.yml` navigation
2955
+
2956
+ ## [0.11.0] - 2026-01-12
2957
+
2958
+ ### 🚨 BREAKING CHANGES - Workspace Model Changed (Feature 010)
2959
+
2960
+ **Old (0.10.x)**: One worktree per feature
2961
+ - `/spec-kitty.specify` created `.worktrees/###-feature/`
2962
+ - All WPs worked in same worktree
2963
+ - Sequential development (one agent at a time)
2964
+
2965
+ **New (0.11.0)**: One worktree per work package
2966
+ - Planning commands (specify, plan, tasks) work in main repository (NO worktree created)
2967
+ - `spec-kitty implement WP##` creates `.worktrees/###-feature-WP##/`
2968
+ - Each WP has isolated worktree with dedicated branch
2969
+ - Enables parallel multi-agent development
2970
+
2971
+ ### ⚠️ Migration Required
2972
+
2973
+ **You MUST complete or delete all in-progress features before upgrading to 0.11.0.**
2974
+
2975
+ See [docs/upgrading-to-0-11-0.md](docs/upgrading-to-0-11-0.md) for complete migration guide.
2976
+
2977
+ ### 🔒 Security (IMPORTANT) - Feature 011
2978
+
2979
+ - **Comprehensive adversarial review framework**
2980
+ - Expanded review template from 3 bullets (109 lines) to 12 scrutiny categories (505 lines)
2981
+ - **Security scrutiny now mandatory**: 10 detailed security subsections
2982
+ - **Mandatory verification**: 7 security grep commands must be run on EVERY review
2983
+ - **Automatic rejection** if any security check fails
2984
+ - **Impact**: All future features will have security-first reviews
2985
+
2986
+ ### ✨ Added
2987
+
2988
+ **Legacy isolated-WP worktree features (010)**:
2989
+ - **New command**: `spec-kitty implement WP## [--base WPXX]` - Create workspace for work package
2990
+ - `--base` flag branches from another WP's branch (for dependencies)
2991
+ - Automatically moves WP from `planned` → `doing` lane
2992
+ - **New command**: `spec-kitty agent feature finalize-tasks` - Finalize WP generation
2993
+ - Parses dependencies from tasks.md
2994
+ - Generates `dependencies: []` field in WP frontmatter
2995
+ - Validates dependency graph (cycle detection, invalid references)
2996
+ - **Dependency tracking**: WP frontmatter includes `dependencies: []` field
2997
+ - **Dependency graph utilities**: `src/specify_cli/core/dependency_graph.py`
2998
+ - **Review warnings**: Alert when dependent WPs need rebase
2999
+
3000
+ **Constitution Features (011)**:
3001
+ - **Interactive constitution command** (Phase-based discovery)
3002
+ - 4-phase discovery workflow (Technical, Quality, Tribal Knowledge, Governance)
3003
+ - Two paths: Minimal (Phase 1 only) or Comprehensive (all phases)
3004
+ - Skip options for each phase
3005
+ - Truly optional - all commands work without constitution
3006
+
3007
+ ### ♻️ Refactored - Feature 011
3008
+
3009
+ - **Template source relocation** (Safe dogfooding - Critical)
3010
+ - Moved ALL template sources from `.kittify/` to `src/specify_cli/`
3011
+ - Updated template manager to load from package resources
3012
+ - Removed `.kittify/*` force-includes from `pyproject.toml`
3013
+ - **Impact**: Developers can now safely dogfood without packaging risk
3014
+
3015
+ - **Mission-specific constitutions removed**
3016
+ - Single project-level constitution model (`.kittify/memory/constitution.md`)
3017
+ - Migration removes mission constitutions from user projects
3018
+
3019
+ ### 🐛 Fixed - Feature 011
3020
+
3021
+ - **Windows dashboard ERR_EMPTY_RESPONSE** (#71)
3022
+ - Replaced POSIX-only signal handling with cross-platform psutil
3023
+ - Added `psutil>=5.9.0` dependency
3024
+ - Dashboard now works on Windows 10/11
3025
+
3026
+ - **Upgrade migration failures** (#70)
3027
+ - Fixed multiple migrations to handle missing files gracefully
3028
+ - All migrations now idempotent
3029
+ - Upgrade path from 0.6.4 → 0.10.12 completes without intervention
3030
+
3031
+ ### 🐛 Fixed - Feature 012
3032
+
3033
+ - **`/spec-kitty.status` template instructed agents to run Python code**
3034
+ - AI agents cannot execute arbitrary Python - they use CLI tools
3035
+ - Updated template to use CLI command as primary method
3036
+ - Python API now documented as alternative for Jupyter/scripts
3037
+
3038
+ ### 📖 Documentation - Feature 010
3039
+
3040
+ - **New docs**: legacy isolated-worktree workflow guide with examples
3041
+ - **New docs**: `docs/upgrading-to-0-11-0.md` - Migration instructions
3042
+
3043
+ ### 🎯 Why These Changes?
3044
+
3045
+ **Feature 010 (Workspace-per-WP)**:
3046
+ - Enables parallel multi-agent development
3047
+ - Better isolation per work package
3048
+ - Explicit dependencies with validation
3049
+ - Scalability for large features (10+ WPs)
3050
+
3051
+ **Feature 011 (Constitution & Packaging Safety)**:
3052
+ - Safe dogfooding (no packaging contamination)
3053
+ - Cross-platform dashboard support
3054
+ - Optional, interactive constitution setup
3055
+ - Smooth upgrade migrations
3056
+
3057
+ ## [0.10.13] - 2026-01-12
3058
+
3059
+ ### 🐛 Fixed
3060
+
3061
+ - **CRITICAL: Missing migration in PyPI v0.10.12 package**
3062
+ - Migration `m_0_10_12_constitution_cleanup.py` was missing from PyPI package uploaded on 2026-01-07
3063
+ - File existed in source repository but was not included in distributed wheel
3064
+ - Caused constitution cleanup to not run during upgrades from v0.10.11
3065
+ - v0.10.13 includes the missing migration file
3066
+ - Users who installed v0.10.12 should run `spec-kitty upgrade` again after upgrading to v0.10.13
3067
+ - **Root cause**: PyPI package was built before migration file was committed to repository
3068
+ - **Prevention**: Added migration file count verification to release workflow
3069
+
3070
+ ### ♻️ Improved
3071
+
3072
+ - **Release workflow hardening**
3073
+ - Added verification step to count migration files in built wheel
3074
+ - Release now fails if migration count doesn't match source repository
3075
+ - Prevents future packaging bugs where files are missing from distribution
3076
+
3077
+ ### 📋 Migration for v0.10.12 Users
3078
+
3079
+ If you installed v0.10.12 from PyPI and upgraded from v0.10.11:
3080
+ ```bash
3081
+ pip install --upgrade spec-kitty-cli
3082
+ spec-kitty upgrade # Run again to apply missing migration 0.10.12
3083
+ ```
3084
+
3085
+ The migration will remove mission-specific constitution directories:
3086
+ - `.kittify/missions/software-dev/constitution/` → removed
3087
+ - `.kittify/missions/research/constitution/` → removed
3088
+ - Single project-level constitution: `.kittify/memory/constitution.md` (kept)
3089
+
3090
+ ## [0.10.12] - 2026-01-12
3091
+
3092
+ ### 🔒 Security (IMPORTANT)
3093
+
3094
+ - **Comprehensive adversarial review framework**
3095
+ - Expanded review template from 3 bullets (109 lines) to 12 scrutiny categories (505 lines)
3096
+ - **Security scrutiny now mandatory**: 10 detailed security subsections
3097
+ - **Mandatory verification**: 7 security grep commands must be run on EVERY review
3098
+ - **Automatic rejection** if any security check fails
3099
+ - **Impact**: All future features will have security-first reviews
3100
+ - **Rationale**: Prevents systematic quality issues (TODOs in prod, mocked implementations, security vulnerabilities)
3101
+ - See spec footnote and commit `61d7d01` for complete rationale
3102
+
3103
+ ### 🐛 Fixed
3104
+
3105
+ - **Windows dashboard ERR_EMPTY_RESPONSE** (#71)
3106
+ - Replaced POSIX-only signal handling with cross-platform psutil library
3107
+ - `signal.SIGKILL` and `signal.SIGTERM` don't exist on Windows
3108
+ - Added `psutil>=5.9.0` dependency for cross-platform process management
3109
+ - Refactored `src/specify_cli/dashboard/lifecycle.py`:
3110
+ - `os.kill(pid, 0)` → `psutil.Process(pid).is_running()`
3111
+ - `signal.SIGKILL` → `psutil.Process(pid).kill()` (6 locations)
3112
+ - `signal.SIGTERM` → `psutil.Process(pid).terminate()` with timeout
3113
+ - Added proper exception handling (NoSuchProcess, AccessDenied, TimeoutExpired)
3114
+ - Dashboard now starts, serves HTML, and stops cleanly on Windows 10/11
3115
+ - All 41 dashboard tests passing
3116
+
3117
+ - **Upgrade migration failures** (#70)
3118
+ - Fixed `m_0_7_3_update_scripts.py` to handle missing bash scripts gracefully
3119
+ - Fixed `m_0_10_6_workflow_simplification.py` to copy templates before validation
3120
+ - Fixed `m_0_10_2_update_slash_commands.py` to explicitly remove legacy .toml files
3121
+ - Fixed `m_0_10_0_python_only.py` to explicitly remove `.kittify/scripts/tasks/`
3122
+ - Created `m_0_10_12_constitution_cleanup.py` to remove mission constitutions
3123
+ - All migrations now idempotent (safe to run multiple times)
3124
+ - Upgrade path from 0.6.4 → 0.10.12 now completes without manual intervention
3125
+
3126
+ - **Upgrade migration parameter mismatch** (#68 follow-up)
3127
+ - Fixed `m_0_10_9_repair_templates.py` migration calling `generate_agent_assets()` with wrong parameter name
3128
+ - Changed `ai=ai_config` to `agent_key=ai_config` to match function signature
3129
+
3130
+ ### ♻️ Refactored
3131
+
3132
+ - **Template source relocation** (Safe dogfooding - Critical)
3133
+ - Moved ALL template sources from `.kittify/` to `src/specify_cli/`
3134
+ - Templates: `.kittify/templates/` → `src/specify_cli/templates/`
3135
+ - Missions: `.kittify/missions/` → `src/specify_cli/missions/`
3136
+ - Scripts: `.kittify/scripts/` → `src/specify_cli/scripts/`
3137
+ - Updated `src/specify_cli/template/manager.py` to load from `src/` not `.kittify/`
3138
+ - Removed ALL `.kittify/*` force-includes from `pyproject.toml`
3139
+ - **Impact**: Spec-kitty developers can now safely dogfood spec-kitty without risk of packaging their filled-in constitutions
3140
+ - **Verification**: Building wheel produces ZERO `.kittify/` or `memory/constitution.md` entries
3141
+ - Package now only contains `src/specify_cli/` (proper Python packaging)
3142
+
3143
+ - **Mission-specific constitutions removed**
3144
+ - Removed `mission.constitution_dir` property from `src/specify_cli/mission.py`
3145
+ - Removed constitution scanning from `src/specify_cli/manifest.py`
3146
+ - Deleted all `missions/*/constitution/` directories
3147
+ - **Impact**: Single project-level constitution model (`.kittify/memory/constitution.md`)
3148
+ - **Migration**: `m_0_10_12_constitution_cleanup.py` removes mission constitutions from user projects
3149
+ - Eliminates confusion about which constitution applies
3150
+
3151
+ ## [0.10.11] - 2026-01-07
3152
+
3153
+ ### 🐛 Fixed
3154
+
3155
+ - **Upgrade migration parameter mismatch** (#68 follow-up)
3156
+ - Fixed `m_0_10_9_repair_templates.py` migration calling `generate_agent_assets()` with wrong parameter name
3157
+ - Changed `ai=ai_config` to `agent_key=ai_config` to match function signature
3158
+ - Corrected parameter order to match function definition
3159
+ - **Root cause**: Migration was using deprecated parameter name, blocking users from upgrading to 0.10.11
3160
+ - **Impact**: Users unable to run `spec-kitty upgrade` to get template fixes from 0.10.11
3161
+
3162
+ ## [0.10.11] - 2026-01-07
3163
+
3164
+ ### 🐛 Fixed
3165
+
3166
+ - **Deprecated script references in mission templates** (#68)
3167
+ - Fixed `.kittify/missions/software-dev/templates/task-prompt-template.md` to use workflow commands instead of deprecated `python3 .kittify/scripts/tasks/tasks_cli.py`
3168
+ - Fixed `.kittify/templates/task-prompt-template.md` with same update
3169
+ - Fixed `.kittify/missions/software-dev/command-templates/tasks.md` to reference workflow commands
3170
+ - Updated `.kittify/templates/POWERSHELL_SYNTAX.md` to document spec-kitty CLI instead of obsolete PowerShell scripts
3171
+ - **Root cause**: Migration 0.10.9 fixed agent command templates but missed mission-specific templates
3172
+ - **Impact**: Agents were executing users' local `cli.py` files instead of spec-kitty CLI on Windows
3173
+
3174
+ ### ✨ Added
3175
+
3176
+ - **Template compliance tests** - Prevent deprecated script references
3177
+ - `test_no_deprecated_script_references()` - Detects old `.kittify/scripts/` paths in templates
3178
+ - `test_templates_use_spec_kitty_cli()` - Ensures templates reference spec-kitty CLI commands
3179
+ - Tests run on all mission templates and global templates
3180
+ - Prevents regression of issue #68
3181
+
3182
+ ## [0.10.10] - 2026-01-06
3183
+
3184
+ ### 🐛 Fixed
3185
+
3186
+ - **Windows UTF-8 encoding error in agent commands** (#66)
3187
+ - Fixed `'charmap' codec can't encode characters` error on Windows
3188
+ - `spec-kitty agent feature create-feature` now works correctly on Windows
3189
+ - Added UTF-8 stdout/stderr reconfiguration in main() entry point
3190
+ - Handles Unicode characters in git output and error messages
3191
+ - Gracefully falls back for Python < 3.7
3192
+
3193
+ ## [0.10.9] - 2026-01-06
3194
+
3195
+ ### 🐛 Fixed
3196
+
3197
+ - **CRITICAL: Wrong templates bundled in PyPI packages** (#62, #63, #64)
3198
+ - Fixed pyproject.toml to bundle .kittify/templates/ instead of outdated /templates/
3199
+ - Removed outdated /templates/ directory entirely to prevent confusion
3200
+ - All PyPI installations now receive correct Python CLI templates
3201
+ - No more bash script references in command templates
3202
+ - Migration 0.10.0 now handles missing templates gracefully
3203
+ - Added package bundling validation tests to prevent regression
3204
+
3205
+ - **Template divergence eliminated**
3206
+ - 10 of 13 command templates were outdated in /templates/
3207
+ - implement.md was 199 lines longer in old location (277 vs 78 lines)
3208
+ - Git hooks were missing (1 vs 3)
3209
+ - claudeignore-template was missing
3210
+
3211
+ - **All 12 AI agent integrations fixed**
3212
+ - Claude Code, GitHub Copilot, Cursor, Gemini, Qwen Code, OpenCode, Windsurf,
3213
+ GitHub Codex, Kilocode, Augment Code, Roo Cline, Amazon Q
3214
+ - All agents now receive correct Python CLI slash commands
3215
+
3216
+ ### ✨ Added
3217
+
3218
+ - **Repair migration (0.10.9_repair_templates)** - Automatically fixes broken installations
3219
+ - Detects projects with broken template references
3220
+ - Regenerates all agent slash commands from correct templates
3221
+ - Runs automatically during `spec-kitty upgrade`
3222
+ - Verifies repair was successful
3223
+
3224
+ - **Package bundling validation tests** - Prevents future regressions
3225
+ - Validates correct templates are bundled in sdist and wheel
3226
+ - Checks for bash script references before release
3227
+ - Tests importlib.resources accessibility
3228
+
3229
+ ### 📚 Migration & Upgrade Path
3230
+
3231
+ **For users with broken installations (issues #62, #63, #64):**
3232
+
3233
+ 1. **Upgrade spec-kitty package:**
3234
+ ```bash
3235
+ pip install --upgrade spec-kitty-cli
3236
+ spec-kitty --version # Should show 0.10.9
3237
+ ```
3238
+
3239
+ 2. **Run upgrade to apply repair migration:**
3240
+ ```bash
3241
+ cd /path/to/your/project
3242
+ spec-kitty upgrade
3243
+ ```
3244
+ This will automatically detect and fix broken templates.
3245
+
3246
+ 3. **Verify repair:**
3247
+ ```bash
3248
+ # Check for bash script references (should return nothing)
3249
+ grep -r "scripts/bash" .claude/commands/
3250
+ ```
3251
+
3252
+ **For new projects:**
3253
+ - Automatically get correct templates from package
3254
+ - No action needed
3255
+
3256
+ **For existing healthy projects:**
3257
+ - Run `spec-kitty upgrade` to stay current
3258
+ - No breaking changes
3259
+
3260
+ ### 🔒 Breaking Changes
3261
+
3262
+ None - Fully backwards compatible. Existing projects will upgrade smoothly.
3263
+
3264
+ ## [0.10.8] - 2025-12-30
3265
+
3266
+ ### 🐛 Fixed
3267
+
3268
+ - **Critical: Constitution not copied to worktrees** (#46)
3269
+ - Moved `memory/` directory from root to `.kittify/memory/` where code expects it
3270
+ - Removed broken circular symlinks (`.kittify/memory` → `../../../.kittify/memory`)
3271
+ - Fixed `.kittify/AGENTS.md` to be real file instead of broken symlink
3272
+ - Fixed worktree.py symlink handling (check for symlink before trying rmtree)
3273
+ - Added migration to automatically fix existing projects
3274
+ - Worktrees now correctly access constitution from main repo
3275
+
3276
+ - **Migration system** (v0.10.8_fix_memory_structure)
3277
+ - Automatically moves `memory/` to `.kittify/memory/` in existing projects
3278
+ - Removes broken symlinks and creates proper structure
3279
+ - Updates worktrees to use correct paths
3280
+ - Handles both Unix symlinks and Windows file copies
3281
+
3282
+ ### 🔧 Changed
3283
+
3284
+ - **Directory structure standardization**
3285
+ - `memory/` → `.kittify/memory/` (matches `.kittify/scripts/`, `.kittify/templates/`)
3286
+ - `.kittify/AGENTS.md` is now a real file (not symlink)
3287
+ - All `.kittify/` resources now follow consistent pattern
3288
+
3289
+ ## [0.10.7] - 2025-12-30
3290
+
3291
+ ### 🐛 Fixed
3292
+
3293
+ - **Critical: Copilot initialization bug** (#53, fixes #61, #50)
3294
+ - Fixed NameError when running `spec-kitty init --ai copilot`
3295
+ - Changed `commands_dir` to `command_templates_dir` in asset_generator.py
3296
+ - Unblocks all users trying to initialize projects with Copilot
3297
+
3298
+ - **Critical: Dashboard contracts and checklists missing** (#59, fixes #52)
3299
+ - Restored contracts and checklists handlers that were lost in Nov 11 dashboard refactoring
3300
+ - Added generic `_handle_artifact_directory()` helper method
3301
+ - Both contracts and checklists now display correctly in dashboard
3302
+ - Fixed frontend to use full filepath instead of filename only
3303
+
3304
+ - **Critical: Windows UTF-8 encoding errors** (#56)
3305
+ - Added explicit `encoding='utf-8'` to read_text() calls
3306
+ - Fixes dashboard diagnostics showing "undefined" on Windows
3307
+ - Affects manifest.py and migration files
3308
+ - Windows defaults to cp1252, causing UnicodeDecodeError with UTF-8 content
3309
+
3310
+ - **Plan.md location validation** (#60)
3311
+ - Improved validation messaging in plan.md template
3312
+ - Added prominent ⚠️ STOP header for AI agents
3313
+ - Clearer examples of correct vs wrong worktree locations
3314
+ - Template-only change (no code modifications)
3315
+
3316
+ ### 🔄 Closed
3317
+
3318
+ - PR #58 - Obsolete (PowerShell scripts deleted in v0.10.0)
3319
+ - PR #57 - Obsolete (PowerShell scripts deleted in v0.10.0)
3320
+ - PR #49 - Superseded by #59 (better architecture)
3321
+ - PR #43 - Obsolete (PowerShell scripts deleted in v0.10.0)
3322
+
3323
+ ## [0.10.6] - 2025-12-18
3324
+
3325
+ ### ✨ Added
3326
+
3327
+ - **Workflow commands for simplified agent experience**
3328
+ - New `spec-kitty agent workflow implement [WP_ID]` command
3329
+ - New `spec-kitty agent workflow review [WP_ID]` command
3330
+ - Commands display full WP prompt directly to agents (no file navigation)
3331
+ - Auto-detect first planned/for_review WP when no ID provided
3332
+ - Auto-move WP to "doing" lane before displaying prompt
3333
+ - Show "WHEN YOU'RE DONE" instructions at top of output
3334
+ - Display source file path for easy re-reading
3335
+ - Prevents race conditions (two agents picking same WP)
3336
+
3337
+ ### 🔧 Changed
3338
+
3339
+ - **Slash command template simplification**
3340
+ - implement.md: 78 lines → 11 lines (calls workflow command)
3341
+ - review.md: 72 lines → 11 lines (calls workflow command)
3342
+ - Templates now just run workflow commands instead of complex instructions
3343
+ - Agents see prompts immediately without navigation confusion
3344
+
3345
+ - **Consistent lane management**
3346
+ - Both implement and review workflows move WP to "doing" at start
3347
+ - Prevents ambiguity about which lane means "actively working"
3348
+ - Review workflow now supports auto-detect (no argument needed)
3349
+
3350
+ ### 🐛 Fixed
3351
+
3352
+ - **Worktree path resolution**
3353
+ - Fixed `_find_first_planned_wp()` to work correctly in worktrees
3354
+ - Fixed `_find_first_for_review_wp()` to work correctly in worktrees
3355
+ - Auto-detect now finds WPs in worktree's kitty-specs/, not main repo
3356
+
3357
+ - **Legacy subdirectory cleanup**
3358
+ - Migrated features 007 and 010 from old subdirectory structure to flat structure
3359
+ - Moved 15 WP files from `tasks/done/phase-*/` to flat `tasks/`
3360
+ - All features now use proper flat structure with frontmatter-only lanes
3361
+
3362
+ ## [0.9.4] - 2025-12-17
3363
+
3364
+ ### 📚 Documentation & Validation
3365
+
3366
+ - **Prevent agent-created subdirectories in tasks/**
3367
+ - Added explicit warnings to tasks/README.md
3368
+ - Updated AGENTS.md with flat structure requirements
3369
+ - Updated /spec-kitty.tasks template to forbid subdirectories
3370
+ - Added runtime validation in check-prerequisites.sh
3371
+ - Blocks execution if phase-*, component-*, or any subdirectories found
3372
+ - Clear error messages with examples of correct vs wrong paths
3373
+
3374
+ This prevents Claude agents from creating organizational subdirectories like `tasks/phase-1/`, `tasks/backend/`, etc.
3375
+
3376
+ ## [0.9.3] - 2025-12-17
3377
+
3378
+ ### 🐛 Fixed
3379
+
3380
+ - **Critical symlink detection fix**
3381
+ - Now checks `is_symlink()` BEFORE `exists()` (exists() returns False for broken symlinks!)
3382
+ - Properly removes both working and broken symlinks from worktrees
3383
+ - Fixes remaining test failures in worktree cleanup migration
3384
+ - Handles all symlink scenarios correctly
3385
+
3386
+ This completes the fix for symlink removal in worktree cleanup.
3387
+
3388
+ ## [0.9.2] - 2025-12-17
3389
+
3390
+ ### 🐛 Fixed
3391
+
3392
+ - **Symlink handling in worktree cleanup**
3393
+ - Migration now properly detects and removes symlinks to command directories
3394
+ - Uses `unlink()` for symlinks instead of `shutil.rmtree()`
3395
+ - Fixes "Cannot call rmtree on a symbolic link" error during upgrade
3396
+ - Handles both symlinks and regular directories correctly
3397
+
3398
+ This fixes the upgrade failure when worktrees have symlinked agent command directories.
3399
+
3400
+ ## [0.9.1] - 2025-12-17
3401
+
3402
+ ### 🔧 Bug Fixes & Improvements
3403
+
3404
+ This release fixes critical issues found in v0.9.0 and adds version checking to prevent compatibility problems.
3405
+
3406
+ ### 🆕 Added
3407
+
3408
+ - **Version compatibility checking**
3409
+ - CLI now checks for version mismatches between installed spec-kitty-cli and project version
3410
+ - Hard error with explicit instructions when versions don't match
3411
+ - Special critical warning for v0.9.0+ upgrade explaining breaking changes
3412
+ - Shows detailed before/after directory structure comparison
3413
+ - Version checks in all CLI commands and bash scripts
3414
+ - Graceful handling of legacy projects without metadata
3415
+
3416
+ - **Programmatic frontmatter management**
3417
+ - New `specify_cli.frontmatter` module for consistent YAML operations
3418
+ - Uses ruamel.yaml for absolute formatting consistency
3419
+ - No more manual YAML editing by LLMs or scripts
3420
+ - Prevents quoted vs unquoted value inconsistencies
3421
+
3422
+ ### 🐛 Fixed
3423
+
3424
+ - **Migration improvements**
3425
+ - v0.9.0 migration now finds ALL markdown files (not just WP*.md)
3426
+ - Detects and removes empty lane subdirectories
3427
+ - Uses shutil.rmtree() for robust directory removal
3428
+ - Better detection of legacy format
3429
+
3430
+ - **Complete lane migration (v0.9.1)**
3431
+ - Migrates files missed by v0.9.0 (phase-*.md, task-*.md, etc.)
3432
+ - Removes ALL agent command directories from worktrees (.codex/prompts/, .gemini/commands/, etc.)
3433
+ - Removes .kittify/scripts/ from worktrees (inherit from main repo)
3434
+ - Normalizes all frontmatter to consistent YAML format
3435
+ - Fixes issue where worktrees had old command templates referencing deprecated scripts
3436
+
3437
+ - **Flat structure in new features**
3438
+ - Fixed create-new-feature.sh to create flat tasks/ directory (not subdirectories)
3439
+ - Updated README.md documentation to reflect v0.9.0+ structure
3440
+ - New features now work correctly with frontmatter-only lanes from day one
3441
+
3442
+ - **Lane validation**
3443
+ - tasks_cli.py update command now validates lane values
3444
+ - Rejects invalid lanes before processing
3445
+ - Clear error messages for invalid input
3446
+
3447
+ ### 🔧 Changed
3448
+
3449
+ - Added `ruamel.yaml>=0.18.0` dependency for consistent YAML handling
3450
+ - Updated success messages to reflect flat structure
3451
+
3452
+ ### 🚀 Migration
3453
+
3454
+ If you upgraded to v0.9.0 and still have issues, run `spec-kitty upgrade` again to apply v0.9.1 fixes:
3455
+ - Completes any remaining lane migrations
3456
+ - Cleans up worktree command directories
3457
+ - Normalizes all frontmatter for consistency
3458
+
3459
+ ## [0.9.0] - 2025-12-17
3460
+
3461
+ ### 🎯 Major Release: Frontmatter-Only Lane Management
3462
+
3463
+ This release fundamentally changes how Spec Kitty manages work package lanes, eliminating directory-based lane tracking in favor of a simpler, conflict-free frontmatter-only system.
3464
+
3465
+ ### ⚠️ Breaking Changes
3466
+
3467
+ - **Lane system completely redesigned**
3468
+ - Work packages now live in a flat `kitty-specs/<feature>/tasks/` directory
3469
+ - Lane status determined **solely by `lane:` frontmatter field** (no more subdirectories)
3470
+ - Old system: `tasks/planned/WP01.md`, `tasks/doing/WP02.md` ❌
3471
+ - New system: `tasks/WP01.md` with `lane: "planned"` ✅
3472
+
3473
+ - **Command renamed: `move` → `update`**
3474
+ - Legacy `tasks_cli.py move` command removed
3475
+ - Use `tasks_cli.py update <feature> <WP> <lane>` instead
3476
+ - Semantic clarity: command updates metadata, doesn't move files
3477
+ - Legacy format detection: `update` command refuses to work on old directory-based structure
3478
+
3479
+ - **Direct frontmatter editing now supported**
3480
+ - You can now directly edit the `lane:` field in WP frontmatter
3481
+ - Previous "DO NOT EDIT" warnings removed from all templates
3482
+ - System recognizes manual lane changes immediately
3483
+ - No file movement required for lane transitions
3484
+
3485
+ ### 🆕 Added
3486
+
3487
+ - **Migration command: `spec-kitty upgrade`**
3488
+ - Automatically migrates features from directory-based to frontmatter-only format
3489
+ - Preserves all lane assignments during migration
3490
+ - Idempotent: safe to run multiple times
3491
+ - Cleans up empty lane subdirectories after migration
3492
+ - Migrates both main repo and worktree features
3493
+
3494
+ - **Legacy format detection**
3495
+ - `is_legacy_format()` function detects old directory-based structure
3496
+ - CLI commands display helpful warnings when legacy format detected
3497
+ - Dashboard shows migration prompt for legacy features
3498
+ - Non-blocking: legacy features remain functional until migrated
3499
+
3500
+ - **Enhanced status command**
3501
+ - Better formatted output with lane grouping
3502
+ - Auto-detects feature from branch/worktree when not specified
3503
+ - Shows work packages organized by current lane
3504
+ - Works with both legacy and new formats
3505
+
3506
+ ### 🔧 Changed
3507
+
3508
+ - **Work package location logic**
3509
+ - `locate_work_package()` now searches flat `tasks/` directory first
3510
+ - Falls back to legacy subdirectory search for backwards compatibility
3511
+ - Exact WP ID matching (WP04 won't match WP04b)
3512
+
3513
+ - **Lane extraction utilities**
3514
+ - New `get_lane_from_frontmatter()` function extracts lane from YAML
3515
+ - Defaults to "planned" when `lane:` field missing
3516
+ - Validates lane values against allowed set
3517
+ - Available in both `task_helpers.py` and `tasks_support.py`
3518
+
3519
+ - **Dashboard scanner updates**
3520
+ - Reads lane from frontmatter instead of directory location
3521
+ - Displays legacy format warnings
3522
+ - Works seamlessly with both formats during transition
3523
+
3524
+ - **Activity log behavior**
3525
+ - Lane transitions still append activity log entries
3526
+ - Captures agent, shell PID, and timestamp
3527
+ - No file movement logged (because no movement occurs)
3528
+
3529
+ ### 📚 Documentation
3530
+
3531
+ - **Updated all templates**
3532
+ - `.kittify/templates/task-prompt-template.md` - Removed "DO NOT EDIT" warnings
3533
+ - `.kittify/templates/tasks-template.md` - Updated for flat structure
3534
+ - `.kittify/templates/AGENTS.md` - New lane management instructions
3535
+ - `tasks/README.md` - Rewritten for flat directory layout
3536
+
3537
+ - **Updated mission templates**
3538
+ - All mission-specific templates updated (software-dev, research)
3539
+ - Command templates updated (`implement.md`, `review.md`, `merge.md`)
3540
+ - Examples updated to show new workflow
3541
+
3542
+ - **Updated main documentation**
3543
+ - `README.md` - Updated quick start examples
3544
+ - `docs/quickstart.md` - New lane management workflow
3545
+ - `docs/multi-agent-orchestration.md` - Updated collaboration examples
3546
+ - All `examples/` updated with new commands
3547
+
3548
+ ### 🧪 Testing
3549
+
3550
+ - 286 tests passing (0 failures)
3551
+ - New tests for frontmatter-only lane system
3552
+ - Legacy format detection tests
3553
+ - Migration command tests
3554
+ - Dual-format compatibility tests
3555
+
3556
+ ### 🚀 Migration Guide
3557
+
3558
+ **For existing projects:**
3559
+
3560
+ 1. **Back up your work** (commit changes, push to remote)
3561
+ 2. **Run migration**: `spec-kitty upgrade`
3562
+ 3. **Verify**: `spec-kitty status --feature <your-feature>`
3563
+ 4. **Update workflows**: Replace `move` with `update` in scripts/docs
3564
+
3565
+ **Key benefits of upgrading:**
3566
+
3567
+ - ✅ No file conflicts during lane changes (especially in worktrees)
3568
+ - ✅ Direct editing of `lane:` field supported
3569
+ - ✅ Better multi-agent compatibility
3570
+ - ✅ Simpler mental model (one directory, not four)
3571
+ - ✅ Fewer git operations per lane change
3572
+
3573
+ **Legacy format still works** - You can continue using old directory structure until ready to migrate. All commands detect format automatically.
3574
+
3575
+ ### 🐛 Fixed
3576
+
3577
+ - File conflicts during simultaneous lane changes by multiple agents
3578
+ - Git staging issues with lane transitions
3579
+ - Race conditions in worktree-based parallel development
3580
+ - Lane mismatch validation errors (no longer possible with frontmatter-only)
3581
+
3582
+ ### 🔗 Related
3583
+
3584
+ - Feature implementation: `007-frontmatter-only-lane`
3585
+ - All 6 work packages completed and reviewed
3586
+ - Comprehensive test coverage added
3587
+
3588
+ ---
3589
+
3590
+ ## [0.8.2] - 2025-12-17
3591
+
3592
+ ### Added
3593
+
3594
+ - **Task lane management documentation** - Added clear instructions to AGENTS.md and task templates warning agents never to manually edit the `lane:` YAML field
3595
+ - Lane is determined by directory location, not YAML field
3596
+ - Editing `lane:` without moving the file creates a mismatch that breaks the system
3597
+ - All templates now include YAML comment: `# DO NOT EDIT - use: workflow commands` (legacy note)
3598
+ - Added "Task Lane Management Rule" section to project AGENTS.md
3599
+
3600
+ ## [0.8.1] - 2025-12-17
3601
+
3602
+ ### Fixed
3603
+
3604
+ - **Work package move race conditions** - Multiple agents can now work on different WPs simultaneously without blocking each other
3605
+ - Conflict detection now only blocks on changes to the same WP, not unrelated WP files
3606
+ - Agents working on WP05 no longer block moves of WP04
3607
+
3608
+ - **Exact WP ID matching** - `WP04` no longer incorrectly matches `WP04b`
3609
+ - Changed from prefix matching to exact boundary matching
3610
+ - Pattern now requires WP ID to be followed by `-`, `_`, `.`, or end of filename
3611
+
3612
+ - **Cleanup no longer leaves staged deletions** - Stale copy cleanup uses filesystem delete instead of `git rm`
3613
+ - Prevents orphaned staged deletions from blocking subsequent operations
3614
+ - Automatically unstages any previously staged changes to cleaned files
3615
+
3616
+ ## [0.8.0] - 2025-12-15
3617
+
3618
+ ### Breaking Changes
3619
+
3620
+ - **Mission system refactored to per-feature model**
3621
+ - Missions are now selected during `/spec-kitty.specify` instead of `spec-kitty init`
3622
+ - Each feature stores its mission in `meta.json` (field: `"mission": "software-dev"`)
3623
+ - `.kittify/active-mission` symlink/file is no longer used
3624
+ - Run `spec-kitty upgrade` to clean up existing projects
3625
+
3626
+ - **Removed commands**
3627
+ - `spec-kitty mission switch` - Missions are now per-feature, not per-project
3628
+ - Running this command now shows a helpful error message explaining the new workflow
3629
+
3630
+ - **Removed flags**
3631
+ - `--mission` flag from `spec-kitty init` - Use `/spec-kitty.specify` instead
3632
+ - Flag is hidden but shows deprecation warning if used
3633
+
3634
+ ### Added
3635
+
3636
+ - **Mission inference during `/spec-kitty.specify`** - LLM analyzes feature description and suggests appropriate mission:
3637
+ - "Build a REST API" → suggests `software-dev`
3638
+ - "Research best practices" → suggests `research`
3639
+ - User confirms or overrides the suggestion
3640
+ - Explicit `--mission` flag bypasses inference
3641
+
3642
+ - **Per-feature mission storage** - Selected mission stored in feature's `meta.json`:
3643
+ - All downstream commands read mission from feature context
3644
+ - Legacy features without mission field default to `software-dev`
3645
+
3646
+ - **Mission discovery** - New `discover_missions()` function returns all available missions with source indicators
3647
+
3648
+ - **Updated `spec-kitty mission list`** - Shows source column (project/built-in) for each mission
3649
+
3650
+ - **Migration for v0.8.0** - `spec-kitty upgrade` removes obsolete `.kittify/active-mission` file
3651
+
3652
+ - **AGENTS.md worktree fix** - New worktrees get AGENTS.md symlink, and `spec-kitty upgrade` fixes existing worktrees
3653
+
3654
+ ### Changed
3655
+
3656
+ - All downstream commands (`/spec-kitty.plan`, `/spec-kitty.tasks`, `/spec-kitty.implement`, `/spec-kitty.review`, `/spec-kitty.accept`) now read mission from feature's `meta.json`
3657
+ - `create-new-feature.sh` accepts `--mission <key>` parameter to set mission in meta.json
3658
+ - Common bash/PowerShell scripts updated to resolve mission from feature directory
3659
+ - `spec-kitty mission current` shows current default mission (for informational purposes)
3660
+ - Dashboard template now includes dynamic AGENTS.md path discovery instructions
3661
+
3662
+ ### Deprecated
3663
+
3664
+ - `set_active_mission()` function - Shows deprecation warning, will be removed in future version
3665
+
3666
+ ### Migration Guide
3667
+
3668
+ 1. Run `spec-kitty upgrade` to remove `.kittify/active-mission`
3669
+ 2. Existing features without `mission` field will use `software-dev` by default
3670
+ 3. New features will have mission set during `/spec-kitty.specify`
3671
+
3672
+ ## [0.7.4] - 2025-12-14
3673
+
3674
+ ### Added
3675
+
3676
+ - **Script Update Migration** – `spec-kitty upgrade` now updates project scripts:
3677
+ - Copies latest `create-new-feature.sh` from package to project
3678
+ - Fixes worktree feature numbering bug in existing projects
3679
+ - Previously, projects kept old scripts from when they were initialized
3680
+
3681
+ ## [0.7.3] - 2025-12-14
3682
+
3683
+ ### Fixed
3684
+
3685
+ - **Duplicate Feature Numbers with Worktrees** – Script now scans both `kitty-specs/` AND `.worktrees/` for existing feature numbers:
3686
+ - Previously only scanned `kitty-specs/` which was empty when using worktrees
3687
+ - This caused new features to get `001` even when `001-*` worktree already existed
3688
+ - Now correctly finds highest number across both locations
3689
+
3690
+ ## [0.7.2] - 2025-12-14
3691
+
3692
+ ### Fixed
3693
+
3694
+ - **Duplicate Slash Commands in Worktrees (Corrected)** – Fixed the fix from v0.7.1:
3695
+ - v0.7.1 incorrectly removed commands from main repo (broke `/` commands there)
3696
+ - v0.7.2 removes commands from **worktrees** instead (they inherit from main repo)
3697
+ - Claude Code traverses UP, so worktrees find main repo's `.claude/commands/`
3698
+ - Main repo keeps commands, worktrees don't need their own copy
3699
+
3700
+ ## [0.7.1] - 2025-12-14 [YANKED]
3701
+
3702
+ ### Fixed
3703
+
3704
+ - ~~Duplicate Slash Commands in Worktrees~~ – **Incorrect fix, replaced by v0.7.2**
3705
+
3706
+ ## [0.7.0] - 2025-12-14
3707
+
3708
+ ### Added
3709
+
3710
+ - **`spec-kitty upgrade` Command** – Automatically migrate existing projects to current version:
3711
+ - Detects project version via metadata or directory structure heuristics
3712
+ - Applies all necessary migrations in order (0.2.0 → 0.6.7)
3713
+ - Auto-upgrades worktrees alongside main project
3714
+ - Supports `--dry-run`, `--verbose`, `--json`, `--target`, `--no-worktrees` options
3715
+ - Tracks applied migrations in `.kittify/metadata.yaml`
3716
+ - Idempotent - safe to run multiple times
3717
+
3718
+ - **Migration System** – Five automatic migrations for project structure updates:
3719
+ - `0.2.0`: `.specify/` → `.kittify/` directory rename
3720
+ - `0.4.8`: Add all 12 agent directories to `.gitignore`
3721
+ - `0.5.0`: Install encoding validation git hooks
3722
+ - `0.6.5`: `commands/` → `command-templates/` rename
3723
+ - `0.6.7`: Ensure software-dev and research missions are present
3724
+
3725
+ - **Broken Mission Detection** – `VersionDetector.detect_broken_mission_system()` identifies corrupted mission.yaml files
3726
+
3727
+ - **Migration Registry Validation** – Duplicate migration IDs and missing required fields now raise `ValueError`
3728
+
3729
+ ### Fixed
3730
+
3731
+ - **Test Timeout in Dashboard CLI Tests** – Reduced port cleanup from 763 ports to 8 specific test ports
3732
+ - **Playwright Window Handling** – Tests now open new windows (not tabs) and close properly on exit
3733
+
3734
+ ## [0.6.7] - 2025-12-13
3735
+
3736
+ ### Fixed
3737
+
3738
+ - **Missing software-dev Mission in PyPI Package** – Fixed build configuration to include all missions:
3739
+ - Added explicit sdist include patterns to pyproject.toml
3740
+ - The `software-dev` mission was missing from v0.6.5 and v0.6.6 wheel builds
3741
+ - Root cause: `force-include` only applied to wheel target, not sdist (wheel was built from sdist)
3742
+ - Now both `software-dev` and `research` missions are correctly packaged
3743
+
3744
+ ## [0.6.6] - 2025-12-13
3745
+
3746
+ ### Fixed
3747
+
3748
+ - **Test Suite Updated for 12 Agent Directories** – All tests now expect 12 agents (added `.github/copilot/`):
3749
+ - Updated `test_init_flow.py`, `test_gitignore_management.py`, `test_gitignore_manager_simple.py`
3750
+ - Updated `tests/unit/test_gitignore_manager.py` to expect 12 agents
3751
+ - Fixed template manager tests to use new `.kittify/` source paths
3752
+
3753
+ ### Changed
3754
+
3755
+ - **Template Source Paths** – Tests now use correct `.kittify/templates/command-templates/` paths
3756
+
3757
+ ## [0.6.5] - 2025-12-13
3758
+
3759
+ ### Added
3760
+
3761
+ - **Pre-commit Git Hooks** – Automatic protection against committing agent directories:
3762
+ - Blocks commits containing `.claude/`, `.codex/`, `.gemini/`, etc.
3763
+ - Warns about `.github/copilot/` (nested in `.github/` which is usually committed)
3764
+ - Installed automatically during `spec-kitty init`
3765
+
3766
+ - **GitHub Copilot Directory Protection** – Added `.github/copilot/` as 12th protected agent directory
3767
+
3768
+ - **.claudeignore Generation** – Optimizes Claude Code token usage by excluding templates
3769
+
3770
+ ### Fixed
3771
+
3772
+ - **Worktree Constitution Symlinks** – Feature worktrees now share constitution via symlink
3773
+ - **Git Hooks Installation Timing** – Hooks now install after `.git/` is created
3774
+
3775
+ ## [0.6.4] - 2025-11-26
3776
+
3777
+ ### Fixed
3778
+
3779
+ - **Agent Commands Missing in Worktrees** – Slash commands now work in all feature worktrees for all AI agents:
3780
+ - `create-new-feature.sh` now symlinks agent command directories from main repo to worktrees
3781
+ - Supports all 12 agent types: Claude, Gemini, Copilot, Cursor, Qwen, OpenCode, Windsurf, Codex, KiloCode, Auggie, Roo, Amazon Q
3782
+ - Fixes `/spec-kitty.research`, `/spec-kitty.plan`, and all other slash commands in worktrees
3783
+ - Existing worktrees get symlinks added when reused (backward compatible)
3784
+ - Root cause: worktrees are separate working directories that don't share `.claude/commands/` etc.
3785
+
3786
+ ## [0.6.3] - 2025-11-25
3787
+
3788
+ ### Fixed
3789
+
3790
+ - **Mission Directory Not Copied During Init** – Projects initialized with `spec-kitty init` now correctly receive mission templates:
3791
+ - Fixed `copy_specify_base_from_package()` to look at correct path `specify_cli/missions` (matching pyproject.toml)
3792
+ - Previously looked at wrong paths: `.kittify/missions` and `template_data/missions`
3793
+ - `software-dev` mission was missing from initialized projects, breaking `/spec-kitty.plan` and other commands
3794
+ - Root cause: pyproject.toml packages missions to `specify_cli/missions` but code looked elsewhere
3795
+
3796
+ ## [0.6.2] - 2025-11-18
3797
+
3798
+ ### Fixed
3799
+
3800
+ - **PowerShell Wrapper Parameter Handling** – Windows lane transitions now work correctly:
3801
+ - Fixed legacy `tasks-move-to-lane.ps1` to properly parse named PowerShell parameters
3802
+ - Translates Spec Kitty's named params (`-FeatureName`, `-TaskId`, `-TargetLane`) to `tasks_cli.py` positional args
3803
+ - Resolves `unrecognized arguments` error that broke `/spec-kitty.review` on Windows
3804
+ - Maintains backward compatibility with positional argument usage
3805
+ - Fixes #34
3806
+
3807
+ ## [0.6.1] - 2025-11-18
3808
+
3809
+ ### Fixed
3810
+
3811
+ - **Untracked Task File Moves** – Task move workflow now handles untracked files:
3812
+ - Added `is_file_tracked()` helper to detect if file is in git index
3813
+ - Move command automatically stages untracked source files before moving
3814
+ - Fixes `/spec-kitty.implement` failures when `/spec-kitty.tasks` doesn't commit
3815
+ - Provides clear feedback: `[spec-kitty] Added untracked file: ...`
3816
+ - Defensive fix works with both existing untracked files and future workflows
3817
+
3818
+ ## [0.6.0] - 2025-11-16
3819
+
3820
+ ### Fixed
3821
+
3822
+ - **Dashboard Constitution Tracking** – Feature-level constitution.md files now tracked and displayed:
3823
+ - Added constitution to scanner artifact list
3824
+ - Constitution appears in overview with ⚖️ icon
3825
+ - Frontend properly detects constitution.exists property
3826
+
3827
+ - **Dashboard Modification Detection** – Dashboard now detects file modifications, not just existence:
3828
+ - Scanner returns {exists, mtime, size} for each artifact instead of boolean
3829
+ - Frontend updated to use .exists property with optional chaining
3830
+ - Overview auto-reloads when artifacts change during polling
3831
+ - No manual refresh required to see new/modified files
3832
+
3833
+ - **Dashboard Project Constitution Endpoint** – Project constitution now loads in dashboard:
3834
+ - Added /api/constitution endpoint to serve .kittify/memory/constitution.md
3835
+ - Sidebar Constitution link now displays file content instead of "not found"
3836
+ - Separate from feature-level constitution tracking
3837
+
3838
+ - **Work Package Conflict Detection Too Strict** – Moving WP no longer blocked by unrelated WP changes:
3839
+ - Conflict detection now scoped to same work package ID only
3840
+ - Moving WP04 no longer fails if WP06/WP08 have uncommitted changes
3841
+ - Reduces false positives from ~90% to ~5%
3842
+ - Agents don't need --force for unrelated work packages
3843
+ - Still catches real conflicts (same WP in multiple lanes)
3844
+
3845
+ - **Accept Command Over-Questioning** – Acceptance workflow now auto-detects instead of asking:
3846
+ - Feature slug auto-detected from git branch
3847
+ - Mode defaults to 'local' (most common)
3848
+ - Validation commands searched in git log
3849
+ - Only asks user if auto-detection fails
3850
+ - Reduces user questions from 3-4 to 0 in typical case
3851
+
3852
+ - **Init Command Blocking on Optional Tools** – Project init no longer fails on missing agent tools:
3853
+ - Changed from red error + exit(1) to yellow warning + continue
3854
+ - Gemini CLI and other tools are optional
3855
+ - Users can install tools later without re-init
3856
+ - --ignore-agent-tools flag still available but rarely needed
3857
+
3858
+ - **Encoding Normalization Incomplete** – Unicode smart quotes now properly normalized to ASCII:
3859
+ - Added character mapping for 12 common Unicode characters
3860
+ - Smart quotes (U+2018/U+2019) → ASCII apostrophe
3861
+ - Em/en dashes → hyphens
3862
+ - Ellipsis, bullets, nbsp → ASCII equivalents
3863
+ - --normalize-encoding now produces true ASCII output
3864
+
3865
+ ### Changed
3866
+
3867
+ - **Mission Display Simplified** – Reduced verbose mission card to single line:
3868
+ - Removed domain label, version number, path display
3869
+ - Removed redundant refresh button (auto-updates every second)
3870
+ - Changed from card layout to inline text: "Mission: {name}"
3871
+ - Cleaner, less cluttered header
3872
+
3873
+ ### Added
3874
+
3875
+ - **Mission System Architecture** – Complete mission-based workflow system (feature 005):
3876
+ - Guards module for pre-flight validation
3877
+ - Pydantic mission schema validation
3878
+ - Mission CLI commands (list, current, switch, info)
3879
+ - Research mission templates and citation validators
3880
+ - Path convention validation
3881
+ - Dashboard mission display
3882
+ - Comprehensive integration tests
3883
+
3884
+ ## [0.5.3] - 2025-11-15
3885
+
3886
+ ### Fixed
3887
+
3888
+ - **Dashboard Orphaned Process Cleanup** – Fixed dashboard startup failures caused by orphaned test processes:
3889
+ - Dashboard now detects and cleans up orphaned processes when health check fails due to project path mismatch
3890
+ - Added retry logic after successful orphan cleanup
3891
+ - Orphan cleanup triggers on health check failure (not just port exhaustion)
3892
+ - Eliminates false "Unable to start dashboard" errors when orphaned test dashboards occupy ports
3893
+
3894
+ - **Dashboard Subprocess Import Failure** – Fixed ModuleNotFoundError in complex Python environments:
3895
+ - Dashboard subprocess now always inserts spec-kitty path at sys.path[0]
3896
+ - Fixes import failures when user's PYTHONPATH or .pth files contain spec-kitty path at lower priority
3897
+ - Ensures correct spec-kitty installation takes precedence over environment paths
3898
+ - Resolves "ModuleNotFoundError: No module named 'specify_cli.dashboard'" in subprocesses
3899
+
3900
+ ### Changed
3901
+
3902
+ - **Test Suite Cleanup Improvements** – Enhanced dashboard test cleanup to prevent orphaned processes:
3903
+ - Module-level cleanup fixture kills all orphaned dashboards before and after test runs
3904
+ - Expanded cleanup port range from 9992-9999 to 9237-10000 (covers default and test ranges)
3905
+ - Added `kill_all_spec_kitty_dashboards()` helper using pgrep/pkill
3906
+ - Two-tier cleanup strategy: module-level (all processes) + function-level (specific ports)
3907
+
3908
+ ### Added
3909
+
3910
+ - **Testing Guidelines for Agents** (`docs/testing-guidelines.md`) – Comprehensive testing best practices:
3911
+ - Required cleanup patterns for dashboard tests (pytest fixtures, autouse fixtures)
3912
+ - Anti-patterns to avoid (cleanup in test body, shared directories, no exception handling)
3913
+ - Impact analysis of orphaned processes on local development and CI/CD
3914
+ - Examples of proper test isolation and resource management
3915
+
3916
+ ### Changed
3917
+
3918
+ - **Command Consolidation** – Merged `spec-kitty check` and `spec-kitty diagnostics` into `spec-kitty verify-setup`:
3919
+ - Removed redundant `spec-kitty check` and `spec-kitty diagnostics` commands
3920
+ - Tool checking now integrated into `verify-setup` with `--check-tools` flag (default: enabled)
3921
+ - Diagnostics mode with dashboard health available via `--diagnostics` flag
3922
+ - Removed ASCII banner from verify-setup for cleaner output
3923
+ - Simplifies CLI interface - single command for all environment verification
3924
+ - JSON output includes tool availability when `--check-tools` is enabled
3925
+
3926
+ ### Removed
3927
+
3928
+ - **`spec-kitty check` command** – Functionality moved to `verify-setup --check-tools`
3929
+ - Migration: Use `spec-kitty verify-setup` instead of `spec-kitty check`
3930
+ - Tool checking enabled by default, disable with `--check-tools=false`
3931
+ - **`spec-kitty diagnostics` command** – Functionality moved to `verify-setup --diagnostics`
3932
+ - Migration: Use `spec-kitty verify-setup --diagnostics` instead of `spec-kitty diagnostics`
3933
+ - Shows Rich panel-based output with dashboard health, observations, and issues
3934
+
3935
+ ## [0.5.2] - 2025-11-14
3936
+
3937
+ ### Fixed
3938
+
3939
+ - **Dashboard Startup Race Condition** – Fixed root cause of dashboard health check timing out prematurely:
3940
+ - Increased health check timeout from 10 to 20 seconds with exponential backoff
3941
+ - Retry pattern: 10×100ms, 40×250ms, 20×500ms for adaptive performance
3942
+ - Removed workaround fallback check that was masking the real issue
3943
+ - Eliminated false "Unable to start dashboard" errors on slower systems
3944
+
3945
+ ### Changed
3946
+
3947
+ - **Dashboard Health Check Strategy** – Improved reliability with exponential backoff:
3948
+ - Quick initial checks (100ms) for fast systems
3949
+ - Gradual slowdown (250ms then 500ms) for slower systems
3950
+ - Total timeout increased to ~20 seconds for adequate startup time
3951
+ - Cleaner error handling without port-scanning fallback
3952
+
3953
+ ### Added
3954
+
3955
+ - **Symlinked kitty-specs Test Coverage** – New test validates dashboard works with worktree structure:
3956
+ - Tests scenario from bug report (symlinked `kitty-specs/` to `.worktrees/`)
3957
+ - Ensures dashboard starts correctly with symlinked directories
3958
+ - Prevents regression of false error reporting
3959
+
3960
+ ## [0.5.1] - 2025-11-14
3961
+
3962
+ ### Added
3963
+
3964
+ - **Task Metadata Validation Guardrail** – Prevents workflow failures when file locations don't match frontmatter:
3965
+ - Auto-detects lane mismatches (file in `for_review/` but `lane: "planned"`)
3966
+ - CLI command: `spec-kitty validate-tasks --fix`
3967
+ - Integrated into `/spec-kitty.review` workflow (auto-runs before review)
3968
+ - Adds activity log entries documenting all repairs
3969
+ - Validates required fields (work_package_id, lane) and formats
3970
+ - **Task Metadata Validation Module** (`src/specify_cli/task_metadata_validation.py`) – Core validation:
3971
+ - `detect_lane_mismatch()` - Finds directory/frontmatter inconsistencies
3972
+ - `repair_lane_mismatch()` - Auto-fixes with audit trail
3973
+ - `validate_task_metadata()` - Comprehensive field validation
3974
+ - `scan_all_tasks_for_mismatches()` - Feature-wide scanning
3975
+
3976
+ ### Changed
3977
+
3978
+ - **Version Reading** – Now reads dynamically from package metadata instead of hardcoded value:
3979
+ - Uses `importlib.metadata.version()` to get actual installed version
3980
+ - `spec-kitty --version` always shows correct version
3981
+ - No manual updates needed in `__init__.py`
3982
+ - **Review Workflow** – Added automatic task metadata validation before review:
3983
+ - Runs `spec-kitty validate-tasks --fix` automatically
3984
+ - Prevents agents getting stuck on lane mismatches
3985
+ - Documented in `.claude/commands/spec-kitty.review.md`
3986
+
3987
+ ### Fixed
3988
+
3989
+ - **Dashboard CLI False Error** – CLI no longer reports "Unable to start dashboard" when dashboard actually started successfully. Added fallback verification to check if dashboard is accessible before reporting failure. Handles race condition where health check times out but server is functional.
3990
+ - **Review Workflow Blocking** – Review command no longer fails when file locations don't match frontmatter metadata. Auto-validation repairs inconsistencies before review.
3991
+ - **Hardcoded Version** – `spec-kitty --version` now reads from package metadata, always shows correct installed version.
3992
+
3993
+ ### Documentation
3994
+
3995
+ - **task-metadata-validation.md** (350 lines) – Auto-repair workflow:
3996
+ - Lane mismatch detection and repair
3997
+ - CLI usage examples
3998
+ - Python API reference
3999
+ - Integration with review workflow
4000
+
4001
+ ### Testing
4002
+
4003
+ - Added version detection tests to prevent future hardcoded version bugs
4004
+ - Task metadata validation tested with real frontmatter/directory mismatches
4005
+ - All tests passing (13/13)
4006
+
4007
+ ## [0.5.0] - 2025-11-13
4008
+
4009
+ ### Added
4010
+
4011
+ - **Encoding Validation Guardrail** – Comprehensive 5-layer defense system to prevent Windows-1252 characters from crashing the dashboard:
4012
+ - **Layer 1**: Dashboard auto-fixes encoding errors on read (server-side resilience)
4013
+ - **Layer 2**: Character sanitization module with 15+ problematic character mappings
4014
+ - **Layer 3**: CLI command `spec-kitty validate-encoding` with `--fix` flag
4015
+ - **Layer 4**: Pre-commit hook that blocks commits with encoding errors
4016
+ - **Layer 5**: Enhanced AGENTS.md with real crash examples and character blacklist
4017
+ - **Plan Validation Guardrail** – Prevents agents from skipping the planning phase:
4018
+ - Detects 11 template markers in plan.md (threshold: 5+ markers = unfilled)
4019
+ - Blocks `/spec-kitty.research` command when plan is unfilled
4020
+ - Blocks `/spec-kitty.tasks` via check-prerequisites.sh
4021
+ - Clear error messages with remediation steps
4022
+ - **Character Sanitization Module** (`src/specify_cli/text_sanitization.py`) – Core module for encoding fixes:
4023
+ - Maps smart quotes (`' ' " "`) → ASCII (`' "`)
4024
+ - Maps plus-minus (`±`) → `+/-`, multiplication (`×`) → `x`, degree (`°`) → `degrees`
4025
+ - Supports dry-run mode and automatic backup creation
4026
+ - Directory-wide sanitization with glob patterns
4027
+ - **Plan Validation Module** (`src/specify_cli/plan_validation.py`) – Template detection:
4028
+ - Configurable threshold (default: 5 markers)
4029
+ - Line-precise error reporting
4030
+ - Strict and lenient validation modes
4031
+
4032
+ ### Changed
4033
+
4034
+ - **Version Reading** – Now reads dynamically from package metadata instead of hardcoded value:
4035
+ - Uses `importlib.metadata.version()` to get actual installed version
4036
+ - `spec-kitty --version` always shows correct version
4037
+ - No manual updates needed in `__init__.py`
4038
+ - **Review Workflow** – Added automatic task metadata validation before review:
4039
+ - Runs `spec-kitty validate-tasks --fix` automatically
4040
+ - Prevents agents getting stuck on lane mismatches
4041
+ - Documented in `.claude/commands/spec-kitty.review.md`
4042
+ - **Dashboard Scanner** – Now resilient to encoding errors:
4043
+ - Auto-fixes files on read with backup creation
4044
+ - Creates error cards instead of crashing on bad files
4045
+ - Logs encoding issues with clear error messages
4046
+ - **Research Command** – Added plan validation gate before allowing research artifact creation
4047
+ - **Prerequisites Check Script** – Added bash-based plan validation (35 lines)
4048
+ - **AGENTS.md Template** – Enhanced with encoding warnings:
4049
+ - Real crash examples from production
4050
+ - Explicit character blacklist with Unicode codepoints
4051
+ - Auto-fix workflow documentation
4052
+
4053
+ ### Fixed
4054
+
4055
+ - **Dashboard Blank Page Issue** – Dashboard no longer crashes when markdown files contain Windows-1252 smart quotes, ±, ×, ° symbols. Auto-fix sanitizes files on first read.
4056
+ - **Agents Skipping Planning** – Research and tasks commands now blocked until plan.md is properly filled out (not just template).
4057
+ - **Review Workflow Blocking** – Review command no longer fails when file locations don't match frontmatter metadata. Auto-validation repairs inconsistencies before review.
4058
+ - **Hardcoded Version** – `spec-kitty --version` now reads from package metadata, always shows correct installed version.
4059
+
4060
+ ### Documentation
4061
+
4062
+ - **encoding-validation.md** (554 lines) – Complete guide covering:
4063
+ - Problem description with real examples
4064
+ - 5-layer architecture explanation
4065
+ - Testing procedures and troubleshooting
4066
+ - Migration guide for existing projects
4067
+ - API reference and performance considerations
4068
+ - **plan-validation-guardrail.md** (202 lines) – Implementation details:
4069
+ - Problem and solution overview
4070
+ - Configuration instructions
4071
+ - Testing procedures
4072
+ - Benefits and future enhancements
4073
+ - **task-metadata-validation.md** (350 lines) – Auto-repair workflow:
4074
+ - Lane mismatch detection and repair
4075
+ - CLI usage examples
4076
+ - Python API reference
4077
+ - Integration with review workflow
4078
+ - **TESTING_REQUIREMENTS_ENCODING_AND_PLAN_VALIDATION.md** (1056 lines) – Functional test specifications:
4079
+ - 35+ test cases across 6 test suites
4080
+ - Coverage targets (85-95%)
4081
+ - Performance requirements
4082
+ - Edge case testing requirements
4083
+
4084
+ ### Testing
4085
+
4086
+ - Added 7 unit tests for plan validation (all passing)
4087
+ - Verified on real project (battleship): fixed 9 files with encoding issues
4088
+ - Dashboard now loads successfully after encoding fixes
4089
+ - Character mapping tests: smart quotes, ±, ×, ° all converted correctly
4090
+
4091
+ ## [0.4.13] - 2025-11-13
4092
+
4093
+ ### Fixed
4094
+
4095
+ - **CRITICAL: verify-setup ImportError (Issue #28)** – Fixed ImportError in `verify-setup` command caused by incorrect import statement in `verify_enhanced.py`. Changed `from . import detect_feature_slug, AcceptanceError` to `from .acceptance import detect_feature_slug, AcceptanceError`. This was a blocking bug that prevented users from running the diagnostic command.
4096
+
4097
+ ## [0.4.12] - 2025-11-13
4098
+
4099
+ ### Added
4100
+
4101
+ - **Version Flag** – Added `--version` and `-v` flags to display installed spec-kitty-cli version.
4102
+ - **Dashboard Health Diagnostics** – Enhanced `spec-kitty diagnostics` to detect dashboard startup failures, test if dashboard can start, and report specific errors. Now catches issues like corrupted files, health check timeouts, and background process failures.
4103
+
4104
+ ### Changed
4105
+
4106
+ - **Diagnostics Output** – Added Dashboard Health panel showing startup test results, PID tracking status, and specific failure reasons.
4107
+
4108
+ ## [0.4.11] - 2025-11-13
4109
+
4110
+ ### Fixed
4111
+
4112
+ - **PowerShell Python Quoting Bug (Issue #26)** – Fixed SyntaxError in PowerShell scripts caused by double-quote conflicts in embedded Python code. Changed all Python strings in `common.ps1` to use single quotes to avoid PowerShell string parsing conflicts.
4113
+
4114
+ ### Added
4115
+
4116
+ - **PowerShell Syntax Guide** – Created comprehensive `templates/POWERSHELL_SYNTAX.md` with bash vs PowerShell syntax comparison table, common mistakes, and debugging tips for AI agents.
4117
+ - **Conditional PowerShell Reference** – Enhanced `agent-file-template.md` to conditionally include PowerShell syntax reminders only for PowerShell projects, keeping bash contexts clean.
4118
+
4119
+ ### Changed
4120
+
4121
+ - **AI Agent Context** – PowerShell-specific guidance now provided via separate reference document instead of cluttering bash-focused templates.
4122
+
4123
+ Fixes #26
4124
+ Addresses #27
4125
+
4126
+ ## [0.4.10] - 2025-11-13
4127
+
4128
+ ### Fixed
4129
+
4130
+ - **CRITICAL: Missing missions directory in PyPI package** – Added `.kittify/missions/` to `pyproject.toml` force-include list. Previous release (0.4.9) was missing this directory, causing "Active mission directory not found" errors for all fresh installations.
4131
+
4132
+ ## [0.4.9] - 2025-11-13
4133
+
4134
+ ### Added
4135
+
4136
+ - **Diagnostics CLI Command** – New `spec-kitty diagnostics` command with human-readable and JSON output for comprehensive project health checks.
4137
+ - **Dashboard Process Tracking** – Dashboard now stores process PID in `.dashboard` metadata file for reliable cleanup and monitoring.
4138
+ - **Feature Collision Detection** – Added explicit warnings when creating features with duplicate names that would overwrite existing work.
4139
+ - **LLM Context Documentation** – Enhanced all 13 command templates with location pre-flight checks, file discovery sections, and workflow context to prevent agents from getting lost.
4140
+
4141
+ ### Changed
4142
+
4143
+ - **Dashboard Lifecycle** – Enhanced `ensure_dashboard_running()` to automatically clean up orphaned dashboard processes on initialization, preventing port exhaustion.
4144
+ - **Feature Creation Warnings** – `create-new-feature.sh` now warns when git is disabled or features already exist, with clear JSON indicators for LLM agents.
4145
+ - **Import Safety** – Fixed `detect_feature_slug` import path in diagnostics module to use correct module location.
4146
+ - **Worktree Documentation** – Updated WORKTREE_MODEL.md to accurately describe `.kittify/` as a complete copy (not symlink) with disk space implications documented.
4147
+
4148
+ ### Fixed
4149
+
4150
+ - **CRITICAL: Dashboard Process Orphan Leak** – Fixed critical bug where background dashboard processes were orphaned and accumulated until all ports were exhausted. Complete fix includes:
4151
+ - PIDs are captured and stored in `.dashboard` file (commit b8c7394)
4152
+ - Orphaned processes with .dashboard files are automatically cleaned up on next init
4153
+ - HTTP shutdown failures fall back to SIGTERM/SIGKILL with PID tracking
4154
+ - Port range cleanup scans for orphaned dashboards without .dashboard files (commit 11340a4)
4155
+ - Safe fingerprinting via health check API prevents killing unrelated services
4156
+ - Automatic retry with cleanup when port exhaustion detected
4157
+ - Failed startup processes are cleaned up (no orphans from Ctrl+C during health check)
4158
+ - Multi-project scenarios remain fully isolated (per-project PIDs, safe port sweeps)
4159
+ - Handles all orphan types: with metadata, without metadata, deleted temp projects
4160
+ - Prevents "Could not find free port" errors after repeated uses
4161
+
4162
+ - **Import Path Bug** – Fixed `detect_feature_slug` import in `src/specify_cli/dashboard/diagnostics.py` to import from `specify_cli.acceptance` instead of package root.
4163
+
4164
+ - **Worktree Documentation Accuracy** – Corrected WORKTREE_MODEL.md which incorrectly stated `.kittify/` was symlinked; it's actually a complete copy due to git worktree behavior.
4165
+
4166
+ ### LLM Context Improvements
4167
+
4168
+ All command templates enhanced with consistent context patterns:
4169
+ - **Location Pre-flight Checks**: pwd/git branch verification with expected outputs and correction steps
4170
+ - **File Discovery**: Lists what files {SCRIPT} provides, output locations, and available context
4171
+ - **Workflow Context**: Documents before/after commands and feature lifecycle integration
4172
+
4173
+ Templates updated:
4174
+ - merge.md: CRITICAL safety check preventing merges from wrong location
4175
+ - clarify.md, research.md, analyze.md: HIGH priority core workflow commands
4176
+ - specify.md, checklist.md: Entry point and utility commands
4177
+ - constitution.md, dashboard.md: Project-level and monitoring commands
4178
+
4179
+ ### Testing
4180
+
4181
+ - ✅ Dashboard comprehensive test suite (34 tests, 100% coverage)
4182
+ - ✅ All CLI commands validated
4183
+ - ✅ Import paths verified
4184
+ - ✅ Worktree behavior confirmed across test scenarios
4185
+ - ✅ LLM context patterns applied consistently
4186
+
4187
+ ### Security
4188
+
4189
+ - Dashboard process cleanup prevents resource exhaustion attacks
4190
+ - Explicit warnings when creating duplicate features prevent silent data overwrite
4191
+ - Git disabled warnings ensure users know when version control is unavailable
4192
+
4193
+ ### Backward Compatibility
4194
+
4195
+ All changes are fully backward compatible:
4196
+ - PID storage is optional (old `.dashboard` files still work)
4197
+ - Feature collision detection is advisory (doesn't block creation)
4198
+ - LLM context additions don't change command behavior
4199
+ - Dashboard cleanup is automatic (users don't need to do anything)
4200
+
4201
+ ## [0.4.12] - 2025-11-11
4202
+
4203
+ ### Added
4204
+
4205
+ - **Core Service Modules** – Introduced `specify_cli.core.git_ops`, `project_resolver`, and `tool_checker` packages to host git utilities, project discovery, and tool validation logic with clean public APIs.
4206
+ - **Test Coverage** – Added dedicated suites (`tests/specify_cli/test_core/test_git_ops.py`, `test_project_resolver.py`, `test_tool_checker.py`) covering subprocess helpers, path resolution, and tool validation flows.
4207
+
4208
+ ### Changed
4209
+
4210
+ - **CLI Import Surface** – `src/specify_cli/__init__.py` now imports git, resolver, and tool helpers from the new core modules, slimming the monolith and sharing the implementations across commands.
4211
+ - **Versioning Compliance** – `pyproject.toml` bumped to v0.4.12 to capture the core-service extraction and accompanying behavior changes.
4212
+
4213
+ ## [0.4.11] - 2025-11-11
4214
+
4215
+ ### Added
4216
+
4217
+ - **Template Test Suite** – New `tests/test_template/` coverage exercises template manager, renderer, and agent asset generator flows to guard the init experience.
4218
+
4219
+ ### Changed
4220
+
4221
+ - **Template System Extraction** – Moved template discovery, rendering, and asset generation logic out of `src/specify_cli/__init__.py` into dedicated `specify_cli.template` modules with shared frontmatter parsing.
4222
+ - **Dashboard Reuse** – Updated the dashboard scanner to consume the shared frontmatter parser so Kanban metadata stays in sync with CLI-generated commands.
4223
+
4224
+ ## [0.4.10] - 2025-11-11
4225
+
4226
+ ### Added
4227
+
4228
+ - **Core Modules** – Introduced `specify_cli.core.config` and `specify_cli.core.utils` to centralize constants, shared helpers, and exports for downstream packages.
4229
+ - **CLI UI Package** – Moved `StepTracker`, arrow-key selection, and related utilities into `specify_cli.cli.ui`, enabling reuse across commands.
4230
+ - **Test Coverage** – Added dedicated unit suites for the new core modules and CLI UI interactions (12 new tests).
4231
+
4232
+ ### Changed
4233
+
4234
+ - **Package Structure** – Created foundational package directories for `core/`, `cli/`, `template/`, and `dashboard/`, including structured `__init__.py` exports.
4235
+ - **Init Command Dependencies** – Updated `src/specify_cli/__init__.py` to consume the extracted modules, reducing monolith size and improving readability.
4236
+ - **File Utilities** – Replaced ad-hoc directory creation/removal with safe helper functions to prevent duplication across commands.
4237
+
4238
+ ## [0.4.8] - 2025-11-10
4239
+
4240
+ ### Added
4241
+
4242
+ - **GitignoreManager Module** – New centralized system for managing .gitignore entries for AI agent directories, replacing fragmented approach.
4243
+ - **Comprehensive Agent Protection** – Auto-protect ALL 12 AI agent directories (.claude/, .codex/, .opencode/, etc.) in .gitignore during init, not just selected ones.
4244
+ - **Duplicate Detection** – Smart duplicate detection prevents .gitignore pollution when running init multiple times.
4245
+ - **Cross-Platform Support** – Line ending preservation ensures .gitignore works correctly on Windows, macOS, and Linux.
4246
+
4247
+ ### Changed
4248
+
4249
+ - **init Command Behavior** – Now automatically protects all AI agent directories instead of just selected ones, ensuring no sensitive data is accidentally committed.
4250
+ - **Error Messages** – Improved error messages for permission issues with clear remediation steps (e.g., "Run: chmod u+w .gitignore").
4251
+
4252
+ ### Fixed
4253
+
4254
+ - **Dashboard Markdown Rendering** – Fixed issue where .md files in Research and Contracts tabs were not rendered, now properly displays formatted markdown content.
4255
+ - **Dashboard CSV Display** – Fixed CSV files not rendering in dashboard, now displays as formatted tables with proper styling and hover effects.
4256
+
4257
+ ### Security
4258
+
4259
+ - **Agent Directory Protection** – All 12 known AI agent directories are now automatically added to .gitignore during init, preventing accidental commit of API keys, auth tokens, and other sensitive data.
4260
+ - **Special .github/ Handling** – Added warning for .github/ directory which is used both by GitHub Copilot and GitHub Actions, reminding users to review before committing.
4261
+
4262
+ ### Removed
4263
+
4264
+ - **Legacy Functions** – Removed `handle_codex_security()` and `ensure_gitignore_entries()` functions, replaced by comprehensive GitignoreManager class.
4265
+
4266
+ ## [0.4.7] - 2025-11-07
4267
+
4268
+ ### Added
4269
+
4270
+ - **Dashboard Diagnostics Page** – New diagnostics page showing real-time environment analysis, artifact location mismatches, and actionable recommendations.
4271
+ - **CLI verify-setup Command** – New `spec-kitty verify-setup` command for comprehensive environment diagnostics in the terminal.
4272
+ - **Worktree-Aware Resolution** – Added `resolve_worktree_aware_feature_dir()` function that intelligently detects and prefers worktree locations.
4273
+ - **Agent Location Checks** – Standardized "CRITICAL: Location Requirement" sections in command templates with bash verification scripts.
4274
+ - **Test Coverage** – Added comprehensive test suite for gitignore management and Codex security features with 9 test cases covering all edge cases.
4275
+
4276
+ ### Changed
4277
+
4278
+ - **Command Templates** – Enhanced plan.md and tasks.md with explicit worktree location requirements and verification scripts.
4279
+ - **Error Messages** – Improved bash script errors with visual indicators (❌ ERROR, 🔧 TO FIX, 💡 TIP) and exact fix commands.
4280
+ - **Research Command** – Updated to use worktree-aware feature directory resolution.
4281
+ - **Refactored Codex Security** – Extracted Codex credential protection logic into a dedicated `handle_codex_security()` function for better maintainability and testability.
4282
+
4283
+ ### Fixed
4284
+
4285
+ - **Artifact Location Mismatch** – Fixed issue where agents create artifacts in wrong location, preventing them from appearing in dashboard.
4286
+
4287
+ ## [0.4.5] - 2025-11-06
4288
+
4289
+ ### Added
4290
+
4291
+ - **Agent Guidance** – Bundled a shared `AGENTS.md` ruleset that is copied into `.kittify/` so every generated command has a canonical place to point agents for path/encoding/git expectations.
4292
+ - **Encoding Toolkit** – Introduced `scripts/validate_encoding.py` and new documentation to scan/fix Windows-1252 artifacts, plus a non-interactive init guide in `docs/non-interactive-init.md`.
4293
+ - **Dashboard Assets** – Split the inline dashboard UI into static CSS/JS files and committed them with the release.
4294
+
4295
+ ### Changed
4296
+
4297
+ - **CLI Help & Docs** – Expanded `spec-kitty init`, `research`, `check`, `accept`, and `merge` help text and refreshed README/index links to render correctly on PyPI.
4298
+ - **Dashboard Runtime** – Hardened the dashboard server/CLI handshake with health checks, token-gated shutdown, and more resilient worktree detection.
4299
+ - **Mission Handling** – Improved mission activation to fall back gracefully when symlinks are unavailable (e.g., Windows w/out dev mode) and aligned shell helpers with the new logic.
4300
+
4301
+ ### Security
4302
+
4303
+ - **Codex Guardrails** – Automatically append `.codex/` to `.gitignore`, warn if `auth.json` is tracked, and reiterate the `CODEX_HOME` workflow to keep API credentials out of source control.
4304
+
4305
+ ## [0.4.6] - 2025-11-06
4306
+
4307
+ ### Fixed
4308
+
4309
+ - **PyYAML Dependency** – Added `pyyaml` to the core dependency list so mission loading works in clean environments (CI no longer fails installing the package).
4310
+ - **PyPI README Links** – Restored absolute documentation links to keep images and references working on PyPI.
4311
+
4312
+ ## [0.4.4] - 2025-11-06
4313
+
4314
+ ### Security
4315
+
4316
+ - **Credential Cleanup** – Removed the committed `.codex` directory (OpenAI credentials) from the entire Git history and regenerated sanitized release assets.
4317
+ - **Token Rotation** – Documented that all compromised keys were revoked and environments refreshed before reissuing packages.
4318
+
4319
+ ### Changed
4320
+
4321
+ - **Release Artifacts** – Rebuilt GitHub release bundles and PyPI distributions from the cleaned history to ensure no secrets are present in published archives.
4322
+
4323
+ ## [0.3.2] - 2025-11-03
4324
+
4325
+ ### Added
4326
+
4327
+ - **Automated PyPI Release Pipeline** – Tag-triggered GitHub Actions workflow automatically builds, validates, and publishes releases to PyPI using `PYPI_API_TOKEN` secret, eliminating manual publish steps.
4328
+ - **Release Validation Tooling** – `scripts/release/validate_release.py` CLI enforces semantic version progression, changelog completeness, and version/tag alignment in both branch and tag modes with actionable error messages.
4329
+ - **Release Readiness Guardrails** – Pull request workflow validates version bumps, changelog entries, and test passage before merge; nightly scheduled checks monitor drift.
4330
+ - **Comprehensive Release Documentation** – Complete maintainer guides covering secret management, branch protection, troubleshooting, and step-by-step release workflows.
4331
+ - **Changelog Extraction** – `scripts/release/extract_changelog.py` automatically extracts version-specific release notes for GitHub Releases.
4332
+ - **Release Test Suite** – 4 pytest tests validate branch mode, tag mode, changelog parsing, and version regression detection.
4333
+
4334
+ ### Changed
4335
+
4336
+ - **GitHub Actions Workflows** – Updated `release.yml` with pinned dependency versions, proper workflow ordering (PyPI publish before GitHub Release), and checksums stored in `dist/SHA256SUMS.txt`.
4337
+ - **Workflow Reliability** – Fixed heredoc syntax error in `protect-main.yml` that was causing exit code 127 failures.
4338
+
4339
+ ### Security
4340
+
4341
+ - **Secret Hygiene** – PyPI credentials exclusively stored in GitHub Actions secrets with rotation guidance; no tokens in repository or logs; workflows sanitize outputs.
4342
+ - **Workflow Permissions** – Explicit least-privilege permissions in all workflows (contents:write, id-token:write for releases; contents:read for guards).
4343
+
4344
+ ## [0.3.1] - 2025-11-03
4345
+
4346
+ ### Changed
4347
+
4348
+ - **Worktree-Aware Merge Flow** – `/spec-kitty merge` now detects when it is invoked from a Git worktree, runs the actual merge steps from the primary repository checkout, and surfaces clearer guidance when the target checkout is dirty.
4349
+
4350
+ ### Documentation
4351
+
4352
+ - **Merge Workflow Guidance** – Updated templates and Claude workflow docs to describe the primary-repo hand-off during merges and reinforce the feature-worktree best practice.
4353
+
4354
+ ## [0.3.0] - 2025-11-02
4355
+
4356
+ ### Added
4357
+
4358
+ - **pip Installation Instructions** – All documentation now includes pip installation commands alongside uv, making Spec Kitty accessible to users who prefer traditional Python package management.
4359
+ - **Multiple Installation Methods** – Documented three installation paths: PyPI (stable), GitHub (development), and one-time usage (pipx/uvx).
4360
+
4361
+ ### Changed
4362
+
4363
+ - **Documentation Consistency** – Updated README.md, docs/index.md, docs/installation.md, and docs/quickstart.md to provide both pip and uv commands throughout.
4364
+ - **Installation Recommendations** – PyPI installation now marked as recommended for stable releases, with GitHub source for development versions.
4365
+
4366
+ ### Fixed
4367
+
4368
+ - **Packaging Issues** – Removed duplicate `.kittify` force-include that caused "Duplicate filename in local headers" errors on PyPI.
4369
+ - **Test Dependencies** – Added `pip install -e .[test]` to workflows to ensure all project dependencies available for tests.
4370
+
4371
+ ## [0.2.20] - 2025-11-02
4372
+
4373
+ ### Added
4374
+
4375
+ - **Automated PyPI Release Pipeline** – Tag-triggered GitHub Actions workflow automatically builds, validates, and publishes releases to PyPI using `PYPI_API_TOKEN` secret, eliminating manual publish steps.
4376
+ - **Release Validation Tooling** – `scripts/release/validate_release.py` CLI enforces semantic version progression, changelog completeness, and version/tag alignment in both branch and tag modes with actionable error messages.
4377
+ - **Release Readiness Guardrails** – Pull request workflow validates version bumps, changelog entries, and test passage before merge; protect-main workflow blocks direct pushes to main branch.
4378
+ - **Comprehensive Release Documentation** – Complete maintainer guides covering secret management, branch protection, troubleshooting, and step-by-step release workflows in README, docs, and inline help.
4379
+ - **Enhanced PyPI Metadata** – Added project URLs (repository, issues, docs, changelog), keywords, classifiers, and license information to improve PyPI discoverability and presentation.
4380
+ - **Changelog Extraction** – `scripts/release/extract_changelog.py` automatically extracts version-specific release notes for GitHub Releases.
4381
+ - **Release Test Suite** – 4 pytest tests validate branch mode, tag mode, changelog parsing, and version regression detection.
4382
+
4383
+ ### Changed
4384
+
4385
+ - **GitHub Actions Workflows** – Replaced legacy release workflow with modern PyPI automation supporting validation, building, checksums, GitHub Releases, and secure publishing.
4386
+ - **Documentation Structure** – Added dedicated releases section to docs with readiness checklist, workflow references, and troubleshooting guides; updated table of contents.
4387
+
4388
+ ### Security
4389
+
4390
+ - **Secret Hygiene** – PyPI credentials exclusively stored in GitHub Actions secrets with rotation guidance; no tokens in repository or logs; workflows sanitize outputs.
4391
+ - **Workflow Permissions** – Explicit least-privilege permissions in all workflows (contents:write, id-token:write for releases; contents:read for guards).
4392
+
4393
+ ## [0.2.3] - 2025-10-29
4394
+
4395
+ ### Added
4396
+
4397
+ - **Mission system assets** – Bundled Software Dev Kitty and Deep Research Kitty mission definitions (commands, templates, constitutions) directly in the CLI package so `spec-kitty init` can hydrate missions without a network call.
4398
+
4399
+ ### Changed
4400
+
4401
+ - Synced mission templates between the repository and packaged wheel to keep `/spec-kitty.*` commands consistent across `--ai` choices.
4402
+
4403
+ ## [0.2.2] - 2025-10-29
4404
+
4405
+ ### Added
4406
+
4407
+ - **Phase 0 Research command** – `spec-kitty research` (and `/spec-kitty.research`) scaffolds `research.md`, `data-model.md`, and CSV evidence logs using mission-aware templates so Deep Research Kitty teams can execute discovery workflows without leaving the guided process.
4408
+ - **Mission templates for research** – Deep Research Kitty now ships reusable templates for research decisions, data models, and evidence capture packaged inside the Python wheel.
4409
+
4410
+ ### Changed
4411
+
4412
+ - Updated `spec-kitty init` guidance, plan command instructions, and README workflow to include the new research phase between planning and task generation.
4413
+
4414
+ ## [0.2.1] - 2025-10-29
4415
+
4416
+ ### Added
4417
+
4418
+ - **Mission picker in init** - `spec-kitty init` now prompts for a mission (or accepts `--mission`) so projects start with Software Dev Kitty, Deep Research Kitty, or another bundled mission and record the choice in `.kittify/active-mission`.
4419
+
4420
+ ### Changed
4421
+
4422
+ - Highlight the active mission in the post-init guidance while keeping the Codex export step as the final instruction.
4423
+
4424
+ ## [0.2.0] - 2025-10-28
4425
+
4426
+ ### Added
4427
+
4428
+ - **New `/spec-kitty.merge` command** - Completes the workflow by merging features into main branch and cleaning up worktrees automatically. Supports multiple merge strategies (merge, squash, rebase), optional push to origin, and configurable cleanup of worktrees and branches.
4429
+ - **Worktree Strategy documentation** - Added comprehensive guide to the opinionated worktree approach for parallel feature development.
4430
+ - **Dashboard screenshots** - Added dashboard-kanban.png and dashboard-overview.png showcasing the real-time kanban board.
4431
+ - **Real-Time Dashboard section** - Added prominent dashboard documentation "above the fold" in README with screenshots and feature highlights.
4432
+ - **Mission management CLI** - `spec-kitty mission list|current|switch|info` for inspecting and activating domain-specific missions inside a project.
4433
+ - **Deep Research Kitty mission** - Research-focused templates (spec, plan, tasks, findings, prompts) and command guardrails for evidence-driven work.
4434
+ - **Mission packaging** - Missions are now bundled in release archives and Python wheels so project initialization copies `.kittify/missions` automatically.
4435
+
4436
+ ### Changed
4437
+
4438
+ - Updated command list in init output to show workflow order and include merge command.
4439
+ - Updated `/spec-kitty.accept` description to clarify it verifies (not merges) features.
4440
+ - Reordered slash commands documentation to reflect actual execution workflow.
4441
+ - Updated maintainers to reflect fork ownership.
4442
+ - Updated all repository references from `spec-kitty/spec-kitty` to `Priivacy-ai/spec-kitty`.
4443
+ - Updated installation instructions to use GitHub repository URL instead of local directory.
4444
+
4445
+ ### Fixed
4446
+
4447
+ - Removed invalid `multiple=True` parameter from `typer.Option()` in accept command that caused TypeError on CLI startup.
4448
+ - Fixed "nine articles" claim in spec-driven.md to "core articles" (only 6 are documented).
4449
+
4450
+ ### Removed
4451
+
4452
+ - Removed SECURITY.md (GitHub-specific security policies).
4453
+ - Removed CODE_OF_CONDUCT.md (GitHub-specific contact information).
4454
+ - Removed video overview section from README (outdated content).
4455
+ - Removed plant emoji (🌱) branding from all documentation and code.
4456
+ - Replaced logo_small.webp and logo_large.webp with actual spec-kitty cat logo.
4457
+
4458
+ ## [0.1.3] - 2025-10-28
4459
+
4460
+ ### Fixed
4461
+
4462
+ - Removed invalid `multiple=True` parameter from `typer.Option()` in accept command that caused TypeError on CLI startup.
4463
+
4464
+ ## [0.1.2] - 2025-10-28
4465
+
4466
+ ### Changed
4467
+
4468
+ - Rebranded the CLI command prefix from `speckitty` to `spec-kitty`, including package metadata and documentation references.
4469
+ - Migrated template directories from `.specify` to `.kittify` and feature storage from `/specs` to `/kitty-specs` to avoid namespace conflicts with Spec Kit.
4470
+ - Updated environment variables, helper scripts, and dashboards to align with the new `.kittify` and `kitty-specs` conventions.
4471
+
4472
+ ## [0.1.1] - 2025-10-07
4473
+
4474
+ ### Added
4475
+
4476
+ - New `/spec-kitty.accept` command (and `spec-kitty accept`) for feature-level acceptance: validates kanban state, frontmatter metadata, and artifacts; records acceptance metadata in `meta.json`; prints merge/cleanup instructions; and supports PR or local workflows across every agent.
4477
+ - Acceptance helper scripts (`accept-feature.sh` / `.ps1`) and expanded `tasks_cli` utilities (`status`, `verify`, `accept`) for automation and integration with AI agents.
4478
+ - Worktree-aware bootstrap workflow now defaults to creating per-feature worktrees, enabling parallel feature development with isolated sandboxes.
4479
+ - Implementation prompts now require operating inside the feature’s worktree and rely on the lane helper scripts for moves/metadata, eliminating `git mv` conflicts; the dashboard also surfaces active/expected worktree paths.
4480
+
4481
+ ### Changed
4482
+
4483
+ - `/spec-kitty.specify`, `/spec-kitty.plan`, and `/spec-kitty.clarify` now run fully conversational interviews—asking one question at a time, tracking internal coverage without rendering markdown tables, and only proceeding once summaries are confirmed—while continuing to resolve helper scripts via the `.kittify/scripts/...` paths.
4484
+ - Added proportionality guidance so discovery, planning, and clarification depth scales with feature complexity (e.g., lightweight tic-tac-toe flows vs. an operating system build).
4485
+ - `/spec-kitty.tasks` now produces both `tasks.md` and the kanban prompt files in one pass; the separate `/spec-kitty.task-prompts` command has been removed.
4486
+ - Tasks are grouped into at most ten work packages with bundled prompts, reducing file churn and making prompt generation LLM-friendly.
4487
+ - Both shell and PowerShell feature bootstrap scripts now stop with guidance to return `WAITING_FOR_DISCOVERY_INPUT` when invoked without a confirmed feature description, aligning with the new discovery workflow.
4488
+
4489
+ ## [0.1.0] - 2025-10-07
4490
+
4491
+ ### Changed
4492
+
4493
+ - `/spec-kitty.specify` and `/spec-kitty.plan` now enforce mandatory discovery interviews, pausing until you answer their question sets before any files are written.
4494
+ - `/spec-kitty.implement` now enforces the kanban workflow (planned → doing → for_review) with blocking validation, new helper scripts, and a task workflow quick reference.
4495
+ - Removed the legacy `specify` entrypoint; the CLI is now invoked exclusively via `spec-kitty`.
4496
+ - Updated installation instructions and scripts to use the new `spec-kitty-cli` package name and command.
4497
+ - Simplified local template overrides to use the `SPEC_KITTY_TEMPLATE_ROOT` environment variable only.
4498
+
4499
+ ## [0.0.20] - 2025-10-07
4500
+
4501
+ ### Changed
4502
+
4503
+ - Renamed the primary CLI entrypoint to `spec-kitty` and temporarily exposed a legacy `specify` alias for backwards compatibility.
4504
+ - Refreshed documentation, scripts, and examples to use the `spec-kitty` command by default.
4505
+
4506
+ ## [0.0.19] - 2025-10-07
4507
+
4508
+ ### Changed
4509
+
4510
+ - Rebranded the project as Spec Kitty, updating CLI defaults, docs, and scripts while acknowledging the original GitHub Spec Kit lineage.
4511
+ - Renamed all slash-command prefixes and generated artifact names from `/speckit.*` to `/spec-kitty.*` to match the new branding.
4512
+
4513
+ ### Added
4514
+
4515
+ - Refreshed CLI banner text and tagline to reflect spec-kitty branding.
4516
+
4517
+ ## [0.0.18] - 2025-10-06
4518
+
4519
+ ### Added
4520
+
4521
+ - Support for using `.` as a shorthand for current directory in `spec-kitty init .` command, equivalent to `--here` flag but more intuitive for users.
4522
+ - Use the `/spec-kitty.` command prefix to easily discover Spec Kitty-related commands.
4523
+ - Refactor the prompts and templates to simplify their capabilities and how they are tracked. No more polluting things with tests when they are not needed.
4524
+ - Ensure that tasks are created per user story (simplifies testing and validation).
4525
+ - Add support for Visual Studio Code prompt shortcuts and automatic script execution.
4526
+ - Allow `spec-kitty init` to bootstrap multiple AI assistants in one run (interactive multi-select or comma-separated `--ai` value).
4527
+ - When running from a local checkout, `spec-kitty init` now copies templates directly instead of downloading release archives, so new commands are immediately available.
4528
+
4529
+ ### Changed
4530
+
4531
+ - All command files now prefixed with `spec-kitty.` (e.g., `spec-kitty.specify.md`, `spec-kitty.plan.md`) for better discoverability and differentiation in IDE/CLI command palettes and file explorers