@loomhelm/multi-task-flow 0.0.0-stage → 0.2.1

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 (2091) hide show
  1. package/README.md +162 -2
  2. package/config.example.json +6 -0
  3. package/package.json +64 -4
  4. package/src/build-info.ts +63 -0
  5. package/src/cli/codex.ts +217 -0
  6. package/src/cli/flow.ts +31 -0
  7. package/src/cli/release.ts +117 -0
  8. package/src/cli/skills.ts +20 -0
  9. package/src/cli.ts +93 -0
  10. package/src/client.ts +83 -0
  11. package/src/codex/LICENSE-CODEX +201 -0
  12. package/src/codex/README.md +60 -0
  13. package/src/codex/app-server.ts +260 -0
  14. package/src/codex/generate-protocol.ts +26 -0
  15. package/src/codex/index.ts +2 -0
  16. package/src/codex/protocol.ts +1423 -0
  17. package/src/config.ts +40 -0
  18. package/src/dispatch/README.md +7 -0
  19. package/src/dispatch/index.ts +325 -0
  20. package/src/git.ts +32 -0
  21. package/src/index.ts +13 -0
  22. package/src/orchestration/README.md +3 -0
  23. package/src/release-tarball.ts +66 -0
  24. package/src/release.ts +133 -0
  25. package/src/runtime/files.ts +15 -0
  26. package/src/runtime/lock.ts +40 -0
  27. package/src/runtime/process.ts +47 -0
  28. package/src/runtime-identity.ts +61 -0
  29. package/src/tasks/ledger.ts +81 -0
  30. package/src/tasks/model.ts +58 -0
  31. package/src/toolkit.ts +176 -0
  32. package/src/version.ts +23 -0
  33. package/src/workflow/README.md +92 -0
  34. package/src/workflow/cli.ts +48 -0
  35. package/src/workflow/index.ts +2 -0
  36. package/src/workflow/local.ts +162 -0
  37. package/src/workflow/skills.ts +148 -0
  38. package/toolkit/AGENTS.md +47 -0
  39. package/toolkit/artifact-manifest.json +8328 -0
  40. package/toolkit/package.json +8 -0
  41. package/toolkit/skills/README.md +50 -0
  42. package/toolkit/skills/bin/active_long_task_replay_check.ts +4 -0
  43. package/toolkit/skills/bin/agent_profile_runtime.ts +84 -0
  44. package/toolkit/skills/bin/agent_vm_migration_check.ts +4 -0
  45. package/toolkit/skills/bin/browser_policy_replay_check.ts +4 -0
  46. package/toolkit/skills/bin/check_source_policy.ts +73 -0
  47. package/toolkit/skills/bin/code_hosting.ts +4 -0
  48. package/toolkit/skills/bin/compatibility_cli.ts +37 -0
  49. package/toolkit/skills/bin/compatibility_dispatch.ts +139 -0
  50. package/toolkit/skills/bin/compatibility_docs.ts +115 -0
  51. package/toolkit/skills/bin/compatibility_hosting.ts +17 -0
  52. package/toolkit/skills/bin/compatibility_shared.ts +230 -0
  53. package/toolkit/skills/bin/compatibility_visual.ts +131 -0
  54. package/toolkit/skills/bin/compatibility_workspace.ts +24 -0
  55. package/toolkit/skills/bin/create_reg_cli_report.ts +4 -0
  56. package/toolkit/skills/bin/flow_continue_replay_check.ts +4 -0
  57. package/toolkit/skills/bin/flow_receipt.ts +285 -0
  58. package/toolkit/skills/bin/instruction_architecture_check.ts +6 -0
  59. package/toolkit/skills/bin/instruction_behavior_replay.ts +4 -0
  60. package/toolkit/skills/bin/migrate_task_orchestration_to_waves.ts +6 -0
  61. package/toolkit/skills/bin/modules/checks/architecture.ts +219 -0
  62. package/toolkit/skills/bin/modules/checks/architecture_acceptance_contracts.ts +137 -0
  63. package/toolkit/skills/bin/modules/checks/architecture_active_review.ts +79 -0
  64. package/toolkit/skills/bin/modules/checks/architecture_contract_data.ts +333 -0
  65. package/toolkit/skills/bin/modules/checks/architecture_contract_helpers.ts +31 -0
  66. package/toolkit/skills/bin/modules/checks/architecture_contracts.ts +55 -0
  67. package/toolkit/skills/bin/modules/checks/architecture_markdown.ts +245 -0
  68. package/toolkit/skills/bin/modules/checks/architecture_review_contracts.ts +284 -0
  69. package/toolkit/skills/bin/modules/checks/architecture_tracker.ts +172 -0
  70. package/toolkit/skills/bin/modules/checks/behavior.ts +122 -0
  71. package/toolkit/skills/bin/modules/checks/browser.ts +108 -0
  72. package/toolkit/skills/bin/modules/checks/candidate_tree_digest.ts +159 -0
  73. package/toolkit/skills/bin/modules/checks/conflict.ts +58 -0
  74. package/toolkit/skills/bin/modules/checks/flow.ts +423 -0
  75. package/toolkit/skills/bin/modules/checks/flow_cleanup.ts +152 -0
  76. package/toolkit/skills/bin/modules/checks/flow_release.ts +308 -0
  77. package/toolkit/skills/bin/modules/checks/flow_release_cards.ts +102 -0
  78. package/toolkit/skills/bin/modules/checks/flow_release_commands.ts +61 -0
  79. package/toolkit/skills/bin/modules/checks/flow_release_evidence.ts +400 -0
  80. package/toolkit/skills/bin/modules/checks/flow_route.ts +151 -0
  81. package/toolkit/skills/bin/modules/checks/flow_support.ts +256 -0
  82. package/toolkit/skills/bin/modules/checks/historical.ts +44 -0
  83. package/toolkit/skills/bin/modules/checks/index.ts +18 -0
  84. package/toolkit/skills/bin/modules/checks/instruction_behavior.ts +330 -0
  85. package/toolkit/skills/bin/modules/checks/instruction_behavior_policy.ts +106 -0
  86. package/toolkit/skills/bin/modules/checks/ownership.ts +183 -0
  87. package/toolkit/skills/bin/modules/checks/pr.ts +297 -0
  88. package/toolkit/skills/bin/modules/checks/pr_handoff.ts +200 -0
  89. package/toolkit/skills/bin/modules/checks/pr_release.ts +13 -0
  90. package/toolkit/skills/bin/modules/checks/pr_release_cards.ts +268 -0
  91. package/toolkit/skills/bin/modules/checks/pr_release_command_helpers.ts +42 -0
  92. package/toolkit/skills/bin/modules/checks/pr_release_commands.ts +87 -0
  93. package/toolkit/skills/bin/modules/checks/pr_release_evaluate.ts +237 -0
  94. package/toolkit/skills/bin/modules/checks/pr_release_publish.ts +217 -0
  95. package/toolkit/skills/bin/modules/checks/pr_release_routes.ts +359 -0
  96. package/toolkit/skills/bin/modules/checks/pr_release_rules.ts +27 -0
  97. package/toolkit/skills/bin/modules/checks/pr_release_scan.ts +351 -0
  98. package/toolkit/skills/bin/modules/checks/pr_release_state.ts +273 -0
  99. package/toolkit/skills/bin/modules/checks/pr_release_support.ts +262 -0
  100. package/toolkit/skills/bin/modules/checks/pr_support.ts +112 -0
  101. package/toolkit/skills/bin/modules/checks/pr_terminal.ts +9 -0
  102. package/toolkit/skills/bin/modules/checks/pr_terminal_events.ts +180 -0
  103. package/toolkit/skills/bin/modules/checks/pr_terminal_scan.ts +204 -0
  104. package/toolkit/skills/bin/modules/checks/pr_terminal_state.ts +113 -0
  105. package/toolkit/skills/bin/modules/checks/pr_terminal_support.ts +206 -0
  106. package/toolkit/skills/bin/modules/checks/pr_terminal_task.ts +176 -0
  107. package/toolkit/skills/bin/modules/checks/release.ts +211 -0
  108. package/toolkit/skills/bin/modules/checks/replay.ts +336 -0
  109. package/toolkit/skills/bin/modules/checks/review.ts +174 -0
  110. package/toolkit/skills/bin/modules/checks/routes.ts +87 -0
  111. package/toolkit/skills/bin/modules/checks/skills.ts +75 -0
  112. package/toolkit/skills/bin/modules/checks/spec.ts +272 -0
  113. package/toolkit/skills/bin/modules/checks/visual.ts +286 -0
  114. package/toolkit/skills/bin/modules/checks/visual_support.ts +203 -0
  115. package/toolkit/skills/bin/modules/core/cli.ts +44 -0
  116. package/toolkit/skills/bin/modules/core/clock.ts +30 -0
  117. package/toolkit/skills/bin/modules/core/process.ts +400 -0
  118. package/toolkit/skills/bin/modules/core/process_tree.ts +112 -0
  119. package/toolkit/skills/bin/modules/core/runtime.ts +2 -0
  120. package/toolkit/skills/bin/modules/core/security_file.ts +246 -0
  121. package/toolkit/skills/bin/modules/core/source_policy.ts +21 -0
  122. package/toolkit/skills/bin/modules/core/utf8.ts +63 -0
  123. package/toolkit/skills/bin/modules/docs/git.ts +54 -0
  124. package/toolkit/skills/bin/modules/docs/hardware_ingest.ts +377 -0
  125. package/toolkit/skills/bin/modules/docs/hardware_locks.ts +181 -0
  126. package/toolkit/skills/bin/modules/docs/legacy_spec_id.ts +131 -0
  127. package/toolkit/skills/bin/modules/docs/migration_common.ts +291 -0
  128. package/toolkit/skills/bin/modules/docs/next_plan.ts +199 -0
  129. package/toolkit/skills/bin/modules/docs/next_plan_support.ts +245 -0
  130. package/toolkit/skills/bin/modules/docs/spec_contract.ts +299 -0
  131. package/toolkit/skills/bin/modules/docs/spec_drift.ts +387 -0
  132. package/toolkit/skills/bin/modules/docs/spec_drift_helpers.ts +383 -0
  133. package/toolkit/skills/bin/modules/docs/spec_drift_legacy.ts +376 -0
  134. package/toolkit/skills/bin/modules/docs/spec_drift_paths.ts +3 -0
  135. package/toolkit/skills/bin/modules/docs/spec_drift_types.ts +27 -0
  136. package/toolkit/skills/bin/modules/docs/spec_drift_validation.ts +251 -0
  137. package/toolkit/skills/bin/modules/docs/spec_migration.ts +191 -0
  138. package/toolkit/skills/bin/modules/flow/acceptance.ts +373 -0
  139. package/toolkit/skills/bin/modules/flow/common.ts +139 -0
  140. package/toolkit/skills/bin/modules/flow/deployment.ts +74 -0
  141. package/toolkit/skills/bin/modules/flow/fresh-thread-dispatch.ts +147 -0
  142. package/toolkit/skills/bin/modules/flow/git.ts +194 -0
  143. package/toolkit/skills/bin/modules/flow/ledger-acceptance.ts +236 -0
  144. package/toolkit/skills/bin/modules/flow/ledger-attestation.ts +151 -0
  145. package/toolkit/skills/bin/modules/flow/ledger-convergence.ts +56 -0
  146. package/toolkit/skills/bin/modules/flow/ledger-lifecycle.ts +205 -0
  147. package/toolkit/skills/bin/modules/flow/ledger-reopen.ts +187 -0
  148. package/toolkit/skills/bin/modules/flow/ledger-review.ts +387 -0
  149. package/toolkit/skills/bin/modules/flow/ledger-terminal.ts +391 -0
  150. package/toolkit/skills/bin/modules/flow/ledger-validation.ts +158 -0
  151. package/toolkit/skills/bin/modules/flow/ledger.ts +207 -0
  152. package/toolkit/skills/bin/modules/flow/process.ts +161 -0
  153. package/toolkit/skills/bin/modules/flow/profile-attest-discovery.ts +137 -0
  154. package/toolkit/skills/bin/modules/flow/profile-attest-utils.ts +353 -0
  155. package/toolkit/skills/bin/modules/flow/profile-attest.ts +316 -0
  156. package/toolkit/skills/bin/modules/flow/profile-hook.ts +375 -0
  157. package/toolkit/skills/bin/modules/flow/profile-resolution.ts +118 -0
  158. package/toolkit/skills/bin/modules/flow/profile-state.ts +286 -0
  159. package/toolkit/skills/bin/modules/flow/profile-transcript.ts +376 -0
  160. package/toolkit/skills/bin/modules/flow/receipt-storage.ts +144 -0
  161. package/toolkit/skills/bin/modules/flow/review-history.ts +69 -0
  162. package/toolkit/skills/bin/modules/flow/review-ledger.ts +9 -0
  163. package/toolkit/skills/bin/modules/flow/review-open-guards.ts +119 -0
  164. package/toolkit/skills/bin/modules/flow/review-profile-policy.ts +290 -0
  165. package/toolkit/skills/bin/modules/flow/review-profile.ts +148 -0
  166. package/toolkit/skills/bin/modules/flow/review-query.ts +16 -0
  167. package/toolkit/skills/bin/modules/flow/review-receipt-integrity.ts +155 -0
  168. package/toolkit/skills/bin/modules/flow/review-record.ts +270 -0
  169. package/toolkit/skills/bin/modules/flow/review-repair.ts +150 -0
  170. package/toolkit/skills/bin/modules/flow/review-result.ts +224 -0
  171. package/toolkit/skills/bin/modules/flow/review-synthesis.ts +195 -0
  172. package/toolkit/skills/bin/modules/flow/review-wave-finalize.ts +231 -0
  173. package/toolkit/skills/bin/modules/flow/review-wave-open.ts +157 -0
  174. package/toolkit/skills/bin/modules/flow/review-wave-support.ts +23 -0
  175. package/toolkit/skills/bin/modules/flow/review-wave-utils.ts +35 -0
  176. package/toolkit/skills/bin/modules/flow/review.ts +369 -0
  177. package/toolkit/skills/bin/modules/flow/state-policy.ts +61 -0
  178. package/toolkit/skills/bin/modules/flow/state-review.ts +70 -0
  179. package/toolkit/skills/bin/modules/flow/state.ts +351 -0
  180. package/toolkit/skills/bin/modules/flow/storage.ts +228 -0
  181. package/toolkit/skills/bin/modules/flow/validation-input.ts +28 -0
  182. package/toolkit/skills/bin/modules/flow/validation.ts +250 -0
  183. package/toolkit/skills/bin/modules/hosting/backend.ts +266 -0
  184. package/toolkit/skills/bin/modules/hosting/compatibility_ci.ts +206 -0
  185. package/toolkit/skills/bin/modules/hosting/compatibility_ci_gitea.ts +77 -0
  186. package/toolkit/skills/bin/modules/hosting/compatibility_ci_github.ts +175 -0
  187. package/toolkit/skills/bin/modules/hosting/compatibility_ci_normalize.ts +302 -0
  188. package/toolkit/skills/bin/modules/hosting/compatibility_ci_policy.ts +219 -0
  189. package/toolkit/skills/bin/modules/hosting/compatibility_ci_surfaces.ts +257 -0
  190. package/toolkit/skills/bin/modules/hosting/compatibility_cli.ts +393 -0
  191. package/toolkit/skills/bin/modules/hosting/compatibility_cli_helpers.ts +188 -0
  192. package/toolkit/skills/bin/modules/hosting/compatibility_helpers.ts +43 -0
  193. package/toolkit/skills/bin/modules/hosting/compatibility_pr.ts +115 -0
  194. package/toolkit/skills/bin/modules/hosting/compatibility_resources.ts +296 -0
  195. package/toolkit/skills/bin/modules/hosting/pull-request.ts +387 -0
  196. package/toolkit/skills/bin/modules/hosting/redact.ts +29 -0
  197. package/toolkit/skills/bin/modules/hosting/remote.ts +129 -0
  198. package/toolkit/skills/bin/modules/hosting/types.ts +38 -0
  199. package/toolkit/skills/bin/modules/plan/acceptance.ts +282 -0
  200. package/toolkit/skills/bin/modules/plan/cli.ts +66 -0
  201. package/toolkit/skills/bin/modules/plan/contract.ts +1245 -0
  202. package/toolkit/skills/bin/modules/plan/historical_session.ts +359 -0
  203. package/toolkit/skills/bin/modules/plan/io.ts +402 -0
  204. package/toolkit/skills/bin/modules/plan/markdown.ts +135 -0
  205. package/toolkit/skills/bin/modules/plan/orchestration.ts +11 -0
  206. package/toolkit/skills/bin/modules/plan/orchestration_base.ts +333 -0
  207. package/toolkit/skills/bin/modules/plan/orchestration_dependencies.ts +231 -0
  208. package/toolkit/skills/bin/modules/plan/orchestration_metadata.ts +134 -0
  209. package/toolkit/skills/bin/modules/plan/orchestration_parser.ts +228 -0
  210. package/toolkit/skills/bin/modules/plan/orchestration_validation.ts +147 -0
  211. package/toolkit/skills/bin/modules/plan/parent_identity.ts +15 -0
  212. package/toolkit/skills/bin/modules/plan/private_snapshot.ts +372 -0
  213. package/toolkit/skills/bin/modules/plan/projection.ts +4 -0
  214. package/toolkit/skills/bin/modules/plan/projection_base.ts +220 -0
  215. package/toolkit/skills/bin/modules/plan/projection_expected.ts +111 -0
  216. package/toolkit/skills/bin/modules/plan/projection_findings.ts +310 -0
  217. package/toolkit/skills/bin/modules/plan/projection_render.ts +349 -0
  218. package/toolkit/skills/bin/modules/plan/review.ts +300 -0
  219. package/toolkit/skills/bin/modules/plan/task_migration.ts +308 -0
  220. package/toolkit/skills/bin/modules/plan/text.ts +8 -0
  221. package/toolkit/skills/bin/modules/visual/casefold.ts +21 -0
  222. package/toolkit/skills/bin/modules/visual/compare.ts +353 -0
  223. package/toolkit/skills/bin/modules/visual/document.ts +253 -0
  224. package/toolkit/skills/bin/modules/visual/document_parse.ts +341 -0
  225. package/toolkit/skills/bin/modules/visual/gate.ts +380 -0
  226. package/toolkit/skills/bin/modules/visual/image.ts +182 -0
  227. package/toolkit/skills/bin/modules/visual/index.ts +11 -0
  228. package/toolkit/skills/bin/modules/visual/isolation.ts +391 -0
  229. package/toolkit/skills/bin/modules/visual/native_rename.ts +34 -0
  230. package/toolkit/skills/bin/modules/visual/paths.ts +312 -0
  231. package/toolkit/skills/bin/modules/visual/pr_body_gate.ts +368 -0
  232. package/toolkit/skills/bin/modules/visual/pr_body_gate_contract.ts +106 -0
  233. package/toolkit/skills/bin/modules/visual/pr_body_gate_markdown.ts +248 -0
  234. package/toolkit/skills/bin/modules/visual/pr_body_gate_provider.ts +134 -0
  235. package/toolkit/skills/bin/modules/visual/pr_body_gate_result.ts +21 -0
  236. package/toolkit/skills/bin/modules/visual/pr_body_gate_tree.ts +36 -0
  237. package/toolkit/skills/bin/modules/visual/pr_body_gate_update.ts +93 -0
  238. package/toolkit/skills/bin/modules/visual/report.ts +5 -0
  239. package/toolkit/skills/bin/modules/visual/report_artifacts.ts +277 -0
  240. package/toolkit/skills/bin/modules/visual/report_audit.ts +214 -0
  241. package/toolkit/skills/bin/modules/visual/report_create.ts +321 -0
  242. package/toolkit/skills/bin/modules/visual/report_runtime.ts +232 -0
  243. package/toolkit/skills/bin/modules/visual/report_validate.ts +293 -0
  244. package/toolkit/skills/bin/modules/visual/sandbox_process.ts +126 -0
  245. package/toolkit/skills/bin/modules/visual/secure_io.ts +486 -0
  246. package/toolkit/skills/bin/modules/visual/snapshot.ts +134 -0
  247. package/toolkit/skills/bin/modules/visual/trim.ts +295 -0
  248. package/toolkit/skills/bin/modules/visual/trusted_directory.ts +42 -0
  249. package/toolkit/skills/bin/modules/visual/write_all.ts +10 -0
  250. package/toolkit/skills/bin/modules/workspace/base_alignment.ts +389 -0
  251. package/toolkit/skills/bin/modules/workspace/base_alignment_actions.ts +318 -0
  252. package/toolkit/skills/bin/modules/workspace/candidate_context.ts +397 -0
  253. package/toolkit/skills/bin/modules/workspace/candidate_sandbox.ts +292 -0
  254. package/toolkit/skills/bin/modules/workspace/closeout_context.ts +161 -0
  255. package/toolkit/skills/bin/modules/workspace/closeout_context_cli.ts +107 -0
  256. package/toolkit/skills/bin/modules/workspace/closeout_gate.ts +353 -0
  257. package/toolkit/skills/bin/modules/workspace/closeout_gate_cli.ts +36 -0
  258. package/toolkit/skills/bin/modules/workspace/local_merge_closeout_context.ts +112 -0
  259. package/toolkit/skills/bin/modules/workspace/local_merge_closeout_context_cli.ts +54 -0
  260. package/toolkit/skills/bin/modules/workspace/local_merge_closeout_gate.ts +257 -0
  261. package/toolkit/skills/bin/modules/workspace/local_merge_closeout_gate_cli.ts +30 -0
  262. package/toolkit/skills/bin/modules/workspace/merge_preflight.ts +318 -0
  263. package/toolkit/skills/bin/modules/workspace/merge_preflight_facts.ts +124 -0
  264. package/toolkit/skills/bin/modules/workspace/merge_preflight_model.ts +325 -0
  265. package/toolkit/skills/bin/modules/workspace/port_allocator.ts +115 -0
  266. package/toolkit/skills/bin/modules/workspace/port_registry.ts +367 -0
  267. package/toolkit/skills/bin/modules/workspace/port_registry_allocation.ts +130 -0
  268. package/toolkit/skills/bin/modules/workspace/port_registry_cli.ts +273 -0
  269. package/toolkit/skills/bin/modules/workspace/port_registry_shared.ts +130 -0
  270. package/toolkit/skills/bin/modules/workspace/port_registry_store.ts +230 -0
  271. package/toolkit/skills/bin/modules/workspace/worktree.ts +135 -0
  272. package/toolkit/skills/bin/multi_task_platform_gate.ts +23 -0
  273. package/toolkit/skills/bin/native-tests/core/ffi_paths.test.ts +61 -0
  274. package/toolkit/skills/bin/native-tests/core/native.test.ts +102 -0
  275. package/toolkit/skills/bin/native-tests/visual/native.test.ts +414 -0
  276. package/toolkit/skills/bin/native-tests/visual/repair.test.ts +577 -0
  277. package/toolkit/skills/bin/owner_facing_image_gate.ts +4 -0
  278. package/toolkit/skills/bin/package.json +1 -0
  279. package/toolkit/skills/bin/plan-cli.sh +231 -0
  280. package/toolkit/skills/bin/plan_acceptance_manifest.ts +62 -0
  281. package/toolkit/skills/bin/plan_bunfig.toml +2 -0
  282. package/toolkit/skills/bin/plan_contract_check.ts +135 -0
  283. package/toolkit/skills/bin/plan_review_view.ts +419 -0
  284. package/toolkit/skills/bin/pr_body_image_contract_check.ts +4 -0
  285. package/toolkit/skills/bin/pr_skill_replay_check.ts +4 -0
  286. package/toolkit/skills/bin/reg-cli-report/package-lock.json +1544 -0
  287. package/toolkit/skills/bin/reg-cli-report/package.json +8 -0
  288. package/toolkit/skills/bin/release_tracking_replay_check.ts +4 -0
  289. package/toolkit/skills/bin/repair-thread-history.zsh +373 -0
  290. package/toolkit/skills/bin/review_profile_policy.ts +107 -0
  291. package/toolkit/skills/bin/review_proof_replay_check.ts +4 -0
  292. package/toolkit/skills/bin/skills_index_check.ts +4 -0
  293. package/toolkit/skills/bin/snapshot_local_image.ts +4 -0
  294. package/toolkit/skills/bin/spec_contract_check.ts +4 -0
  295. package/toolkit/skills/bin/test_agent_profile_runtime.ts +1 -0
  296. package/toolkit/skills/bin/test_agent_profiles.ts +1 -0
  297. package/toolkit/skills/bin/test_agent_vm_migration_check.ts +1 -0
  298. package/toolkit/skills/bin/test_code_hosting.ts +1 -0
  299. package/toolkit/skills/bin/test_create_reg_cli_report.ts +1 -0
  300. package/toolkit/skills/bin/test_dot_codex_context.ts +1 -0
  301. package/toolkit/skills/bin/test_flow_continue_replay_check.ts +1 -0
  302. package/toolkit/skills/bin/test_flow_receipt.ts +1 -0
  303. package/toolkit/skills/bin/test_instruction_architecture_check.ts +1 -0
  304. package/toolkit/skills/bin/test_instruction_behavior_replay.ts +1 -0
  305. package/toolkit/skills/bin/test_owner_facing_image_gate.ts +1 -0
  306. package/toolkit/skills/bin/test_plan_acceptance_manifest.ts +1 -0
  307. package/toolkit/skills/bin/test_plan_contract_check.ts +1 -0
  308. package/toolkit/skills/bin/test_plan_review_view.ts +1 -0
  309. package/toolkit/skills/bin/test_pr_skill_replay_check.ts +1 -0
  310. package/toolkit/skills/bin/test_release_tracking_replay_check.ts +1 -0
  311. package/toolkit/skills/bin/test_skills_index_check.ts +1 -0
  312. package/toolkit/skills/bin/test_snapshot_local_image.ts +1 -0
  313. package/toolkit/skills/bin/test_spec_contract_check.ts +1 -0
  314. package/toolkit/skills/bin/test_visual_evidence_document.ts +1 -0
  315. package/toolkit/skills/bin/tests/checks/agent_vm.test.ts +41 -0
  316. package/toolkit/skills/bin/tests/checks/candidate_tree_digest.test.ts +114 -0
  317. package/toolkit/skills/bin/tests/checks/checks.test.ts +608 -0
  318. package/toolkit/skills/bin/tests/checks/flow_python_parity.test.ts +41 -0
  319. package/toolkit/skills/bin/tests/checks/flow_release.test.ts +584 -0
  320. package/toolkit/skills/bin/tests/checks/flow_release_help.test.ts +103 -0
  321. package/toolkit/skills/bin/tests/checks/flow_repair.test.ts +214 -0
  322. package/toolkit/skills/bin/tests/checks/fresh_thread_dispatch.test.ts +68 -0
  323. package/toolkit/skills/bin/tests/checks/multi-task-flow.test.ts +192 -0
  324. package/toolkit/skills/bin/tests/checks/pr_replay_policy.test.ts +165 -0
  325. package/toolkit/skills/bin/tests/core/compatibility.test.ts +94 -0
  326. package/toolkit/skills/bin/tests/core/core.test.ts +458 -0
  327. package/toolkit/skills/bin/tests/core/package_scripts.test.ts +13 -0
  328. package/toolkit/skills/bin/tests/docs/contract_migration.test.ts +199 -0
  329. package/toolkit/skills/bin/tests/docs/plan_and_hardware.test.ts +210 -0
  330. package/toolkit/skills/bin/tests/docs/spec_drift.test.ts +279 -0
  331. package/toolkit/skills/bin/tests/flow/flow.test.ts +477 -0
  332. package/toolkit/skills/bin/tests/flow/fresh_thread_dispatch.test.ts +211 -0
  333. package/toolkit/skills/bin/tests/flow/profile.test.ts +519 -0
  334. package/toolkit/skills/bin/tests/flow/review_profile_policy.test.ts +144 -0
  335. package/toolkit/skills/bin/tests/hosting/ci_evidence_conflicts.test.ts +279 -0
  336. package/toolkit/skills/bin/tests/hosting/ci_facts.test.ts +595 -0
  337. package/toolkit/skills/bin/tests/hosting/ci_rerun.test.ts +188 -0
  338. package/toolkit/skills/bin/tests/hosting/hosting.test.ts +561 -0
  339. package/toolkit/skills/bin/tests/hosting/merge_confirmation.test.ts +37 -0
  340. package/toolkit/skills/bin/tests/hosting/test_helpers.ts +36 -0
  341. package/toolkit/skills/bin/tests/plan/acceptance.test.ts +202 -0
  342. package/toolkit/skills/bin/tests/plan/cli.test.ts +39 -0
  343. package/toolkit/skills/bin/tests/plan/fixtures.ts +29 -0
  344. package/toolkit/skills/bin/tests/plan/io.test.ts +64 -0
  345. package/toolkit/skills/bin/tests/plan/isolation.test.ts +31 -0
  346. package/toolkit/skills/bin/tests/plan/launcher.test.ts +88 -0
  347. package/toolkit/skills/bin/tests/plan/launcher_race.test.ts +39 -0
  348. package/toolkit/skills/bin/tests/plan/multi-task-flow.test.ts +38 -0
  349. package/toolkit/skills/bin/tests/plan/orchestration.test.ts +102 -0
  350. package/toolkit/skills/bin/tests/plan/review.test.ts +195 -0
  351. package/toolkit/skills/bin/tests/plan/shell.test.ts +282 -0
  352. package/toolkit/skills/bin/tests/plan/task_migration.test.ts +160 -0
  353. package/toolkit/skills/bin/tests/visual/pr_body_gate.test.ts +109 -0
  354. package/toolkit/skills/bin/tests/visual/report_create.test.ts +134 -0
  355. package/toolkit/skills/bin/tests/visual/visual.test.ts +598 -0
  356. package/toolkit/skills/bin/tests/workspace/base_alignment.test.ts +121 -0
  357. package/toolkit/skills/bin/tests/workspace/fixed_checks.test.ts +30 -0
  358. package/toolkit/skills/bin/tests/workspace/workspace.test.ts +840 -0
  359. package/toolkit/skills/bin/visual_evidence_document.ts +4 -0
  360. package/toolkit/skills/bin/visual_evidence_replay_check.ts +4 -0
  361. package/toolkit/skills/bun.lock +96 -0
  362. package/toolkit/skills/catalog.json +803 -0
  363. package/toolkit/skills/cn-ecommerce-data-collection/SKILL.md +51 -0
  364. package/toolkit/skills/cn-ecommerce-data-collection/references/data-collection.md +51 -0
  365. package/toolkit/skills/dev-plan/SKILL.md +112 -0
  366. package/toolkit/skills/dev-plan/agents/openai.yaml +2 -0
  367. package/toolkit/skills/dev-plan/references/plan-cases/negative-direct-review-tier-missing.md +35 -0
  368. package/toolkit/skills/dev-plan/references/plan-cases/negative-empirical-acceptance-missing.md +39 -0
  369. package/toolkit/skills/dev-plan/references/plan-cases/negative-empirical-acceptance-placeholders.md +40 -0
  370. package/toolkit/skills/dev-plan/references/plan-cases/negative-empirical-acceptance-scenarios.md +40 -0
  371. package/toolkit/skills/dev-plan/references/plan-cases/negative-fast-track-avoid-open-pr.md +35 -0
  372. package/toolkit/skills/dev-plan/references/plan-cases/negative-fast-track-avoid-pr-creation.md +35 -0
  373. package/toolkit/skills/dev-plan/references/plan-cases/negative-fast-track-avoid-pr-delivery.md +35 -0
  374. package/toolkit/skills/dev-plan/references/plan-cases/negative-fast-track-direct-pr-omitted.md +35 -0
  375. package/toolkit/skills/dev-plan/references/plan-cases/negative-fast-track-local-only-delivery.md +35 -0
  376. package/toolkit/skills/dev-plan/references/plan-cases/negative-fast-track-no-direct-pr.md +35 -0
  377. package/toolkit/skills/dev-plan/references/plan-cases/negative-fast-track-no-pr-delivery.md +35 -0
  378. package/toolkit/skills/dev-plan/references/plan-cases/negative-fast-track-no-pr-local.md +35 -0
  379. package/toolkit/skills/dev-plan/references/plan-cases/negative-fast-track-pr-acceptance-missing.md +35 -0
  380. package/toolkit/skills/dev-plan/references/plan-cases/negative-fast-track-pr-acceptance-split.md +37 -0
  381. package/toolkit/skills/dev-plan/references/plan-cases/negative-fast-track-pr-forbidden.md +35 -0
  382. package/toolkit/skills/dev-plan/references/plan-cases/negative-fast-track-pr-target-only.md +35 -0
  383. package/toolkit/skills/dev-plan/references/plan-cases/negative-fast-track-unlocked.md +35 -0
  384. package/toolkit/skills/dev-plan/references/plan-cases/negative-initiative-adr-contracts-duplicate-path.md +46 -0
  385. package/toolkit/skills/dev-plan/references/plan-cases/negative-initiative-adr-contracts-duplicate.md +47 -0
  386. package/toolkit/skills/dev-plan/references/plan-cases/negative-initiative-adr-contracts-malformed-sha.md +46 -0
  387. package/toolkit/skills/dev-plan/references/plan-cases/negative-initiative-adr-contracts-missing.md +45 -0
  388. package/toolkit/skills/dev-plan/references/plan-cases/negative-initiative-adr-contracts-trailing-comma.md +46 -0
  389. package/toolkit/skills/dev-plan/references/plan-cases/negative-initiative-adr-contracts-unsorted.md +46 -0
  390. package/toolkit/skills/dev-plan/references/plan-cases/negative-multi-task-flow-single-task.md +42 -0
  391. package/toolkit/skills/dev-plan/references/plan-cases/negative-parallel-pr-overlap.md +45 -0
  392. package/toolkit/skills/dev-plan/references/plan-cases/negative-phase-aware-missing-phase.md +41 -0
  393. package/toolkit/skills/dev-plan/references/plan-cases/negative-plan-constraint-acceptance.md +38 -0
  394. package/toolkit/skills/dev-plan/references/plan-cases/negative-plan-constraint-task-item.md +38 -0
  395. package/toolkit/skills/dev-plan/references/plan-cases/negative-plan-provenance-section.md +38 -0
  396. package/toolkit/skills/dev-plan/references/plan-cases/negative-plan-provenance-variant.md +38 -0
  397. package/toolkit/skills/dev-plan/references/plan-cases/negative-runtime-profile-pair.md +37 -0
  398. package/toolkit/skills/dev-plan/references/plan-cases/negative-runtime-profile-reviewer-identity.md +37 -0
  399. package/toolkit/skills/dev-plan/references/plan-cases/negative-runtime-strategy-ungated.md +37 -0
  400. package/toolkit/skills/dev-plan/references/plan-cases/negative-wave-thread-v2-duplicate-contract.md +48 -0
  401. package/toolkit/skills/dev-plan/references/plan-cases/positive-empirical-acceptance.md +41 -0
  402. package/toolkit/skills/dev-plan/references/plan-cases/positive-fast-track-aggregate-pr-exclusion.md +41 -0
  403. package/toolkit/skills/dev-plan/references/plan-cases/positive-fast-track.md +41 -0
  404. package/toolkit/skills/dev-plan/references/plan-cases/positive-initiative-bootstrap-v5.md +47 -0
  405. package/toolkit/skills/dev-plan/references/plan-cases/positive-initiative-delivery-v5.md +56 -0
  406. package/toolkit/skills/dev-plan/references/plan-cases/positive-multi-task-flow.md +50 -0
  407. package/toolkit/skills/dev-plan/references/plan-cases/positive-parallel-pr.md +48 -0
  408. package/toolkit/skills/dev-plan/references/plan-cases/positive-phase-aware-direct.md +44 -0
  409. package/toolkit/skills/dev-plan/references/plan-cases/positive-plan-constraints.md +45 -0
  410. package/toolkit/skills/dev-plan/references/plan-cases/positive-plan-task-metadata.md +40 -0
  411. package/toolkit/skills/dev-plan/references/plan-cases/positive-wave-thread-v2.md +57 -0
  412. package/toolkit/skills/dev-plan/references/replay-cases/CASES.txt +248 -0
  413. package/toolkit/skills/dev-plan/references/replay-cases/README.md +190 -0
  414. package/toolkit/skills/dev-plan/references/replay-cases/abstract-development-baseline-combined-phrase.jsonl +2 -0
  415. package/toolkit/skills/dev-plan/references/replay-cases/abstract-development-baseline.jsonl +2 -0
  416. package/toolkit/skills/dev-plan/references/replay-cases/acceptance-follow-up-items-only.jsonl +2 -0
  417. package/toolkit/skills/dev-plan/references/replay-cases/acceptance-notes-only.jsonl +2 -0
  418. package/toolkit/skills/dev-plan/references/replay-cases/acceptance-tba-only.jsonl +2 -0
  419. package/toolkit/skills/dev-plan/references/replay-cases/ambiguous-continue-fallback.jsonl +3 -0
  420. package/toolkit/skills/dev-plan/references/replay-cases/blank-acceptance-bullet.jsonl +2 -0
  421. package/toolkit/skills/dev-plan/references/replay-cases/checkbox-task-orchestration.jsonl +2 -0
  422. package/toolkit/skills/dev-plan/references/replay-cases/conflicting-flow-signals-default-fast-track.jsonl +2 -0
  423. package/toolkit/skills/dev-plan/references/replay-cases/context-dependent-alias-development-baseline.jsonl +1 -0
  424. package/toolkit/skills/dev-plan/references/replay-cases/context-dependent-remote-head-development-baseline.jsonl +2 -0
  425. package/toolkit/skills/dev-plan/references/replay-cases/create-plan-md-implementation-steps-artifact.jsonl +2 -0
  426. package/toolkit/skills/dev-plan/references/replay-cases/decision-log-artifact-in-orchestration.jsonl +2 -0
  427. package/toolkit/skills/dev-plan/references/replay-cases/decision-log-future-work-artifact.jsonl +2 -0
  428. package/toolkit/skills/dev-plan/references/replay-cases/decision-log-job-future-handoffs-artifact.jsonl +2 -0
  429. package/toolkit/skills/dev-plan/references/replay-cases/decision-log-timeline-planning-handoff-artifact.jsonl +2 -0
  430. package/toolkit/skills/dev-plan/references/replay-cases/decision-log-workflow-artifact.jsonl +2 -0
  431. package/toolkit/skills/dev-plan/references/replay-cases/default-fast-track-missing-merge-ready-stop.jsonl +2 -0
  432. package/toolkit/skills/dev-plan/references/replay-cases/duplicate-task-in-wave.jsonl +2 -0
  433. package/toolkit/skills/dev-plan/references/replay-cases/explicit-owner-baseline-mismatch-after-flow-answer.jsonl +4 -0
  434. package/toolkit/skills/dev-plan/references/replay-cases/explicit-owner-baseline-mismatch-after-standalone-flow-restatement.jsonl +4 -0
  435. package/toolkit/skills/dev-plan/references/replay-cases/explicit-owner-baseline-mismatch-base-equals.jsonl +2 -0
  436. package/toolkit/skills/dev-plan/references/replay-cases/explicit-owner-baseline-mismatch-base-ref-equals.jsonl +2 -0
  437. package/toolkit/skills/dev-plan/references/replay-cases/explicit-owner-baseline-mismatch-directional-baseline.jsonl +2 -0
  438. package/toolkit/skills/dev-plan/references/replay-cases/explicit-owner-baseline-mismatch-english-is.jsonl +2 -0
  439. package/toolkit/skills/dev-plan/references/replay-cases/explicit-owner-baseline-mismatch-legal-trailing-punct.jsonl +2 -0
  440. package/toolkit/skills/dev-plan/references/replay-cases/explicit-owner-baseline-mismatch-legal-trailing-semicolon-plain.jsonl +2 -0
  441. package/toolkit/skills/dev-plan/references/replay-cases/explicit-owner-baseline-mismatch-plain-chinese.jsonl +2 -0
  442. package/toolkit/skills/dev-plan/references/replay-cases/explicit-owner-baseline-mismatch-plan-page-upload-api-scope-clarification.jsonl +6 -0
  443. package/toolkit/skills/dev-plan/references/replay-cases/explicit-owner-baseline-mismatch-short-ref.jsonl +2 -0
  444. package/toolkit/skills/dev-plan/references/replay-cases/explicit-owner-baseline-mismatch-yong-plain-chinese.jsonl +2 -0
  445. package/toolkit/skills/dev-plan/references/replay-cases/explicit-owner-baseline-mismatch.jsonl +2 -0
  446. package/toolkit/skills/dev-plan/references/replay-cases/filesystem-path-development-baseline.jsonl +1 -0
  447. package/toolkit/skills/dev-plan/references/replay-cases/flat-task-orchestration-list.jsonl +2 -0
  448. package/toolkit/skills/dev-plan/references/replay-cases/flow-decision-baseline-only-outside-section.jsonl +1 -0
  449. package/toolkit/skills/dev-plan/references/replay-cases/flow-decision-mismatch-lock.jsonl +3 -0
  450. package/toolkit/skills/dev-plan/references/replay-cases/generate-handoff-log-future-sessions-artifact.jsonl +2 -0
  451. package/toolkit/skills/dev-plan/references/replay-cases/goal-blank-bullet.jsonl +2 -0
  452. package/toolkit/skills/dev-plan/references/replay-cases/goal-placeholder-detail.jsonl +2 -0
  453. package/toolkit/skills/dev-plan/references/replay-cases/goal-tba-detail.jsonl +2 -0
  454. package/toolkit/skills/dev-plan/references/replay-cases/goal-without-detail.jsonl +2 -0
  455. package/toolkit/skills/dev-plan/references/replay-cases/goals-empty-orchestration-only.jsonl +2 -0
  456. package/toolkit/skills/dev-plan/references/replay-cases/handoff-log-artifact-in-orchestration.jsonl +2 -0
  457. package/toolkit/skills/dev-plan/references/replay-cases/handoff-log-future-work-artifact.jsonl +2 -0
  458. package/toolkit/skills/dev-plan/references/replay-cases/handoff-log-history-agent-session-artifact.jsonl +2 -0
  459. package/toolkit/skills/dev-plan/references/replay-cases/handoff-log-pipeline-artifact.jsonl +2 -0
  460. package/toolkit/skills/dev-plan/references/replay-cases/historical-flow-not-locked-before-plan.jsonl +2 -0
  461. package/toolkit/skills/dev-plan/references/replay-cases/historical-missing-flow-type.jsonl +2 -0
  462. package/toolkit/skills/dev-plan/references/replay-cases/implement-only-forbidden-copy-spec-task.jsonl +2 -0
  463. package/toolkit/skills/dev-plan/references/replay-cases/implement-only-forbidden-create-for-tests-task.jsonl +2 -0
  464. package/toolkit/skills/dev-plan/references/replay-cases/implement-only-forbidden-create-migrated-copy-task.jsonl +2 -0
  465. package/toolkit/skills/dev-plan/references/replay-cases/implement-only-forbidden-skill-normal-flow.jsonl +2 -0
  466. package/toolkit/skills/dev-plan/references/replay-cases/implement-only-forbidden-skill-topic-spec.jsonl +2 -0
  467. package/toolkit/skills/dev-plan/references/replay-cases/implement-only-forbidden-sync-against-existing-task.jsonl +2 -0
  468. package/toolkit/skills/dev-plan/references/replay-cases/implement-only-forbidden-sync-task-orchestration.jsonl +2 -0
  469. package/toolkit/skills/dev-plan/references/replay-cases/implement-only-forbidden-task-orchestration.jsonl +2 -0
  470. package/toolkit/skills/dev-plan/references/replay-cases/implement-only-forbidden-update-existing-spec-task.jsonl +2 -0
  471. package/toolkit/skills/dev-plan/references/replay-cases/implement-only-forbidden-update-tests-slug-task.jsonl +2 -0
  472. package/toolkit/skills/dev-plan/references/replay-cases/invalid-flow-type-substring.jsonl +2 -0
  473. package/toolkit/skills/dev-plan/references/replay-cases/invalid-section-order.jsonl +2 -0
  474. package/toolkit/skills/dev-plan/references/replay-cases/invalid-task-orchestration-content.jsonl +2 -0
  475. package/toolkit/skills/dev-plan/references/replay-cases/invalid-user-flow-lock-substring.jsonl +2 -0
  476. package/toolkit/skills/dev-plan/references/replay-cases/keep-handoff-log-future-sessions-artifact.jsonl +2 -0
  477. package/toolkit/skills/dev-plan/references/replay-cases/missing-development-baseline.jsonl +2 -0
  478. package/toolkit/skills/dev-plan/references/replay-cases/missing-flow-question.jsonl +2 -0
  479. package/toolkit/skills/dev-plan/references/replay-cases/missing-goals.jsonl +2 -0
  480. package/toolkit/skills/dev-plan/references/replay-cases/missing-non-goals.jsonl +2 -0
  481. package/toolkit/skills/dev-plan/references/replay-cases/missing-task-orchestration-task.jsonl +2 -0
  482. package/toolkit/skills/dev-plan/references/replay-cases/missing-task-orchestration.jsonl +2 -0
  483. package/toolkit/skills/dev-plan/references/replay-cases/missing-task-skill-binding.jsonl +2 -0
  484. package/toolkit/skills/dev-plan/references/replay-cases/mixed-plan-cleanup-create-artifact.jsonl +2 -0
  485. package/toolkit/skills/dev-plan/references/replay-cases/move-plan-md-handoff-artifact.jsonl +2 -0
  486. package/toolkit/skills/dev-plan/references/replay-cases/negative-agent-profile-invalid.jsonl +2 -0
  487. package/toolkit/skills/dev-plan/references/replay-cases/negative-agent-profile-missing.jsonl +2 -0
  488. package/toolkit/skills/dev-plan/references/replay-cases/negative-aggregate-missing-final-merge-policy.jsonl +2 -0
  489. package/toolkit/skills/dev-plan/references/replay-cases/negative-aggregate-missing-initiative-flow.jsonl +2 -0
  490. package/toolkit/skills/dev-plan/references/replay-cases/negative-aggregate-non-kebab-integration-branch.jsonl +2 -0
  491. package/toolkit/skills/dev-plan/references/replay-cases/negative-aggregate-policy-outside-flow-decision.jsonl +2 -0
  492. package/toolkit/skills/dev-plan/references/replay-cases/negative-default-initiative-eligibility-unproven.jsonl +2 -0
  493. package/toolkit/skills/dev-plan/references/replay-cases/negative-formal-evidence-predeclaration.jsonl +1 -0
  494. package/toolkit/skills/dev-plan/references/replay-cases/negative-formal-main-agent-predeclaration.jsonl +2 -0
  495. package/toolkit/skills/dev-plan/references/replay-cases/negative-initiative-prerequisite-silent-downgrade.jsonl +2 -0
  496. package/toolkit/skills/dev-plan/references/replay-cases/negative-initiative-with-legacy-fast-alias.jsonl +2 -0
  497. package/toolkit/skills/dev-plan/references/replay-cases/negative-legacy-profile-text.jsonl +2 -0
  498. package/toolkit/skills/dev-plan/references/replay-cases/negative-main-agent-profile.jsonl +2 -0
  499. package/toolkit/skills/dev-plan/references/replay-cases/negative-new-delivery-topology.jsonl +2 -0
  500. package/toolkit/skills/dev-plan/references/replay-cases/negative-new-mixed-top-level-flow.jsonl +2 -0
  501. package/toolkit/skills/dev-plan/references/replay-cases/negative-specialist-review-effort.jsonl +2 -0
  502. package/toolkit/skills/dev-plan/references/replay-cases/negative-specialist-review-profile.jsonl +2 -0
  503. package/toolkit/skills/dev-plan/references/replay-cases/negative-subagent-contradictory-write.jsonl +2 -0
  504. package/toolkit/skills/dev-plan/references/replay-cases/negative-subagent-filesystem-write-actions.jsonl +2 -0
  505. package/toolkit/skills/dev-plan/references/replay-cases/negative-subagent-generic-english-write.jsonl +2 -0
  506. package/toolkit/skills/dev-plan/references/replay-cases/negative-subagent-generic-implementation-write.jsonl +2 -0
  507. package/toolkit/skills/dev-plan/references/replay-cases/negative-subagent-git-and-shell-write-commands.jsonl +2 -0
  508. package/toolkit/skills/dev-plan/references/replay-cases/negative-subagent-git-config-worktree.jsonl +2 -0
  509. package/toolkit/skills/dev-plan/references/replay-cases/negative-subagent-git-global-options.jsonl +2 -0
  510. package/toolkit/skills/dev-plan/references/replay-cases/negative-subagent-git-readonly-mixed-commands.jsonl +1 -0
  511. package/toolkit/skills/dev-plan/references/replay-cases/negative-subagent-git-write-commands.jsonl +2 -0
  512. package/toolkit/skills/dev-plan/references/replay-cases/negative-subagent-implementation-multiword.jsonl +2 -0
  513. package/toolkit/skills/dev-plan/references/replay-cases/negative-subagent-implementing-write.jsonl +2 -0
  514. package/toolkit/skills/dev-plan/references/replay-cases/negative-subagent-local-write.jsonl +2 -0
  515. package/toolkit/skills/dev-plan/references/replay-cases/negative-subagent-shared-write-english.jsonl +2 -0
  516. package/toolkit/skills/dev-plan/references/replay-cases/negative-subagent-shared-write.jsonl +2 -0
  517. package/toolkit/skills/dev-plan/references/replay-cases/negative-task-agent-alias.jsonl +2 -0
  518. package/toolkit/skills/dev-plan/references/replay-cases/negative-task-executor-noninitiative.jsonl +2 -0
  519. package/toolkit/skills/dev-plan/references/replay-cases/negative-ticket-replans-via-executor.jsonl +2 -0
  520. package/toolkit/skills/dev-plan/references/replay-cases/negative-ticket-replans.jsonl +2 -0
  521. package/toolkit/skills/dev-plan/references/replay-cases/non-baseline-based-on-docs-text.jsonl +2 -0
  522. package/toolkit/skills/dev-plan/references/replay-cases/non-goals-blank-bullet.jsonl +2 -0
  523. package/toolkit/skills/dev-plan/references/replay-cases/non-goals-none-placeholder.jsonl +2 -0
  524. package/toolkit/skills/dev-plan/references/replay-cases/non-goals-placeholder.jsonl +2 -0
  525. package/toolkit/skills/dev-plan/references/replay-cases/persisted-plan-artifact-in-orchestration.jsonl +2 -0
  526. package/toolkit/skills/dev-plan/references/replay-cases/placeholder-acceptance.jsonl +2 -0
  527. package/toolkit/skills/dev-plan/references/replay-cases/placeholder-development-baseline.jsonl +1 -0
  528. package/toolkit/skills/dev-plan/references/replay-cases/plan-md-handoff-job-future-sessions-artifact.jsonl +2 -0
  529. package/toolkit/skills/dev-plan/references/replay-cases/positive-agent-profiles.jsonl +2 -0
  530. package/toolkit/skills/dev-plan/references/replay-cases/positive-default-fast-track-no-flow.jsonl +2 -0
  531. package/toolkit/skills/dev-plan/references/replay-cases/positive-default-initiative-from-planned-scope.jsonl +2 -0
  532. package/toolkit/skills/dev-plan/references/replay-cases/positive-default-mainline-concrete-baseline.jsonl +2 -0
  533. package/toolkit/skills/dev-plan/references/replay-cases/positive-default-mainline-token-ref.jsonl +2 -0
  534. package/toolkit/skills/dev-plan/references/replay-cases/positive-direct-dev-plan-issue-parser.jsonl +2 -0
  535. package/toolkit/skills/dev-plan/references/replay-cases/positive-direct-mentions-initiative-non-goal.jsonl +2 -0
  536. package/toolkit/skills/dev-plan/references/replay-cases/positive-directional-product-wording-no-baseline.jsonl +2 -0
  537. package/toolkit/skills/dev-plan/references/replay-cases/positive-equivalent-remote-ref-baseline.jsonl +2 -0
  538. package/toolkit/skills/dev-plan/references/replay-cases/positive-explicit-branch-baseline-after-flow-answer.jsonl +4 -0
  539. package/toolkit/skills/dev-plan/references/replay-cases/positive-explicit-branch-baseline-after-prose-flow-answer.jsonl +4 -0
  540. package/toolkit/skills/dev-plan/references/replay-cases/positive-explicit-branch-baseline-after-standalone-flow-restatement.jsonl +4 -0
  541. package/toolkit/skills/dev-plan/references/replay-cases/positive-explicit-branch-baseline-base-ref-equals.jsonl +2 -0
  542. package/toolkit/skills/dev-plan/references/replay-cases/positive-explicit-branch-baseline-directional-baseline.jsonl +2 -0
  543. package/toolkit/skills/dev-plan/references/replay-cases/positive-explicit-branch-baseline-doc-like-ref.jsonl +2 -0
  544. package/toolkit/skills/dev-plan/references/replay-cases/positive-explicit-branch-baseline-feature-head.jsonl +2 -0
  545. package/toolkit/skills/dev-plan/references/replay-cases/positive-explicit-branch-baseline-legal-trailing-punct-comma-clause.jsonl +2 -0
  546. package/toolkit/skills/dev-plan/references/replay-cases/positive-explicit-branch-baseline-legal-trailing-punct.jsonl +2 -0
  547. package/toolkit/skills/dev-plan/references/replay-cases/positive-explicit-branch-baseline-legal-trailing-semicolon-plain.jsonl +2 -0
  548. package/toolkit/skills/dev-plan/references/replay-cases/positive-explicit-branch-baseline-placeholder-token-ref.jsonl +2 -0
  549. package/toolkit/skills/dev-plan/references/replay-cases/positive-explicit-branch-baseline-plain-chinese.jsonl +2 -0
  550. package/toolkit/skills/dev-plan/references/replay-cases/positive-explicit-branch-baseline-replace-clause.jsonl +2 -0
  551. package/toolkit/skills/dev-plan/references/replay-cases/positive-explicit-branch-baseline-short-ref.jsonl +2 -0
  552. package/toolkit/skills/dev-plan/references/replay-cases/positive-explicit-branch-baseline-special-chars.jsonl +2 -0
  553. package/toolkit/skills/dev-plan/references/replay-cases/positive-explicit-branch-baseline-topic-prefix.jsonl +2 -0
  554. package/toolkit/skills/dev-plan/references/replay-cases/positive-explicit-branch-baseline-trailing-comma-clause.jsonl +2 -0
  555. package/toolkit/skills/dev-plan/references/replay-cases/positive-explicit-branch-baseline-yong-plain-chinese.jsonl +2 -0
  556. package/toolkit/skills/dev-plan/references/replay-cases/positive-explicit-branch-baseline.jsonl +2 -0
  557. package/toolkit/skills/dev-plan/references/replay-cases/positive-explicit-commit-baseline.jsonl +2 -0
  558. package/toolkit/skills/dev-plan/references/replay-cases/positive-explicit-english-branch-baseline-is.jsonl +2 -0
  559. package/toolkit/skills/dev-plan/references/replay-cases/positive-fast-track.jsonl +2 -0
  560. package/toolkit/skills/dev-plan/references/replay-cases/positive-flow-lock-direct-local-merge-skill.jsonl +2 -0
  561. package/toolkit/skills/dev-plan/references/replay-cases/positive-flow-lock-fast-flow-keyed.jsonl +2 -0
  562. package/toolkit/skills/dev-plan/references/replay-cases/positive-flow-lock-latest-explicit-user.jsonl +3 -0
  563. package/toolkit/skills/dev-plan/references/replay-cases/positive-flow-lock-rui.jsonl +3 -0
  564. package/toolkit/skills/dev-plan/references/replay-cases/positive-flow-lock-standalone-normal-punctuation.jsonl +2 -0
  565. package/toolkit/skills/dev-plan/references/replay-cases/positive-formal-review-sidecar.jsonl +2 -0
  566. package/toolkit/skills/dev-plan/references/replay-cases/positive-implement-only-add-tests-reference.jsonl +2 -0
  567. package/toolkit/skills/dev-plan/references/replay-cases/positive-implement-only-parser-reference.jsonl +2 -0
  568. package/toolkit/skills/dev-plan/references/replay-cases/positive-implement-only-pure.jsonl +2 -0
  569. package/toolkit/skills/dev-plan/references/replay-cases/positive-implement-only-update-parser-reference.jsonl +2 -0
  570. package/toolkit/skills/dev-plan/references/replay-cases/positive-large-coupled-default-fast-track.jsonl +2 -0
  571. package/toolkit/skills/dev-plan/references/replay-cases/positive-legacy-direct-no-topology.jsonl +2 -0
  572. package/toolkit/skills/dev-plan/references/replay-cases/positive-legacy-direct-with-topology.jsonl +2 -0
  573. package/toolkit/skills/dev-plan/references/replay-cases/positive-legacy-fast-aggregate.jsonl +2 -0
  574. package/toolkit/skills/dev-plan/references/replay-cases/positive-legacy-unprofiled-subagent.jsonl +2 -0
  575. package/toolkit/skills/dev-plan/references/replay-cases/positive-multi-plan-baseline-reset-explicit-dev-plan-with-continue-wording.jsonl +4 -0
  576. package/toolkit/skills/dev-plan/references/replay-cases/positive-multi-plan-baseline-reset-generic-reask.jsonl +4 -0
  577. package/toolkit/skills/dev-plan/references/replay-cases/positive-multi-plan-baseline-reset-merge-queue-api.jsonl +4 -0
  578. package/toolkit/skills/dev-plan/references/replay-cases/positive-multi-plan-baseline-reset-merge-ready.jsonl +4 -0
  579. package/toolkit/skills/dev-plan/references/replay-cases/positive-multi-plan-baseline-reset-no-dev-plan-token.jsonl +4 -0
  580. package/toolkit/skills/dev-plan/references/replay-cases/positive-multi-plan-baseline-reset-plan-task-wording.jsonl +4 -0
  581. package/toolkit/skills/dev-plan/references/replay-cases/positive-multi-plan-baseline-reset-replan-merge-ready-clause.jsonl +4 -0
  582. package/toolkit/skills/dev-plan/references/replay-cases/positive-multi-plan-baseline-reset-replan-task.jsonl +4 -0
  583. package/toolkit/skills/dev-plan/references/replay-cases/positive-multi-plan-baseline-reset.jsonl +4 -0
  584. package/toolkit/skills/dev-plan/references/replay-cases/positive-no-delivery-topology.jsonl +2 -0
  585. package/toolkit/skills/dev-plan/references/replay-cases/positive-normal-agent-decision-log-api.jsonl +2 -0
  586. package/toolkit/skills/dev-plan/references/replay-cases/positive-normal-agent-handoff-log-exporter.jsonl +2 -0
  587. package/toolkit/skills/dev-plan/references/replay-cases/positive-normal-decision-log-entries.jsonl +2 -0
  588. package/toolkit/skills/dev-plan/references/replay-cases/positive-normal-decision-log-ui.jsonl +2 -0
  589. package/toolkit/skills/dev-plan/references/replay-cases/positive-normal-future-handoff-log-timeline.jsonl +2 -0
  590. package/toolkit/skills/dev-plan/references/replay-cases/positive-normal-handoff-log-ui.jsonl +2 -0
  591. package/toolkit/skills/dev-plan/references/replay-cases/positive-normal-next-session-decision-log-api.jsonl +2 -0
  592. package/toolkit/skills/dev-plan/references/replay-cases/positive-normal-next-session-decision-log-exporter.jsonl +2 -0
  593. package/toolkit/skills/dev-plan/references/replay-cases/positive-normal-pending-state-acceptance.jsonl +2 -0
  594. package/toolkit/skills/dev-plan/references/replay-cases/positive-normal-plan-file-upload-api.jsonl +2 -0
  595. package/toolkit/skills/dev-plan/references/replay-cases/positive-normal-plan-md-cleanup.jsonl +2 -0
  596. package/toolkit/skills/dev-plan/references/replay-cases/positive-normal-plan-md-import-review-page.jsonl +2 -0
  597. package/toolkit/skills/dev-plan/references/replay-cases/positive-normal-plan-md-importer.jsonl +2 -0
  598. package/toolkit/skills/dev-plan/references/replay-cases/positive-normal-plan-md-planning-ui-import.jsonl +2 -0
  599. package/toolkit/skills/dev-plan/references/replay-cases/positive-normal-plan-md-user-upload.jsonl +2 -0
  600. package/toolkit/skills/dev-plan/references/replay-cases/positive-normal-plan-template-decision-log-history.jsonl +2 -0
  601. package/toolkit/skills/dev-plan/references/replay-cases/positive-normal-plan-template-handoff-log-history.jsonl +2 -0
  602. package/toolkit/skills/dev-plan/references/replay-cases/positive-normal-progress-log-ui.jsonl +2 -0
  603. package/toolkit/skills/dev-plan/references/replay-cases/positive-normal.jsonl +2 -0
  604. package/toolkit/skills/dev-plan/references/replay-cases/positive-runtime-formal-review.jsonl +2 -0
  605. package/toolkit/skills/dev-plan/references/replay-cases/positive-scope-clarification-import-page-no-reset.jsonl +4 -0
  606. package/toolkit/skills/dev-plan/references/replay-cases/positive-scope-clarification-new-plan-file-upload-api-no-reset.jsonl +6 -0
  607. package/toolkit/skills/dev-plan/references/replay-cases/positive-scope-clarification-plan-md-no-reset.jsonl +4 -0
  608. package/toolkit/skills/dev-plan/references/replay-cases/positive-scope-clarification-plan-page-upload-api-no-reset.jsonl +6 -0
  609. package/toolkit/skills/dev-plan/references/replay-cases/positive-skill-binding-fullwidth-comma.jsonl +2 -0
  610. package/toolkit/skills/dev-plan/references/replay-cases/positive-specialist-review-profiles.jsonl +2 -0
  611. package/toolkit/skills/dev-plan/references/replay-cases/positive-subagent-commit-history-review.jsonl +2 -0
  612. package/toolkit/skills/dev-plan/references/replay-cases/positive-subagent-descriptive-implementation-review.jsonl +2 -0
  613. package/toolkit/skills/dev-plan/references/replay-cases/positive-subagent-git-config-worktree-readonly.jsonl +2 -0
  614. package/toolkit/skills/dev-plan/references/replay-cases/positive-subagent-git-readonly-commands.jsonl +2 -0
  615. package/toolkit/skills/dev-plan/references/replay-cases/positive-subagent-git-stash-readonly.jsonl +2 -0
  616. package/toolkit/skills/dev-plan/references/replay-cases/positive-subagent-indirect-readonly-negation.jsonl +2 -0
  617. package/toolkit/skills/dev-plan/references/replay-cases/positive-subagent-readonly-negation.jsonl +2 -0
  618. package/toolkit/skills/dev-plan/references/replay-cases/positive-subagent-review-implementation.jsonl +2 -0
  619. package/toolkit/skills/dev-plan/references/replay-cases/positive-wave-thread-v2-legacy.jsonl +2 -0
  620. package/toolkit/skills/dev-plan/references/replay-cases/prepare-handoff-log-next-session-artifact.jsonl +2 -0
  621. package/toolkit/skills/dev-plan/references/replay-cases/read-plan-md-handoff-context-artifact.jsonl +2 -0
  622. package/toolkit/skills/dev-plan/references/replay-cases/redundant-execution-steps.jsonl +2 -0
  623. package/toolkit/skills/dev-plan/references/replay-cases/skill-binding-mixed-dollar-and-plain.jsonl +2 -0
  624. package/toolkit/skills/dev-plan/references/replay-cases/skill-binding-no-dollar-prefix.jsonl +2 -0
  625. package/toolkit/skills/dev-plan/references/replay-cases/summary-blank-bullet.jsonl +2 -0
  626. package/toolkit/skills/dev-plan/references/replay-cases/unrelated-flow-wording-default-fast-track.jsonl +2 -0
  627. package/toolkit/skills/dev-plan/references/replay-cases/unrelated-flow-wording.jsonl +3 -0
  628. package/toolkit/skills/dev-plan/references/replay-cases/update-plan-md-implementation-steps-artifact.jsonl +2 -0
  629. package/toolkit/skills/dev-plan/references/replay-cases/wave-sequence-jump.jsonl +2 -0
  630. package/toolkit/skills/dev-plan/references/replay-cases/wave-sequence-repeat.jsonl +2 -0
  631. package/toolkit/skills/dev-plan/scripts/test_migrate_task_orchestration.ts +1 -0
  632. package/toolkit/skills/docs/vendor/dot-codex/README.md +36 -0
  633. package/toolkit/skills/docs/vendor/dot-codex/adr/0001-compose-adrs-with-topic-specs.md +7 -0
  634. package/toolkit/skills/docs/vendor/dot-codex/adr/0002-xp-infra-public-hostname-convention.md +11 -0
  635. package/toolkit/skills/docs/vendor/dot-codex/adr/0003-external-fact-delivery-gates.md +20 -0
  636. package/toolkit/skills/docs/vendor/dot-codex/adr/0003-task-scoped-pr-visual-evidence.md +23 -0
  637. package/toolkit/skills/docs/vendor/dot-codex/adr/0004-scope-authority-and-topic-spec-boundaries.md +28 -0
  638. package/toolkit/skills/docs/vendor/dot-codex/adr/0005-topic-spec-skill-naming.md +27 -0
  639. package/toolkit/skills/docs/vendor/dot-codex/adr/0006-internal-plan-authorization-and-scope-constraints.md +26 -0
  640. package/toolkit/skills/docs/vendor/dot-codex/adr/0007-source-managed-component-evidence.md +26 -0
  641. package/toolkit/skills/docs/vendor/dot-codex/adr/0008-direct-pr-merge-preflight.md +25 -0
  642. package/toolkit/skills/docs/vendor/dot-codex/adr/0009-initiative-child-integration-ci-boundary.md +24 -0
  643. package/toolkit/skills/docs/vendor/dot-codex/adr/0010-post-merge-flow-receipt-finality.md +22 -0
  644. package/toolkit/skills/docs/vendor/dot-codex/adr/0011-parallel-direct-pr-flow.md +25 -0
  645. package/toolkit/skills/docs/vendor/dot-codex/adr/0012-mandatory-local-review-proof.md +23 -0
  646. package/toolkit/skills/docs/vendor/dot-codex/adr/0013-review-necessity-tiering.md +21 -0
  647. package/toolkit/skills/docs/vendor/dot-codex/adr/0014-direct-review-evidence.md +20 -0
  648. package/toolkit/skills/docs/vendor/dot-codex/adr/0015-agent-owned-shared-testbox-workspace.md +12 -0
  649. package/toolkit/skills/docs/vendor/dot-codex/adr/0016-bind-review-repairs-to-approved-scope.md +19 -0
  650. package/toolkit/skills/docs/vendor/dot-codex/adr/0016-pr-lifecycle-workflow-ownership.md +27 -0
  651. package/toolkit/skills/docs/vendor/dot-codex/adr/0017-review-readiness-and-runtime-launch.md +39 -0
  652. package/toolkit/skills/docs/vendor/dot-codex/adr/0018-v5-bootstrap-integration-ci-activation.md +14 -0
  653. package/toolkit/skills/docs/vendor/dot-codex/adr/0019-plan-release-disposition-policy-boundary.md +35 -0
  654. package/toolkit/skills/docs/vendor/dot-codex/adr/0020-code-hosting-platform-boundary.md +9 -0
  655. package/toolkit/skills/docs/vendor/dot-codex/adr/0020-empirical-acceptance-review-gate.md +42 -0
  656. package/toolkit/skills/docs/vendor/dot-codex/adr/0021-runtime-derived-pre-merge-release-route.md +33 -0
  657. package/toolkit/skills/docs/vendor/dot-codex/adr/0022-sandboxed-reg-cli-report-execution.md +31 -0
  658. package/toolkit/skills/docs/vendor/dot-codex/adr/0023-dev-plan-release-delivery-scope.md +24 -0
  659. package/toolkit/skills/docs/vendor/dot-codex/adr/0024-stop-condition-driven-release-decision.md +28 -0
  660. package/toolkit/skills/docs/vendor/dot-codex/adr/0025-native-incus-agent-vm-lifecycle.md +11 -0
  661. package/toolkit/skills/docs/vendor/dot-codex/adr/0026-agent-vm-cpu-memory-overselling.md +44 -0
  662. package/toolkit/skills/docs/vendor/dot-codex/adr/0027-release-tracker-ownership.md +9 -0
  663. package/toolkit/skills/docs/vendor/dot-codex/adr/0028-wave-thread-coordinator.md +22 -0
  664. package/toolkit/skills/docs/vendor/dot-codex/adr/0029-wave-thread-delivery-batches.md +28 -0
  665. package/toolkit/skills/docs/vendor/dot-codex/adr/0030-dev-plan-single-source-wave-thread.md +25 -0
  666. package/toolkit/skills/docs/vendor/dot-codex/adr/0031-dev-plan-owner-review-projection.md +25 -0
  667. package/toolkit/skills/docs/vendor/dot-codex/adr/0032-dev-plan-single-finalization-gate.md +86 -0
  668. package/toolkit/skills/docs/vendor/dot-codex/adr/0032-flow-scoped-model-profile-allowlists.md +36 -0
  669. package/toolkit/skills/docs/vendor/dot-codex/adr/0032-phase-aware-acceptance-gates.md +41 -0
  670. package/toolkit/skills/docs/vendor/dot-codex/adr/0033-bun-typescript-script-runtime.md +41 -0
  671. package/toolkit/skills/docs/vendor/dot-codex/adr/0033-empirical-acceptance-and-repair-autonomy.md +31 -0
  672. package/toolkit/skills/docs/vendor/dot-codex/adr/0034-bun-cli-launch-boundary.md +36 -0
  673. package/toolkit/skills/docs/vendor/dot-codex/adr/0034-priority-aware-review-repair-eligibility.md +16 -0
  674. package/toolkit/skills/docs/vendor/dot-codex/adr/0035-task-orchestration-ledger.md +20 -0
  675. package/toolkit/skills/docs/vendor/dot-codex/adr/0036-task-orchestration-dashboard-experience.md +77 -0
  676. package/toolkit/skills/docs/vendor/dot-codex/adr/0037-dev-plan-multi-task-flow-routing.md +20 -0
  677. package/toolkit/skills/docs/vendor/dot-codex/adr/0038-direct-review-terra-profile.md +27 -0
  678. package/toolkit/skills/docs/vendor/dot-codex/adr/0039-fresh-dispatch-title-contract.md +13 -0
  679. package/toolkit/skills/docs/vendor/dot-codex/adr/0040-dev-plan-standalone-typescript-finalizer.md +25 -0
  680. package/toolkit/skills/docs/vendor/dot-codex/adr/0040-phase-aware-plan-revision-audit.md +35 -0
  681. package/toolkit/skills/docs/vendor/dot-codex/adr/0041-contribution-tasks-and-delivery-units.md +7 -0
  682. package/toolkit/skills/docs/vendor/dot-codex/adr/0041-task-orchestration-dashboard-experience.md +77 -0
  683. package/toolkit/skills/docs/vendor/dot-codex/adr/0042-shared-orchestration-viewer.md +13 -0
  684. package/toolkit/skills/docs/vendor/dot-codex/adr/0043-composite-notification-delivery.md +9 -0
  685. package/toolkit/skills/docs/vendor/dot-codex/adr/0043-external-source-viewer.md +16 -0
  686. package/toolkit/skills/docs/vendor/dot-codex/adr/0044-multi-task-execution-profile-and-cli-conversation-creation.md +28 -0
  687. package/toolkit/skills/docs/vendor/dot-codex/adr/0045-viewer-compatibility-and-maintenance.md +19 -0
  688. package/toolkit/skills/docs/vendor/dot-codex/adr/0046-native-worktree-desktop-handoff.md +24 -0
  689. package/toolkit/skills/docs/vendor/dot-codex/agents/issue-tracker.md +5 -0
  690. package/toolkit/skills/docs/vendor/dot-codex/design/multi-task-flow/dashboard-requirements.md +103 -0
  691. package/toolkit/skills/docs/vendor/dot-codex/design/multi-task-flow/data-and-scripts.md +297 -0
  692. package/toolkit/skills/docs/vendor/dot-codex/design/multi-task-flow/dev-plan-bridge.md +41 -0
  693. package/toolkit/skills/docs/vendor/dot-codex/design/multi-task-flow/execution.md +122 -0
  694. package/toolkit/skills/docs/vendor/dot-codex/design/multi-task-flow/orchestration.md +106 -0
  695. package/toolkit/skills/docs/vendor/dot-codex/design/multi-task-flow/plan-revision-and-change-audit.md +99 -0
  696. package/toolkit/skills/docs/vendor/dot-codex/design/multi-task-flow/shared-viewer.md +129 -0
  697. package/toolkit/skills/docs/vendor/dot-codex/design/multi-task-flow/web-template.md +161 -0
  698. package/toolkit/skills/docs/vendor/dot-codex/engineering-workflow.md +261 -0
  699. package/toolkit/skills/docs/vendor/dot-codex/solutions/README.md +112 -0
  700. package/toolkit/skills/docs/vendor/dot-codex/solutions/best-practices/project-doc-promotion.md +51 -0
  701. package/toolkit/skills/docs/vendor/dot-codex/solutions/troubleshooting/private-docker-audit-runtime-snapshot.md +67 -0
  702. package/toolkit/skills/docs/vendor/dot-codex/solutions/workflow-issues/browser-isolated-context-reuse.md +72 -0
  703. package/toolkit/skills/docs/vendor/dot-codex/solutions/workflow-issues/deep-skill-thin-adapter.md +56 -0
  704. package/toolkit/skills/docs/vendor/dot-codex/solutions/workflow-issues/forge-transport-decoupling.md +116 -0
  705. package/toolkit/skills/docs/vendor/dot-codex/solutions/workflow-issues/git-skill-convergence.md +105 -0
  706. package/toolkit/skills/docs/vendor/dot-codex/solutions/workflow-issues/gui-tool-escalation-gate.md +55 -0
  707. package/toolkit/skills/docs/vendor/dot-codex/solutions/workflow-issues/stable-preview-handoff-runtime.md +74 -0
  708. package/toolkit/skills/docs/vendor/dot-codex/specs/2h289-local-merge-cleanup-closeout/HISTORY.md +18 -0
  709. package/toolkit/skills/docs/vendor/dot-codex/specs/2h289-local-merge-cleanup-closeout/IMPLEMENTATION.md +55 -0
  710. package/toolkit/skills/docs/vendor/dot-codex/specs/2h289-local-merge-cleanup-closeout/SPEC.md +137 -0
  711. package/toolkit/skills/docs/vendor/dot-codex/specs/4zciv-pr-skill-diagnosis-thinning/HISTORY.md +20 -0
  712. package/toolkit/skills/docs/vendor/dot-codex/specs/4zciv-pr-skill-diagnosis-thinning/IMPLEMENTATION.md +60 -0
  713. package/toolkit/skills/docs/vendor/dot-codex/specs/4zciv-pr-skill-diagnosis-thinning/SPEC.md +142 -0
  714. package/toolkit/skills/docs/vendor/dot-codex/specs/4zciv-pr-skill-diagnosis-thinning/replay/cases.txt +5 -0
  715. package/toolkit/skills/docs/vendor/dot-codex/specs/4zciv-pr-skill-diagnosis-thinning/replay/negative-dirty-misread-as-approval.jsonl +2 -0
  716. package/toolkit/skills/docs/vendor/dot-codex/specs/4zciv-pr-skill-diagnosis-thinning/replay/negative-promised-merge-branch-skipped.jsonl +4 -0
  717. package/toolkit/skills/docs/vendor/dot-codex/specs/4zciv-pr-skill-diagnosis-thinning/replay/negative-session-approval-evidence-ignored.jsonl +2 -0
  718. package/toolkit/skills/docs/vendor/dot-codex/specs/4zciv-pr-skill-diagnosis-thinning/replay/positive-blocked-with-approval-evidence.jsonl +3 -0
  719. package/toolkit/skills/docs/vendor/dot-codex/specs/4zciv-pr-skill-diagnosis-thinning/replay/positive-dirty-conflict-reported.jsonl +2 -0
  720. package/toolkit/skills/docs/vendor/dot-codex/specs/5dvcj-dev-plan-default-fast-track-auto-lock/HISTORY.md +16 -0
  721. package/toolkit/skills/docs/vendor/dot-codex/specs/5dvcj-dev-plan-default-fast-track-auto-lock/IMPLEMENTATION.md +37 -0
  722. package/toolkit/skills/docs/vendor/dot-codex/specs/5dvcj-dev-plan-default-fast-track-auto-lock/SPEC.md +58 -0
  723. package/toolkit/skills/docs/vendor/dot-codex/specs/5fsxh-viewport-safe-browser-evidence/HISTORY.md +19 -0
  724. package/toolkit/skills/docs/vendor/dot-codex/specs/5fsxh-viewport-safe-browser-evidence/IMPLEMENTATION.md +72 -0
  725. package/toolkit/skills/docs/vendor/dot-codex/specs/5fsxh-viewport-safe-browser-evidence/SPEC.md +170 -0
  726. package/toolkit/skills/docs/vendor/dot-codex/specs/6s9b8-retire-legacy-service-manager/HISTORY.md +18 -0
  727. package/toolkit/skills/docs/vendor/dot-codex/specs/6s9b8-retire-legacy-service-manager/IMPLEMENTATION.md +56 -0
  728. package/toolkit/skills/docs/vendor/dot-codex/specs/6s9b8-retire-legacy-service-manager/SPEC.md +48 -0
  729. package/toolkit/skills/docs/vendor/dot-codex/specs/7uqp8-mainline-baseline-topic-branch-freshness/HISTORY.md +15 -0
  730. package/toolkit/skills/docs/vendor/dot-codex/specs/7uqp8-mainline-baseline-topic-branch-freshness/IMPLEMENTATION.md +68 -0
  731. package/toolkit/skills/docs/vendor/dot-codex/specs/7uqp8-mainline-baseline-topic-branch-freshness/SPEC.md +166 -0
  732. package/toolkit/skills/docs/vendor/dot-codex/specs/8tmdq-local-chat-image-snapshots/HISTORY.md +19 -0
  733. package/toolkit/skills/docs/vendor/dot-codex/specs/8tmdq-local-chat-image-snapshots/IMPLEMENTATION.md +60 -0
  734. package/toolkit/skills/docs/vendor/dot-codex/specs/8tmdq-local-chat-image-snapshots/SPEC.md +151 -0
  735. package/toolkit/skills/docs/vendor/dot-codex/specs/9878v-shared-ui-visual-evidence-gate/HISTORY.md +69 -0
  736. package/toolkit/skills/docs/vendor/dot-codex/specs/9878v-shared-ui-visual-evidence-gate/IMPLEMENTATION.md +111 -0
  737. package/toolkit/skills/docs/vendor/dot-codex/specs/9878v-shared-ui-visual-evidence-gate/SPEC.md +288 -0
  738. package/toolkit/skills/docs/vendor/dot-codex/specs/9878v-shared-ui-visual-evidence-gate/replay/cases.txt +7 -0
  739. package/toolkit/skills/docs/vendor/dot-codex/specs/9878v-shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-before-ui-demo-check.jsonl +4 -0
  740. package/toolkit/skills/docs/vendor/dot-codex/specs/9878v-shared-ui-visual-evidence-gate/replay/negative-mixed-component-then-full-page-storybook.jsonl +6 -0
  741. package/toolkit/skills/docs/vendor/dot-codex/specs/9878v-shared-ui-visual-evidence-gate/replay/negative-owner-lock-survives-blocker-before-storybook.jsonl +4 -0
  742. package/toolkit/skills/docs/vendor/dot-codex/specs/9878v-shared-ui-visual-evidence-gate/replay/negative-owner-locked-web-demo-replaced-by-storybook.jsonl +3 -0
  743. package/toolkit/skills/docs/vendor/dot-codex/specs/9878v-shared-ui-visual-evidence-gate/replay/positive-component-storybook-allowed.jsonl +3 -0
  744. package/toolkit/skills/docs/vendor/dot-codex/specs/9878v-shared-ui-visual-evidence-gate/replay/positive-full-page-storybook-fallback-after-no-ui-demo.jsonl +3 -0
  745. package/toolkit/skills/docs/vendor/dot-codex/specs/9878v-shared-ui-visual-evidence-gate/replay/positive-user-allows-storybook-after-no-ui-demo.jsonl +3 -0
  746. package/toolkit/skills/docs/vendor/dot-codex/specs/README.md +110 -0
  747. package/toolkit/skills/docs/vendor/dot-codex/specs/a4ge9-stable-preview-runtime/HISTORY.md +24 -0
  748. package/toolkit/skills/docs/vendor/dot-codex/specs/a4ge9-stable-preview-runtime/IMPLEMENTATION.md +66 -0
  749. package/toolkit/skills/docs/vendor/dot-codex/specs/a4ge9-stable-preview-runtime/SPEC.md +175 -0
  750. package/toolkit/skills/docs/vendor/dot-codex/specs/active-long-task-ownership-wait-guard/HISTORY.md +20 -0
  751. package/toolkit/skills/docs/vendor/dot-codex/specs/active-long-task-ownership-wait-guard/IMPLEMENTATION.md +64 -0
  752. package/toolkit/skills/docs/vendor/dot-codex/specs/active-long-task-ownership-wait-guard/SPEC.md +154 -0
  753. package/toolkit/skills/docs/vendor/dot-codex/specs/active-long-task-ownership-wait-guard/replay/cases.txt +11 -0
  754. package/toolkit/skills/docs/vendor/dot-codex/specs/active-long-task-ownership-wait-guard/replay/negative-019d681b-active-proof-owner-leak.jsonl +4 -0
  755. package/toolkit/skills/docs/vendor/dot-codex/specs/active-long-task-ownership-wait-guard/replay/negative-019d686e-live-exec-owner-leak.jsonl +4 -0
  756. package/toolkit/skills/docs/vendor/dot-codex/specs/active-long-task-ownership-wait-guard/replay/negative-focused-session-still-live-owner-leak.jsonl +8 -0
  757. package/toolkit/skills/docs/vendor/dot-codex/specs/active-long-task-ownership-wait-guard/replay/negative-running-status-alone-owner-leak.jsonl +4 -0
  758. package/toolkit/skills/docs/vendor/dot-codex/specs/active-long-task-ownership-wait-guard/replay/positive-continue-with-extra-request.jsonl +4 -0
  759. package/toolkit/skills/docs/vendor/dot-codex/specs/active-long-task-ownership-wait-guard/replay/positive-continue-with-new-owner-input.jsonl +4 -0
  760. package/toolkit/skills/docs/vendor/dot-codex/specs/active-long-task-ownership-wait-guard/replay/positive-focused-proof-exits-before-user-nudge.jsonl +10 -0
  761. package/toolkit/skills/docs/vendor/dot-codex/specs/active-long-task-ownership-wait-guard/replay/positive-promised-session-exited-before-user-nudge.jsonl +8 -0
  762. package/toolkit/skills/docs/vendor/dot-codex/specs/active-long-task-ownership-wait-guard/replay/positive-review-promise-does-not-bind-unrelated-live-session.jsonl +8 -0
  763. package/toolkit/skills/docs/vendor/dot-codex/specs/active-long-task-ownership-wait-guard/replay/positive-terminal-before-user-nudge.jsonl +7 -0
  764. package/toolkit/skills/docs/vendor/dot-codex/specs/agent-instruction-architecture/HISTORY.md +6 -0
  765. package/toolkit/skills/docs/vendor/dot-codex/specs/agent-instruction-architecture/IMPLEMENTATION.md +23 -0
  766. package/toolkit/skills/docs/vendor/dot-codex/specs/agent-instruction-architecture/SPEC.md +85 -0
  767. package/toolkit/skills/docs/vendor/dot-codex/specs/agent-instruction-architecture/replay/baseline-gpt-5.6-sol.json +10 -0
  768. package/toolkit/skills/docs/vendor/dot-codex/specs/agent-instruction-architecture/replay/cases.json +212 -0
  769. package/toolkit/skills/docs/vendor/dot-codex/specs/agent-memory-project-docs/HISTORY.md +20 -0
  770. package/toolkit/skills/docs/vendor/dot-codex/specs/agent-memory-project-docs/IMPLEMENTATION.md +66 -0
  771. package/toolkit/skills/docs/vendor/dot-codex/specs/agent-memory-project-docs/SPEC.md +133 -0
  772. package/toolkit/skills/docs/vendor/dot-codex/specs/agent-vm/HISTORY.md +31 -0
  773. package/toolkit/skills/docs/vendor/dot-codex/specs/agent-vm/IMPLEMENTATION.md +144 -0
  774. package/toolkit/skills/docs/vendor/dot-codex/specs/agent-vm/RECLAMATION-DESIGN.md +72 -0
  775. package/toolkit/skills/docs/vendor/dot-codex/specs/agent-vm/RETENTION-DESIGN.md +17 -0
  776. package/toolkit/skills/docs/vendor/dot-codex/specs/agent-vm/SPEC.md +123 -0
  777. package/toolkit/skills/docs/vendor/dot-codex/specs/agent-vm/contracts/cli.md +82 -0
  778. package/toolkit/skills/docs/vendor/dot-codex/specs/ar7tp-storybook-skill-upgrade/HISTORY.md +23 -0
  779. package/toolkit/skills/docs/vendor/dot-codex/specs/ar7tp-storybook-skill-upgrade/IMPLEMENTATION.md +68 -0
  780. package/toolkit/skills/docs/vendor/dot-codex/specs/ar7tp-storybook-skill-upgrade/SPEC.md +165 -0
  781. package/toolkit/skills/docs/vendor/dot-codex/specs/bb5xj-global-solutions-docs-migrate/HISTORY.md +25 -0
  782. package/toolkit/skills/docs/vendor/dot-codex/specs/bb5xj-global-solutions-docs-migrate/IMPLEMENTATION.md +67 -0
  783. package/toolkit/skills/docs/vendor/dot-codex/specs/bb5xj-global-solutions-docs-migrate/SPEC.md +168 -0
  784. package/toolkit/skills/docs/vendor/dot-codex/specs/code-hosting-platform/HISTORY.md +29 -0
  785. package/toolkit/skills/docs/vendor/dot-codex/specs/code-hosting-platform/IMPLEMENTATION.md +38 -0
  786. package/toolkit/skills/docs/vendor/dot-codex/specs/code-hosting-platform/SPEC.md +100 -0
  787. package/toolkit/skills/docs/vendor/dot-codex/specs/cvm-imagegen-skill/HISTORY.md +22 -0
  788. package/toolkit/skills/docs/vendor/dot-codex/specs/cvm-imagegen-skill/IMPLEMENTATION.md +38 -0
  789. package/toolkit/skills/docs/vendor/dot-codex/specs/cvm-imagegen-skill/SPEC.md +180 -0
  790. package/toolkit/skills/docs/vendor/dot-codex/specs/dev-plan-default-fast-track-auto-lock/HISTORY.md +20 -0
  791. package/toolkit/skills/docs/vendor/dot-codex/specs/dev-plan-default-fast-track-auto-lock/IMPLEMENTATION.md +38 -0
  792. package/toolkit/skills/docs/vendor/dot-codex/specs/dev-plan-default-fast-track-auto-lock/SPEC.md +68 -0
  793. package/toolkit/skills/docs/vendor/dot-codex/specs/dev-plan-flow-lock-options/HISTORY.md +22 -0
  794. package/toolkit/skills/docs/vendor/dot-codex/specs/dev-plan-flow-lock-options/IMPLEMENTATION.md +58 -0
  795. package/toolkit/skills/docs/vendor/dot-codex/specs/dev-plan-flow-lock-options/SPEC.md +74 -0
  796. package/toolkit/skills/docs/vendor/dot-codex/specs/dev-plan-goals-first/HISTORY.md +93 -0
  797. package/toolkit/skills/docs/vendor/dot-codex/specs/dev-plan-goals-first/IMPLEMENTATION.md +131 -0
  798. package/toolkit/skills/docs/vendor/dot-codex/specs/dev-plan-goals-first/SPEC.md +200 -0
  799. package/toolkit/skills/docs/vendor/dot-codex/specs/dev-plan-standalone-typescript-finalizer/HISTORY.md +5 -0
  800. package/toolkit/skills/docs/vendor/dot-codex/specs/dev-plan-standalone-typescript-finalizer/IMPLEMENTATION.md +27 -0
  801. package/toolkit/skills/docs/vendor/dot-codex/specs/dev-plan-standalone-typescript-finalizer/SPEC.md +78 -0
  802. package/toolkit/skills/docs/vendor/dot-codex/specs/dvc8g-dev-plan-goals-first/HISTORY.md +54 -0
  803. package/toolkit/skills/docs/vendor/dot-codex/specs/dvc8g-dev-plan-goals-first/IMPLEMENTATION.md +87 -0
  804. package/toolkit/skills/docs/vendor/dot-codex/specs/dvc8g-dev-plan-goals-first/SPEC.md +171 -0
  805. package/toolkit/skills/docs/vendor/dot-codex/specs/empirical-acceptance-review-gate/HISTORY.md +25 -0
  806. package/toolkit/skills/docs/vendor/dot-codex/specs/empirical-acceptance-review-gate/IMPLEMENTATION.md +43 -0
  807. package/toolkit/skills/docs/vendor/dot-codex/specs/empirical-acceptance-review-gate/SPEC.md +99 -0
  808. package/toolkit/skills/docs/vendor/dot-codex/specs/empirical-acceptance-review-gate/replay/phase-closeout-cases.jsonl +3 -0
  809. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/HISTORY.md +111 -0
  810. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/IMPLEMENTATION.md +195 -0
  811. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/SPEC.md +460 -0
  812. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/cases.txt +256 -0
  813. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/flow-continue-cases.txt +48 -0
  814. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-active-gate-closed-out-early.jsonl +2 -0
  815. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-active-proof-merged-closeout.jsonl +6 -0
  816. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-api-readonly-merge-probe-no-merge.jsonl +5 -0
  817. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-assistant-merge-cleanup-dropped-to-ready.jsonl +3 -0
  818. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-assistant-merge-only-dropped-to-ready.jsonl +3 -0
  819. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-bare-remote-branch-blocked-exemption.jsonl +4 -0
  820. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-behind-auth-regression.jsonl +3 -0
  821. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-cleanup-anchor-with-no-proof-status.jsonl +3 -0
  822. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-cleanup-diagnostic-output-no-proof.jsonl +6 -0
  823. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-cleanup-negated-proof.jsonl +5 -0
  824. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-cleanup-negated-wont-call.jsonl +5 -0
  825. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-cleanup-promise-no-proof.jsonl +4 -0
  826. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-cleanup-promised-skill-call.jsonl +5 -0
  827. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-cleanup-proof-future-placeholder.jsonl +4 -0
  828. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-cleanup-proof-pending.jsonl +4 -0
  829. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-cleanup-proof-unchecked.jsonl +3 -0
  830. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-cleanup-summary-no-proof.jsonl +5 -0
  831. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-delete-branch-without-head-evidence.jsonl +4 -0
  832. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-delete-in-or-fallback-after-merge-success.jsonl +5 -0
  833. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-delete-wrong-remote-branch.jsonl +5 -0
  834. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-earlier-merge-does-not-satisfy-later-intent.jsonl +4 -0
  835. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-english-merged-closeout-no-cleanup.jsonl +3 -0
  836. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-fast-track-distant-stale-current-head.jsonl +4 -0
  837. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-fast-track-later-unknown-current-head.jsonl +5 -0
  838. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-fast-track-nonlive-current-head.jsonl +4 -0
  839. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-fast-track-stale-pr-fact.jsonl +5 -0
  840. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-fast-track-stopped-before-pr.jsonl +4 -0
  841. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-fast-track-unknown-current-head.jsonl +4 -0
  842. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-flow-continue-release-epoch-missing-disposition.jsonl +4 -0
  843. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-flow-continue-release-route-stale.jsonl +3 -0
  844. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-flow-continue-route-null-after-adapter-create.jsonl +4 -0
  845. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-flow-continue-route-null-after-api-field-create.jsonl +4 -0
  846. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-flow-continue-route-null-after-pr-create.jsonl +4 -0
  847. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-flow-continue-user-route-evidence.jsonl +3 -0
  848. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-gh-api-delete-http-error.jsonl +4 -0
  849. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-gh-delete-branch-flag-failed.jsonl +5 -0
  850. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-legacy-scheduled-tracker-tool-first.jsonl +2 -0
  851. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-legacy-scheduled-tracker.jsonl +2 -0
  852. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-merge-base-ahead-auto-updated.jsonl +8 -0
  853. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-merge-base-blocker-no-menu.jsonl +8 -0
  854. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-merge-base-primary-worktree-dirty-blocker-no-menu.jsonl +8 -0
  855. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-merge-cleanup-late-rerun-after-positive-proof.jsonl +10 -0
  856. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-merge-cleanup-late-skip-after-nonpositive-proof.jsonl +10 -0
  857. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-merge-cleanup-nonpositive-proof-skips-cleanup.jsonl +6 -0
  858. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-merge-cleanup-step6-reruns-cleanup.jsonl +6 -0
  859. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-merge-diagnostic-command-no-merge.jsonl +5 -0
  860. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-merge-help-command-no-merge.jsonl +5 -0
  861. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-merge-no-remote-branch-delete.jsonl +4 -0
  862. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-merge-only-dropped-to-ready.jsonl +3 -0
  863. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-merge-proof-auth-regression.jsonl +4 -0
  864. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-merged-pr-still-step5c.jsonl +3 -0
  865. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-negated-fork-remote-branch-exists.jsonl +4 -0
  866. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-no-open-pr-still-step5c.jsonl +3 -0
  867. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-no-open-pr-terminal-last-agent-message.jsonl +2 -0
  868. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-plain-merge-dropped-to-ready.jsonl +3 -0
  869. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-post-merge-uses-pr-card.jsonl +4 -0
  870. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-pr-head-nonterminal-result.jsonl +5 -0
  871. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-ready-cleanup-combined-intent.jsonl +3 -0
  872. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-ready-wording-with-cleanup-anchor.jsonl +3 -0
  873. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-actual-sha-mismatch.jsonl +3 -0
  874. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-actual-sha-missing.jsonl +3 -0
  875. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-actual-tag-mismatch.jsonl +3 -0
  876. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-api-opaque-label.jsonl +3 -0
  877. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-api-pr-mutation-before-route.jsonl +2 -0
  878. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-api-unmanaged-label.jsonl +3 -0
  879. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-assistant-idempotency-untrusted.jsonl +4 -0
  880. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-assistant-identity-override.jsonl +4 -0
  881. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-bare-false-evidence.jsonl +2 -0
  882. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-blind-rerun-before-discovery.jsonl +4 -0
  883. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-compound-label.jsonl +3 -0
  884. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-compound-unsafe-rerun.jsonl +3 -0
  885. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-conflicting-artifact-sha.jsonl +3 -0
  886. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-container-tag-mismatch.jsonl +3 -0
  887. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-context-not-applicable.jsonl +2 -0
  888. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-cross-output-identity.jsonl +4 -0
  889. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-cross-repo-rerun.jsonl +5 -0
  890. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-cross-repo-target-ci-rerun.jsonl +4 -0
  891. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-decision-card-missing.jsonl +10 -0
  892. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-decision-confirmation-missing.jsonl +11 -0
  893. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-decision-policy-conflict.jsonl +12 -0
  894. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-decision-route-absence.jsonl +11 -0
  895. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-direct-flow-missing-disposition.jsonl +3 -0
  896. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-disposition-publication-proof.jsonl +2 -0
  897. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-double-rerun-one-call.jsonl +5 -0
  898. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-draft-created-at.jsonl +3 -0
  899. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-draft-not-published.jsonl +3 -0
  900. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-expected-but-not-triggered.jsonl +2 -0
  901. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-expected-premerge.jsonl +6 -0
  902. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-failed-artifact-record.jsonl +3 -0
  903. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-failed-expectation-missing.jsonl +1 -0
  904. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-failed-without-live-fact.jsonl +2 -0
  905. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-failure-report-incomplete.jsonl +3 -0
  906. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-false-but-failed.jsonl +2 -0
  907. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-global-flag-unsafe-rerun.jsonl +3 -0
  908. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-identity-leaks-across-epoch.jsonl +4 -0
  909. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-late-unrelated-idempotency.jsonl +5 -0
  910. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-merge-sha-mismatch.jsonl +13 -0
  911. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-merge-sha-missing.jsonl +12 -0
  912. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-metadata-incomplete.jsonl +3 -0
  913. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-missing-epoch-heartbeat-rebind.jsonl +5 -0
  914. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-mixed-run-failure.jsonl +3 -0
  915. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-multi-identity-incomplete.jsonl +3 -0
  916. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-multi-surface-incomplete.jsonl +3 -0
  917. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-mutation-before-disposition.jsonl +3 -0
  918. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-mutation-without-reresolution.jsonl +3 -0
  919. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-not-triggered-evidence-missing.jsonl +1 -0
  920. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-not-triggered-status-missing.jsonl +2 -0
  921. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-opaque-mismatched-rerun.jsonl +4 -0
  922. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-published-expectation-missing.jsonl +3 -0
  923. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-rerun-flags-before-id.jsonl +3 -0
  924. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-rerun-stale-failure.jsonl +6 -0
  925. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-rerun-without-failure.jsonl +5 -0
  926. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-route-direct-step5c.jsonl +2 -0
  927. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-route-epoch-reset.jsonl +4 -0
  928. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-route-invalid-policy-pr.jsonl +3 -0
  929. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-route-invalid-policy.jsonl +3 -0
  930. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-route-invalid-target.jsonl +3 -0
  931. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-route-null-after-adapter-pr-create.jsonl +5 -0
  932. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-route-null-after-api-pr-create.jsonl +5 -0
  933. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-route-null-after-epoch-reset.jsonl +6 -0
  934. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-route-null-case-mismatch.jsonl +3 -0
  935. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-route-null-target-mismatched-facts.jsonl +3 -0
  936. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-route-null-target-without-fact.jsonl +3 -0
  937. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-route-positive-target-no-open-facts.jsonl +3 -0
  938. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-route-target-mismatch.jsonl +3 -0
  939. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-route-unknown-mutates-pr.jsonl +3 -0
  940. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-route-unknown-step5c.jsonl +3 -0
  941. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-route-unmanaged-label.jsonl +3 -0
  942. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-running-closed-out.jsonl +2 -0
  943. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-same-epoch-expectation-flip.jsonl +4 -0
  944. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-same-epoch-heartbeat-identity-conflict.jsonl +3 -0
  945. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-same-epoch-identity-conflict.jsonl +4 -0
  946. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-sha-mismatch.jsonl +3 -0
  947. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-snapshot-closed-out-early.jsonl +3 -0
  948. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-snapshot-package-metadata.jsonl +3 -0
  949. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-split-artifacts-one-output.jsonl +3 -0
  950. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-split-atomic-identity.jsonl +4 -0
  951. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-split-content-conflict.jsonl +3 -0
  952. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-stale-epoch-publication.jsonl +3 -0
  953. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-stale-evidence.jsonl +3 -0
  954. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-status-entirely-omitted.jsonl +1 -0
  955. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-stringified-split-identity.jsonl +3 -0
  956. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-surfaces-discovered-in-parts.jsonl +4 -0
  957. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-tag-mismatch.jsonl +3 -0
  958. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-target-branch-missing.jsonl +3 -0
  959. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-target-sha-missing.jsonl +3 -0
  960. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-time-invalid.jsonl +3 -0
  961. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-time-mismatch.jsonl +3 -0
  962. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-timeout-recovery-missing.jsonl +2 -0
  963. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-timeout-running.jsonl +2 -0
  964. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-top-level-expectation-conflict.jsonl +2 -0
  965. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-unknown-overwrite.jsonl +4 -0
  966. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-unrelated-disabled-evidence.jsonl +3 -0
  967. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-unresolved-report-fields-missing.jsonl +2 -0
  968. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-unresolved-rerun-id.jsonl +5 -0
  969. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-unresolved-reruns-cleanup.jsonl +6 -0
  970. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-unsafe-reruns.jsonl +5 -0
  971. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-url-mismatch.jsonl +3 -0
  972. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-user-expectation-untrusted.jsonl +3 -0
  973. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-user-route-evidence.jsonl +4 -0
  974. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-version-mismatch.jsonl +3 -0
  975. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-release-workflow-url-mismatch.jsonl +3 -0
  976. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-remote-merge-alias-release-status-missing.jsonl +1 -0
  977. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-remote-merge-release-not-applicable.jsonl +1 -0
  978. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-result-merged-release-not-applicable.jsonl +2 -0
  979. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-safe-align-apply-only-on-failure-branch.jsonl +4 -0
  980. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-safe-align-compound-wrong-order.jsonl +4 -0
  981. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-safe-align-no-actions.jsonl +2 -0
  982. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-safe-align-stash-apply-conflict.jsonl +8 -0
  983. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-safe-align-stash-apply-or-true.jsonl +4 -0
  984. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-safe-align-stash-not-reapplied.jsonl +6 -0
  985. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-safe-align-stash-pop.jsonl +8 -0
  986. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-safe-align-stash-without-untracked.jsonl +8 -0
  987. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-safe-align-unrelated-earlier-backup.jsonl +10 -0
  988. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-serialized-release-handoff.jsonl +6 -0
  989. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-structured-remote-merge-release-not-applicable.jsonl +1 -0
  990. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-sub-agent-main-polls-ci.jsonl +8 -0
  991. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-sub-agent-mismatched-phase.jsonl +3 -0
  992. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-sub-agent-mismatched-sha.jsonl +3 -0
  993. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-sub-agent-mismatched-wait.jsonl +3 -0
  994. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-sub-agent-unbound-launch.jsonl +5 -0
  995. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-sub-agent-unrelated-sha.jsonl +4 -0
  996. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-sub-agent-unrelated-wait.jsonl +3 -0
  997. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-sub-agent-wait-timeout.jsonl +4 -0
  998. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-sub-agent-without-card.jsonl +3 -0
  999. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-sub-agent-without-disposition.jsonl +4 -0
  1000. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-sub-agent-without-launch.jsonl +1 -0
  1001. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-sub-agent-without-sha.jsonl +3 -0
  1002. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-sub-agent-without-terminal.jsonl +4 -0
  1003. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-sub-agent-without-wait.jsonl +2 -0
  1004. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-unguarded-direct-merge.jsonl +10 -0
  1005. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/negative-unrelated-remote-branch-absence-output.jsonl +6 -0
  1006. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-api-put-merge-no-cleanup.jsonl +8 -0
  1007. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-assistant-option-text-no-cleanup-intent.jsonl +4 -0
  1008. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-automation-after-followup-boundary.jsonl +3 -0
  1009. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-behind-auto-heal-merge-path.jsonl +3 -0
  1010. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-cleanup-proof-with-base-blocker.jsonl +9 -0
  1011. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-compound-delete-then-verify.jsonl +8 -0
  1012. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-delete-refspec.jsonl +6 -0
  1013. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-delete-with-redirection.jsonl +8 -0
  1014. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-diagnostic-then-merge-same-command.jsonl +10 -0
  1015. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-failed-remote-merge-release-not-applicable.jsonl +4 -0
  1016. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-fast-track-current-head-not-stale.jsonl +4 -0
  1017. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-fast-track-live-pr-closeout.jsonl +5 -0
  1018. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-flow-continue-post-merge-same-message.jsonl +3 -0
  1019. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-flow-continue-post-merge-structured.jsonl +4 -0
  1020. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-flow-continue-release-route-reresolved.jsonl +3 -0
  1021. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-flow-switch-local-proof.jsonl +4 -0
  1022. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-fork-remote-delete-exempt.jsonl +5 -0
  1023. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-gh-api-delete-after-endpoint.jsonl +6 -0
  1024. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-gh-merge-cleanup-handoff.jsonl +11 -0
  1025. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-git-delete-branch-with-error-word.jsonl +6 -0
  1026. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-git-push-origin-d-delete.jsonl +6 -0
  1027. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-guarded-direct-merge.jsonl +11 -0
  1028. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-head-branch-plus-char.jsonl +6 -0
  1029. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-head-branch-prose-punctuation.jsonl +8 -0
  1030. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-historical-automation-ignored.jsonl +6 -0
  1031. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-latest-merge-ready-overrides-cleanup.jsonl +5 -0
  1032. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-local-merge-commit-release-not-applicable.jsonl +1 -0
  1033. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-local-merge-release-not-applicable.jsonl +1 -0
  1034. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-merge-base-ahead-decision-menu.jsonl +9 -0
  1035. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-merge-base-decision-menu.jsonl +9 -0
  1036. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-merge-base-linked-worktree-blocker.jsonl +9 -0
  1037. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-merge-base-split-decision-menu.jsonl +10 -0
  1038. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-merge-cleanup-handoff.jsonl +11 -0
  1039. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-merge-cleanup-nonpositive-proof-keeps-cleanup.jsonl +6 -0
  1040. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-merge-cleanup-release-resumes-pr-merge.jsonl +6 -0
  1041. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-merge-cleanup-rerun-then-step6-resume.jsonl +10 -0
  1042. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-merge-cleanup-step6-resumes-pr-merge.jsonl +6 -0
  1043. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-merge-failed-no-cleanup-required.jsonl +4 -0
  1044. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-merge-only-merge-no-cleanup.jsonl +10 -0
  1045. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-merge-proof-writable-convergence.jsonl +5 -0
  1046. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-merge-ready-stop.jsonl +4 -0
  1047. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-merge-with-gh-repo-flag.jsonl +8 -0
  1048. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-multiline-delete-script.jsonl +6 -0
  1049. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-negated-automation-mention.jsonl +1 -0
  1050. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-nonflow-metadata-local-proof.jsonl +3 -0
  1051. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-parallel-release-handoff.jsonl +6 -0
  1052. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-path-qualified-gh-merge-no-cleanup.jsonl +10 -0
  1053. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-plain-merge-no-cleanup.jsonl +10 -0
  1054. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-post-merge-repo-watcher.jsonl +1 -0
  1055. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-pr-head-ci-card.jsonl +5 -0
  1056. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-pr-head-defer.jsonl +1 -0
  1057. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-ptc-structured-tracker-card.jsonl +1 -0
  1058. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-ptc-tracker-card.jsonl +1 -0
  1059. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-ready-merge-pr-stop.jsonl +4 -0
  1060. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-api-readonly-label.jsonl +3 -0
  1061. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-container-alias-tag.jsonl +3 -0
  1062. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-container-only-published.jsonl +3 -0
  1063. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-decision-card-confirmed.jsonl +12 -0
  1064. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-decision-card-published.jsonl +13 -0
  1065. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-decision-card-single-message.jsonl +12 -0
  1066. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-declared-image-name.jsonl +3 -0
  1067. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-disposition-separation.jsonl +2 -0
  1068. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-equivalent-sha-blocks.jsonl +3 -0
  1069. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-failed-no-rerun.jsonl +3 -0
  1070. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-false-same-epoch-heartbeat.jsonl +3 -0
  1071. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-github-enterprise.jsonl +3 -0
  1072. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-idempotent-rerun-published.jsonl +7 -0
  1073. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-ignores-other-epoch-surfaces.jsonl +4 -0
  1074. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-ignores-pr-ci-rerun.jsonl +5 -0
  1075. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-ignores-pr-head-ci-rerun.jsonl +5 -0
  1076. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-late-run-id.jsonl +4 -0
  1077. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-no-managed-route.jsonl +3 -0
  1078. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-non-ghcr-package.jsonl +3 -0
  1079. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-not-triggered.jsonl +3 -0
  1080. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-published-with-metadata.jsonl +3 -0
  1081. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-readonly-pr-facts.jsonl +3 -0
  1082. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-repeated-same-epoch.jsonl +4 -0
  1083. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-route-managed-label.jsonl +3 -0
  1084. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-split-content-discovery.jsonl +3 -0
  1085. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-string-discovery.jsonl +3 -0
  1086. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-string-output-published.jsonl +3 -0
  1087. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-structured-content-discovery.jsonl +3 -0
  1088. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-structured-disabled.jsonl +2 -0
  1089. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-structured-identity.jsonl +3 -0
  1090. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-success-false-rerun-published.jsonl +7 -0
  1091. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-text-wrapper-discovery.jsonl +3 -0
  1092. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-timeout-incomplete.jsonl +2 -0
  1093. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-tracker-unavailable.jsonl +2 -0
  1094. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-unknown-reresolved.jsonl +5 -0
  1095. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-unknown-unresolved.jsonl +2 -0
  1096. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-unresolved-resumes-pr-merge.jsonl +6 -0
  1097. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-v-prefixed-tag.jsonl +3 -0
  1098. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-workflow-url-before-run-id.jsonl +4 -0
  1099. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-release-workflow-url-failure-no-run-id.jsonl +3 -0
  1100. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-remote-branch-not-found-verification.jsonl +6 -0
  1101. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-safe-align-backup-at-head.jsonl +8 -0
  1102. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-safe-align-backup-name-without-backup-word.jsonl +8 -0
  1103. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-safe-align-clean-no-stash-created.jsonl +6 -0
  1104. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-safe-align-completion-ahead.jsonl +8 -0
  1105. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-safe-align-force-backup-branch.jsonl +8 -0
  1106. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-safe-align-later-backup-command.jsonl +8 -0
  1107. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-safe-align-restores-dirty-untracked.jsonl +8 -0
  1108. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-safe-align-stash-apply-exit-guard.jsonl +4 -0
  1109. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-safe-align-stash-apply-fallback-after-index-error.jsonl +4 -0
  1110. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-safe-align-stash-apply-fallback.jsonl +4 -0
  1111. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-shell-command-array-merge-no-cleanup.jsonl +10 -0
  1112. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-shell-script-merge-no-cleanup.jsonl +8 -0
  1113. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-shell-wrapped-compound-delete.jsonl +6 -0
  1114. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-shell-wrapped-merge-no-cleanup.jsonl +8 -0
  1115. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-sub-agent-ci-wait.jsonl +5 -0
  1116. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-unrelated-automation-update.jsonl +1 -0
  1117. package/toolkit/skills/docs/vendor/dot-codex/specs/fast-track-merge-intent-closeout/replay/positive-unrelated-sidecar-phase-text.jsonl +1 -0
  1118. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/HISTORY.md +26 -0
  1119. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/IMPLEMENTATION.md +77 -0
  1120. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/SPEC.md +183 -0
  1121. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/cases.txt +47 -0
  1122. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-assistant-narration-clears-ui-confirmation.jsonl +4 -0
  1123. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-chinese-initiative-alias-drift.jsonl +3 -0
  1124. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-contradictory-permit-base-advance-routed.jsonl +4 -0
  1125. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-draft-bootstrap-permit-base-advance-routed.jsonl +5 -0
  1126. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-duplicate-load-skill-argument-routed.jsonl +5 -0
  1127. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-extra-load-skill-argument-routed.jsonl +5 -0
  1128. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-flow-switch-after-repair-continue-routed.jsonl +5 -0
  1129. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-incomplete-permit-base-advance-routed.jsonl +5 -0
  1130. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-initiative-flow-chinese-alias-drift.jsonl +3 -0
  1131. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-invalidated-permit-base-advance-routed.jsonl +6 -0
  1132. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-issued-permit-base-fast-forward-not-resumed.jsonl +5 -0
  1133. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-latest-untrusted-permit-base-advance-routed.jsonl +6 -0
  1134. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-locked-fast-track-drift-to-local-merge.jsonl +5 -0
  1135. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-merge-path-review-feedback-needs-auth.jsonl +6 -0
  1136. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-mixed-visual-status-cannot-clear-confirmation.jsonl +3 -0
  1137. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-negated-permit-base-advance-routed.jsonl +5 -0
  1138. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-noncanonical-base-relation-routed.jsonl +5 -0
  1139. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-noncanonical-live-pr-match-routed.jsonl +4 -0
  1140. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-noncanonical-python-repair-wave-routed.jsonl +5 -0
  1141. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-partial-refresh-permit-base-advance-routed.jsonl +5 -0
  1142. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-pending-ui-confirmation-routed-to-pr-create.jsonl +4 -0
  1143. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-pr-create-with-convergence-reopen.jsonl +4 -0
  1144. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-rejected-route-retry-routed.jsonl +7 -0
  1145. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-repair-wave-bare-head-routed.jsonl +5 -0
  1146. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-repair-wave-empty-values-routed.jsonl +4 -0
  1147. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-repair-wave-sentinel-routed.jsonl +5 -0
  1148. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-repair-wave-unknown-option-routed.jsonl +5 -0
  1149. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-same-event-visual-request-and-pr-route.jsonl +1 -0
  1150. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-shell-repair-wave-routed.jsonl +5 -0
  1151. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-textual-pr-create-not-routed.jsonl +5 -0
  1152. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-top-level-convergence-reopen-routed.jsonl +5 -0
  1153. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/negative-untrusted-permit-base-advance-routed.jsonl +3 -0
  1154. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/positive-canonical-pr-merge-procedure.jsonl +5 -0
  1155. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/positive-canonical-pr-publication-procedure.jsonl +4 -0
  1156. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/positive-confirmed-ui-routes-to-pr-create.jsonl +4 -0
  1157. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/positive-explicit-local-merge-switch.jsonl +5 -0
  1158. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/positive-generic-continue-stays-initiative.jsonl +4 -0
  1159. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/positive-generic-merge-stays-fast-track.jsonl +4 -0
  1160. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/positive-invalidated-permit-base-advance-stays-blocked.jsonl +6 -0
  1161. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/positive-issued-permit-base-fast-forward-opens-repair-wave.jsonl +5 -0
  1162. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/positive-issued-permit-base-fast-forward-resumes.jsonl +5 -0
  1163. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/positive-issued-permit-repair-wave-without-head.jsonl +5 -0
  1164. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/positive-merge-path-review-feedback-routes-pr-create.jsonl +6 -0
  1165. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/positive-negated-merge-does-not-resume-repair.jsonl +4 -0
  1166. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/positive-ordinary-pr-create-without-recovery-facts.jsonl +4 -0
  1167. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/positive-unchanged-ui-routes-to-pr-create.jsonl +3 -0
  1168. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/python-oracle.json +304 -0
  1169. package/toolkit/skills/docs/vendor/dot-codex/specs/flow-continue-lock-guard/replay/session-019ce28f-bc31-7d02-990f-c9f02c1bf028.jsonl +5 -0
  1170. package/toolkit/skills/docs/vendor/dot-codex/specs/fresh-thread-dispatch/HISTORY.md +20 -0
  1171. package/toolkit/skills/docs/vendor/dot-codex/specs/fresh-thread-dispatch/IMPLEMENTATION.md +28 -0
  1172. package/toolkit/skills/docs/vendor/dot-codex/specs/fresh-thread-dispatch/SPEC.md +87 -0
  1173. package/toolkit/skills/docs/vendor/dot-codex/specs/git-skill-convergence/HISTORY.md +28 -0
  1174. package/toolkit/skills/docs/vendor/dot-codex/specs/git-skill-convergence/IMPLEMENTATION.md +50 -0
  1175. package/toolkit/skills/docs/vendor/dot-codex/specs/git-skill-convergence/SPEC.md +174 -0
  1176. package/toolkit/skills/docs/vendor/dot-codex/specs/global-port-preview-governance/HISTORY.md +31 -0
  1177. package/toolkit/skills/docs/vendor/dot-codex/specs/global-port-preview-governance/IMPLEMENTATION.md +73 -0
  1178. package/toolkit/skills/docs/vendor/dot-codex/specs/global-port-preview-governance/SPEC.md +219 -0
  1179. package/toolkit/skills/docs/vendor/dot-codex/specs/global-solutions-docs-migrate/HISTORY.md +25 -0
  1180. package/toolkit/skills/docs/vendor/dot-codex/specs/global-solutions-docs-migrate/IMPLEMENTATION.md +67 -0
  1181. package/toolkit/skills/docs/vendor/dot-codex/specs/global-solutions-docs-migrate/SPEC.md +168 -0
  1182. package/toolkit/skills/docs/vendor/dot-codex/specs/gn7xq-gui-escalation-gate/HISTORY.md +12 -0
  1183. package/toolkit/skills/docs/vendor/dot-codex/specs/gn7xq-gui-escalation-gate/IMPLEMENTATION.md +20 -0
  1184. package/toolkit/skills/docs/vendor/dot-codex/specs/gn7xq-gui-escalation-gate/SPEC.md +99 -0
  1185. package/toolkit/skills/docs/vendor/dot-codex/specs/gn7xq-gui-escalation-gate/replay/cases.txt +3 -0
  1186. package/toolkit/skills/docs/vendor/dot-codex/specs/gn7xq-gui-escalation-gate/replay/negative-chrome-fallback-after-ego-browser-failed.jsonl +2 -0
  1187. package/toolkit/skills/docs/vendor/dot-codex/specs/gn7xq-gui-escalation-gate/replay/negative-chrome-fallback-after-ego-browser-unavailable.jsonl +2 -0
  1188. package/toolkit/skills/docs/vendor/dot-codex/specs/gn7xq-gui-escalation-gate/replay/positive-ego-browser-first.jsonl +2 -0
  1189. package/toolkit/skills/docs/vendor/dot-codex/specs/gui-escalation-gate/HISTORY.md +12 -0
  1190. package/toolkit/skills/docs/vendor/dot-codex/specs/gui-escalation-gate/IMPLEMENTATION.md +20 -0
  1191. package/toolkit/skills/docs/vendor/dot-codex/specs/gui-escalation-gate/SPEC.md +99 -0
  1192. package/toolkit/skills/docs/vendor/dot-codex/specs/gui-escalation-gate/replay/cases.txt +3 -0
  1193. package/toolkit/skills/docs/vendor/dot-codex/specs/gui-escalation-gate/replay/negative-chrome-fallback-after-ego-browser-failed.jsonl +2 -0
  1194. package/toolkit/skills/docs/vendor/dot-codex/specs/gui-escalation-gate/replay/negative-chrome-fallback-after-ego-browser-unavailable.jsonl +2 -0
  1195. package/toolkit/skills/docs/vendor/dot-codex/specs/gui-escalation-gate/replay/positive-ego-browser-first.jsonl +2 -0
  1196. package/toolkit/skills/docs/vendor/dot-codex/specs/hd86w-pr-wait-state-closeout/HISTORY.md +18 -0
  1197. package/toolkit/skills/docs/vendor/dot-codex/specs/hd86w-pr-wait-state-closeout/IMPLEMENTATION.md +58 -0
  1198. package/toolkit/skills/docs/vendor/dot-codex/specs/hd86w-pr-wait-state-closeout/SPEC.md +110 -0
  1199. package/toolkit/skills/docs/vendor/dot-codex/specs/initiative-flow/HISTORY.md +11 -0
  1200. package/toolkit/skills/docs/vendor/dot-codex/specs/initiative-flow/IMPLEMENTATION.md +16 -0
  1201. package/toolkit/skills/docs/vendor/dot-codex/specs/initiative-flow/SPEC.md +72 -0
  1202. package/toolkit/skills/docs/vendor/dot-codex/specs/j4ha2-pr-conflict-auto-heal/HISTORY.md +18 -0
  1203. package/toolkit/skills/docs/vendor/dot-codex/specs/j4ha2-pr-conflict-auto-heal/IMPLEMENTATION.md +60 -0
  1204. package/toolkit/skills/docs/vendor/dot-codex/specs/j4ha2-pr-conflict-auto-heal/SPEC.md +123 -0
  1205. package/toolkit/skills/docs/vendor/dot-codex/specs/j4ha2-pr-conflict-auto-heal/replay/cases.txt +6 -0
  1206. package/toolkit/skills/docs/vendor/dot-codex/specs/j4ha2-pr-conflict-auto-heal/replay/negative-conflict-escalated-to-owner.jsonl +2 -0
  1207. package/toolkit/skills/docs/vendor/dot-codex/specs/j4ha2-pr-conflict-auto-heal/replay/negative-conflict-hidden-as-ci-absence.jsonl +2 -0
  1208. package/toolkit/skills/docs/vendor/dot-codex/specs/j4ha2-pr-conflict-auto-heal/replay/positive-conflict-auto-heal-routed.jsonl +2 -0
  1209. package/toolkit/skills/docs/vendor/dot-codex/specs/j4ha2-pr-conflict-auto-heal/replay/positive-manual-only-no-checks.jsonl +1 -0
  1210. package/toolkit/skills/docs/vendor/dot-codex/specs/j4ha2-pr-conflict-auto-heal/replay/positive-merge-only-conflict-auto-heal.jsonl +3 -0
  1211. package/toolkit/skills/docs/vendor/dot-codex/specs/j4ha2-pr-conflict-auto-heal/replay/positive-pull-request-target-conflict-runs.jsonl +2 -0
  1212. package/toolkit/skills/docs/vendor/dot-codex/specs/k4n8p-dev-plan-flow-lock-options/HISTORY.md +22 -0
  1213. package/toolkit/skills/docs/vendor/dot-codex/specs/k4n8p-dev-plan-flow-lock-options/IMPLEMENTATION.md +58 -0
  1214. package/toolkit/skills/docs/vendor/dot-codex/specs/k4n8p-dev-plan-flow-lock-options/SPEC.md +70 -0
  1215. package/toolkit/skills/docs/vendor/dot-codex/specs/local-chat-image-snapshots/HISTORY.md +20 -0
  1216. package/toolkit/skills/docs/vendor/dot-codex/specs/local-chat-image-snapshots/IMPLEMENTATION.md +71 -0
  1217. package/toolkit/skills/docs/vendor/dot-codex/specs/local-chat-image-snapshots/SPEC.md +196 -0
  1218. package/toolkit/skills/docs/vendor/dot-codex/specs/local-chat-image-snapshots/replay/cases.json +74 -0
  1219. package/toolkit/skills/docs/vendor/dot-codex/specs/local-merge-cleanup-closeout/HISTORY.md +18 -0
  1220. package/toolkit/skills/docs/vendor/dot-codex/specs/local-merge-cleanup-closeout/IMPLEMENTATION.md +55 -0
  1221. package/toolkit/skills/docs/vendor/dot-codex/specs/local-merge-cleanup-closeout/SPEC.md +137 -0
  1222. package/toolkit/skills/docs/vendor/dot-codex/specs/m3k8q-review-proof-dedupe-wait-guard/HISTORY.md +19 -0
  1223. package/toolkit/skills/docs/vendor/dot-codex/specs/m3k8q-review-proof-dedupe-wait-guard/IMPLEMENTATION.md +65 -0
  1224. package/toolkit/skills/docs/vendor/dot-codex/specs/m3k8q-review-proof-dedupe-wait-guard/SPEC.md +137 -0
  1225. package/toolkit/skills/docs/vendor/dot-codex/specs/m3k8q-review-proof-dedupe-wait-guard/replay/cases.txt +5 -0
  1226. package/toolkit/skills/docs/vendor/dot-codex/specs/m3k8q-review-proof-dedupe-wait-guard/replay/negative-live-proof-duplicate-launch.jsonl +4 -0
  1227. package/toolkit/skills/docs/vendor/dot-codex/specs/m3k8q-review-proof-dedupe-wait-guard/replay/positive-single-proof-polling.jsonl +6 -0
  1228. package/toolkit/skills/docs/vendor/dot-codex/specs/mainline-baseline-topic-branch-freshness/HISTORY.md +15 -0
  1229. package/toolkit/skills/docs/vendor/dot-codex/specs/mainline-baseline-topic-branch-freshness/IMPLEMENTATION.md +68 -0
  1230. package/toolkit/skills/docs/vendor/dot-codex/specs/mainline-baseline-topic-branch-freshness/SPEC.md +166 -0
  1231. package/toolkit/skills/docs/vendor/dot-codex/specs/mandatory-local-review-proof/HISTORY.md +17 -0
  1232. package/toolkit/skills/docs/vendor/dot-codex/specs/mandatory-local-review-proof/IMPLEMENTATION.md +31 -0
  1233. package/toolkit/skills/docs/vendor/dot-codex/specs/mandatory-local-review-proof/SPEC.md +111 -0
  1234. package/toolkit/skills/docs/vendor/dot-codex/specs/mcu-agentd-retirement/HISTORY.md +31 -0
  1235. package/toolkit/skills/docs/vendor/dot-codex/specs/mcu-agentd-retirement/IMPLEMENTATION.md +61 -0
  1236. package/toolkit/skills/docs/vendor/dot-codex/specs/mcu-agentd-retirement/SPEC.md +70 -0
  1237. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/HISTORY.md +72 -0
  1238. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/IMPLEMENTATION.md +144 -0
  1239. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/SCHEMA-CONSTRAINTS.md +87 -0
  1240. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/SCHEMA.md +249 -0
  1241. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/SPEC.md +363 -0
  1242. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/archive-compact.png +0 -0
  1243. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/bootstrap-ownership.png +0 -0
  1244. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/card-hover-board-group-time-desktop.png +0 -0
  1245. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/card-hover-board-group-time-mobile.png +0 -0
  1246. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/card-hover-board-time-mobile.png +0 -0
  1247. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/card-hover-conversation-desktop.png +0 -0
  1248. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/card-hover-pr-desktop.png +0 -0
  1249. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/card-hover-time-desktop.png +0 -0
  1250. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/dashboard-desktop.png +0 -0
  1251. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/dashboard-mobile.png +0 -0
  1252. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/dependency-status-time.png +0 -0
  1253. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/detail-viewport-desktop.png +0 -0
  1254. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/detail-viewport-medium.png +0 -0
  1255. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/detail-viewport-mobile.png +0 -0
  1256. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/execution-profile-default.png +0 -0
  1257. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/execution-profile-desktop.png +0 -0
  1258. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/execution-profile-menu.png +0 -0
  1259. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/execution-profile-mobile.png +0 -0
  1260. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/latest-output-desktop.png +0 -0
  1261. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/latest-output-hover.png +0 -0
  1262. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/output-tooltip-boundary.png +0 -0
  1263. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/plan-warning-desktop.png +0 -0
  1264. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/plan-warning-mobile.png +0 -0
  1265. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/responsive-inspector.png +0 -0
  1266. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/shared-run-mobile.png +0 -0
  1267. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/shared-runs.png +0 -0
  1268. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/assets/source-preview.png +0 -0
  1269. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/native-handoff-compatibility.json +43 -0
  1270. package/toolkit/skills/docs/vendor/dot-codex/specs/p6m2r-pr-live-github-truth-source/HISTORY.md +20 -0
  1271. package/toolkit/skills/docs/vendor/dot-codex/specs/p6m2r-pr-live-github-truth-source/IMPLEMENTATION.md +62 -0
  1272. package/toolkit/skills/docs/vendor/dot-codex/specs/p6m2r-pr-live-github-truth-source/SPEC.md +122 -0
  1273. package/toolkit/skills/docs/vendor/dot-codex/specs/parallel-pr-flow/HISTORY.md +5 -0
  1274. package/toolkit/skills/docs/vendor/dot-codex/specs/parallel-pr-flow/IMPLEMENTATION.md +16 -0
  1275. package/toolkit/skills/docs/vendor/dot-codex/specs/parallel-pr-flow/SPEC.md +41 -0
  1276. package/toolkit/skills/docs/vendor/dot-codex/specs/pj4fz-pr-post-open-scope-freeze/HISTORY.md +23 -0
  1277. package/toolkit/skills/docs/vendor/dot-codex/specs/pj4fz-pr-post-open-scope-freeze/IMPLEMENTATION.md +58 -0
  1278. package/toolkit/skills/docs/vendor/dot-codex/specs/pj4fz-pr-post-open-scope-freeze/SPEC.md +103 -0
  1279. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-conflict-auto-heal/HISTORY.md +22 -0
  1280. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-conflict-auto-heal/IMPLEMENTATION.md +61 -0
  1281. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-conflict-auto-heal/SPEC.md +154 -0
  1282. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-conflict-auto-heal/replay/cases.txt +6 -0
  1283. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-conflict-auto-heal/replay/negative-conflict-escalated-to-owner.jsonl +2 -0
  1284. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-conflict-auto-heal/replay/negative-conflict-hidden-as-ci-absence.jsonl +2 -0
  1285. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-conflict-auto-heal/replay/positive-conflict-auto-heal-routed.jsonl +2 -0
  1286. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-conflict-auto-heal/replay/positive-manual-only-no-checks.jsonl +1 -0
  1287. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-conflict-auto-heal/replay/positive-merge-only-conflict-auto-heal.jsonl +3 -0
  1288. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-conflict-auto-heal/replay/positive-pull-request-target-conflict-runs.jsonl +2 -0
  1289. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-convergence-batching/HISTORY.md +61 -0
  1290. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-convergence-batching/IMPLEMENTATION.md +106 -0
  1291. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-convergence-batching/SPEC.md +244 -0
  1292. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-convergence-batching/replay/first-round-parallel-barrier.json +320 -0
  1293. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-freshness-gate/HISTORY.md +22 -0
  1294. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-freshness-gate/IMPLEMENTATION.md +58 -0
  1295. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-freshness-gate/SPEC.md +45 -0
  1296. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-live-github-truth-source/HISTORY.md +24 -0
  1297. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-live-github-truth-source/IMPLEMENTATION.md +64 -0
  1298. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-live-github-truth-source/SPEC.md +168 -0
  1299. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-post-open-scope-freeze/HISTORY.md +25 -0
  1300. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-post-open-scope-freeze/IMPLEMENTATION.md +59 -0
  1301. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-post-open-scope-freeze/SPEC.md +105 -0
  1302. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-skill-diagnosis-thinning/HISTORY.md +20 -0
  1303. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-skill-diagnosis-thinning/IMPLEMENTATION.md +62 -0
  1304. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-skill-diagnosis-thinning/SPEC.md +150 -0
  1305. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-skill-diagnosis-thinning/replay/cases.txt +12 -0
  1306. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-skill-diagnosis-thinning/replay/negative-dirty-misread-as-approval.jsonl +2 -0
  1307. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-skill-diagnosis-thinning/replay/negative-draft-bootstrap-and-convergence-same-event.jsonl +1 -0
  1308. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-skill-diagnosis-thinning/replay/negative-draft-convergence-before-owner-confirmation.jsonl +2 -0
  1309. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-skill-diagnosis-thinning/replay/negative-draft-direct-gh-convergence-before-owner-confirmation.jsonl +2 -0
  1310. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-skill-diagnosis-thinning/replay/negative-draft-mixed-visual-status-cannot-clear-confirmation.jsonl +4 -0
  1311. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-skill-diagnosis-thinning/replay/negative-draft-render-surface-change-after-confirmation.jsonl +5 -0
  1312. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-skill-diagnosis-thinning/replay/negative-promised-merge-branch-skipped.jsonl +4 -0
  1313. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-skill-diagnosis-thinning/replay/negative-session-approval-evidence-ignored.jsonl +2 -0
  1314. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-skill-diagnosis-thinning/replay/positive-blocked-with-approval-evidence.jsonl +3 -0
  1315. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-skill-diagnosis-thinning/replay/positive-dirty-conflict-reported.jsonl +2 -0
  1316. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-skill-diagnosis-thinning/replay/positive-draft-confirmation-before-convergence.jsonl +4 -0
  1317. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-skill-diagnosis-thinning/replay/positive-draft-unchanged-feedback-before-convergence.jsonl +3 -0
  1318. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-wait-state-closeout/HISTORY.md +18 -0
  1319. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-wait-state-closeout/IMPLEMENTATION.md +57 -0
  1320. package/toolkit/skills/docs/vendor/dot-codex/specs/pr-wait-state-closeout/SPEC.md +110 -0
  1321. package/toolkit/skills/docs/vendor/dot-codex/specs/q3wyh-cvm-imagegen-skill/HISTORY.md +20 -0
  1322. package/toolkit/skills/docs/vendor/dot-codex/specs/q3wyh-cvm-imagegen-skill/IMPLEMENTATION.md +33 -0
  1323. package/toolkit/skills/docs/vendor/dot-codex/specs/q3wyh-cvm-imagegen-skill/SPEC.md +151 -0
  1324. package/toolkit/skills/docs/vendor/dot-codex/specs/q9r2m-review-proof-ownership/HISTORY.md +19 -0
  1325. package/toolkit/skills/docs/vendor/dot-codex/specs/q9r2m-review-proof-ownership/IMPLEMENTATION.md +57 -0
  1326. package/toolkit/skills/docs/vendor/dot-codex/specs/q9r2m-review-proof-ownership/SPEC.md +136 -0
  1327. package/toolkit/skills/docs/vendor/dot-codex/specs/qyd57-agent-memory-project-docs/HISTORY.md +20 -0
  1328. package/toolkit/skills/docs/vendor/dot-codex/specs/qyd57-agent-memory-project-docs/IMPLEMENTATION.md +66 -0
  1329. package/toolkit/skills/docs/vendor/dot-codex/specs/qyd57-agent-memory-project-docs/SPEC.md +133 -0
  1330. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/HISTORY.md +95 -0
  1331. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/IMPLEMENTATION.md +176 -0
  1332. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/SPEC.md +370 -0
  1333. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/cases.txt +199 -0
  1334. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/flow-continue-cases.txt +37 -0
  1335. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-active-gate-closed-out-early.jsonl +2 -0
  1336. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-active-proof-merged-closeout.jsonl +6 -0
  1337. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-api-readonly-merge-probe-no-merge.jsonl +5 -0
  1338. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-assistant-merge-cleanup-dropped-to-ready.jsonl +3 -0
  1339. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-assistant-merge-only-dropped-to-ready.jsonl +3 -0
  1340. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-bare-remote-branch-blocked-exemption.jsonl +4 -0
  1341. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-behind-auth-regression.jsonl +3 -0
  1342. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-cleanup-anchor-with-no-proof-status.jsonl +3 -0
  1343. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-cleanup-diagnostic-output-no-proof.jsonl +6 -0
  1344. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-cleanup-negated-proof.jsonl +5 -0
  1345. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-cleanup-negated-wont-call.jsonl +5 -0
  1346. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-cleanup-promise-no-proof.jsonl +4 -0
  1347. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-cleanup-promised-skill-call.jsonl +5 -0
  1348. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-cleanup-proof-future-placeholder.jsonl +4 -0
  1349. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-cleanup-proof-pending.jsonl +4 -0
  1350. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-cleanup-proof-unchecked.jsonl +3 -0
  1351. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-cleanup-summary-no-proof.jsonl +5 -0
  1352. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-delete-branch-without-head-evidence.jsonl +4 -0
  1353. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-delete-in-or-fallback-after-merge-success.jsonl +5 -0
  1354. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-delete-wrong-remote-branch.jsonl +5 -0
  1355. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-earlier-merge-does-not-satisfy-later-intent.jsonl +4 -0
  1356. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-english-merged-closeout-no-cleanup.jsonl +3 -0
  1357. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-gh-api-delete-http-error.jsonl +4 -0
  1358. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-gh-delete-branch-flag-failed.jsonl +5 -0
  1359. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-legacy-scheduled-tracker-tool-first.jsonl +2 -0
  1360. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-legacy-scheduled-tracker.jsonl +2 -0
  1361. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-merge-base-ahead-auto-updated.jsonl +8 -0
  1362. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-merge-base-blocker-no-menu.jsonl +8 -0
  1363. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-merge-base-primary-worktree-dirty-blocker-no-menu.jsonl +8 -0
  1364. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-merge-cleanup-late-rerun-after-positive-proof.jsonl +10 -0
  1365. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-merge-cleanup-late-skip-after-nonpositive-proof.jsonl +10 -0
  1366. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-merge-cleanup-nonpositive-proof-skips-cleanup.jsonl +6 -0
  1367. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-merge-cleanup-step6-reruns-cleanup.jsonl +6 -0
  1368. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-merge-diagnostic-command-no-merge.jsonl +5 -0
  1369. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-merge-help-command-no-merge.jsonl +5 -0
  1370. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-merge-no-remote-branch-delete.jsonl +4 -0
  1371. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-merge-only-dropped-to-ready.jsonl +3 -0
  1372. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-merge-proof-auth-regression.jsonl +4 -0
  1373. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-negated-fork-remote-branch-exists.jsonl +4 -0
  1374. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-no-open-pr-still-step5c.jsonl +3 -0
  1375. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-no-open-pr-terminal-last-agent-message.jsonl +2 -0
  1376. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-plain-merge-dropped-to-ready.jsonl +3 -0
  1377. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-post-merge-uses-pr-card.jsonl +4 -0
  1378. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-pr-head-nonterminal-result.jsonl +5 -0
  1379. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-ready-cleanup-combined-intent.jsonl +3 -0
  1380. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-ready-wording-with-cleanup-anchor.jsonl +3 -0
  1381. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-actual-sha-mismatch.jsonl +3 -0
  1382. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-actual-sha-missing.jsonl +3 -0
  1383. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-actual-tag-mismatch.jsonl +3 -0
  1384. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-assistant-idempotency-untrusted.jsonl +4 -0
  1385. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-assistant-identity-override.jsonl +4 -0
  1386. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-bare-false-evidence.jsonl +2 -0
  1387. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-blind-rerun-before-discovery.jsonl +4 -0
  1388. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-compound-unsafe-rerun.jsonl +3 -0
  1389. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-conflicting-artifact-sha.jsonl +3 -0
  1390. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-container-tag-mismatch.jsonl +3 -0
  1391. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-context-not-applicable.jsonl +2 -0
  1392. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-cross-output-identity.jsonl +4 -0
  1393. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-cross-repo-rerun.jsonl +5 -0
  1394. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-cross-repo-target-ci-rerun.jsonl +4 -0
  1395. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-double-rerun-one-call.jsonl +5 -0
  1396. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-draft-created-at.jsonl +3 -0
  1397. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-draft-not-published.jsonl +3 -0
  1398. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-expected-but-not-triggered.jsonl +2 -0
  1399. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-failed-artifact-record.jsonl +3 -0
  1400. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-failed-expectation-missing.jsonl +1 -0
  1401. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-failed-without-live-fact.jsonl +2 -0
  1402. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-failure-report-incomplete.jsonl +3 -0
  1403. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-false-but-failed.jsonl +2 -0
  1404. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-global-flag-unsafe-rerun.jsonl +3 -0
  1405. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-identity-leaks-across-epoch.jsonl +4 -0
  1406. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-late-unrelated-idempotency.jsonl +5 -0
  1407. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-metadata-incomplete.jsonl +3 -0
  1408. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-missing-epoch-heartbeat-rebind.jsonl +5 -0
  1409. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-mixed-run-failure.jsonl +3 -0
  1410. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-multi-identity-incomplete.jsonl +3 -0
  1411. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-multi-surface-incomplete.jsonl +3 -0
  1412. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-not-triggered-evidence-missing.jsonl +1 -0
  1413. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-not-triggered-status-missing.jsonl +2 -0
  1414. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-opaque-mismatched-rerun.jsonl +4 -0
  1415. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-published-expectation-missing.jsonl +3 -0
  1416. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-rerun-flags-before-id.jsonl +3 -0
  1417. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-rerun-stale-failure.jsonl +5 -0
  1418. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-rerun-without-failure.jsonl +5 -0
  1419. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-running-closed-out.jsonl +2 -0
  1420. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-same-epoch-expectation-flip.jsonl +4 -0
  1421. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-same-epoch-heartbeat-identity-conflict.jsonl +3 -0
  1422. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-same-epoch-identity-conflict.jsonl +4 -0
  1423. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-sha-mismatch.jsonl +3 -0
  1424. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-snapshot-closed-out-early.jsonl +3 -0
  1425. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-snapshot-package-metadata.jsonl +3 -0
  1426. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-split-artifacts-one-output.jsonl +3 -0
  1427. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-split-atomic-identity.jsonl +4 -0
  1428. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-split-content-conflict.jsonl +3 -0
  1429. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-stale-epoch-publication.jsonl +3 -0
  1430. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-stale-evidence.jsonl +3 -0
  1431. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-status-entirely-omitted.jsonl +1 -0
  1432. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-stringified-split-identity.jsonl +3 -0
  1433. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-surfaces-discovered-in-parts.jsonl +4 -0
  1434. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-tag-mismatch.jsonl +3 -0
  1435. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-target-branch-missing.jsonl +3 -0
  1436. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-target-sha-missing.jsonl +3 -0
  1437. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-time-invalid.jsonl +3 -0
  1438. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-time-mismatch.jsonl +3 -0
  1439. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-timeout-recovery-missing.jsonl +2 -0
  1440. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-timeout-running.jsonl +2 -0
  1441. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-top-level-expectation-conflict.jsonl +2 -0
  1442. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-unrelated-disabled-evidence.jsonl +3 -0
  1443. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-unresolved-report-fields-missing.jsonl +2 -0
  1444. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-unresolved-rerun-id.jsonl +5 -0
  1445. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-unresolved-reruns-cleanup.jsonl +6 -0
  1446. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-unsafe-reruns.jsonl +5 -0
  1447. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-url-mismatch.jsonl +3 -0
  1448. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-user-expectation-untrusted.jsonl +3 -0
  1449. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-version-mismatch.jsonl +3 -0
  1450. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-release-workflow-url-mismatch.jsonl +3 -0
  1451. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-remote-merge-alias-release-status-missing.jsonl +1 -0
  1452. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-remote-merge-release-not-applicable.jsonl +1 -0
  1453. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-result-merged-release-not-applicable.jsonl +2 -0
  1454. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-safe-align-apply-only-on-failure-branch.jsonl +4 -0
  1455. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-safe-align-compound-wrong-order.jsonl +4 -0
  1456. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-safe-align-no-actions.jsonl +2 -0
  1457. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-safe-align-stash-apply-conflict.jsonl +8 -0
  1458. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-safe-align-stash-apply-or-true.jsonl +4 -0
  1459. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-safe-align-stash-not-reapplied.jsonl +6 -0
  1460. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-safe-align-stash-pop.jsonl +8 -0
  1461. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-safe-align-stash-without-untracked.jsonl +8 -0
  1462. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-safe-align-unrelated-earlier-backup.jsonl +10 -0
  1463. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-structured-remote-merge-release-not-applicable.jsonl +1 -0
  1464. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-sub-agent-main-polls-ci.jsonl +8 -0
  1465. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-sub-agent-mismatched-phase.jsonl +3 -0
  1466. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-sub-agent-mismatched-sha.jsonl +3 -0
  1467. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-sub-agent-mismatched-wait.jsonl +3 -0
  1468. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-sub-agent-unbound-launch.jsonl +5 -0
  1469. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-sub-agent-unrelated-sha.jsonl +4 -0
  1470. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-sub-agent-unrelated-wait.jsonl +3 -0
  1471. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-sub-agent-wait-timeout.jsonl +4 -0
  1472. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-sub-agent-without-card.jsonl +3 -0
  1473. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-sub-agent-without-disposition.jsonl +4 -0
  1474. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-sub-agent-without-launch.jsonl +1 -0
  1475. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-sub-agent-without-sha.jsonl +3 -0
  1476. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-sub-agent-without-terminal.jsonl +4 -0
  1477. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-sub-agent-without-wait.jsonl +2 -0
  1478. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/negative-unrelated-remote-branch-absence-output.jsonl +6 -0
  1479. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-api-put-merge-no-cleanup.jsonl +8 -0
  1480. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-assistant-option-text-no-cleanup-intent.jsonl +3 -0
  1481. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-automation-after-followup-boundary.jsonl +3 -0
  1482. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-behind-auto-heal-merge-path.jsonl +3 -0
  1483. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-cleanup-proof-with-base-blocker.jsonl +9 -0
  1484. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-compound-delete-then-verify.jsonl +8 -0
  1485. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-delete-refspec.jsonl +6 -0
  1486. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-delete-with-redirection.jsonl +8 -0
  1487. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-diagnostic-then-merge-same-command.jsonl +9 -0
  1488. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-failed-remote-merge-release-not-applicable.jsonl +4 -0
  1489. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-fork-remote-delete-exempt.jsonl +5 -0
  1490. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-gh-api-delete-after-endpoint.jsonl +6 -0
  1491. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-gh-merge-cleanup-handoff.jsonl +10 -0
  1492. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-git-delete-branch-with-error-word.jsonl +6 -0
  1493. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-git-push-origin-d-delete.jsonl +6 -0
  1494. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-head-branch-plus-char.jsonl +6 -0
  1495. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-head-branch-prose-punctuation.jsonl +8 -0
  1496. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-historical-automation-ignored.jsonl +6 -0
  1497. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-latest-merge-ready-overrides-cleanup.jsonl +4 -0
  1498. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-local-merge-commit-release-not-applicable.jsonl +1 -0
  1499. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-local-merge-release-not-applicable.jsonl +1 -0
  1500. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-merge-base-ahead-decision-menu.jsonl +9 -0
  1501. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-merge-base-decision-menu.jsonl +9 -0
  1502. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-merge-base-linked-worktree-blocker.jsonl +9 -0
  1503. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-merge-base-split-decision-menu.jsonl +10 -0
  1504. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-merge-cleanup-handoff.jsonl +10 -0
  1505. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-merge-cleanup-nonpositive-proof-keeps-cleanup.jsonl +6 -0
  1506. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-merge-cleanup-release-resumes-pr-merge.jsonl +6 -0
  1507. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-merge-cleanup-rerun-then-step6-resume.jsonl +10 -0
  1508. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-merge-cleanup-step6-resumes-pr-merge.jsonl +6 -0
  1509. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-merge-failed-no-cleanup-required.jsonl +4 -0
  1510. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-merge-only-merge-no-cleanup.jsonl +9 -0
  1511. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-merge-proof-writable-convergence.jsonl +4 -0
  1512. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-merge-ready-stop.jsonl +3 -0
  1513. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-merge-with-gh-repo-flag.jsonl +8 -0
  1514. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-multiline-delete-script.jsonl +6 -0
  1515. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-negated-automation-mention.jsonl +1 -0
  1516. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-path-qualified-gh-merge-no-cleanup.jsonl +9 -0
  1517. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-plain-merge-no-cleanup.jsonl +9 -0
  1518. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-post-merge-repo-watcher.jsonl +1 -0
  1519. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-pr-head-ci-card.jsonl +5 -0
  1520. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-pr-head-defer.jsonl +1 -0
  1521. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-ready-merge-pr-stop.jsonl +3 -0
  1522. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-container-alias-tag.jsonl +3 -0
  1523. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-container-only-published.jsonl +3 -0
  1524. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-declared-image-name.jsonl +3 -0
  1525. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-equivalent-sha-blocks.jsonl +3 -0
  1526. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-failed-no-rerun.jsonl +3 -0
  1527. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-false-same-epoch-heartbeat.jsonl +3 -0
  1528. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-github-enterprise.jsonl +3 -0
  1529. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-idempotent-rerun-published.jsonl +6 -0
  1530. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-ignores-other-epoch-surfaces.jsonl +4 -0
  1531. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-ignores-pr-ci-rerun.jsonl +5 -0
  1532. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-ignores-pr-head-ci-rerun.jsonl +5 -0
  1533. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-late-run-id.jsonl +4 -0
  1534. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-non-ghcr-package.jsonl +3 -0
  1535. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-not-triggered.jsonl +3 -0
  1536. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-published-with-metadata.jsonl +3 -0
  1537. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-repeated-same-epoch.jsonl +4 -0
  1538. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-split-content-discovery.jsonl +3 -0
  1539. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-string-discovery.jsonl +3 -0
  1540. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-string-output-published.jsonl +3 -0
  1541. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-structured-content-discovery.jsonl +3 -0
  1542. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-structured-disabled.jsonl +2 -0
  1543. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-structured-identity.jsonl +3 -0
  1544. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-success-false-rerun-published.jsonl +6 -0
  1545. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-text-wrapper-discovery.jsonl +3 -0
  1546. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-timeout-incomplete.jsonl +2 -0
  1547. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-tracker-unavailable.jsonl +2 -0
  1548. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-unknown-unresolved.jsonl +2 -0
  1549. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-unresolved-resumes-pr-merge.jsonl +6 -0
  1550. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-v-prefixed-tag.jsonl +3 -0
  1551. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-workflow-url-before-run-id.jsonl +4 -0
  1552. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-release-workflow-url-failure-no-run-id.jsonl +3 -0
  1553. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-remote-branch-not-found-verification.jsonl +6 -0
  1554. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-safe-align-backup-at-head.jsonl +8 -0
  1555. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-safe-align-backup-name-without-backup-word.jsonl +8 -0
  1556. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-safe-align-clean-no-stash-created.jsonl +6 -0
  1557. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-safe-align-completion-ahead.jsonl +8 -0
  1558. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-safe-align-force-backup-branch.jsonl +8 -0
  1559. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-safe-align-later-backup-command.jsonl +8 -0
  1560. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-safe-align-restores-dirty-untracked.jsonl +8 -0
  1561. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-safe-align-stash-apply-exit-guard.jsonl +4 -0
  1562. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-safe-align-stash-apply-fallback-after-index-error.jsonl +4 -0
  1563. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-safe-align-stash-apply-fallback.jsonl +4 -0
  1564. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-shell-command-array-merge-no-cleanup.jsonl +9 -0
  1565. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-shell-script-merge-no-cleanup.jsonl +8 -0
  1566. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-shell-wrapped-compound-delete.jsonl +6 -0
  1567. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-shell-wrapped-merge-no-cleanup.jsonl +8 -0
  1568. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-sub-agent-ci-wait.jsonl +5 -0
  1569. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-unrelated-automation-update.jsonl +1 -0
  1570. package/toolkit/skills/docs/vendor/dot-codex/specs/r4m7k-fast-track-merge-intent-closeout/replay/positive-unrelated-sidecar-phase-text.jsonl +1 -0
  1571. package/toolkit/skills/docs/vendor/dot-codex/specs/release-tracking/HISTORY.md +7 -0
  1572. package/toolkit/skills/docs/vendor/dot-codex/specs/release-tracking/IMPLEMENTATION.md +58 -0
  1573. package/toolkit/skills/docs/vendor/dot-codex/specs/release-tracking/SPEC.md +78 -0
  1574. package/toolkit/skills/docs/vendor/dot-codex/specs/release-tracking/replay/cases.txt +4 -0
  1575. package/toolkit/skills/docs/vendor/dot-codex/specs/release-tracking/replay/manual-recovery-positive.jsonl +1 -0
  1576. package/toolkit/skills/docs/vendor/dot-codex/specs/release-tracking/replay/tracking-heartbeat-negative.jsonl +2 -0
  1577. package/toolkit/skills/docs/vendor/dot-codex/specs/release-tracking/replay/unrelated-automation-positive.jsonl +2 -0
  1578. package/toolkit/skills/docs/vendor/dot-codex/specs/retire-legacy-service-manager/HISTORY.md +18 -0
  1579. package/toolkit/skills/docs/vendor/dot-codex/specs/retire-legacy-service-manager/IMPLEMENTATION.md +56 -0
  1580. package/toolkit/skills/docs/vendor/dot-codex/specs/retire-legacy-service-manager/SPEC.md +48 -0
  1581. package/toolkit/skills/docs/vendor/dot-codex/specs/review-effort-by-pr-stage/HISTORY.md +24 -0
  1582. package/toolkit/skills/docs/vendor/dot-codex/specs/review-effort-by-pr-stage/IMPLEMENTATION.md +60 -0
  1583. package/toolkit/skills/docs/vendor/dot-codex/specs/review-effort-by-pr-stage/SPEC.md +110 -0
  1584. package/toolkit/skills/docs/vendor/dot-codex/specs/review-proof-dedupe-wait-guard/HISTORY.md +23 -0
  1585. package/toolkit/skills/docs/vendor/dot-codex/specs/review-proof-dedupe-wait-guard/IMPLEMENTATION.md +67 -0
  1586. package/toolkit/skills/docs/vendor/dot-codex/specs/review-proof-dedupe-wait-guard/SPEC.md +62 -0
  1587. package/toolkit/skills/docs/vendor/dot-codex/specs/review-proof-dedupe-wait-guard/replay/cases.txt +6 -0
  1588. package/toolkit/skills/docs/vendor/dot-codex/specs/review-proof-dedupe-wait-guard/replay/negative-exec-session-wait-misuse.jsonl +3 -0
  1589. package/toolkit/skills/docs/vendor/dot-codex/specs/review-proof-dedupe-wait-guard/replay/negative-helper-review-wrapper.jsonl +1 -0
  1590. package/toolkit/skills/docs/vendor/dot-codex/specs/review-proof-dedupe-wait-guard/replay/negative-live-proof-duplicate-launch.jsonl +4 -0
  1591. package/toolkit/skills/docs/vendor/dot-codex/specs/review-proof-dedupe-wait-guard/replay/negative-non-direct-review-launch.jsonl +1 -0
  1592. package/toolkit/skills/docs/vendor/dot-codex/specs/review-proof-dedupe-wait-guard/replay/positive-single-proof-polling.jsonl +6 -0
  1593. package/toolkit/skills/docs/vendor/dot-codex/specs/review-proof-ownership/HISTORY.md +22 -0
  1594. package/toolkit/skills/docs/vendor/dot-codex/specs/review-proof-ownership/IMPLEMENTATION.md +60 -0
  1595. package/toolkit/skills/docs/vendor/dot-codex/specs/review-proof-ownership/SPEC.md +39 -0
  1596. package/toolkit/skills/docs/vendor/dot-codex/specs/s7gvk-pr-freshness-gate/HISTORY.md +18 -0
  1597. package/toolkit/skills/docs/vendor/dot-codex/specs/s7gvk-pr-freshness-gate/IMPLEMENTATION.md +56 -0
  1598. package/toolkit/skills/docs/vendor/dot-codex/specs/s7gvk-pr-freshness-gate/SPEC.md +140 -0
  1599. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-testbox-heavy-validation/HISTORY.md +11 -0
  1600. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-testbox-heavy-validation/IMPLEMENTATION.md +5 -0
  1601. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-testbox-heavy-validation/SPEC.md +29 -0
  1602. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/HISTORY.md +86 -0
  1603. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/IMPLEMENTATION.md +133 -0
  1604. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/SPEC.md +80 -0
  1605. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/cases.txt +64 -0
  1606. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-confirmation-invalidated-by-candidate-change.jsonl +4 -0
  1607. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-after-owner-approval.jsonl +3 -0
  1608. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-after-qualified-ui-demo.jsonl +4 -0
  1609. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-ambiguous-multi-page-route.jsonl +2 -0
  1610. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-before-ui-demo-check.jsonl +4 -0
  1611. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-chinese-unrelated-approval.jsonl +3 -0
  1612. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-conditional-approval.jsonl +3 -0
  1613. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-conditional-exception-followup.jsonl +3 -0
  1614. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-conditional-ui-demo-absence-chinese.jsonl +3 -0
  1615. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-conditional-ui-demo-absence.jsonl +3 -0
  1616. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-cross-sentence-condition.jsonl +3 -0
  1617. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-denial-is-page-scoped.jsonl +2 -0
  1618. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-disallowed-approval.jsonl +3 -0
  1619. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-disapproved-approval.jsonl +3 -0
  1620. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-double-negated-ui-demo.jsonl +3 -0
  1621. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-english-not-yet-approved.jsonl +3 -0
  1622. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-english-question-about-approval.jsonl +3 -0
  1623. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-exception-before-route-does-not-leak.jsonl +5 -0
  1624. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-exception-does-not-leak.jsonl +6 -0
  1625. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-fallback-without-explicit-exception.jsonl +3 -0
  1626. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-generic-page-request-does-not-leak.jsonl +5 -0
  1627. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-long-negation.jsonl +3 -0
  1628. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-mixed-ui-demo-state.jsonl +4 -0
  1629. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-multi-page-grant-inherits.jsonl +2 -0
  1630. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-multiple-owner-locks.jsonl +2 -0
  1631. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-no-exception-after-component.jsonl +3 -0
  1632. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-not-authorized.jsonl +3 -0
  1633. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-not-yet-approved.jsonl +3 -0
  1634. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-only-after-approval.jsonl +3 -0
  1635. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-other-page-source-revocation.jsonl +3 -0
  1636. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-owner-lock-after-component.jsonl +3 -0
  1637. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-page-absence-does-not-leak.jsonl +2 -0
  1638. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-page-scoped-authorization.jsonl +2 -0
  1639. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-page-state-resets-with-component.jsonl +3 -0
  1640. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-question-about-approval.jsonl +3 -0
  1641. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-trailing-page-denial.jsonl +2 -0
  1642. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-unapproved-approval.jsonl +3 -0
  1643. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-unrelated-approval.jsonl +3 -0
  1644. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-unrelated-fallback-revocation.jsonl +3 -0
  1645. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-full-page-storybook-unrelated-release-approval.jsonl +3 -0
  1646. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-implementation-approval-is-not-visual-confirmation.jsonl +3 -0
  1647. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-local-pr-before-owner-confirmation.jsonl +2 -0
  1648. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-mixed-component-then-full-page-storybook.jsonl +6 -0
  1649. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-mixed-visual-status-cannot-clear-confirmation.jsonl +3 -0
  1650. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-owner-lock-survives-blocker-before-storybook.jsonl +4 -0
  1651. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-owner-locked-english-ui-demo-replaced-by-storybook.jsonl +3 -0
  1652. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-owner-locked-web-demo-replaced-by-storybook.jsonl +3 -0
  1653. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-same-event-visual-request-and-pr-route.jsonl +1 -0
  1654. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/negative-visual-rejection-is-not-acceptance.jsonl +3 -0
  1655. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/positive-active-spec-page-storybook-exception.jsonl +3 -0
  1656. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/positive-component-only-page-context.jsonl +3 -0
  1657. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/positive-component-storybook-allowed.jsonl +3 -0
  1658. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/positive-full-page-storybook-can-use-grant.jsonl +3 -0
  1659. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/positive-full-page-storybook-current-approval-supersedes-denial.jsonl +3 -0
  1660. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/positive-full-page-storybook-owner-lock-is-page-scoped.jsonl +3 -0
  1661. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/positive-full-page-storybook-owner-lock-revoked.jsonl +3 -0
  1662. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/positive-full-page-storybook-qualified-ui-demo-unavailable.jsonl +3 -0
  1663. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/positive-full-page-storybook-with-unqualified-ui-demo.jsonl +3 -0
  1664. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/positive-legacy-card-is-ignored.jsonl +3 -0
  1665. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/positive-local-confirmation-before-pr.jsonl +3 -0
  1666. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/positive-owner-locked-page-component-storybook.jsonl +3 -0
  1667. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/positive-project-documentation-page-storybook-exception.jsonl +3 -0
  1668. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/positive-unchanged-visual-evidence-before-pr.jsonl +2 -0
  1669. package/toolkit/skills/docs/vendor/dot-codex/specs/shared-ui-visual-evidence-gate/replay/positive-user-allows-storybook-after-no-ui-demo.jsonl +3 -0
  1670. package/toolkit/skills/docs/vendor/dot-codex/specs/stable-preview-runtime/HISTORY.md +24 -0
  1671. package/toolkit/skills/docs/vendor/dot-codex/specs/stable-preview-runtime/IMPLEMENTATION.md +66 -0
  1672. package/toolkit/skills/docs/vendor/dot-codex/specs/stable-preview-runtime/SPEC.md +173 -0
  1673. package/toolkit/skills/docs/vendor/dot-codex/specs/storybook-skill-upgrade/HISTORY.md +23 -0
  1674. package/toolkit/skills/docs/vendor/dot-codex/specs/storybook-skill-upgrade/IMPLEMENTATION.md +69 -0
  1675. package/toolkit/skills/docs/vendor/dot-codex/specs/storybook-skill-upgrade/SPEC.md +189 -0
  1676. package/toolkit/skills/docs/vendor/dot-codex/specs/syj6s-pr-convergence-batching/HISTORY.md +27 -0
  1677. package/toolkit/skills/docs/vendor/dot-codex/specs/syj6s-pr-convergence-batching/IMPLEMENTATION.md +66 -0
  1678. package/toolkit/skills/docs/vendor/dot-codex/specs/syj6s-pr-convergence-batching/SPEC.md +147 -0
  1679. package/toolkit/skills/docs/vendor/dot-codex/specs/sz4cs-global-port-preview-governance/HISTORY.md +28 -0
  1680. package/toolkit/skills/docs/vendor/dot-codex/specs/sz4cs-global-port-preview-governance/IMPLEMENTATION.md +75 -0
  1681. package/toolkit/skills/docs/vendor/dot-codex/specs/sz4cs-global-port-preview-governance/SPEC.md +219 -0
  1682. package/toolkit/skills/docs/vendor/dot-codex/specs/topic-spec-model/HISTORY.md +41 -0
  1683. package/toolkit/skills/docs/vendor/dot-codex/specs/topic-spec-model/IMPLEMENTATION.md +74 -0
  1684. package/toolkit/skills/docs/vendor/dot-codex/specs/topic-spec-model/SPEC.md +58 -0
  1685. package/toolkit/skills/docs/vendor/dot-codex/specs/viewport-safe-browser-evidence/HISTORY.md +19 -0
  1686. package/toolkit/skills/docs/vendor/dot-codex/specs/viewport-safe-browser-evidence/IMPLEMENTATION.md +72 -0
  1687. package/toolkit/skills/docs/vendor/dot-codex/specs/viewport-safe-browser-evidence/SPEC.md +168 -0
  1688. package/toolkit/skills/docs/vendor/dot-codex/specs/visual-evidence-whitespace-trim/HISTORY.md +22 -0
  1689. package/toolkit/skills/docs/vendor/dot-codex/specs/visual-evidence-whitespace-trim/IMPLEMENTATION.md +63 -0
  1690. package/toolkit/skills/docs/vendor/dot-codex/specs/visual-evidence-whitespace-trim/SPEC.md +76 -0
  1691. package/toolkit/skills/docs/vendor/dot-codex/specs/vw73w-visual-evidence-whitespace-trim/HISTORY.md +22 -0
  1692. package/toolkit/skills/docs/vendor/dot-codex/specs/vw73w-visual-evidence-whitespace-trim/IMPLEMENTATION.md +63 -0
  1693. package/toolkit/skills/docs/vendor/dot-codex/specs/vw73w-visual-evidence-whitespace-trim/SPEC.md +76 -0
  1694. package/toolkit/skills/docs/vendor/dot-codex/specs/w7yqp-git-skill-convergence/HISTORY.md +28 -0
  1695. package/toolkit/skills/docs/vendor/dot-codex/specs/w7yqp-git-skill-convergence/IMPLEMENTATION.md +50 -0
  1696. package/toolkit/skills/docs/vendor/dot-codex/specs/w7yqp-git-skill-convergence/SPEC.md +176 -0
  1697. package/toolkit/skills/docs/vendor/dot-codex/specs/wave-thread-flow/HISTORY.md +37 -0
  1698. package/toolkit/skills/docs/vendor/dot-codex/specs/wave-thread-flow/IMPLEMENTATION.md +5 -0
  1699. package/toolkit/skills/docs/vendor/dot-codex/specs/wave-thread-flow/SPEC.md +20 -0
  1700. package/toolkit/skills/docs/vendor/dot-codex/specs/weppn-topic-spec-model/HISTORY.md +31 -0
  1701. package/toolkit/skills/docs/vendor/dot-codex/specs/weppn-topic-spec-model/IMPLEMENTATION.md +66 -0
  1702. package/toolkit/skills/docs/vendor/dot-codex/specs/weppn-topic-spec-model/SPEC.md +178 -0
  1703. package/toolkit/skills/docs/vendor/dot-codex/specs/workflow-agent-model-selection/HISTORY.md +29 -0
  1704. package/toolkit/skills/docs/vendor/dot-codex/specs/workflow-agent-model-selection/IMPLEMENTATION.md +42 -0
  1705. package/toolkit/skills/docs/vendor/dot-codex/specs/workflow-agent-model-selection/SPEC.md +86 -0
  1706. package/toolkit/skills/docs/vendor/dot-codex/specs/workflow-execution-receipts/HISTORY.md +69 -0
  1707. package/toolkit/skills/docs/vendor/dot-codex/specs/workflow-execution-receipts/IMPLEMENTATION.md +17 -0
  1708. package/toolkit/skills/docs/vendor/dot-codex/specs/workflow-execution-receipts/SPEC.md +56 -0
  1709. package/toolkit/skills/docs/vendor/dot-codex/specs/workflow-execution-receipts/contracts/review-orchestration-retirement.md +45 -0
  1710. package/toolkit/skills/docs/vendor/dot-codex/specs/workflow-execution-receipts/replay/classification-cases.json +62 -0
  1711. package/toolkit/skills/docs/vendor/dot-codex/specs/workflow-execution-receipts/replay/convergence-cases.json +22 -0
  1712. package/toolkit/skills/docs/vendor/dot-codex/specs/workflow-execution-receipts/replay/review-wave-cases.json +9 -0
  1713. package/toolkit/skills/docs/vendor/dot-codex/specs/xp-infra-public-hostname-convention/HISTORY.md +15 -0
  1714. package/toolkit/skills/docs/vendor/dot-codex/specs/xp-infra-public-hostname-convention/IMPLEMENTATION.md +26 -0
  1715. package/toolkit/skills/docs/vendor/dot-codex/specs/xp-infra-public-hostname-convention/SPEC.md +125 -0
  1716. package/toolkit/skills/docs/vendor/dot-codex/specs/y9nrr-review-effort-by-pr-stage/HISTORY.md +21 -0
  1717. package/toolkit/skills/docs/vendor/dot-codex/specs/y9nrr-review-effort-by-pr-stage/IMPLEMENTATION.md +60 -0
  1718. package/toolkit/skills/docs/vendor/dot-codex/specs/y9nrr-review-effort-by-pr-stage/SPEC.md +108 -0
  1719. package/toolkit/skills/docs/vendor/dot-codex/specs/yr954-flow-continue-lock-guard/HISTORY.md +20 -0
  1720. package/toolkit/skills/docs/vendor/dot-codex/specs/yr954-flow-continue-lock-guard/IMPLEMENTATION.md +59 -0
  1721. package/toolkit/skills/docs/vendor/dot-codex/specs/yr954-flow-continue-lock-guard/SPEC.md +135 -0
  1722. package/toolkit/skills/docs/vendor/dot-codex/specs/yr954-flow-continue-lock-guard/replay/cases.txt +6 -0
  1723. package/toolkit/skills/docs/vendor/dot-codex/specs/yr954-flow-continue-lock-guard/replay/negative-locked-fast-track-drift-to-local-merge.jsonl +5 -0
  1724. package/toolkit/skills/docs/vendor/dot-codex/specs/yr954-flow-continue-lock-guard/replay/negative-merge-path-review-feedback-needs-auth.jsonl +6 -0
  1725. package/toolkit/skills/docs/vendor/dot-codex/specs/yr954-flow-continue-lock-guard/replay/positive-explicit-local-merge-switch.jsonl +5 -0
  1726. package/toolkit/skills/docs/vendor/dot-codex/specs/yr954-flow-continue-lock-guard/replay/positive-generic-merge-stays-fast-track.jsonl +4 -0
  1727. package/toolkit/skills/docs/vendor/dot-codex/specs/yr954-flow-continue-lock-guard/replay/positive-merge-path-review-feedback-routes-pr-create.jsonl +6 -0
  1728. package/toolkit/skills/docs/vendor/dot-codex/specs/yr954-flow-continue-lock-guard/replay/session-019ce28f-bc31-7d02-990f-c9f02c1bf028.jsonl +5 -0
  1729. package/toolkit/skills/docs/vendor/dot-codex/specs/zmp5f-active-long-task-ownership-wait-guard/HISTORY.md +18 -0
  1730. package/toolkit/skills/docs/vendor/dot-codex/specs/zmp5f-active-long-task-ownership-wait-guard/IMPLEMENTATION.md +63 -0
  1731. package/toolkit/skills/docs/vendor/dot-codex/specs/zmp5f-active-long-task-ownership-wait-guard/SPEC.md +151 -0
  1732. package/toolkit/skills/docs/vendor/dot-codex/specs/zmp5f-active-long-task-ownership-wait-guard/replay/cases.txt +11 -0
  1733. package/toolkit/skills/docs/vendor/dot-codex/specs/zmp5f-active-long-task-ownership-wait-guard/replay/negative-019d681b-active-proof-owner-leak.jsonl +4 -0
  1734. package/toolkit/skills/docs/vendor/dot-codex/specs/zmp5f-active-long-task-ownership-wait-guard/replay/negative-019d686e-live-exec-owner-leak.jsonl +4 -0
  1735. package/toolkit/skills/docs/vendor/dot-codex/specs/zmp5f-active-long-task-ownership-wait-guard/replay/negative-focused-session-still-live-owner-leak.jsonl +8 -0
  1736. package/toolkit/skills/docs/vendor/dot-codex/specs/zmp5f-active-long-task-ownership-wait-guard/replay/negative-running-status-alone-owner-leak.jsonl +4 -0
  1737. package/toolkit/skills/docs/vendor/dot-codex/specs/zmp5f-active-long-task-ownership-wait-guard/replay/positive-continue-with-extra-request.jsonl +4 -0
  1738. package/toolkit/skills/docs/vendor/dot-codex/specs/zmp5f-active-long-task-ownership-wait-guard/replay/positive-continue-with-new-owner-input.jsonl +4 -0
  1739. package/toolkit/skills/docs/vendor/dot-codex/specs/zmp5f-active-long-task-ownership-wait-guard/replay/positive-focused-proof-exits-before-user-nudge.jsonl +10 -0
  1740. package/toolkit/skills/docs/vendor/dot-codex/specs/zmp5f-active-long-task-ownership-wait-guard/replay/positive-promised-session-exited-before-user-nudge.jsonl +8 -0
  1741. package/toolkit/skills/docs/vendor/dot-codex/specs/zmp5f-active-long-task-ownership-wait-guard/replay/positive-review-promise-does-not-bind-unrelated-live-session.jsonl +8 -0
  1742. package/toolkit/skills/docs/vendor/dot-codex/specs/zmp5f-active-long-task-ownership-wait-guard/replay/positive-terminal-before-user-nudge.jsonl +7 -0
  1743. package/toolkit/skills/docs-migrate/SKILL.md +103 -0
  1744. package/toolkit/skills/docs-migrate/agents/openai.yaml +2 -0
  1745. package/toolkit/skills/docs-migrate/references/mode-fixtures.md +53 -0
  1746. package/toolkit/skills/docs-migrate/references/project-docs-mode.md +30 -0
  1747. package/toolkit/skills/docs-migrate/references/solutions-mode.md +175 -0
  1748. package/toolkit/skills/docs-migrate/references/specs-hygiene-mode.md +33 -0
  1749. package/toolkit/skills/docs-migrate/references/specs-mode.md +32 -0
  1750. package/toolkit/skills/docs-migrate/scripts/gen_legacy_spec_id.ts +4 -0
  1751. package/toolkit/skills/docs-migrate/scripts/specs_migrate_guard.ts +4 -0
  1752. package/toolkit/skills/docs-migrate/scripts/test_gen_legacy_spec_id.ts +1 -0
  1753. package/toolkit/skills/docs-migrate/scripts/test_specs_migrate_guard.ts +1 -0
  1754. package/toolkit/skills/dot-codex-development/SKILL.md +48 -0
  1755. package/toolkit/skills/dot-codex-development/agents/openai.yaml +4 -0
  1756. package/toolkit/skills/dot-codex-development/scripts/context.ts +3 -0
  1757. package/toolkit/skills/dot-codex-development/scripts/test_context.ts +1 -0
  1758. package/toolkit/skills/fast-flow/SKILL.md +46 -0
  1759. package/toolkit/skills/find-next-plan/SKILL.md +70 -0
  1760. package/toolkit/skills/find-next-plan/agents/openai.yaml +2 -0
  1761. package/toolkit/skills/find-next-plan/scripts/find_next_plan.ts +4 -0
  1762. package/toolkit/skills/find-next-plan/scripts/test_find_next_plan.ts +1 -0
  1763. package/toolkit/skills/flow-continue/SKILL.md +72 -0
  1764. package/toolkit/skills/fresh-thread-dispatch/SKILL.md +83 -0
  1765. package/toolkit/skills/fresh-thread-dispatch/agents/openai.yaml +4 -0
  1766. package/toolkit/skills/fresh-thread-dispatch/references/handoff-envelope.md +65 -0
  1767. package/toolkit/skills/git-branch/SKILL.md +81 -0
  1768. package/toolkit/skills/git-cleanup/SKILL.md +200 -0
  1769. package/toolkit/skills/git-cleanup/scripts/closeout_context.ts +4 -0
  1770. package/toolkit/skills/git-cleanup/scripts/closeout_gate.ts +4 -0
  1771. package/toolkit/skills/git-cleanup/scripts/local_merge_closeout_context.ts +4 -0
  1772. package/toolkit/skills/git-cleanup/scripts/local_merge_closeout_gate.ts +4 -0
  1773. package/toolkit/skills/git-cleanup/scripts/test_closeout_context.ts +1 -0
  1774. package/toolkit/skills/git-cleanup/scripts/test_closeout_gate.ts +1 -0
  1775. package/toolkit/skills/git-cleanup/scripts/test_local_merge_closeout_context.ts +1 -0
  1776. package/toolkit/skills/git-cleanup/scripts/test_local_merge_closeout_gate.ts +1 -0
  1777. package/toolkit/skills/git-worktree/SKILL.md +99 -0
  1778. package/toolkit/skills/global-port-manager/SKILL.md +190 -0
  1779. package/toolkit/skills/global-port-manager/scripts/port_registry.ts +4 -0
  1780. package/toolkit/skills/global-port-manager/scripts/test_port_registry.ts +1 -0
  1781. package/toolkit/skills/gui-escalation-gate/SKILL.md +106 -0
  1782. package/toolkit/skills/hardware-doc-ingest/SKILL.md +143 -0
  1783. package/toolkit/skills/hardware-doc-ingest/references/docs-index-format.md +34 -0
  1784. package/toolkit/skills/hardware-doc-ingest/scripts/ingest_mineru_extract.ts +4 -0
  1785. package/toolkit/skills/hardware-doc-ingest/scripts/verify_doc_locks.ts +4 -0
  1786. package/toolkit/skills/implement-only-flow/SKILL.md +38 -0
  1787. package/toolkit/skills/kaisoumail-deployment-inventory/SKILL.md +38 -0
  1788. package/toolkit/skills/kaisoumail-deployment-inventory/agents/openai.yaml +7 -0
  1789. package/toolkit/skills/kaisoumail-deployment-inventory/references/current-topology.md +152 -0
  1790. package/toolkit/skills/kaisoumail-deployment-inventory/references/stable-identity.md +32 -0
  1791. package/toolkit/skills/local-merge-flow/SKILL.md +32 -0
  1792. package/toolkit/skills/multi-task-flow/SKILL.md +115 -0
  1793. package/toolkit/skills/multi-task-flow/bun.lock +314 -0
  1794. package/toolkit/skills/multi-task-flow/data/.gitignore +2 -0
  1795. package/toolkit/skills/multi-task-flow/dist/app.css +2 -0
  1796. package/toolkit/skills/multi-task-flow/dist/app.js +1375 -0
  1797. package/toolkit/skills/multi-task-flow/dist/index.html +95 -0
  1798. package/toolkit/skills/multi-task-flow/examples/README.md +11 -0
  1799. package/toolkit/skills/multi-task-flow/examples/ledger-initialization/README.md +5 -0
  1800. package/toolkit/skills/multi-task-flow/examples/ledger-initialization/initial.json +45 -0
  1801. package/toolkit/skills/multi-task-flow/examples/orchestration-viewer/README.md +22 -0
  1802. package/toolkit/skills/multi-task-flow/examples/orchestration-viewer/index.ts +64 -0
  1803. package/toolkit/skills/multi-task-flow/examples/orchestration-viewer/ledger.ts +176 -0
  1804. package/toolkit/skills/multi-task-flow/examples/orchestration-viewer/link-verification.json +19 -0
  1805. package/toolkit/skills/multi-task-flow/examples/orchestration-viewer/requirements/group-core.md +11 -0
  1806. package/toolkit/skills/multi-task-flow/examples/orchestration-viewer/requirements/group-dashboard.md +11 -0
  1807. package/toolkit/skills/multi-task-flow/examples/orchestration-viewer/requirements/task-acceptance.md +10 -0
  1808. package/toolkit/skills/multi-task-flow/examples/orchestration-viewer/requirements/task-dashboard-ui.md +10 -0
  1809. package/toolkit/skills/multi-task-flow/examples/orchestration-viewer/requirements/task-deploy.md +10 -0
  1810. package/toolkit/skills/multi-task-flow/examples/orchestration-viewer/requirements/task-integration.md +10 -0
  1811. package/toolkit/skills/multi-task-flow/examples/orchestration-viewer/requirements/task-ledger.md +10 -0
  1812. package/toolkit/skills/multi-task-flow/examples/orchestration-viewer/requirements/task-model.md +10 -0
  1813. package/toolkit/skills/multi-task-flow/examples/orchestration-viewer/requirements/task-release.md +10 -0
  1814. package/toolkit/skills/multi-task-flow/examples/orchestration-viewer/requirements/task-scheduler.md +10 -0
  1815. package/toolkit/skills/multi-task-flow/examples/orchestration-viewer/requirements/task-server.md +10 -0
  1816. package/toolkit/skills/multi-task-flow/examples/orchestration-viewer/requirements/task-verify.md +10 -0
  1817. package/toolkit/skills/multi-task-flow/examples/single-delivery-unit/README.md +14 -0
  1818. package/toolkit/skills/multi-task-flow/examples/single-delivery-unit/ledger.ts +118 -0
  1819. package/toolkit/skills/multi-task-flow/examples/single-delivery-unit/outputs.ts +37 -0
  1820. package/toolkit/skills/multi-task-flow/lib/codex-agent-api.ts +399 -0
  1821. package/toolkit/skills/multi-task-flow/lib/codex-cli-create.ts +169 -0
  1822. package/toolkit/skills/multi-task-flow/lib/codex-desktop-follower.ts +264 -0
  1823. package/toolkit/skills/multi-task-flow/lib/codex-observer.ts +166 -0
  1824. package/toolkit/skills/multi-task-flow/lib/codex-rpc.ts +257 -0
  1825. package/toolkit/skills/multi-task-flow/lib/codex-socket.ts +181 -0
  1826. package/toolkit/skills/multi-task-flow/lib/codex-subscription.ts +71 -0
  1827. package/toolkit/skills/multi-task-flow/lib/contract.ts +198 -0
  1828. package/toolkit/skills/multi-task-flow/lib/conversation-archive.ts +98 -0
  1829. package/toolkit/skills/multi-task-flow/lib/conversation-eligibility.ts +32 -0
  1830. package/toolkit/skills/multi-task-flow/lib/conversation-history.ts +101 -0
  1831. package/toolkit/skills/multi-task-flow/lib/conversation-output.ts +398 -0
  1832. package/toolkit/skills/multi-task-flow/lib/demo-archive.ts +22 -0
  1833. package/toolkit/skills/multi-task-flow/lib/desktop-handoff.ts +32 -0
  1834. package/toolkit/skills/multi-task-flow/lib/desktop-output-state.ts +177 -0
  1835. package/toolkit/skills/multi-task-flow/lib/engine.ts +5254 -0
  1836. package/toolkit/skills/multi-task-flow/lib/errors.ts +19 -0
  1837. package/toolkit/skills/multi-task-flow/lib/execution-profile.ts +102 -0
  1838. package/toolkit/skills/multi-task-flow/lib/graph.ts +68 -0
  1839. package/toolkit/skills/multi-task-flow/lib/ledger-maintenance.ts +327 -0
  1840. package/toolkit/skills/multi-task-flow/lib/legacy-plan-alias.ts +8 -0
  1841. package/toolkit/skills/multi-task-flow/lib/notification-delivery.ts +119 -0
  1842. package/toolkit/skills/multi-task-flow/lib/package-source.ts +35 -0
  1843. package/toolkit/skills/multi-task-flow/lib/pr-details.ts +47 -0
  1844. package/toolkit/skills/multi-task-flow/lib/preferences.ts +155 -0
  1845. package/toolkit/skills/multi-task-flow/lib/profile-http.ts +101 -0
  1846. package/toolkit/skills/multi-task-flow/lib/profile-migration.ts +12 -0
  1847. package/toolkit/skills/multi-task-flow/lib/profile-mutation.ts +53 -0
  1848. package/toolkit/skills/multi-task-flow/lib/revisions-json.ts +10 -0
  1849. package/toolkit/skills/multi-task-flow/lib/revisions.ts +394 -0
  1850. package/toolkit/skills/multi-task-flow/lib/schema.ts +2389 -0
  1851. package/toolkit/skills/multi-task-flow/lib/server-contract.ts +29 -0
  1852. package/toolkit/skills/multi-task-flow/lib/server-files.ts +117 -0
  1853. package/toolkit/skills/multi-task-flow/lib/server.ts +449 -0
  1854. package/toolkit/skills/multi-task-flow/lib/service-auth.ts +162 -0
  1855. package/toolkit/skills/multi-task-flow/lib/service-compatibility.ts +283 -0
  1856. package/toolkit/skills/multi-task-flow/lib/service-contract.ts +122 -0
  1857. package/toolkit/skills/multi-task-flow/lib/service-http.ts +525 -0
  1858. package/toolkit/skills/multi-task-flow/lib/service-import-recovery.ts +104 -0
  1859. package/toolkit/skills/multi-task-flow/lib/service-import.ts +207 -0
  1860. package/toolkit/skills/multi-task-flow/lib/service-launchd.ts +74 -0
  1861. package/toolkit/skills/multi-task-flow/lib/service-lifecycle.ts +345 -0
  1862. package/toolkit/skills/multi-task-flow/lib/service-log.ts +73 -0
  1863. package/toolkit/skills/multi-task-flow/lib/service-maintenance.ts +288 -0
  1864. package/toolkit/skills/multi-task-flow/lib/service-pages.ts +110 -0
  1865. package/toolkit/skills/multi-task-flow/lib/service-paths.ts +53 -0
  1866. package/toolkit/skills/multi-task-flow/lib/service-release.ts +123 -0
  1867. package/toolkit/skills/multi-task-flow/lib/service-state.ts +153 -0
  1868. package/toolkit/skills/multi-task-flow/lib/service-usage.ts +47 -0
  1869. package/toolkit/skills/multi-task-flow/lib/store-io.ts +133 -0
  1870. package/toolkit/skills/multi-task-flow/lib/store-ledger.ts +34 -0
  1871. package/toolkit/skills/multi-task-flow/lib/store-migration.ts +594 -0
  1872. package/toolkit/skills/multi-task-flow/lib/store.ts +418 -0
  1873. package/toolkit/skills/multi-task-flow/lib/task-runtime.ts +26 -0
  1874. package/toolkit/skills/multi-task-flow/lib/view-atoms.ts +110 -0
  1875. package/toolkit/skills/multi-task-flow/lib/view-warnings.ts +20 -0
  1876. package/toolkit/skills/multi-task-flow/lib/view.ts +917 -0
  1877. package/toolkit/skills/multi-task-flow/package.json +39 -0
  1878. package/toolkit/skills/multi-task-flow/references/shared-viewer.md +60 -0
  1879. package/toolkit/skills/multi-task-flow/scripts/build-service.ts +108 -0
  1880. package/toolkit/skills/multi-task-flow/scripts/build.ts +38 -0
  1881. package/toolkit/skills/multi-task-flow/scripts/catalog-client-skills.ts +54 -0
  1882. package/toolkit/skills/multi-task-flow/scripts/check-client-skills.ts +44 -0
  1883. package/toolkit/skills/multi-task-flow/scripts/check-skills-installation.ts +84 -0
  1884. package/toolkit/skills/multi-task-flow/scripts/demo-static.ts +185 -0
  1885. package/toolkit/skills/multi-task-flow/scripts/diagnose-candidate-sandbox.ts +32 -0
  1886. package/toolkit/skills/multi-task-flow/scripts/import-client-skills.ts +31 -0
  1887. package/toolkit/skills/multi-task-flow/scripts/orchestrate.ts +615 -0
  1888. package/toolkit/skills/multi-task-flow/scripts/package-client-skills.ts +224 -0
  1889. package/toolkit/skills/multi-task-flow/scripts/preview-source.ts +227 -0
  1890. package/toolkit/skills/multi-task-flow/scripts/serve.ts +218 -0
  1891. package/toolkit/skills/multi-task-flow/scripts/service.ts +235 -0
  1892. package/toolkit/skills/multi-task-flow/scripts/test-skills-artifact.ts +27 -0
  1893. package/toolkit/skills/multi-task-flow/scripts/test-skills-native.ts +28 -0
  1894. package/toolkit/skills/multi-task-flow/scripts/test-viewer-source.ts +65 -0
  1895. package/toolkit/skills/multi-task-flow/scripts/verify-service-browser.ts +181 -0
  1896. package/toolkit/skills/multi-task-flow/scripts/verify-service-native.ts +283 -0
  1897. package/toolkit/skills/multi-task-flow/scripts/verify-skills-modules.ts +11 -0
  1898. package/toolkit/skills/multi-task-flow/scripts/viewer-gateway.ts +206 -0
  1899. package/toolkit/skills/multi-task-flow/scripts/viewer-runtime.ts +270 -0
  1900. package/toolkit/skills/multi-task-flow/scripts/viewer-socket.ts +466 -0
  1901. package/toolkit/skills/multi-task-flow/scripts/viewer-worker.ts +150 -0
  1902. package/toolkit/skills/multi-task-flow/tests/browser/README.md +38 -0
  1903. package/toolkit/skills/multi-task-flow/tests/browser/card-width-regression.ts +74 -0
  1904. package/toolkit/skills/multi-task-flow/tests/check-skills-installation.test.ts +45 -0
  1905. package/toolkit/skills/multi-task-flow/tests/codex-cli-create.test.ts +89 -0
  1906. package/toolkit/skills/multi-task-flow/tests/codex-desktop-follower.test.ts +29 -0
  1907. package/toolkit/skills/multi-task-flow/tests/codex-observer.test.ts +25 -0
  1908. package/toolkit/skills/multi-task-flow/tests/codex-subscription.test.ts +38 -0
  1909. package/toolkit/skills/multi-task-flow/tests/codex-thread-create.test.ts +159 -0
  1910. package/toolkit/skills/multi-task-flow/tests/conversation-archive.test.ts +188 -0
  1911. package/toolkit/skills/multi-task-flow/tests/conversation-output.test.ts +224 -0
  1912. package/toolkit/skills/multi-task-flow/tests/crash-worker.ts +9 -0
  1913. package/toolkit/skills/multi-task-flow/tests/demo-archive.test.ts +19 -0
  1914. package/toolkit/skills/multi-task-flow/tests/demo.test.ts +134 -0
  1915. package/toolkit/skills/multi-task-flow/tests/desktop-output-state.test.ts +20 -0
  1916. package/toolkit/skills/multi-task-flow/tests/engine.test.ts +3219 -0
  1917. package/toolkit/skills/multi-task-flow/tests/graph-layout.test.ts +44 -0
  1918. package/toolkit/skills/multi-task-flow/tests/graph-projection.test.ts +203 -0
  1919. package/toolkit/skills/multi-task-flow/tests/graph.test.ts +22 -0
  1920. package/toolkit/skills/multi-task-flow/tests/group-atom-contract.test.ts +118 -0
  1921. package/toolkit/skills/multi-task-flow/tests/increment-worker.ts +6 -0
  1922. package/toolkit/skills/multi-task-flow/tests/maintenance-compatibility.test.ts +299 -0
  1923. package/toolkit/skills/multi-task-flow/tests/migrate.test.ts +476 -0
  1924. package/toolkit/skills/multi-task-flow/tests/notification-delivery.test.ts +289 -0
  1925. package/toolkit/skills/multi-task-flow/tests/notification-reconcile.test.ts +144 -0
  1926. package/toolkit/skills/multi-task-flow/tests/orchestrate.test.ts +769 -0
  1927. package/toolkit/skills/multi-task-flow/tests/output-events.test.ts +36 -0
  1928. package/toolkit/skills/multi-task-flow/tests/phase.test.ts +14 -0
  1929. package/toolkit/skills/multi-task-flow/tests/pr-details.test.ts +30 -0
  1930. package/toolkit/skills/multi-task-flow/tests/preferences.test.ts +60 -0
  1931. package/toolkit/skills/multi-task-flow/tests/revisions.test.ts +333 -0
  1932. package/toolkit/skills/multi-task-flow/tests/schema-validation.test.ts +64 -0
  1933. package/toolkit/skills/multi-task-flow/tests/serve.test.ts +194 -0
  1934. package/toolkit/skills/multi-task-flow/tests/server.test.ts +166 -0
  1935. package/toolkit/skills/multi-task-flow/tests/service-contract.test.ts +208 -0
  1936. package/toolkit/skills/multi-task-flow/tests/service-fixture.ts +81 -0
  1937. package/toolkit/skills/multi-task-flow/tests/service-lifecycle.test.ts +123 -0
  1938. package/toolkit/skills/multi-task-flow/tests/service-release.test.ts +120 -0
  1939. package/toolkit/skills/multi-task-flow/tests/shared-service.test.ts +358 -0
  1940. package/toolkit/skills/multi-task-flow/tests/single-delivery-unit.test.ts +69 -0
  1941. package/toolkit/skills/multi-task-flow/tests/source-preview.test.ts +244 -0
  1942. package/toolkit/skills/multi-task-flow/tests/store.test.ts +219 -0
  1943. package/toolkit/skills/multi-task-flow/tests/task-runtime.test.ts +38 -0
  1944. package/toolkit/skills/multi-task-flow/tests/ui/agent-output.test.ts +86 -0
  1945. package/toolkit/skills/multi-task-flow/tests/ui/cards-accessibility.test.ts +90 -0
  1946. package/toolkit/skills/multi-task-flow/tests/ui/connection-status.test.ts +14 -0
  1947. package/toolkit/skills/multi-task-flow/tests/ui/conversation-control.test.ts +69 -0
  1948. package/toolkit/skills/multi-task-flow/tests/ui/detail-surface.test.ts +245 -0
  1949. package/toolkit/skills/multi-task-flow/tests/ui/details-content.test.ts +283 -0
  1950. package/toolkit/skills/multi-task-flow/tests/ui/graph-controller.test.tsx +83 -0
  1951. package/toolkit/skills/multi-task-flow/tests/ui/group-progress.test.ts +14 -0
  1952. package/toolkit/skills/multi-task-flow/tests/ui/hover-preview.test.ts +198 -0
  1953. package/toolkit/skills/multi-task-flow/tests/ui/navigation.test.ts +29 -0
  1954. package/toolkit/skills/multi-task-flow/tests/ui/pr-status.test.ts +53 -0
  1955. package/toolkit/skills/multi-task-flow/tests/ui/profile-editor.test.ts +81 -0
  1956. package/toolkit/skills/multi-task-flow/tests/ui/resource-popover.test.ts +109 -0
  1957. package/toolkit/skills/multi-task-flow/tests/ui/responsive-width-contract.test.ts +33 -0
  1958. package/toolkit/skills/multi-task-flow/tests/ui/service-navigation.test.ts +54 -0
  1959. package/toolkit/skills/multi-task-flow/tests/ui/setup.ts +13 -0
  1960. package/toolkit/skills/multi-task-flow/tests/ui/task-context-menu.test.ts +74 -0
  1961. package/toolkit/skills/multi-task-flow/tests/ui/timeline-window.test.ts +16 -0
  1962. package/toolkit/skills/multi-task-flow/tests/ui/timestamp.test.ts +30 -0
  1963. package/toolkit/skills/multi-task-flow/tests/ui/tooltip.test.ts +151 -0
  1964. package/toolkit/skills/multi-task-flow/tests/ui-demo.ts +18 -0
  1965. package/toolkit/skills/multi-task-flow/tests/view-state.test.ts +103 -0
  1966. package/toolkit/skills/multi-task-flow/tests/view.test.ts +347 -0
  1967. package/toolkit/skills/multi-task-flow/tests/viewer-runtime.test.ts +117 -0
  1968. package/toolkit/skills/multi-task-flow/tests/viewer-socket.test.ts +119 -0
  1969. package/toolkit/skills/multi-task-flow/web/agent-output.ts +66 -0
  1970. package/toolkit/skills/multi-task-flow/web/app.css +713 -0
  1971. package/toolkit/skills/multi-task-flow/web/app.ts +639 -0
  1972. package/toolkit/skills/multi-task-flow/web/cards.ts +268 -0
  1973. package/toolkit/skills/multi-task-flow/web/conversation-control.ts +77 -0
  1974. package/toolkit/skills/multi-task-flow/web/dependency-tooltip.ts +43 -0
  1975. package/toolkit/skills/multi-task-flow/web/detail-surface.ts +74 -0
  1976. package/toolkit/skills/multi-task-flow/web/details-content.ts +296 -0
  1977. package/toolkit/skills/multi-task-flow/web/execution-range.ts +26 -0
  1978. package/toolkit/skills/multi-task-flow/web/focus.ts +9 -0
  1979. package/toolkit/skills/multi-task-flow/web/graph-layout.ts +89 -0
  1980. package/toolkit/skills/multi-task-flow/web/graph-projection.ts +454 -0
  1981. package/toolkit/skills/multi-task-flow/web/graph-view.tsx +72 -0
  1982. package/toolkit/skills/multi-task-flow/web/graph.ts +101 -0
  1983. package/toolkit/skills/multi-task-flow/web/hover-controller.ts +213 -0
  1984. package/toolkit/skills/multi-task-flow/web/hover-preview.ts +47 -0
  1985. package/toolkit/skills/multi-task-flow/web/index.html +95 -0
  1986. package/toolkit/skills/multi-task-flow/web/interaction-policy.ts +58 -0
  1987. package/toolkit/skills/multi-task-flow/web/labels.ts +71 -0
  1988. package/toolkit/skills/multi-task-flow/web/links.ts +8 -0
  1989. package/toolkit/skills/multi-task-flow/web/model.ts +219 -0
  1990. package/toolkit/skills/multi-task-flow/web/navigation.ts +23 -0
  1991. package/toolkit/skills/multi-task-flow/web/phase.ts +11 -0
  1992. package/toolkit/skills/multi-task-flow/web/pr-status.ts +59 -0
  1993. package/toolkit/skills/multi-task-flow/web/preview-content.ts +69 -0
  1994. package/toolkit/skills/multi-task-flow/web/profile-editor.ts +96 -0
  1995. package/toolkit/skills/multi-task-flow/web/profile-model-menu.ts +38 -0
  1996. package/toolkit/skills/multi-task-flow/web/resource-popover.ts +257 -0
  1997. package/toolkit/skills/multi-task-flow/web/status-row.ts +239 -0
  1998. package/toolkit/skills/multi-task-flow/web/task-context-menu.ts +123 -0
  1999. package/toolkit/skills/multi-task-flow/web/task-state.ts +8 -0
  2000. package/toolkit/skills/multi-task-flow/web/time.ts +23 -0
  2001. package/toolkit/skills/multi-task-flow/web/timeline-window.ts +16 -0
  2002. package/toolkit/skills/multi-task-flow/web/timeline.ts +230 -0
  2003. package/toolkit/skills/multi-task-flow/web/timestamp.ts +29 -0
  2004. package/toolkit/skills/multi-task-flow/web/tooltip.ts +198 -0
  2005. package/toolkit/skills/multi-task-flow/web/unbound-pr-hint.ts +9 -0
  2006. package/toolkit/skills/multi-task-flow/web/view-state.ts +185 -0
  2007. package/toolkit/skills/node_modules/@xyflow/react/index.js +3 -0
  2008. package/toolkit/skills/node_modules/@xyflow/react/package.json +6 -0
  2009. package/toolkit/skills/node_modules/elkjs/index.js +3 -0
  2010. package/toolkit/skills/node_modules/elkjs/package.json +6 -0
  2011. package/toolkit/skills/node_modules/lucide/index.js +3 -0
  2012. package/toolkit/skills/node_modules/lucide/package.json +6 -0
  2013. package/toolkit/skills/node_modules/moment/index.js +3 -0
  2014. package/toolkit/skills/node_modules/moment/package.json +6 -0
  2015. package/toolkit/skills/node_modules/playwright/index.js +3 -0
  2016. package/toolkit/skills/node_modules/playwright/package.json +6 -0
  2017. package/toolkit/skills/node_modules/react/index.js +3 -0
  2018. package/toolkit/skills/node_modules/react/package.json +6 -0
  2019. package/toolkit/skills/node_modules/react-dom/index.js +3 -0
  2020. package/toolkit/skills/node_modules/react-dom/package.json +6 -0
  2021. package/toolkit/skills/node_modules/sharp/index.js +3 -0
  2022. package/toolkit/skills/node_modules/sharp/package.json +6 -0
  2023. package/toolkit/skills/node_modules/vis-data/index.js +3 -0
  2024. package/toolkit/skills/node_modules/vis-data/package.json +6 -0
  2025. package/toolkit/skills/node_modules/vis-timeline/index.js +3 -0
  2026. package/toolkit/skills/node_modules/vis-timeline/package.json +6 -0
  2027. package/toolkit/skills/node_modules/zod/index.js +3 -0
  2028. package/toolkit/skills/node_modules/zod/package.json +6 -0
  2029. package/toolkit/skills/normal-flow/SKILL.md +24 -0
  2030. package/toolkit/skills/package.json +31 -0
  2031. package/toolkit/skills/project-doc-promote/SKILL.md +70 -0
  2032. package/toolkit/skills/project-engineering-workflow/SKILL.md +160 -0
  2033. package/toolkit/skills/project-engineering-workflow/references/active-long-task-short-contract.md +53 -0
  2034. package/toolkit/skills/project-engineering-workflow/references/advisory-review-short-contract.md +19 -0
  2035. package/toolkit/skills/project-engineering-workflow/references/ci-tracking-short-contract.md +73 -0
  2036. package/toolkit/skills/project-engineering-workflow/references/empirical-acceptance-short-contract.md +48 -0
  2037. package/toolkit/skills/project-engineering-workflow/references/execution-receipt-short-contract.md +31 -0
  2038. package/toolkit/skills/project-engineering-workflow/references/pr-diagnosis-short-contract.md +93 -0
  2039. package/toolkit/skills/project-engineering-workflow/references/pr-merge-procedure.md +67 -0
  2040. package/toolkit/skills/project-engineering-workflow/references/pr-publication-procedure.md +39 -0
  2041. package/toolkit/skills/project-engineering-workflow/references/release-planning-short-contract.md +27 -0
  2042. package/toolkit/skills/project-engineering-workflow/references/release-tracking-short-contract.md +49 -0
  2043. package/toolkit/skills/project-engineering-workflow/references/review-proof-short-contract.md +111 -0
  2044. package/toolkit/skills/project-engineering-workflow/scripts/base_alignment_helper.ts +4 -0
  2045. package/toolkit/skills/project-engineering-workflow/scripts/merge_preflight.ts +4 -0
  2046. package/toolkit/skills/project-engineering-workflow/scripts/test_base_alignment_helper.ts +1 -0
  2047. package/toolkit/skills/project-engineering-workflow/scripts/test_merge_preflight.ts +1 -0
  2048. package/toolkit/skills/rust-crate-release/SKILL.md +96 -0
  2049. package/toolkit/skills/rust-crate-release/references/cargo-package-checklist.md +52 -0
  2050. package/toolkit/skills/rust-crate-release/references/release-style.md +33 -0
  2051. package/toolkit/skills/rust-crate-release/templates/workflows/build.yml +44 -0
  2052. package/toolkit/skills/rust-crate-release/templates/workflows/release.yml +40 -0
  2053. package/toolkit/skills/solution-sync/SKILL.md +73 -0
  2054. package/toolkit/skills/solution-sync/agents/openai.yaml +4 -0
  2055. package/toolkit/skills/source-manifest.json +15988 -0
  2056. package/toolkit/skills/spec-sync/SKILL.md +82 -0
  2057. package/toolkit/skills/spec-sync/agents/openai.yaml +4 -0
  2058. package/toolkit/skills/spec-sync/scripts/spec_drift_check.sh +2316 -0
  2059. package/toolkit/skills/spec-sync/scripts/spec_drift_check.ts +4 -0
  2060. package/toolkit/skills/spec-sync/scripts/test_spec_drift_check.ts +1 -0
  2061. package/toolkit/skills/srv-101-ops/SKILL.md +73 -0
  2062. package/toolkit/skills/srv-101-ops/scripts/resolve-target +370 -0
  2063. package/toolkit/skills/storybook-screenshots/SKILL.md +213 -0
  2064. package/toolkit/skills/storybook-screenshots/agents/openai.yaml +4 -0
  2065. package/toolkit/skills/storybook-stories/SKILL.md +251 -0
  2066. package/toolkit/skills/storybook-stories/agents/openai.yaml +4 -0
  2067. package/toolkit/skills/storybook-stories/references/state-coverage.md +76 -0
  2068. package/toolkit/skills/support-manifest.json +61 -0
  2069. package/toolkit/skills/topic-spec/SKILL.md +70 -0
  2070. package/toolkit/skills/topic-spec/agents/openai.yaml +4 -0
  2071. package/toolkit/skills/topic-spec/templates/HISTORY.md +20 -0
  2072. package/toolkit/skills/topic-spec/templates/IMPLEMENTATION.md +32 -0
  2073. package/toolkit/skills/topic-spec/templates/SPEC.md +55 -0
  2074. package/toolkit/skills/topic-spec/templates/contracts/README.md +22 -0
  2075. package/toolkit/skills/topic-spec/templates/contracts/cli.md +33 -0
  2076. package/toolkit/skills/topic-spec/templates/contracts/db.md +23 -0
  2077. package/toolkit/skills/topic-spec/templates/contracts/events.md +27 -0
  2078. package/toolkit/skills/topic-spec/templates/contracts/file-formats.md +21 -0
  2079. package/toolkit/skills/topic-spec/templates/contracts/http-apis.md +35 -0
  2080. package/toolkit/skills/topic-spec/templates/contracts/rpc.md +35 -0
  2081. package/toolkit/skills/topic-spec/templates/legacy/PLAN.md +99 -0
  2082. package/toolkit/skills/topic-spec/templates/topic-spec-README.md +33 -0
  2083. package/toolkit/skills/ui-visual-evidence/SKILL.md +261 -0
  2084. package/toolkit/skills/ui-visual-evidence/agents/openai.yaml +4 -0
  2085. package/toolkit/skills/ui-visual-evidence/replay/cases.json +47 -0
  2086. package/toolkit/skills/ui-visual-evidence/scripts/compare_visual_evidence.ts +4 -0
  2087. package/toolkit/skills/ui-visual-evidence/scripts/pr_body_image_gate.ts +4 -0
  2088. package/toolkit/skills/ui-visual-evidence/scripts/test_compare_visual_evidence.ts +1 -0
  2089. package/toolkit/skills/ui-visual-evidence/scripts/test_pr_body_image_gate.ts +2 -0
  2090. package/toolkit/skills/ui-visual-evidence/scripts/test_trim_whitespace.ts +1 -0
  2091. package/toolkit/skills/ui-visual-evidence/scripts/trim_whitespace.ts +4 -0
@@ -0,0 +1,2316 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ BASE_REF=""
5
+ SPEC_FREE=0
6
+ ADR_REFS="${ADR_REFS:-}"
7
+ declare -a SPEC_PATHS=()
8
+ declare -a CHANGED_FILES=()
9
+ declare -a WORKTREE_CHANGED_FILES=()
10
+ declare -a DELETED_FILES=()
11
+ declare -a RENAME_OLD_FILES=()
12
+ declare -a RENAME_NEW_FILES=()
13
+ declare -a MERGE_COMMITS=()
14
+ declare -a RELATED_ADR_SECTION_REQUIRED_SPECS=()
15
+ declare -a related_adr_stream_paths=()
16
+ REPO_ROOT=""
17
+ INVOCATION_CWD=""
18
+ CURRENT_BRANCH=""
19
+ strict_spec_error=""
20
+ PARSE_STATUS=""
21
+ PARSE_PATH1=""
22
+ PARSE_PATH2=""
23
+ declare -a commit_spec_touched_flags=()
24
+ declare -a normalized_spec_roots=()
25
+
26
+ to_evidence_entry() {
27
+ local path="$1"
28
+ local sha=""
29
+
30
+ if [[ -f "$path" ]]; then
31
+ sha=$(git hash-object "$path" 2>/dev/null || true)
32
+ elif sha=$(git rev-parse --verify "HEAD:${path}" 2>/dev/null); then
33
+ :
34
+ fi
35
+
36
+ if [[ -z "$sha" ]]; then
37
+ sha="unknown"
38
+ fi
39
+
40
+ printf '%s@%s' "$path" "$sha"
41
+ }
42
+
43
+ evidence_csv() {
44
+ local out=""
45
+ local path
46
+ for path in "$@"; do
47
+ [[ -z "$path" ]] && continue
48
+ out="${out}$(to_evidence_entry "$path"),"
49
+ done
50
+ out="${out%,}"
51
+ printf '%s' "$out"
52
+ }
53
+
54
+ path_counts_as_spec_sync() {
55
+ local path="$1"
56
+ local root="$2"
57
+ local associated_spec="$3"
58
+ local rel=""
59
+ [[ -n "$root" ]] || return 1
60
+ [[ "$path" == "$root/"* ]] || return 1
61
+
62
+ rel="${path#"$root"/}"
63
+ case "$rel" in
64
+ SPEC.md|IMPLEMENTATION.md|HISTORY.md)
65
+ return 0
66
+ ;;
67
+ PLAN.md)
68
+ case "$associated_spec" in
69
+ docs/plan/*/PLAN.md|docs/specs/*/PLAN.md)
70
+ return 0
71
+ ;;
72
+ esac
73
+ ;;
74
+ contracts/*)
75
+ return 0
76
+ ;;
77
+ esac
78
+
79
+ return 1
80
+ }
81
+
82
+ add_spec_evidence() {
83
+ local path="$1"
84
+ local existing
85
+ [[ -z "$path" ]] && return 0
86
+
87
+ for existing in "${spec_evidence[@]-}"; do
88
+ if [[ "$existing" == "$path" ]]; then
89
+ return 0
90
+ fi
91
+ done
92
+
93
+ spec_evidence+=("$path")
94
+ }
95
+
96
+ validate_frozen_adr_refs() {
97
+ local binding=""
98
+ local path=""
99
+ local expected_blob=""
100
+ local actual_blob=""
101
+ local index_blob=""
102
+ local index_entry=""
103
+ local index_content=""
104
+ local previous_path=""
105
+ local requested_spec=""
106
+ local normalized_spec=""
107
+ local candidate_path=""
108
+ local require_index_section=0
109
+ local allow_index_legacy_list_none=0
110
+ local -a bindings=()
111
+ local -a frozen_paths=()
112
+ local -a candidate_paths=()
113
+ local -a index_candidate_paths=()
114
+ local -a all_candidate_paths=()
115
+ local -a all_index_candidate_paths=()
116
+ local -a canonical_candidate_paths=()
117
+ local -a canonical_index_candidate_paths=()
118
+
119
+ related_adr_error=""
120
+ [[ -z "$ADR_REFS" ]] && return 0
121
+ if [[ "$ADR_REFS" != "none" && ( "$ADR_REFS" == ,* || "$ADR_REFS" == *, || "$ADR_REFS" == *",,"* ) ]]; then
122
+ related_adr_error="invalid frozen ADR refs: empty entry"
123
+ return 1
124
+ fi
125
+ if [[ "$ADR_REFS" != "none" ]]; then
126
+ IFS=',' read -r -a bindings <<<"$ADR_REFS"
127
+ fi
128
+ for binding in "${bindings[@]-}"; do
129
+ [[ -n "$binding" ]] || continue
130
+ if [[ ! "$binding" =~ ^(docs/adr/[0-9]{4}-[a-z0-9]+(-[a-z0-9]+)*\.md)@([0-9a-f]{40})$ ]]; then
131
+ related_adr_error="invalid frozen ADR ref"
132
+ return 1
133
+ fi
134
+ path="${BASH_REMATCH[1]}"
135
+ expected_blob="${BASH_REMATCH[3]}"
136
+ if [[ -n "$previous_path" ]] && [[ "$path" < "$previous_path" || "$path" == "$previous_path" ]]; then
137
+ related_adr_error="invalid frozen ADR refs: paths must be unique and sorted"
138
+ return 1
139
+ fi
140
+ previous_path="$path"
141
+ frozen_paths+=("$path")
142
+ if [[ ! -f "$path" || -L "$path" ]]; then
143
+ related_adr_error="frozen ADR ref is not a regular candidate file: ${path}"
144
+ return 1
145
+ fi
146
+ index_entry="$(git ls-files -s -- "$path")"
147
+ if [[ ! "$index_entry" =~ ^(100644|100755)[[:space:]]+([0-9a-f]{40})[[:space:]]+0[[:space:]] ]]; then
148
+ related_adr_error="frozen ADR ref is not a regular index file: ${path}"
149
+ return 1
150
+ fi
151
+ index_blob="${BASH_REMATCH[2]}"
152
+ if [[ "$index_blob" != "$expected_blob" ]]; then
153
+ related_adr_error="frozen ADR ref drifted in index: ${path}"
154
+ return 1
155
+ fi
156
+ actual_blob="$(git hash-object "$path" 2>/dev/null || true)"
157
+ if [[ "$actual_blob" != "$expected_blob" ]]; then
158
+ related_adr_error="frozen ADR ref drifted: ${path}"
159
+ return 1
160
+ fi
161
+ done
162
+
163
+ for requested_spec in "${SPEC_PATHS[@]-}"; do
164
+ if normalized_spec="$(resolve_associated_spec_path "$(normalize_to_repo_rel "$requested_spec")")"; then
165
+ :
166
+ else
167
+ continue
168
+ fi
169
+ if [[ ! -f "$normalized_spec" || -L "$normalized_spec" ]]; then
170
+ related_adr_error="frozen ADR membership has no regular candidate Spec: ${normalized_spec}"
171
+ return 1
172
+ fi
173
+ candidate_paths=()
174
+ while IFS= read -r candidate_path; do
175
+ [[ -z "$candidate_path" ]] || candidate_paths+=("$candidate_path")
176
+ done < <(related_adr_paths_for_spec "$normalized_spec")
177
+ all_candidate_paths+=("${candidate_paths[@]-}")
178
+
179
+ # A staged SPEC.md is part of the candidate, so it must bind the same ADR list.
180
+ index_entry="$(git ls-files -s -- "$normalized_spec")"
181
+ if [[ -n "$index_entry" ]]; then
182
+ if [[ ! "$index_entry" =~ ^100644[[:space:]]+[0-9a-f]{40}[[:space:]]+0[[:space:]] ]]; then
183
+ related_adr_error="frozen ADR membership has no regular index Spec: ${normalized_spec}"
184
+ return 1
185
+ fi
186
+ if ! index_content="$(git show ":${normalized_spec}" 2>/dev/null)"; then
187
+ related_adr_error="frozen ADR membership cannot read index Spec: ${normalized_spec}"
188
+ return 1
189
+ fi
190
+ require_index_section=0
191
+ allow_index_legacy_list_none=0
192
+ if source_path_requires_related_adrs "$requested_spec" "$normalized_spec"; then
193
+ require_index_section=1
194
+ fi
195
+ if spec_allows_legacy_related_adrs_none "$normalized_spec"; then
196
+ allow_index_legacy_list_none=1
197
+ fi
198
+ if ! validate_related_adr_entries_from_stream "index ${normalized_spec}" "$require_index_section" "$allow_index_legacy_list_none" <<<"$index_content"; then
199
+ return 1
200
+ fi
201
+ index_candidate_paths=("${related_adr_stream_paths[@]-}")
202
+ all_index_candidate_paths+=("${index_candidate_paths[@]-}")
203
+ fi
204
+ done
205
+
206
+ while IFS= read -r candidate_path; do
207
+ [[ -z "$candidate_path" ]] || canonical_candidate_paths+=("$candidate_path")
208
+ done < <(printf '%s\n' "${all_candidate_paths[@]-}" | LC_ALL=C sort -u)
209
+ if [[ "${canonical_candidate_paths[*]-}" != "${frozen_paths[*]-}" ]]; then
210
+ related_adr_error="frozen ADR membership drifted across candidate Specs"
211
+ return 1
212
+ fi
213
+
214
+ while IFS= read -r candidate_path; do
215
+ [[ -z "$candidate_path" ]] || canonical_index_candidate_paths+=("$candidate_path")
216
+ done < <(printf '%s\n' "${all_index_candidate_paths[@]-}" | LC_ALL=C sort -u)
217
+ if [[ "${canonical_index_candidate_paths[*]-}" != "${frozen_paths[*]-}" ]]; then
218
+ related_adr_error="frozen ADR membership drifted in index across candidate Specs"
219
+ return 1
220
+ fi
221
+ }
222
+
223
+ related_adr_paths_from_stream() {
224
+ local line=""
225
+ local in_section=0
226
+
227
+ while IFS= read -r line; do
228
+ if [[ "$line" =~ ^##[[:space:]]+ ]]; then
229
+ [[ "$line" == "## Related ADRs" || "$line" =~ ^##\ Related\ ADRs[[:space:]]+$ ]] && {
230
+ in_section=1
231
+ continue
232
+ }
233
+ [[ $in_section -eq 1 ]] && break
234
+ fi
235
+ [[ $in_section -eq 1 ]] || continue
236
+ if [[ "$line" =~ ^-\ \[[^]]+\]\(\.\./\.\./(adr/[0-9]{4}-[a-z0-9]+(-[a-z0-9]+)*\.md)\)$ ]]; then
237
+ printf 'docs/%s\n' "${BASH_REMATCH[1]}"
238
+ fi
239
+ done
240
+ }
241
+
242
+ related_adr_paths_for_spec() {
243
+ local spec="$1"
244
+
245
+ [[ "$spec" == docs/specs/*/SPEC.md && -f "$spec" && ! -L "$spec" ]] || return 0
246
+ related_adr_paths_from_stream < "$spec"
247
+ }
248
+
249
+ validate_related_adr_entries_from_stream() {
250
+ local label="$1"
251
+ local require_section="$2"
252
+ local allow_legacy_list_none="${3:-0}"
253
+ local line=""
254
+ local in_section=0
255
+ local heading_count=0
256
+ local none_count=0
257
+ local saw_link=0
258
+ local path=""
259
+ local previous_path=""
260
+
261
+ related_adr_stream_paths=()
262
+ while IFS= read -r line; do
263
+ if [[ "$line" =~ ^##\ Related\ ADRs[[:space:]]*$ ]]; then
264
+ heading_count=$((heading_count + 1))
265
+ in_section=1
266
+ continue
267
+ fi
268
+ if [[ "$line" =~ ^##[[:space:]]+ ]] && [[ $in_section -eq 1 ]]; then
269
+ in_section=0
270
+ continue
271
+ fi
272
+ [[ $in_section -eq 1 ]] || continue
273
+ [[ -z "${line//[[:space:]]/}" ]] && continue
274
+ if [[ "$line" == "None" ]] || [[ "$allow_legacy_list_none" -eq 1 && "$line" == "- None" ]]; then
275
+ none_count=$((none_count + 1))
276
+ continue
277
+ fi
278
+ if [[ "$line" =~ ^-\ \[[^]]+\]\(\.\./\.\./(adr/[[:digit:]]{4}-[a-z0-9]+(-[a-z0-9]+)*\.md)\)$ ]]; then
279
+ path="docs/${BASH_REMATCH[1]}"
280
+ if [[ -n "$previous_path" ]] && [[ "$path" < "$previous_path" || "$path" == "$previous_path" ]]; then
281
+ related_adr_error="invalid Related ADRs in ${label}: ADR paths must be unique and sorted"
282
+ return 1
283
+ fi
284
+ previous_path="$path"
285
+ related_adr_stream_paths+=("$path")
286
+ saw_link=1
287
+ continue
288
+ fi
289
+ related_adr_error="invalid Related ADRs in ${label}: entries must be None or canonical ADR links"
290
+ return 1
291
+ done
292
+
293
+ if [[ "$heading_count" == "0" ]]; then
294
+ if [[ "$require_section" -eq 1 ]]; then
295
+ related_adr_error="invalid Related ADRs in ${label}: slug-only Specs require the section"
296
+ return 1
297
+ fi
298
+ return 0
299
+ fi
300
+ if [[ "$heading_count" != "1" ]]; then
301
+ related_adr_error="invalid Related ADRs in ${label}: section must appear exactly once"
302
+ return 1
303
+ fi
304
+ if [[ "$none_count" -gt 0 && "$saw_link" -eq 1 ]] || [[ "$none_count" -ne 1 && "$saw_link" -eq 0 ]]; then
305
+ related_adr_error="invalid Related ADRs in ${label}: use exactly None or one or more ADR links"
306
+ return 1
307
+ fi
308
+ return 0
309
+ }
310
+
311
+ add_related_adr_target() {
312
+ local target="$1"
313
+ local existing=""
314
+
315
+ for existing in "${related_adr_targets[@]-}"; do
316
+ [[ "$existing" == "$target" ]] && return 0
317
+ done
318
+ related_adr_targets+=("$target")
319
+ }
320
+
321
+ referencing_specs_for_adr() {
322
+ local adr_path="$1"
323
+ local adr_relative="${adr_path#docs/}"
324
+ local candidate=""
325
+
326
+ while IFS= read -r candidate; do
327
+ [[ -f "$candidate" ]] || continue
328
+ if grep -Fq "(../../${adr_relative})" "$candidate"; then
329
+ printf '%s\n' "$candidate"
330
+ fi
331
+ done < <(find docs/specs -mindepth 2 -maxdepth 2 -type f -name SPEC.md -print 2>/dev/null)
332
+ }
333
+
334
+ path_is_grandfathered_legacy_spec_rename() {
335
+ local new_spec_path="$1"
336
+ local compare_ref="$2"
337
+ local old_spec_path=""
338
+ local old_root=""
339
+ local old_implementation=""
340
+ local old_history=""
341
+ local idx=0
342
+
343
+ [[ -n "$new_spec_path" ]] || return 1
344
+ while [[ $idx -lt ${#RENAME_NEW_FILES[@]} ]]; do
345
+ old_spec_path="${RENAME_OLD_FILES[$idx]}"
346
+ if [[ "${RENAME_NEW_FILES[$idx]}" != "$new_spec_path" ]]; then
347
+ idx=$((idx + 1))
348
+ continue
349
+ fi
350
+
351
+ legacy_spec_rename_matches "$old_spec_path" "$new_spec_path" "direct-rename" || {
352
+ idx=$((idx + 1))
353
+ continue
354
+ }
355
+
356
+ if ! git rev-parse --verify "${compare_ref}:${old_spec_path}" >/dev/null 2>&1; then
357
+ idx=$((idx + 1))
358
+ continue
359
+ fi
360
+
361
+ old_root="$(dirname "$old_spec_path")"
362
+ old_implementation="${old_root}/IMPLEMENTATION.md"
363
+ old_history="${old_root}/HISTORY.md"
364
+ if git rev-parse --verify "${compare_ref}:${old_implementation}" >/dev/null 2>&1 \
365
+ || git rev-parse --verify "${compare_ref}:${old_history}" >/dev/null 2>&1; then
366
+ idx=$((idx + 1))
367
+ continue
368
+ fi
369
+
370
+ return 0
371
+ done
372
+
373
+ for old_spec_path in "${DELETED_FILES[@]-}"; do
374
+ case "$old_spec_path" in
375
+ docs/specs/*/SPEC.md)
376
+ ;;
377
+ *)
378
+ continue
379
+ ;;
380
+ esac
381
+
382
+ [[ "$old_spec_path" != "$new_spec_path" ]] || continue
383
+ legacy_spec_rename_matches "$old_spec_path" "$new_spec_path" || continue
384
+ if ! git rev-parse --verify "${compare_ref}:${old_spec_path}" >/dev/null 2>&1; then
385
+ continue
386
+ fi
387
+
388
+ old_root="$(dirname "$old_spec_path")"
389
+ old_implementation="${old_root}/IMPLEMENTATION.md"
390
+ old_history="${old_root}/HISTORY.md"
391
+ if git rev-parse --verify "${compare_ref}:${old_implementation}" >/dev/null 2>&1 \
392
+ || git rev-parse --verify "${compare_ref}:${old_history}" >/dev/null 2>&1; then
393
+ continue
394
+ fi
395
+
396
+ return 0
397
+ done
398
+
399
+ return 1
400
+ }
401
+
402
+ find_grandfathered_legacy_spec_move_destination() {
403
+ local old_spec_path="$1"
404
+ local compare_ref="$2"
405
+ local candidate=""
406
+ local old_root=""
407
+ local old_implementation=""
408
+ local old_history=""
409
+
410
+ [[ -n "$old_spec_path" ]] || return 1
411
+ case "$old_spec_path" in
412
+ docs/specs/*/SPEC.md)
413
+ ;;
414
+ *)
415
+ return 1
416
+ ;;
417
+ esac
418
+
419
+ if ! git rev-parse --verify "${compare_ref}:${old_spec_path}" >/dev/null 2>&1; then
420
+ return 1
421
+ fi
422
+
423
+ old_root="$(dirname "$old_spec_path")"
424
+ old_implementation="${old_root}/IMPLEMENTATION.md"
425
+ old_history="${old_root}/HISTORY.md"
426
+ if git rev-parse --verify "${compare_ref}:${old_implementation}" >/dev/null 2>&1 \
427
+ || git rev-parse --verify "${compare_ref}:${old_history}" >/dev/null 2>&1; then
428
+ return 1
429
+ fi
430
+
431
+ for candidate in "${CHANGED_FILES[@]-}"; do
432
+ case "$candidate" in
433
+ docs/specs/*/SPEC.md)
434
+ ;;
435
+ *)
436
+ continue
437
+ ;;
438
+ esac
439
+
440
+ [[ "$candidate" != "$old_spec_path" ]] || continue
441
+ legacy_spec_rename_matches "$old_spec_path" "$candidate" || continue
442
+ path_deleted "$candidate" && continue
443
+ if [[ -e "$candidate" || -L "$candidate" ]]; then
444
+ printf '%s' "$candidate"
445
+ return 0
446
+ fi
447
+ done
448
+
449
+ return 1
450
+ }
451
+
452
+ find_moved_spec_target_destination() {
453
+ local old_spec_path="$1"
454
+ local old_id=""
455
+ local candidate=""
456
+ local existing=""
457
+ local duplicate=0
458
+ local nullglob_was_set=0
459
+ local -a candidate_inputs=()
460
+ local -a candidates=()
461
+
462
+ [[ -n "$old_spec_path" ]] || return 1
463
+ case "$old_spec_path" in
464
+ docs/specs/*/SPEC.md)
465
+ ;;
466
+ *)
467
+ return 1
468
+ ;;
469
+ esac
470
+
471
+ local idx=0
472
+ while [[ $idx -lt ${#RENAME_OLD_FILES[@]} ]]; do
473
+ if [[ "${RENAME_OLD_FILES[$idx]}" == "$old_spec_path" ]] \
474
+ && [[ "${RENAME_NEW_FILES[$idx]}" == docs/specs/*/SPEC.md ]] \
475
+ && [[ -e "${RENAME_NEW_FILES[$idx]}" || -L "${RENAME_NEW_FILES[$idx]}" ]] \
476
+ && legacy_spec_rename_matches "$old_spec_path" "${RENAME_NEW_FILES[$idx]}" "direct-rename"; then
477
+ printf '%s' "${RENAME_NEW_FILES[$idx]}"
478
+ return 0
479
+ fi
480
+ idx=$((idx + 1))
481
+ done
482
+
483
+ legacy_identity_catalog_proven "$old_spec_path" || return 1
484
+ old_id="$(extract_spec_id_from_path "$old_spec_path")"
485
+ [[ -n "$old_id" ]] || return 1
486
+ candidate_inputs=("${CHANGED_FILES[@]-}")
487
+ if shopt -q nullglob; then
488
+ nullglob_was_set=1
489
+ fi
490
+ shopt -s nullglob
491
+ candidate_inputs+=(docs/specs/"${old_id}"-*/SPEC.md docs/specs/"${old_id}":*/SPEC.md)
492
+ if [[ "$nullglob_was_set" -eq 0 ]]; then
493
+ shopt -u nullglob
494
+ fi
495
+
496
+ for candidate in "${candidate_inputs[@]-}"; do
497
+ case "$candidate" in
498
+ docs/specs/*/SPEC.md)
499
+ ;;
500
+ *)
501
+ continue
502
+ ;;
503
+ esac
504
+
505
+ [[ "$candidate" != "$old_spec_path" ]] || continue
506
+ legacy_spec_rename_matches "$old_spec_path" "$candidate" || continue
507
+ path_deleted "$candidate" && continue
508
+ [[ -e "$candidate" || -L "$candidate" ]] || continue
509
+ duplicate=0
510
+ for existing in "${candidates[@]-}"; do
511
+ [[ "$existing" == "$candidate" ]] && duplicate=1
512
+ done
513
+ [[ "$duplicate" -eq 1 ]] || candidates+=("$candidate")
514
+ done
515
+
516
+ if [[ ${#candidates[@]} -eq 1 ]]; then
517
+ printf '%s' "${candidates[0]}"
518
+ return 0
519
+ fi
520
+ if [[ ${#candidates[@]} -gt 1 ]]; then
521
+ return 2
522
+ fi
523
+
524
+ return 1
525
+ }
526
+
527
+ spec_compare_ref_for_required_files() {
528
+ if [[ -n "${BASE_REF:-}" ]]; then
529
+ printf '%s' "$BASE_REF"
530
+ return 0
531
+ fi
532
+
533
+ printf 'HEAD'
534
+ }
535
+
536
+ canonical_spec_path_for_legacy_plan() {
537
+ local spec_path="$1"
538
+ local topic_slug=""
539
+
540
+ case "$spec_path" in
541
+ docs/plan/*/PLAN.md|docs/specs/*/PLAN.md)
542
+ ;;
543
+ *)
544
+ return 1
545
+ ;;
546
+ esac
547
+
548
+ topic_slug="$(legacy_topic_slug_from_path "$spec_path")" || return 1
549
+ printf 'docs/specs/%s/SPEC.md' "$topic_slug"
550
+ }
551
+
552
+ required_spec_files_for_spec_path() {
553
+ local spec_path="$1"
554
+ local root=""
555
+ local implementation_path=""
556
+ local history_path=""
557
+ local spec_is_new_root=0
558
+ local compare_ref=""
559
+ local canonical_spec_path=""
560
+ local canonical_root=""
561
+ local base_has_companions=0
562
+
563
+ case "$spec_path" in
564
+ docs/plan/*/PLAN.md|docs/specs/*/PLAN.md)
565
+ compare_ref="$(spec_compare_ref_for_required_files)"
566
+ if git rev-parse --verify "${compare_ref}:${spec_path}" >/dev/null 2>&1; then
567
+ printf '%s\n' "$spec_path"
568
+ return 0
569
+ fi
570
+
571
+ canonical_spec_path="$(canonical_spec_path_for_legacy_plan "$spec_path" || true)"
572
+ if [[ -z "$canonical_spec_path" ]]; then
573
+ printf '%s\n' "$spec_path"
574
+ return 0
575
+ fi
576
+
577
+ canonical_root="$(dirname "$canonical_spec_path")"
578
+ printf '%s\n' "$canonical_spec_path" \
579
+ "${canonical_root}/IMPLEMENTATION.md" \
580
+ "${canonical_root}/HISTORY.md"
581
+ return 0
582
+ ;;
583
+ esac
584
+
585
+ root="$(dirname "$spec_path")"
586
+ implementation_path="${root}/IMPLEMENTATION.md"
587
+ history_path="${root}/HISTORY.md"
588
+ compare_ref="$(spec_compare_ref_for_required_files)"
589
+
590
+ printf '%s\n' "${root}/SPEC.md"
591
+ if ! git rev-parse --verify "${compare_ref}:${spec_path}" >/dev/null 2>&1; then
592
+ if ! path_is_grandfathered_legacy_spec_rename "$spec_path" "$compare_ref"; then
593
+ spec_is_new_root=1
594
+ fi
595
+ fi
596
+ if git rev-parse --verify "${compare_ref}:${implementation_path}" >/dev/null 2>&1 \
597
+ || git rev-parse --verify "${compare_ref}:${history_path}" >/dev/null 2>&1; then
598
+ base_has_companions=1
599
+ fi
600
+ if [[ -e "$implementation_path" || -L "$implementation_path" || -e "$history_path" || -L "$history_path" ]] \
601
+ || [[ $spec_is_new_root -eq 1 ]] \
602
+ || [[ $base_has_companions -eq 1 ]] \
603
+ || path_deleted "$implementation_path" \
604
+ || path_deleted "$history_path"; then
605
+ printf '%s\n' "$implementation_path" "$history_path"
606
+ fi
607
+ }
608
+
609
+ spec_target_from_changed_path() {
610
+ local path="$1"
611
+ local rel=""
612
+
613
+ case "$path" in
614
+ docs/plan/*)
615
+ rel="${path#docs/plan/}"
616
+ [[ "$rel" == */* ]] || return 1
617
+ printf 'docs/plan/%s/PLAN.md' "${rel%%/*}"
618
+ return 0
619
+ ;;
620
+ docs/specs/*/PLAN.md)
621
+ printf '%s' "$path"
622
+ return 0
623
+ ;;
624
+ docs/specs/*)
625
+ rel="${path#docs/specs/}"
626
+ [[ "$rel" == */* ]] || return 1
627
+ printf 'docs/specs/%s/SPEC.md' "${rel%%/*}"
628
+ return 0
629
+ ;;
630
+ esac
631
+
632
+ return 1
633
+ }
634
+
635
+ spec_root_has_deleted_required_file() {
636
+ local spec_root="$1"
637
+
638
+ path_deleted "${spec_root}/SPEC.md" && return 0
639
+ path_deleted "${spec_root}/IMPLEMENTATION.md" && return 0
640
+ path_deleted "${spec_root}/HISTORY.md" && return 0
641
+
642
+ return 1
643
+ }
644
+
645
+ normalize_to_repo_rel() {
646
+ local path="$1"
647
+ local p="$path"
648
+ local repo_phys=""
649
+ local p_phys=""
650
+ local alt_phys=""
651
+ local candidate_abs=""
652
+
653
+ while [[ "$p" == ./* ]]; do
654
+ p="${p#./}"
655
+ done
656
+
657
+ if [[ -n "$REPO_ROOT" ]]; then
658
+ repo_phys="$(cd "$REPO_ROOT" 2>/dev/null && pwd -P || printf '%s' "$REPO_ROOT")"
659
+ fi
660
+
661
+ if [[ "$p" == /* ]]; then
662
+ if [[ -e "$p" || -L "$p" ]]; then
663
+ p_phys="$(
664
+ cd "$(dirname "$p")" 2>/dev/null && printf '%s/%s' "$(pwd -P)" "$(basename "$p")"
665
+ )"
666
+ else
667
+ p_phys="$p"
668
+ fi
669
+
670
+ if [[ -n "$repo_phys" ]] && [[ "$p_phys" == "$repo_phys/"* ]]; then
671
+ p="${p_phys#"$repo_phys"/}"
672
+ elif [[ "$p_phys" == /private/* ]]; then
673
+ alt_phys="/${p_phys#/private/}"
674
+ if [[ -n "$repo_phys" ]] && [[ "$alt_phys" == "$repo_phys/"* ]]; then
675
+ p="${alt_phys#"$repo_phys"/}"
676
+ else
677
+ p="$p_phys"
678
+ fi
679
+ else
680
+ p="$p_phys"
681
+ fi
682
+ elif [[ -n "$INVOCATION_CWD" ]]; then
683
+ candidate_abs="${INVOCATION_CWD}/${p}"
684
+ if [[ -e "$candidate_abs" || -L "$candidate_abs" ]]; then
685
+ p_phys="$(
686
+ cd "$(dirname "$candidate_abs")" 2>/dev/null && printf '%s/%s' "$(pwd -P)" "$(basename "$candidate_abs")"
687
+ )"
688
+ if [[ -n "$repo_phys" ]] && [[ "$p_phys" == "$repo_phys/"* ]]; then
689
+ p="${p_phys#"$repo_phys"/}"
690
+ elif [[ "$p_phys" == /private/* ]]; then
691
+ alt_phys="/${p_phys#/private/}"
692
+ if [[ -n "$repo_phys" ]] && [[ "$alt_phys" == "$repo_phys/"* ]]; then
693
+ p="${alt_phys#"$repo_phys"/}"
694
+ else
695
+ p="$p_phys"
696
+ fi
697
+ else
698
+ p="$p_phys"
699
+ fi
700
+ fi
701
+ elif [[ -n "$repo_phys" ]] && [[ "$p" == "$repo_phys/"* ]]; then
702
+ p="${p#"$repo_phys"/}"
703
+ elif [[ -n "$REPO_ROOT" ]] && [[ "$p" == "$REPO_ROOT/"* ]]; then
704
+ p="${p#"$REPO_ROOT"/}"
705
+ fi
706
+
707
+ printf '%s' "$p"
708
+ }
709
+
710
+ extract_spec_id_from_path() {
711
+ local path="$1"
712
+ local dir=""
713
+ local base=""
714
+
715
+ case "$path" in
716
+ docs/specs/*/*|docs/plan/*/*)
717
+ dir="$(basename "$(dirname "$path")")"
718
+ ;;
719
+ *)
720
+ printf ''
721
+ return 0
722
+ ;;
723
+ esac
724
+
725
+ if [[ "$dir" == *-* ]]; then
726
+ base="${dir%%-*}"
727
+ elif [[ "$dir" == *:* ]]; then
728
+ base="${dir%%:*}"
729
+ else
730
+ base="$dir"
731
+ fi
732
+
733
+ printf '%s' "$base"
734
+ }
735
+
736
+ legacy_topic_slug_from_dir() {
737
+ local dir="$1"
738
+ local topic="$dir"
739
+
740
+ if [[ "$topic" =~ ^[0-9]{4}[-:] ]]; then
741
+ topic="${topic:5}"
742
+ elif [[ "$topic" =~ ^[[:alnum:]]{5}[-:] ]]; then
743
+ topic="${topic:6}"
744
+ fi
745
+
746
+ printf '%s' "$topic"
747
+ }
748
+
749
+ is_legacy_spec_dir_name() {
750
+ local dir="$1"
751
+
752
+ [[ "$dir" =~ ^[0-9]{4}($|[-:]) ]] \
753
+ || [[ "$dir" =~ ^[[:alnum:]]{5}[-:] ]]
754
+ }
755
+
756
+ legacy_history_proves_id() {
757
+ local source_path="$1"
758
+ local dir=""
759
+ local legacy_id=""
760
+ local topic_slug=""
761
+ local history_path=""
762
+
763
+ dir="$(basename "$(dirname "$source_path")")"
764
+ is_legacy_spec_dir_name "$dir" || return 1
765
+ legacy_id="$(extract_spec_id_from_path "$source_path")"
766
+ topic_slug="$(legacy_topic_slug_from_dir "$dir")"
767
+ history_path="docs/specs/${topic_slug}/HISTORY.md"
768
+ [[ -n "$legacy_id" && -f "$history_path" ]] || return 1
769
+
770
+ grep -Eq "^[[:space:]]*-[[:space:]]*Legacy compatibility identity:[[:space:]]*\`#?${legacy_id}\`([[:space:]]|\.|$)" "$history_path"
771
+ }
772
+
773
+ spec_allows_legacy_related_adrs_none() {
774
+ local spec="$1"
775
+
776
+ legacy_identity_catalog_proven "$spec" || legacy_history_proves_id "$spec"
777
+ }
778
+
779
+ catalog_stream_confirms_legacy_id() {
780
+ local legacy_id="$1"
781
+ local source_path="$2"
782
+ local relative_path="$3"
783
+
784
+ awk -v expected_id="$legacy_id" -v full_path="$source_path" -v relative_path="$relative_path" '
785
+ function clean(value) {
786
+ sub(/^[[:space:]]+/, "", value)
787
+ sub(/[[:space:]]+$/, "", value)
788
+ gsub(/`/, "", value)
789
+ return value
790
+ }
791
+
792
+ /^[[:space:]]*\|/ {
793
+ row = $0
794
+ sub(/^[[:space:]]*\|/, "", row)
795
+ sub(/\|[[:space:]]*$/, "", row)
796
+ count = split(row, cells, "|")
797
+ for (column = 1; column <= count; column++) {
798
+ cells[column] = clean(cells[column])
799
+ }
800
+
801
+ if (tolower(cells[1]) == "id") {
802
+ header_seen = 1
803
+ id_column = 0
804
+ path_count = 0
805
+ for (column = 1; column <= count; column++) {
806
+ header = tolower(cells[column])
807
+ if (header == "id") {
808
+ id_column = column
809
+ }
810
+ if (header == "spec" || header == "plan" || header == "path") {
811
+ path_columns[++path_count] = column
812
+ }
813
+ }
814
+ next
815
+ }
816
+
817
+ if (!header_seen || !id_column || !path_count || tolower(cells[id_column]) != tolower(expected_id)) {
818
+ next
819
+ }
820
+ for (column = 1; column <= path_count; column++) {
821
+ path_value = cells[path_columns[column]]
822
+ if (path_value == full_path || path_value == relative_path) {
823
+ found = 1
824
+ }
825
+ }
826
+ }
827
+
828
+ END { exit(found ? 0 : 1) }
829
+ '
830
+ }
831
+
832
+ legacy_identity_catalog_proven() {
833
+ local source_path="$1"
834
+ local dir=""
835
+ local legacy_id=""
836
+ local catalog_path=""
837
+ local relative_path=""
838
+ local ref=""
839
+
840
+ case "$source_path" in
841
+ docs/plan/*)
842
+ catalog_path="docs/plan/README.md"
843
+ relative_path="${source_path#docs/plan/}"
844
+ ;;
845
+ docs/specs/*)
846
+ catalog_path="docs/specs/README.md"
847
+ relative_path="${source_path#docs/specs/}"
848
+ ;;
849
+ *)
850
+ return 1
851
+ ;;
852
+ esac
853
+
854
+ dir="$(basename "$(dirname "$source_path")")"
855
+ is_legacy_spec_dir_name "$dir" || return 1
856
+ legacy_id="$(extract_spec_id_from_path "$source_path")"
857
+ [[ -n "$legacy_id" ]] || return 1
858
+
859
+ if [[ -f "$catalog_path" ]] \
860
+ && catalog_stream_confirms_legacy_id "$legacy_id" "$source_path" "$relative_path" < "$catalog_path"; then
861
+ return 0
862
+ fi
863
+
864
+ for ref in "$BASE_REF" HEAD; do
865
+ [[ -n "$ref" ]] || continue
866
+ if git show "${ref}:${catalog_path}" 2>/dev/null \
867
+ | catalog_stream_confirms_legacy_id "$legacy_id" "$source_path" "$relative_path"; then
868
+ return 0
869
+ fi
870
+ done
871
+
872
+ return 1
873
+ }
874
+
875
+ legacy_topic_slug_from_path() {
876
+ local source_path="$1"
877
+ local proof_source="${2:-catalog}"
878
+ local dir=""
879
+
880
+ case "$proof_source" in
881
+ catalog|direct-rename)
882
+ legacy_identity_catalog_proven "$source_path" || return 1
883
+ ;;
884
+ *)
885
+ return 1
886
+ ;;
887
+ esac
888
+
889
+ dir="$(basename "$(dirname "$source_path")")"
890
+ is_legacy_spec_dir_name "$dir" || return 1
891
+ legacy_topic_slug_from_dir "$dir"
892
+ }
893
+
894
+ legacy_spec_rename_matches() {
895
+ local old_spec_path="$1"
896
+ local new_spec_path="$2"
897
+ local proof_source="${3:-catalog}"
898
+ local old_dir=""
899
+ local new_dir=""
900
+ local old_id=""
901
+ local new_id=""
902
+ local old_topic=""
903
+
904
+ case "$old_spec_path:$new_spec_path" in
905
+ docs/specs/*/SPEC.md:docs/specs/*/SPEC.md)
906
+ ;;
907
+ *)
908
+ return 1
909
+ ;;
910
+ esac
911
+
912
+ old_dir="$(basename "$(dirname "$old_spec_path")")"
913
+ new_dir="$(basename "$(dirname "$new_spec_path")")"
914
+ is_legacy_spec_dir_name "$old_dir" || return 1
915
+
916
+ old_id="$(extract_spec_id_from_path "$old_spec_path")"
917
+ old_topic="$(legacy_topic_slug_from_path "$old_spec_path" "$proof_source")" || return 1
918
+ if is_legacy_spec_dir_name "$new_dir"; then
919
+ new_id="$(extract_spec_id_from_path "$new_spec_path")"
920
+ [[ -n "$old_id" && "$old_id" == "$new_id" ]]
921
+ return
922
+ fi
923
+
924
+ [[ "$new_dir" == "$old_topic" ]]
925
+ }
926
+
927
+ resolve_legacy_plan_canonical_path() {
928
+ local path="$1"
929
+ local dir_rel=""
930
+ local topic_slug=""
931
+ local legacy_id=""
932
+ local candidate=""
933
+ local existing=""
934
+ local duplicate=0
935
+ local mapping_proven=0
936
+ local -a candidates=()
937
+
938
+ case "$path" in
939
+ docs/plan/*/PLAN.md)
940
+ dir_rel="${path#docs/plan/}"
941
+ dir_rel="${dir_rel%/PLAN.md}"
942
+ ;;
943
+ docs/specs/*/PLAN.md)
944
+ dir_rel="${path#docs/specs/}"
945
+ dir_rel="${dir_rel%/PLAN.md}"
946
+ ;;
947
+ *)
948
+ return 1
949
+ ;;
950
+ esac
951
+
952
+ if topic_slug="$(legacy_topic_slug_from_path "$path")"; then
953
+ mapping_proven=1
954
+ legacy_id="$(extract_spec_id_from_path "$path")"
955
+ fi
956
+
957
+ for candidate in "docs/specs/${dir_rel}/SPEC.md"; do
958
+ [[ -f "$candidate" || -L "$candidate" ]] || continue
959
+ duplicate=0
960
+ for existing in "${candidates[@]-}"; do
961
+ [[ "$existing" == "$candidate" ]] && duplicate=1
962
+ done
963
+ [[ $duplicate -eq 1 ]] || candidates+=("$candidate")
964
+ done
965
+
966
+ if [[ $mapping_proven -eq 1 ]]; then
967
+ candidate="docs/specs/${topic_slug}/SPEC.md"
968
+ if [[ -f "$candidate" || -L "$candidate" ]]; then
969
+ duplicate=0
970
+ for existing in "${candidates[@]-}"; do
971
+ [[ "$existing" == "$candidate" ]] && duplicate=1
972
+ done
973
+ [[ $duplicate -eq 1 ]] || candidates+=("$candidate")
974
+ fi
975
+
976
+ for candidate in docs/specs/"${legacy_id}"-*/SPEC.md docs/specs/"${legacy_id}":*/SPEC.md; do
977
+ [[ -f "$candidate" || -L "$candidate" ]] || continue
978
+ duplicate=0
979
+ for existing in "${candidates[@]-}"; do
980
+ [[ "$existing" == "$candidate" ]] && duplicate=1
981
+ done
982
+ [[ $duplicate -eq 1 ]] || candidates+=("$candidate")
983
+ done
984
+ fi
985
+
986
+ if [[ ${#candidates[@]} -eq 1 ]]; then
987
+ printf '%s' "${candidates[0]}"
988
+ return 0
989
+ fi
990
+ if [[ ${#candidates[@]} -gt 1 ]]; then
991
+ return 2
992
+ fi
993
+ return 1
994
+ }
995
+
996
+ resolve_legacy_spec_canonical_path() {
997
+ local path="$1"
998
+ local dir_rel=""
999
+ local dir_name=""
1000
+ local topic_slug=""
1001
+ local legacy_id=""
1002
+ local candidate=""
1003
+ local existing=""
1004
+ local duplicate=0
1005
+ local -a candidates=()
1006
+
1007
+ case "$path" in
1008
+ docs/specs/*/SPEC.md)
1009
+ dir_rel="${path#docs/specs/}"
1010
+ dir_rel="${dir_rel%/SPEC.md}"
1011
+ ;;
1012
+ *)
1013
+ return 1
1014
+ ;;
1015
+ esac
1016
+
1017
+ dir_name="$(basename "$dir_rel")"
1018
+
1019
+ # Legacy directories remain readable for checkout compatibility, but the
1020
+ # The slug-only directory is the only writable source of truth once it
1021
+ # exists. The explicit identity proof is sufficient to route a stale,
1022
+ # read-only compatibility copy to that canonical path.
1023
+ if [[ -e "$path" || -L "$path" ]] \
1024
+ && is_legacy_spec_dir_name "$dir_name" \
1025
+ && (legacy_identity_catalog_proven "$path" || legacy_history_proves_id "$path"); then
1026
+ topic_slug="$(legacy_topic_slug_from_dir "$dir_name")"
1027
+ candidate="docs/specs/${topic_slug}/SPEC.md"
1028
+ if [[ -f "$candidate" || -L "$candidate" ]] && [[ "$candidate" != "$path" ]]; then
1029
+ printf '%s' "$candidate"
1030
+ return 0
1031
+ fi
1032
+ fi
1033
+
1034
+ if [[ -e "$path" || -L "$path" ]]; then
1035
+ printf '%s' "$path"
1036
+ return 0
1037
+ fi
1038
+
1039
+ if candidate="$(find_moved_spec_target_destination "$path")"; then
1040
+ printf '%s' "$candidate"
1041
+ return 0
1042
+ fi
1043
+
1044
+ topic_slug="$(legacy_topic_slug_from_path "$path")" || return 1
1045
+ legacy_id="$(extract_spec_id_from_path "$path")"
1046
+
1047
+ for candidate in "docs/specs/${topic_slug}/SPEC.md" docs/specs/"${legacy_id}"-*/SPEC.md docs/specs/"${legacy_id}":*/SPEC.md; do
1048
+ [[ -f "$candidate" || -L "$candidate" ]] || continue
1049
+ duplicate=0
1050
+ for existing in "${candidates[@]-}"; do
1051
+ [[ "$existing" == "$candidate" ]] && duplicate=1
1052
+ done
1053
+ [[ $duplicate -eq 1 ]] || candidates+=("$candidate")
1054
+ done
1055
+
1056
+ if [[ ${#candidates[@]} -eq 1 ]]; then
1057
+ printf '%s' "${candidates[0]}"
1058
+ return 0
1059
+ fi
1060
+ if [[ ${#candidates[@]} -gt 1 ]]; then
1061
+ return 2
1062
+ fi
1063
+ return 1
1064
+ }
1065
+
1066
+ resolve_associated_spec_path() {
1067
+ local path="$1"
1068
+ local dir_rel=""
1069
+ local candidate=""
1070
+ local spec_id=""
1071
+ local existing=""
1072
+
1073
+ case "$path" in
1074
+ docs/plan/*/PLAN.md|docs/specs/*/PLAN.md)
1075
+ if candidate="$(resolve_legacy_plan_canonical_path "$path")"; then
1076
+ printf '%s' "$candidate"
1077
+ return 0
1078
+ else
1079
+ resolution_status=$?
1080
+ if [[ "$resolution_status" -eq 2 ]]; then
1081
+ return 2
1082
+ fi
1083
+ fi
1084
+ if [[ -e "$path" || -L "$path" ]]; then
1085
+ printf '%s' "$path"
1086
+ return 0
1087
+ fi
1088
+ ;;
1089
+ docs/specs/*/SPEC.md)
1090
+ if candidate="$(resolve_legacy_spec_canonical_path "$path")"; then
1091
+ printf '%s' "$candidate"
1092
+ return 0
1093
+ else
1094
+ resolution_status=$?
1095
+ if [[ "$resolution_status" -eq 2 ]]; then
1096
+ return 2
1097
+ fi
1098
+ fi
1099
+ ;;
1100
+ esac
1101
+
1102
+ if legacy_identity_catalog_proven "$path"; then
1103
+ spec_id="$(extract_spec_id_from_path "$path")"
1104
+ fi
1105
+ if [[ -n "$spec_id" ]]; then
1106
+ shopt -s nullglob
1107
+ for existing in docs/specs/"${spec_id}"-*/SPEC.md docs/specs/"${spec_id}":*/SPEC.md; do
1108
+ printf '%s' "$existing"
1109
+ shopt -u nullglob
1110
+ return 0
1111
+ done
1112
+ shopt -u nullglob
1113
+ fi
1114
+
1115
+ printf '%s' "$path"
1116
+ }
1117
+
1118
+ add_changed_file() {
1119
+ local path="$1"
1120
+ local existing
1121
+ [[ -z "$path" ]] && return 0
1122
+
1123
+ for existing in "${CHANGED_FILES[@]-}"; do
1124
+ if [[ "$existing" == "$path" ]]; then
1125
+ return 0
1126
+ fi
1127
+ done
1128
+
1129
+ CHANGED_FILES+=("$path")
1130
+ }
1131
+
1132
+ add_worktree_changed_file() {
1133
+ local path="$1"
1134
+ local existing
1135
+ [[ -z "$path" ]] && return 0
1136
+
1137
+ for existing in "${WORKTREE_CHANGED_FILES[@]-}"; do
1138
+ if [[ "$existing" == "$path" ]]; then
1139
+ return 0
1140
+ fi
1141
+ done
1142
+
1143
+ WORKTREE_CHANGED_FILES+=("$path")
1144
+ }
1145
+
1146
+ add_deleted_file() {
1147
+ local path="$1"
1148
+ local existing
1149
+ [[ -z "$path" ]] && return 0
1150
+
1151
+ for existing in "${DELETED_FILES[@]-}"; do
1152
+ if [[ "$existing" == "$path" ]]; then
1153
+ return 0
1154
+ fi
1155
+ done
1156
+
1157
+ DELETED_FILES+=("$path")
1158
+ }
1159
+
1160
+ add_rename_mapping() {
1161
+ local old_path="$1"
1162
+ local new_path="$2"
1163
+ local idx=0
1164
+
1165
+ [[ -n "$old_path" ]] || return 0
1166
+ [[ -n "$new_path" ]] || return 0
1167
+
1168
+ while [[ $idx -lt ${#RENAME_OLD_FILES[@]} ]]; do
1169
+ if [[ "${RENAME_OLD_FILES[$idx]}" == "$old_path" && "${RENAME_NEW_FILES[$idx]}" == "$new_path" ]]; then
1170
+ return 0
1171
+ fi
1172
+ idx=$((idx + 1))
1173
+ done
1174
+
1175
+ RENAME_OLD_FILES+=("$old_path")
1176
+ RENAME_NEW_FILES+=("$new_path")
1177
+ }
1178
+
1179
+ parse_name_status_line() {
1180
+ local line="$1"
1181
+ local rest=""
1182
+ PARSE_STATUS=""
1183
+ PARSE_PATH1=""
1184
+ PARSE_PATH2=""
1185
+
1186
+ if [[ -z "$line" ]] || [[ "$line" != *$'\t'* ]]; then
1187
+ return 1
1188
+ fi
1189
+
1190
+ PARSE_STATUS="${line%%$'\t'*}"
1191
+ rest="${line#*$'\t'}"
1192
+
1193
+ if [[ "$PARSE_STATUS" == R* ]] || [[ "$PARSE_STATUS" == C* ]]; then
1194
+ if [[ "$rest" != *$'\t'* ]]; then
1195
+ return 1
1196
+ fi
1197
+ PARSE_PATH1="${rest%%$'\t'*}"
1198
+ PARSE_PATH2="${rest#*$'\t'}"
1199
+ return 0
1200
+ fi
1201
+
1202
+ PARSE_PATH1="$rest"
1203
+ return 0
1204
+ }
1205
+
1206
+ add_changed_from_status_line() {
1207
+ local line="$1"
1208
+
1209
+ parse_name_status_line "$line" || return 0
1210
+
1211
+ if [[ "$PARSE_STATUS" == R* ]] || [[ "$PARSE_STATUS" == C* ]]; then
1212
+ add_changed_file "$PARSE_PATH1"
1213
+ add_changed_file "$PARSE_PATH2"
1214
+ if [[ "$PARSE_STATUS" == R* ]]; then
1215
+ add_deleted_file "$PARSE_PATH1"
1216
+ add_rename_mapping "$PARSE_PATH1" "$PARSE_PATH2"
1217
+ fi
1218
+ return 0
1219
+ fi
1220
+
1221
+ add_changed_file "$PARSE_PATH1"
1222
+ if [[ "$PARSE_STATUS" == D* ]]; then
1223
+ add_deleted_file "$PARSE_PATH1"
1224
+ fi
1225
+ }
1226
+
1227
+ add_worktree_from_status_line() {
1228
+ local line="$1"
1229
+
1230
+ parse_name_status_line "$line" || return 0
1231
+
1232
+ if [[ "$PARSE_STATUS" == R* ]] || [[ "$PARSE_STATUS" == C* ]]; then
1233
+ add_worktree_changed_file "$PARSE_PATH1"
1234
+ add_worktree_changed_file "$PARSE_PATH2"
1235
+ add_changed_file "$PARSE_PATH1"
1236
+ add_changed_file "$PARSE_PATH2"
1237
+ if [[ "$PARSE_STATUS" == R* ]]; then
1238
+ add_deleted_file "$PARSE_PATH1"
1239
+ add_rename_mapping "$PARSE_PATH1" "$PARSE_PATH2"
1240
+ fi
1241
+ return 0
1242
+ fi
1243
+
1244
+ add_worktree_changed_file "$PARSE_PATH1"
1245
+ add_changed_file "$PARSE_PATH1"
1246
+ if [[ "$PARSE_STATUS" == D* ]]; then
1247
+ add_deleted_file "$PARSE_PATH1"
1248
+ fi
1249
+ }
1250
+
1251
+ path_deleted() {
1252
+ local path="$1"
1253
+ local deleted
1254
+ for deleted in "${DELETED_FILES[@]-}"; do
1255
+ if [[ "$deleted" == "$path" ]]; then
1256
+ return 0
1257
+ fi
1258
+ done
1259
+ return 1
1260
+ }
1261
+
1262
+ is_long_lived_branch() {
1263
+ local b="$1"
1264
+ [[ "$b" == "main" || "$b" == "master" || "$b" == "trunk" || "$b" == "develop" || "$b" == release/* || "$b" == hotfix/* || "$b" == support/* ]]
1265
+ }
1266
+
1267
+ resolve_remote_head_ref() {
1268
+ local remote="$1"
1269
+ local remote_head=""
1270
+ local candidate=""
1271
+ [[ -z "$remote" ]] && return 1
1272
+
1273
+ remote_head="$(git symbolic-ref --quiet --short "refs/remotes/${remote}/HEAD" 2>/dev/null || true)"
1274
+ if [[ -n "$remote_head" ]]; then
1275
+ printf '%s' "$remote_head"
1276
+ return 0
1277
+ fi
1278
+
1279
+ for candidate in main master trunk develop; do
1280
+ if git rev-parse --verify "refs/remotes/${remote}/${candidate}" >/dev/null 2>&1; then
1281
+ printf '%s/%s' "$remote" "$candidate"
1282
+ return 0
1283
+ fi
1284
+ done
1285
+
1286
+ return 1
1287
+ }
1288
+
1289
+ is_untracked_impl_candidate() {
1290
+ local path="$1"
1291
+ local base
1292
+ base="$(basename "$path")"
1293
+
1294
+ if [[ "$path" == docs/* ]] || [[ "$path" == README* ]] || [[ "$path" == .github/* ]]; then
1295
+ return 1
1296
+ fi
1297
+
1298
+ if [[ "$base" == ".DS_Store" || "$base" == *.log || "$base" == *.tmp || "$base" == *.swp || "$base" == *.bak ]]; then
1299
+ return 1
1300
+ fi
1301
+
1302
+ if [[ "$path" == src/* || "$path" == app/* || "$path" == web/src/* || "$path" == server/* || "$path" == backend/* || "$path" == frontend/* || "$path" == cmd/* || "$path" == pkg/* || "$path" == internal/* || "$path" == services/* || "$path" == modules/* || "$path" == crates/* || "$path" == libs/* ]]; then
1303
+ return 0
1304
+ fi
1305
+
1306
+ if [[ "$base" == Dockerfile || "$base" == Containerfile || "$base" == Makefile || "$base" == GNUmakefile || "$base" == Procfile || "$base" == Gemfile || "$base" == Rakefile || "$base" == Vagrantfile || "$base" == Jenkinsfile ]]; then
1307
+ return 0
1308
+ fi
1309
+
1310
+ if [[ "$path" == *.c || "$path" == *.cc || "$path" == *.cpp || "$path" == *.h || "$path" == *.hpp || "$path" == *.rs || "$path" == *.go || "$path" == *.py || "$path" == *.ts || "$path" == *.tsx || "$path" == *.js || "$path" == *.jsx || "$path" == *.mjs || "$path" == *.cjs || "$path" == *.java || "$path" == *.kt || "$path" == *.swift || "$path" == *.rb || "$path" == *.php || "$path" == *.cs || "$path" == *.sh || "$path" == *.bash || "$path" == *.zsh || "$path" == *.toml || "$path" == *.json || "$path" == *.yaml || "$path" == *.yml ]]; then
1311
+ return 0
1312
+ fi
1313
+
1314
+ if [[ "$base" != *.* ]]; then
1315
+ return 0
1316
+ fi
1317
+
1318
+ return 1
1319
+ }
1320
+
1321
+ record_commit_file_change() {
1322
+ local changed="$1"
1323
+ local ns_index=0
1324
+ local ns_root=""
1325
+
1326
+ [[ -z "$changed" ]] && return 0
1327
+
1328
+ for ns_root in "${normalized_spec_roots[@]-}"; do
1329
+ if path_counts_as_spec_sync "$changed" "$ns_root" "${normalized_specs[$ns_index]}"; then
1330
+ commit_spec_touched_flags[$ns_index]=1
1331
+ fi
1332
+ ns_index=$((ns_index + 1))
1333
+ done
1334
+
1335
+ if [[ "$changed" == docs/* ]] || [[ "$changed" == README* ]] || [[ "$changed" == .github/* ]]; then
1336
+ return 0
1337
+ fi
1338
+
1339
+ commit_has_impl=1
1340
+ }
1341
+
1342
+ has_merge_sync_coverage() {
1343
+ local impl_commit="$1"
1344
+ local spec_commit="$2"
1345
+ local merge_commit=""
1346
+
1347
+ # A spec commit older than implementation cannot be used as merge-based coverage.
1348
+ if git merge-base --is-ancestor "$spec_commit" "$impl_commit" >/dev/null 2>&1; then
1349
+ return 1
1350
+ fi
1351
+
1352
+ for merge_commit in "${MERGE_COMMITS[@]-}"; do
1353
+ if ! git merge-base --is-ancestor "$impl_commit" "$merge_commit" >/dev/null 2>&1; then
1354
+ continue
1355
+ fi
1356
+ if git merge-base --is-ancestor "$spec_commit" "$merge_commit" >/dev/null 2>&1; then
1357
+ return 0
1358
+ fi
1359
+ done
1360
+
1361
+ return 1
1362
+ }
1363
+
1364
+ related_adr_error=""
1365
+
1366
+ spec_requires_related_adrs() {
1367
+ local spec="$1"
1368
+ local required=""
1369
+
1370
+ for required in "${RELATED_ADR_SECTION_REQUIRED_SPECS[@]-}"; do
1371
+ [[ "$required" == "$spec" ]] && return 0
1372
+ done
1373
+ return 1
1374
+ }
1375
+
1376
+ source_path_requires_related_adrs() {
1377
+ local source_path="$1"
1378
+ local target="$2"
1379
+ local compare_ref=""
1380
+ local old_spec_path=""
1381
+ local changed_path=""
1382
+ local target_was_touched=0
1383
+ local idx=0
1384
+
1385
+ [[ "$target" == docs/specs/*/SPEC.md ]] || return 1
1386
+ [[ "$source_path" == "$target" ]] || return 1
1387
+ for changed_path in "${CHANGED_FILES[@]-}"; do
1388
+ if [[ "$changed_path" == "$target" ]]; then
1389
+ target_was_touched=1
1390
+ break
1391
+ fi
1392
+ done
1393
+ [[ $target_was_touched -eq 1 ]] || return 1
1394
+ if legacy_identity_catalog_proven "$target" || legacy_history_proves_id "$target"; then
1395
+ return 1
1396
+ fi
1397
+ while [[ $idx -lt ${#RENAME_NEW_FILES[@]} ]]; do
1398
+ old_spec_path="${RENAME_OLD_FILES[$idx]}"
1399
+ if [[ "${RENAME_NEW_FILES[$idx]}" == "$target" ]] \
1400
+ && legacy_spec_rename_matches "$old_spec_path" "$target" "direct-rename"; then
1401
+ return 1
1402
+ fi
1403
+ idx=$((idx + 1))
1404
+ done
1405
+ for old_spec_path in "${DELETED_FILES[@]-}"; do
1406
+ if legacy_spec_rename_matches "$old_spec_path" "$target"; then
1407
+ return 1
1408
+ fi
1409
+ done
1410
+ compare_ref="$(spec_compare_ref_for_required_files)"
1411
+ path_is_grandfathered_legacy_spec_rename "$target" "$compare_ref" && return 1
1412
+ return 0
1413
+ }
1414
+
1415
+ mark_related_adrs_section_required() {
1416
+ local spec="$1"
1417
+ local required=""
1418
+
1419
+ for required in "${RELATED_ADR_SECTION_REQUIRED_SPECS[@]-}"; do
1420
+ [[ "$required" == "$spec" ]] && return 0
1421
+ done
1422
+ RELATED_ADR_SECTION_REQUIRED_SPECS+=("$spec")
1423
+ }
1424
+
1425
+ validate_related_adrs_for_spec() {
1426
+ local spec="$1"
1427
+ local require_section=0
1428
+ local allow_legacy_list_none=0
1429
+ local index_entry=""
1430
+ local index_content=""
1431
+
1432
+ related_adr_error=""
1433
+ [[ "$spec" == docs/specs/*/SPEC.md ]] || return 0
1434
+
1435
+ spec_requires_related_adrs "$spec" && require_section=1
1436
+ spec_allows_legacy_related_adrs_none "$spec" && allow_legacy_list_none=1
1437
+
1438
+ if [[ -e "$spec" || -L "$spec" ]]; then
1439
+ if [[ ! -f "$spec" || -L "$spec" ]]; then
1440
+ related_adr_error="invalid Related ADRs in ${spec}: candidate Spec must be a regular file"
1441
+ return 1
1442
+ fi
1443
+ if ! validate_related_adr_entries_from_stream "candidate ${spec}" "$require_section" "$allow_legacy_list_none" < "$spec"; then
1444
+ return 1
1445
+ fi
1446
+ if ! validate_related_adr_targets_for_source "candidate ${spec}" "worktree"; then
1447
+ return 1
1448
+ fi
1449
+ fi
1450
+
1451
+ index_entry="$(git ls-files -s -- "$spec")"
1452
+ if [[ -n "$index_entry" ]]; then
1453
+ if [[ ! "$index_entry" =~ ^(100644|100755)[[:space:]]+[0-9a-f]{40}[[:space:]]+0[[:space:]] ]]; then
1454
+ related_adr_error="invalid Related ADRs in index ${spec}: Spec must be a regular file"
1455
+ return 1
1456
+ fi
1457
+ if ! index_content="$(git show ":${spec}" 2>/dev/null)"; then
1458
+ related_adr_error="invalid Related ADRs in index ${spec}: cannot read staged Spec"
1459
+ return 1
1460
+ fi
1461
+ if ! validate_related_adr_entries_from_stream "index ${spec}" "$require_section" "$allow_legacy_list_none" <<<"$index_content"; then
1462
+ return 1
1463
+ fi
1464
+ if ! validate_related_adr_targets_for_source "index ${spec}" "index"; then
1465
+ return 1
1466
+ fi
1467
+ elif [[ -e "$spec" || -L "$spec" ]] && git cat-file -e "HEAD:${spec}" 2>/dev/null; then
1468
+ related_adr_error="invalid Related ADRs in index ${spec}: staged candidate removed Spec"
1469
+ return 1
1470
+ fi
1471
+ return 0
1472
+ }
1473
+
1474
+ validate_related_adr_targets_for_source() {
1475
+ local label="$1"
1476
+ local source="$2"
1477
+ local path=""
1478
+ local adr_status=""
1479
+ local index_entry=""
1480
+ local index_content=""
1481
+
1482
+ [[ -n "${related_adr_stream_paths[*]-}" ]] || return 0
1483
+ for path in "${related_adr_stream_paths[@]}"; do
1484
+ case "$source" in
1485
+ worktree)
1486
+ if [[ ! -f "$path" || -L "$path" ]]; then
1487
+ related_adr_error="invalid Related ADRs in ${label}: missing ADR target ${path} (not a regular file)"
1488
+ return 1
1489
+ fi
1490
+ adr_status="$(awk '
1491
+ NR == 1 && $0 == "---" { in_front_matter=1; next }
1492
+ in_front_matter && $0 == "---" { exit }
1493
+ in_front_matter && /^status:[[:space:]]*/ {
1494
+ sub(/^status:[[:space:]]*/, "")
1495
+ sub(/[[:space:]]+$/, "")
1496
+ print
1497
+ exit
1498
+ }
1499
+ ' "$path")"
1500
+ ;;
1501
+ index)
1502
+ index_entry="$(git ls-files -s -- "$path")"
1503
+ if [[ ! "$index_entry" =~ ^(100644|100755)[[:space:]]+[0-9a-f]{40}[[:space:]]+0[[:space:]] ]]; then
1504
+ related_adr_error="invalid Related ADRs in ${label}: missing ADR target ${path} (not a regular index file)"
1505
+ return 1
1506
+ fi
1507
+ if ! index_content="$(git show ":${path}" 2>/dev/null)"; then
1508
+ related_adr_error="invalid Related ADRs in ${label}: cannot read staged ADR target ${path}"
1509
+ return 1
1510
+ fi
1511
+ adr_status="$(awk '
1512
+ NR == 1 && $0 == "---" { in_front_matter=1; next }
1513
+ in_front_matter && $0 == "---" { exit }
1514
+ in_front_matter && /^status:[[:space:]]*/ {
1515
+ sub(/^status:[[:space:]]*/, "")
1516
+ sub(/[[:space:]]+$/, "")
1517
+ print
1518
+ exit
1519
+ }
1520
+ ' <<<"$index_content")"
1521
+ ;;
1522
+ *)
1523
+ related_adr_error="invalid Related ADRs validation source"
1524
+ return 1
1525
+ ;;
1526
+ esac
1527
+ case "$adr_status" in
1528
+ ""|accepted)
1529
+ ;;
1530
+ superseded|deprecated)
1531
+ related_adr_error="invalid Related ADRs in ${label}: ADR ${path} is ${adr_status}"
1532
+ return 1
1533
+ ;;
1534
+ *)
1535
+ related_adr_error="invalid Related ADRs in ${label}: ADR ${path} has non-accepted status ${adr_status}"
1536
+ return 1
1537
+ ;;
1538
+ esac
1539
+ done
1540
+ return 0
1541
+ }
1542
+
1543
+ exit_related_adr_blocked() {
1544
+ local evidence="$1"
1545
+ echo "Spec同步状态=阻断"
1546
+ echo "Spec漂移=存在"
1547
+ echo "Spec同步证据=${evidence}"
1548
+ echo "结束原因=${related_adr_error}"
1549
+ exit 2
1550
+ }
1551
+
1552
+ usage() {
1553
+ cat <<'USAGE'
1554
+ Usage: spec_drift_check.sh [--base-ref <ref>] [--spec-path <path>]... [--spec-free]
1555
+
1556
+ Outputs:
1557
+ Spec同步状态=通过|阻断|未检查
1558
+ Spec漂移=存在|不存在|未检查
1559
+ Spec同步证据=<spec_paths@sha_csv|未检查>
1560
+ 结束原因=<one-line>
1561
+
1562
+ Exit codes:
1563
+ 0 => pass
1564
+ 2 => blocked (drift found)
1565
+ 3 => unchecked
1566
+ USAGE
1567
+ }
1568
+
1569
+ exit_unchecked() {
1570
+ local reason="$1"
1571
+ echo "Spec同步状态=未检查"
1572
+ echo "Spec漂移=未检查"
1573
+ echo "Spec同步证据=未检查"
1574
+ echo "结束原因=${reason}"
1575
+ exit 3
1576
+ }
1577
+
1578
+ validate_canonical_spec_contracts() {
1579
+ local target="$1"
1580
+ local checker="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/../../bin" && pwd -P)/spec_contract_check.ts"
1581
+ local output=""
1582
+ strict_spec_error=""
1583
+
1584
+ [[ "$target" =~ ^docs/specs/[a-z0-9]+(-[a-z0-9]+)*/SPEC\.md$ ]] || return 0
1585
+ [[ -f "$target" && ! -L "$target" ]] || return 0
1586
+ if [[ ! -f "$checker" ]]; then
1587
+ strict_spec_error="bundled Spec checker is unavailable: $checker"
1588
+ return 1
1589
+ fi
1590
+ if ! output="$(bun "$checker" --path "$target" --repo-root "$REPO_ROOT" 2>&1)"; then
1591
+ strict_spec_error="${output//$'\n'/; }"
1592
+ return 1
1593
+ fi
1594
+ return 0
1595
+ }
1596
+
1597
+ while [[ $# -gt 0 ]]; do
1598
+ case "$1" in
1599
+ --base-ref)
1600
+ if [[ $# -lt 2 ]] || [[ -z "${2:-}" ]]; then
1601
+ exit_unchecked "missing value for --base-ref"
1602
+ fi
1603
+ BASE_REF="${2:-}"
1604
+ shift 2
1605
+ ;;
1606
+ --spec-path)
1607
+ if [[ $# -lt 2 ]] || [[ -z "${2:-}" ]]; then
1608
+ exit_unchecked "missing value for --spec-path"
1609
+ fi
1610
+ SPEC_PATHS+=("${2:-}")
1611
+ shift 2
1612
+ ;;
1613
+ --spec-free)
1614
+ SPEC_FREE=1
1615
+ shift
1616
+ ;;
1617
+ -h|--help)
1618
+ usage
1619
+ exit 0
1620
+ ;;
1621
+ *)
1622
+ exit_unchecked "unknown argument: $1"
1623
+ ;;
1624
+ esac
1625
+ done
1626
+
1627
+ if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
1628
+ echo "Spec同步状态=未检查"
1629
+ echo "Spec漂移=未检查"
1630
+ echo "Spec同步证据=未检查"
1631
+ echo "结束原因=not in git repository"
1632
+ exit 3
1633
+ fi
1634
+
1635
+ REPO_ROOT="$(git rev-parse --show-toplevel)"
1636
+ INVOCATION_CWD="$(pwd -P)"
1637
+ cd "$REPO_ROOT"
1638
+ CURRENT_BRANCH="$(git rev-parse --abbrev-ref HEAD)"
1639
+
1640
+ if [[ "${SPEC_DISPOSITION:-}" == "not_needed" ]]; then
1641
+ SPEC_FREE=1
1642
+ fi
1643
+
1644
+ if [[ -z "$BASE_REF" ]]; then
1645
+ UPSTREAM_REF="$(git rev-parse --abbrev-ref --symbolic-full-name '@{upstream}' 2>/dev/null || true)"
1646
+ UPSTREAM_REMOTE="${UPSTREAM_REF%%/*}"
1647
+ REMOTE_HEAD_REF=""
1648
+ UPSTREAM_BRANCH_NAME="${UPSTREAM_REF#*/}"
1649
+ REMOTE_HEAD_BRANCH_NAME=""
1650
+
1651
+ if [[ -n "$UPSTREAM_REMOTE" ]]; then
1652
+ REMOTE_HEAD_REF="$(resolve_remote_head_ref "$UPSTREAM_REMOTE" || true)"
1653
+ fi
1654
+
1655
+ if [[ -z "$REMOTE_HEAD_REF" ]]; then
1656
+ while IFS= read -r remote; do
1657
+ [[ -z "$remote" ]] && continue
1658
+ REMOTE_HEAD_REF="$(resolve_remote_head_ref "$remote" || true)"
1659
+ if [[ -n "$REMOTE_HEAD_REF" ]]; then
1660
+ break
1661
+ fi
1662
+ done < <(git remote)
1663
+ fi
1664
+
1665
+ REMOTE_HEAD_BRANCH_NAME="${REMOTE_HEAD_REF#*/}"
1666
+
1667
+ if [[ -n "$UPSTREAM_REF" ]] && [[ "$UPSTREAM_REF" == "$REMOTE_HEAD_REF" ]]; then
1668
+ BASE_REF="$UPSTREAM_REF"
1669
+ elif [[ -n "$UPSTREAM_REF" ]] && [[ "$UPSTREAM_BRANCH_NAME" == "$CURRENT_BRANCH" ]] && is_long_lived_branch "$CURRENT_BRANCH"; then
1670
+ BASE_REF="$UPSTREAM_REF"
1671
+ elif [[ -n "$UPSTREAM_REF" ]] && is_long_lived_branch "$UPSTREAM_BRANCH_NAME"; then
1672
+ BASE_REF="$UPSTREAM_REF"
1673
+ elif [[ -n "$REMOTE_HEAD_REF" ]] && [[ "$CURRENT_BRANCH" == "$REMOTE_HEAD_BRANCH_NAME" ]]; then
1674
+ BASE_REF="$REMOTE_HEAD_REF"
1675
+ elif [[ -n "$REMOTE_HEAD_REF" ]]; then
1676
+ BASE_REF="$REMOTE_HEAD_REF"
1677
+ elif git rev-parse --verify refs/heads/main >/dev/null 2>&1; then
1678
+ BASE_REF="main"
1679
+ elif git rev-parse --verify refs/heads/master >/dev/null 2>&1; then
1680
+ BASE_REF="master"
1681
+ elif git rev-parse --verify refs/heads/trunk >/dev/null 2>&1; then
1682
+ BASE_REF="trunk"
1683
+ elif git rev-parse --verify refs/heads/develop >/dev/null 2>&1; then
1684
+ BASE_REF="develop"
1685
+ else
1686
+ BASE_REF=""
1687
+ fi
1688
+ fi
1689
+
1690
+ if [[ -z "$BASE_REF" ]] || ! git rev-parse --verify "$BASE_REF" >/dev/null 2>&1; then
1691
+ echo "Spec同步状态=未检查"
1692
+ echo "Spec漂移=未检查"
1693
+ echo "Spec同步证据=未检查"
1694
+ echo "结束原因=base ref not resolvable ($BASE_REF)"
1695
+ exit 3
1696
+ fi
1697
+
1698
+ if ! git merge-base "$BASE_REF" HEAD >/dev/null 2>&1; then
1699
+ exit_unchecked "no merge base between $BASE_REF and HEAD"
1700
+ fi
1701
+
1702
+ CHANGED_FILES=()
1703
+ while IFS= read -r line; do
1704
+ add_changed_from_status_line "$line"
1705
+ done < <(git -c core.quotepath=false diff --name-status -M "$BASE_REF...HEAD")
1706
+
1707
+ while IFS= read -r line; do
1708
+ add_worktree_from_status_line "$line"
1709
+ done < <(git -c core.quotepath=false diff --name-status -M)
1710
+
1711
+ while IFS= read -r line; do
1712
+ add_worktree_from_status_line "$line"
1713
+ done < <(git -c core.quotepath=false diff --name-status -M --cached)
1714
+
1715
+ while IFS= read -r line; do
1716
+ if is_untracked_impl_candidate "$line"; then
1717
+ add_changed_file "$line"
1718
+ fi
1719
+ done < <(git ls-files --others --exclude-standard)
1720
+
1721
+ while IFS= read -r line; do
1722
+ if is_untracked_impl_candidate "$line"; then
1723
+ add_worktree_changed_file "$line"
1724
+ add_changed_file "$line"
1725
+ continue
1726
+ fi
1727
+
1728
+ if [[ "$line" == docs/specs/* ]] || [[ "$line" == docs/plan/* ]]; then
1729
+ add_worktree_changed_file "$line"
1730
+ add_changed_file "$line"
1731
+ fi
1732
+ done < <(git ls-files --others --exclude-standard)
1733
+
1734
+ if ! validate_frozen_adr_refs; then
1735
+ echo "Spec同步状态=阻断"
1736
+ echo "Spec漂移=存在"
1737
+ echo "Spec同步证据=ADR_REFS"
1738
+ echo "结束原因=${related_adr_error}"
1739
+ exit 2
1740
+ fi
1741
+
1742
+ if [[ ${#CHANGED_FILES[@]} -eq 0 ]]; then
1743
+ echo "Spec同步状态=通过"
1744
+ echo "Spec漂移=不存在"
1745
+ echo "Spec同步证据=未检查"
1746
+ echo "结束原因=no changes in diff"
1747
+ exit 0
1748
+ fi
1749
+
1750
+ has_impl_change=0
1751
+ has_spec_change=0
1752
+ has_worktree_impl_change=0
1753
+ has_worktree_spec_change=0
1754
+ spec_changed_paths=()
1755
+ spec_evidence=()
1756
+ normalized_specs=()
1757
+ normalized_spec_roots=()
1758
+
1759
+ for path in "${CHANGED_FILES[@]-}"; do
1760
+ [[ -z "$path" ]] && continue
1761
+
1762
+ if [[ "$path" == docs/specs/* ]] || [[ "$path" == docs/plan/* ]]; then
1763
+ has_spec_change=1
1764
+ spec_changed_paths+=("$path")
1765
+ fi
1766
+
1767
+ if [[ "$path" == docs/* ]] || [[ "$path" == README* ]] || [[ "$path" == .github/* ]]; then
1768
+ continue
1769
+ fi
1770
+ has_impl_change=1
1771
+ done
1772
+
1773
+ if [[ $SPEC_FREE -eq 1 ]] && [[ $has_spec_change -eq 1 ]]; then
1774
+ echo "Spec同步状态=阻断"
1775
+ echo "Spec漂移=存在"
1776
+ if [[ ${#spec_changed_paths[@]} -gt 0 ]]; then
1777
+ echo "Spec同步证据=$(evidence_csv "${spec_changed_paths[@]-}")"
1778
+ else
1779
+ echo "Spec同步证据=未检查"
1780
+ fi
1781
+ echo "结束原因=spec-free run touched spec files"
1782
+ exit 2
1783
+ fi
1784
+
1785
+ if [[ $has_impl_change -eq 0 ]]; then
1786
+ docs_only_incomplete_spec=0
1787
+ docs_only_invalid_related_adrs=0
1788
+ checked_spec_targets=()
1789
+ related_adr_targets=()
1790
+ for changed_spec_path in "${spec_changed_paths[@]-}"; do
1791
+ spec_target="$(spec_target_from_changed_path "$changed_spec_path" || true)"
1792
+ [[ -n "$spec_target" ]] || continue
1793
+
1794
+ already_checked=0
1795
+ for existing_target in "${checked_spec_targets[@]-}"; do
1796
+ if [[ "$existing_target" == "$spec_target" ]]; then
1797
+ already_checked=1
1798
+ break
1799
+ fi
1800
+ done
1801
+ if [[ $already_checked -eq 1 ]]; then
1802
+ continue
1803
+ fi
1804
+ checked_spec_targets+=("$spec_target")
1805
+ add_related_adr_target "$spec_target"
1806
+ if source_path_requires_related_adrs "$changed_spec_path" "$spec_target"; then
1807
+ mark_related_adrs_section_required "$spec_target"
1808
+ fi
1809
+
1810
+ required_spec_paths=()
1811
+ while IFS= read -r required_spec_path; do
1812
+ [[ -z "$required_spec_path" ]] && continue
1813
+ required_spec_paths+=("$required_spec_path")
1814
+ done < <(required_spec_files_for_spec_path "$spec_target")
1815
+
1816
+ if [[ ! -e "$spec_target" ]] \
1817
+ && [[ ! -L "$spec_target" ]] \
1818
+ && path_deleted "$spec_target" \
1819
+ && find_moved_spec_target_destination "$spec_target" >/dev/null 2>&1; then
1820
+ continue
1821
+ fi
1822
+
1823
+ target_has_live_or_deleted_required_file=0
1824
+ for required_spec_path in "${required_spec_paths[@]-}"; do
1825
+ if [[ -e "$required_spec_path" || -L "$required_spec_path" ]] || path_deleted "$required_spec_path"; then
1826
+ target_has_live_or_deleted_required_file=1
1827
+ break
1828
+ fi
1829
+ done
1830
+ if [[ ! -e "$changed_spec_path" ]] \
1831
+ && [[ ! -L "$changed_spec_path" ]] \
1832
+ && [[ $target_has_live_or_deleted_required_file -eq 0 ]]; then
1833
+ continue
1834
+ fi
1835
+
1836
+ for required_spec_path in "${required_spec_paths[@]-}"; do
1837
+ if [[ -e "$required_spec_path" || -L "$required_spec_path" ]]; then
1838
+ continue
1839
+ fi
1840
+ docs_only_incomplete_spec=1
1841
+ add_spec_evidence "$required_spec_path"
1842
+ done
1843
+
1844
+ done
1845
+
1846
+ for spec in "${SPEC_PATHS[@]-}"; do
1847
+ requested_spec="$(normalize_to_repo_rel "$spec")"
1848
+ if normalized_spec="$(resolve_associated_spec_path "$requested_spec")"; then
1849
+ :
1850
+ else
1851
+ resolution_status=$?
1852
+ if [[ "$resolution_status" -eq 2 ]]; then
1853
+ exit_unchecked "ambiguous legacy spec mapping; provide canonical --spec-path"
1854
+ fi
1855
+ exit_unchecked "unable to resolve associated spec path"
1856
+ fi
1857
+
1858
+ already_checked=0
1859
+ for existing_target in "${related_adr_targets[@]-}"; do
1860
+ if [[ "$existing_target" == "$normalized_spec" ]]; then
1861
+ already_checked=1
1862
+ break
1863
+ fi
1864
+ done
1865
+ [[ $already_checked -eq 1 ]] || add_related_adr_target "$normalized_spec"
1866
+ if source_path_requires_related_adrs "$requested_spec" "$normalized_spec"; then
1867
+ mark_related_adrs_section_required "$normalized_spec"
1868
+ fi
1869
+ done
1870
+
1871
+ for changed_adr_path in "${CHANGED_FILES[@]-}"; do
1872
+ [[ "$changed_adr_path" =~ ^docs/adr/[0-9]{4}-[a-z0-9]+(-[a-z0-9]+)*\.md$ ]] || continue
1873
+ while IFS= read -r referencing_spec; do
1874
+ [[ -n "$referencing_spec" ]] || continue
1875
+ add_related_adr_target "$referencing_spec"
1876
+ done < <(referencing_specs_for_adr "$changed_adr_path")
1877
+ done
1878
+
1879
+ for spec_target in "${related_adr_targets[@]-}"; do
1880
+ if ! validate_related_adrs_for_spec "$spec_target"; then
1881
+ docs_only_invalid_related_adrs=1
1882
+ add_spec_evidence "$spec_target"
1883
+ fi
1884
+ done
1885
+
1886
+ for spec_target in "${checked_spec_targets[@]-}"; do
1887
+ if ! validate_canonical_spec_contracts "$spec_target"; then
1888
+ echo "Spec同步状态=阻断"
1889
+ echo "Spec漂移=存在"
1890
+ echo "Spec同步证据=$(evidence_csv "$spec_target")"
1891
+ echo "结束原因=${strict_spec_error}"
1892
+ exit 2
1893
+ fi
1894
+ done
1895
+
1896
+ if [[ $docs_only_incomplete_spec -eq 1 ]]; then
1897
+ echo "Spec同步状态=阻断"
1898
+ echo "Spec漂移=存在"
1899
+ if [[ ${#spec_evidence[@]-} -gt 0 ]]; then
1900
+ echo "Spec同步证据=$(evidence_csv "${spec_evidence[@]-}")"
1901
+ else
1902
+ echo "Spec同步证据=未检查"
1903
+ fi
1904
+ echo "结束原因=changed spec directories are incomplete"
1905
+ exit 2
1906
+ fi
1907
+
1908
+ if [[ $docs_only_invalid_related_adrs -eq 1 ]]; then
1909
+ if [[ ${#spec_evidence[@]-} -gt 0 ]]; then
1910
+ exit_related_adr_blocked "$(evidence_csv "${spec_evidence[@]-}")"
1911
+ fi
1912
+ exit_related_adr_blocked "未检查"
1913
+ fi
1914
+
1915
+ echo "Spec同步状态=通过"
1916
+ echo "Spec漂移=不存在"
1917
+ if [[ ${#spec_changed_paths[@]} -gt 0 ]]; then
1918
+ echo "Spec同步证据=$(evidence_csv "${spec_changed_paths[@]-}")"
1919
+ else
1920
+ echo "Spec同步证据=未检查"
1921
+ fi
1922
+ echo "结束原因=docs/workflow-only changes"
1923
+ exit 0
1924
+ fi
1925
+
1926
+ if [[ $SPEC_FREE -eq 1 ]] && [[ ${#SPEC_PATHS[@]} -eq 0 ]]; then
1927
+ echo "Spec同步状态=通过"
1928
+ echo "Spec漂移=不存在"
1929
+ echo "Spec同步证据=none(spec-free)"
1930
+ echo "结束原因=spec-free run (spec_disposition=not_needed)"
1931
+ exit 0
1932
+ fi
1933
+
1934
+ if [[ ${#SPEC_PATHS[@]} -eq 0 ]]; then
1935
+ echo "Spec同步状态=未检查"
1936
+ echo "Spec漂移=未检查"
1937
+ if [[ ${#spec_changed_paths[@]} -gt 0 ]]; then
1938
+ echo "Spec同步证据=$(evidence_csv "${spec_changed_paths[@]-}")"
1939
+ else
1940
+ echo "Spec同步证据=未检查"
1941
+ fi
1942
+ echo "结束原因=impl changes found but no SPEC_PATHS provided"
1943
+ exit 3
1944
+ fi
1945
+
1946
+ tracked_changed=0
1947
+ associated_deleted=0
1948
+ incomplete_associated_spec=0
1949
+ for spec in "${SPEC_PATHS[@]-}"; do
1950
+ existing_spec=""
1951
+ duplicated=0
1952
+ requested_spec="$(normalize_to_repo_rel "$spec")"
1953
+ if normalized_spec="$(resolve_associated_spec_path "$requested_spec")"; then
1954
+ :
1955
+ else
1956
+ resolution_status=$?
1957
+ if [[ "$resolution_status" -eq 2 ]]; then
1958
+ exit_unchecked "ambiguous legacy spec mapping; provide canonical --spec-path"
1959
+ fi
1960
+ exit_unchecked "unable to resolve associated spec path"
1961
+ fi
1962
+ [[ -z "$normalized_spec" ]] && continue
1963
+
1964
+ for existing_spec in "${normalized_specs[@]-}"; do
1965
+ if [[ "$existing_spec" == "$normalized_spec" ]]; then
1966
+ duplicated=1
1967
+ break
1968
+ fi
1969
+ done
1970
+ if [[ $duplicated -eq 1 ]]; then
1971
+ continue
1972
+ fi
1973
+
1974
+ normalized_specs+=("$normalized_spec")
1975
+ if source_path_requires_related_adrs "$requested_spec" "$normalized_spec"; then
1976
+ mark_related_adrs_section_required "$normalized_spec"
1977
+ fi
1978
+ normalized_spec_root="$(dirname "$normalized_spec")"
1979
+ normalized_spec_roots+=("$normalized_spec_root")
1980
+
1981
+ while IFS= read -r required_spec_path; do
1982
+ [[ -z "$required_spec_path" ]] && continue
1983
+ if [[ -e "$required_spec_path" || -L "$required_spec_path" ]]; then
1984
+ continue
1985
+ fi
1986
+ incomplete_associated_spec=1
1987
+ add_spec_evidence "$required_spec_path"
1988
+ done < <(required_spec_files_for_spec_path "$normalized_spec")
1989
+
1990
+ for changed in "${CHANGED_FILES[@]-}"; do
1991
+ if path_counts_as_spec_sync "$changed" "$normalized_spec_root" "$normalized_spec"; then
1992
+ tracked_changed=1
1993
+ add_spec_evidence "$changed"
1994
+ if path_deleted "$normalized_spec"; then
1995
+ associated_deleted=1
1996
+ fi
1997
+ fi
1998
+ done
1999
+ done
2000
+
2001
+ if [[ ${#normalized_specs[@]} -eq 0 ]]; then
2002
+ exit_unchecked "no valid SPEC_PATHS after normalization"
2003
+ fi
2004
+
2005
+ if [[ $incomplete_associated_spec -eq 1 ]]; then
2006
+ echo "Spec同步状态=阻断"
2007
+ echo "Spec漂移=存在"
2008
+ if [[ ${#spec_evidence[@]} -gt 0 ]]; then
2009
+ echo "Spec同步证据=$(evidence_csv "${spec_evidence[@]-}")"
2010
+ else
2011
+ echo "Spec同步证据=未检查"
2012
+ fi
2013
+ echo "结束原因=associated spec files are missing"
2014
+ exit 2
2015
+ fi
2016
+
2017
+ for normalized_spec in "${normalized_specs[@]-}"; do
2018
+ if ! validate_related_adrs_for_spec "$normalized_spec"; then
2019
+ add_spec_evidence "$normalized_spec"
2020
+ exit_related_adr_blocked "$(evidence_csv "${spec_evidence[@]-}")"
2021
+ fi
2022
+ if ! validate_canonical_spec_contracts "$normalized_spec"; then
2023
+ add_spec_evidence "$normalized_spec"
2024
+ echo "Spec同步状态=阻断"
2025
+ echo "Spec漂移=存在"
2026
+ echo "Spec同步证据=$(evidence_csv "${spec_evidence[@]-}")"
2027
+ echo "结束原因=${strict_spec_error}"
2028
+ exit 2
2029
+ fi
2030
+ done
2031
+
2032
+ for changed_spec_path in "${spec_changed_paths[@]-}"; do
2033
+ changed_spec_target="$(spec_target_from_changed_path "$changed_spec_path" || true)"
2034
+ [[ -n "$changed_spec_target" ]] || continue
2035
+ already_validated=0
2036
+ for normalized_spec in "${normalized_specs[@]-}"; do
2037
+ if [[ "$normalized_spec" == "$changed_spec_target" ]]; then
2038
+ already_validated=1
2039
+ break
2040
+ fi
2041
+ done
2042
+ [[ $already_validated -eq 1 ]] && continue
2043
+ if source_path_requires_related_adrs "$changed_spec_path" "$changed_spec_target"; then
2044
+ mark_related_adrs_section_required "$changed_spec_target"
2045
+ fi
2046
+ if ! validate_related_adrs_for_spec "$changed_spec_target"; then
2047
+ add_spec_evidence "$changed_spec_target"
2048
+ exit_related_adr_blocked "$(evidence_csv "${spec_evidence[@]-}")"
2049
+ fi
2050
+ done
2051
+
2052
+ related_adr_targets=()
2053
+ for changed_adr_path in "${CHANGED_FILES[@]-}"; do
2054
+ [[ "$changed_adr_path" =~ ^docs/adr/[0-9]{4}-[a-z0-9]+(-[a-z0-9]+)*\.md$ ]] || continue
2055
+ while IFS= read -r referencing_spec; do
2056
+ [[ -n "$referencing_spec" ]] || continue
2057
+ add_related_adr_target "$referencing_spec"
2058
+ done < <(referencing_specs_for_adr "$changed_adr_path")
2059
+ done
2060
+
2061
+ for spec_target in "${related_adr_targets[@]-}"; do
2062
+ if ! validate_related_adrs_for_spec "$spec_target"; then
2063
+ add_spec_evidence "$spec_target"
2064
+ exit_related_adr_blocked "$(evidence_csv "${spec_evidence[@]-}")"
2065
+ fi
2066
+ done
2067
+
2068
+ spec_worktree_changed=()
2069
+ for _ in "${normalized_specs[@]-}"; do
2070
+ spec_worktree_changed+=(0)
2071
+ done
2072
+
2073
+ for changed in "${WORKTREE_CHANGED_FILES[@]-}"; do
2074
+ [[ -z "$changed" ]] && continue
2075
+
2076
+ if [[ "$changed" == docs/specs/* ]] || [[ "$changed" == docs/plan/* ]]; then
2077
+ ns_index=0
2078
+ for ns_root in "${normalized_spec_roots[@]-}"; do
2079
+ if path_counts_as_spec_sync "$changed" "$ns_root" "${normalized_specs[$ns_index]}"; then
2080
+ has_worktree_spec_change=1
2081
+ spec_worktree_changed[$ns_index]=1
2082
+ add_spec_evidence "$changed"
2083
+ fi
2084
+ ns_index=$((ns_index + 1))
2085
+ done
2086
+ continue
2087
+ fi
2088
+
2089
+ if [[ "$changed" == docs/* ]] || [[ "$changed" == README* ]] || [[ "$changed" == .github/* ]]; then
2090
+ continue
2091
+ fi
2092
+
2093
+ has_worktree_impl_change=1
2094
+ done
2095
+
2096
+ if [[ $has_worktree_impl_change -eq 1 ]] && [[ $has_worktree_spec_change -eq 0 ]]; then
2097
+ echo "Spec同步状态=阻断"
2098
+ echo "Spec漂移=存在"
2099
+ echo "Spec同步证据=未检查"
2100
+ echo "结束原因=worktree implementation changes without associated spec sync"
2101
+ exit 2
2102
+ fi
2103
+
2104
+ if [[ $tracked_changed -eq 1 ]]; then
2105
+ if [[ $associated_deleted -eq 1 ]]; then
2106
+ echo "Spec同步状态=阻断"
2107
+ echo "Spec漂移=存在"
2108
+ echo "Spec同步证据=$(evidence_csv "${spec_evidence[@]-}")"
2109
+ echo "结束原因=associated spec was deleted"
2110
+ exit 2
2111
+ fi
2112
+
2113
+ impl_commits=()
2114
+ MERGE_COMMITS=()
2115
+ spec_commit_lists=()
2116
+ for _ in "${normalized_specs[@]-}"; do
2117
+ spec_commit_lists+=("")
2118
+ done
2119
+ while IFS= read -r commit; do
2120
+ [[ -z "$commit" ]] && continue
2121
+ commit_has_impl=0
2122
+ commit_spec_touched_flags=()
2123
+ for _ in "${normalized_specs[@]-}"; do
2124
+ commit_spec_touched_flags+=(0)
2125
+ done
2126
+ parent_info=()
2127
+ read -r -a parent_info <<<"$(git rev-list --parents -n 1 "$commit")"
2128
+ parent_count=$((${#parent_info[@]} - 1))
2129
+ if [[ "$parent_count" -gt 1 ]]; then
2130
+ MERGE_COMMITS+=("$commit")
2131
+ fi
2132
+
2133
+ if [[ "$parent_count" -gt 1 ]]; then
2134
+ while IFS= read -r changed; do
2135
+ record_commit_file_change "$changed"
2136
+ done < <(git -c core.quotepath=false diff-tree --cc --no-commit-id --name-only -r "$commit")
2137
+ else
2138
+ while IFS= read -r change_line; do
2139
+ parse_name_status_line "$change_line" || continue
2140
+ if [[ "$PARSE_STATUS" == R* ]] || [[ "$PARSE_STATUS" == C* ]]; then
2141
+ record_commit_file_change "$PARSE_PATH1"
2142
+ record_commit_file_change "$PARSE_PATH2"
2143
+ continue
2144
+ fi
2145
+ record_commit_file_change "$PARSE_PATH1"
2146
+ done < <(git -c core.quotepath=false show --pretty=format: --name-status --first-parent "$commit")
2147
+ fi
2148
+
2149
+ if [[ $commit_has_impl -eq 1 ]]; then
2150
+ impl_commits+=("$commit")
2151
+ fi
2152
+
2153
+ ns_index=0
2154
+ for _ in "${normalized_specs[@]-}"; do
2155
+ if [[ "${commit_spec_touched_flags[$ns_index]}" -eq 1 ]]; then
2156
+ spec_commit_lists[$ns_index]="${spec_commit_lists[$ns_index]} $commit"
2157
+ fi
2158
+ ns_index=$((ns_index + 1))
2159
+ done
2160
+ done < <(git rev-list --topo-order "$BASE_REF..HEAD")
2161
+
2162
+ if [[ ${#impl_commits[@]} -gt 0 ]]; then
2163
+ ns_index=0
2164
+ for ns in "${normalized_specs[@]-}"; do
2165
+ has_spec_worktree_change="${spec_worktree_changed[$ns_index]}"
2166
+ spec_commits="${spec_commit_lists[$ns_index]}"
2167
+
2168
+ if [[ "$has_spec_worktree_change" -eq 1 ]]; then
2169
+ ns_index=$((ns_index + 1))
2170
+ continue
2171
+ fi
2172
+
2173
+ if [[ -z "${spec_commits//[[:space:]]/}" ]]; then
2174
+ echo "Spec同步状态=阻断"
2175
+ echo "Spec漂移=存在"
2176
+ echo "Spec同步证据=$(evidence_csv "${spec_evidence[@]-}")"
2177
+ echo "结束原因=no associated spec commit found after implementation commits (${ns})"
2178
+ exit 2
2179
+ fi
2180
+ ns_index=$((ns_index + 1))
2181
+ done
2182
+
2183
+ ns_index=0
2184
+ for ns in "${normalized_specs[@]-}"; do
2185
+ has_spec_worktree_change="${spec_worktree_changed[$ns_index]}"
2186
+ spec_commits="${spec_commit_lists[$ns_index]}"
2187
+ if [[ "$has_spec_worktree_change" -eq 1 ]]; then
2188
+ ns_index=$((ns_index + 1))
2189
+ continue
2190
+ fi
2191
+
2192
+ for impl_commit in "${impl_commits[@]-}"; do
2193
+ related_to_spec=0
2194
+ covered_by_this_spec=0
2195
+ for spec_commit in $spec_commits; do
2196
+ if git merge-base --is-ancestor "$impl_commit" "$spec_commit" >/dev/null 2>&1; then
2197
+ related_to_spec=1
2198
+ covered_by_this_spec=1
2199
+ break
2200
+ fi
2201
+ if has_merge_sync_coverage "$impl_commit" "$spec_commit"; then
2202
+ related_to_spec=1
2203
+ covered_by_this_spec=1
2204
+ break
2205
+ fi
2206
+ if git merge-base --is-ancestor "$spec_commit" "$impl_commit" >/dev/null 2>&1; then
2207
+ related_to_spec=1
2208
+ fi
2209
+ done
2210
+
2211
+ if [[ "$related_to_spec" -eq 0 ]] || [[ "$covered_by_this_spec" -eq 1 ]]; then
2212
+ continue
2213
+ fi
2214
+
2215
+ covered_by_other_spec=0
2216
+ other_index=0
2217
+ for _ in "${normalized_specs[@]-}"; do
2218
+ if [[ "$other_index" -eq "$ns_index" ]]; then
2219
+ other_index=$((other_index + 1))
2220
+ continue
2221
+ fi
2222
+
2223
+ other_spec_commits="${spec_commit_lists[$other_index]}"
2224
+ for other_spec_commit in $other_spec_commits; do
2225
+ if git merge-base --is-ancestor "$impl_commit" "$other_spec_commit" >/dev/null 2>&1; then
2226
+ covered_by_other_spec=1
2227
+ break
2228
+ fi
2229
+ if has_merge_sync_coverage "$impl_commit" "$other_spec_commit"; then
2230
+ covered_by_other_spec=1
2231
+ break
2232
+ fi
2233
+ done
2234
+ if [[ "$covered_by_other_spec" -eq 1 ]]; then
2235
+ break
2236
+ fi
2237
+ other_index=$((other_index + 1))
2238
+ done
2239
+
2240
+ if [[ "$covered_by_other_spec" -eq 1 ]]; then
2241
+ continue
2242
+ fi
2243
+
2244
+ echo "Spec同步状态=阻断"
2245
+ echo "Spec漂移=存在"
2246
+ echo "Spec同步证据=$(evidence_csv "${spec_evidence[@]-}")"
2247
+ echo "结束原因=implementation changes are newer than associated spec commit (${ns})"
2248
+ exit 2
2249
+ done
2250
+
2251
+ ns_index=$((ns_index + 1))
2252
+ done
2253
+
2254
+ for impl_commit in "${impl_commits[@]-}"; do
2255
+ impl_covered=0
2256
+ for spec_commits in "${spec_commit_lists[@]-}"; do
2257
+ for spec_commit in $spec_commits; do
2258
+ if git merge-base --is-ancestor "$impl_commit" "$spec_commit" >/dev/null 2>&1; then
2259
+ impl_covered=1
2260
+ break
2261
+ fi
2262
+ if has_merge_sync_coverage "$impl_commit" "$spec_commit"; then
2263
+ impl_covered=1
2264
+ break
2265
+ fi
2266
+ done
2267
+ if [[ "$impl_covered" -eq 1 ]]; then
2268
+ break
2269
+ fi
2270
+ done
2271
+
2272
+ if [[ "$impl_covered" -eq 1 ]]; then
2273
+ continue
2274
+ fi
2275
+
2276
+ all_specs_have_worktree_sync=1
2277
+ for has_sync in "${spec_worktree_changed[@]-}"; do
2278
+ if [[ "$has_sync" -eq 1 ]]; then
2279
+ continue
2280
+ fi
2281
+ all_specs_have_worktree_sync=0
2282
+ break
2283
+ done
2284
+
2285
+ if [[ "$all_specs_have_worktree_sync" -eq 1 ]]; then
2286
+ continue
2287
+ fi
2288
+
2289
+ echo "Spec同步状态=阻断"
2290
+ echo "Spec漂移=存在"
2291
+ echo "Spec同步证据=$(evidence_csv "${spec_evidence[@]-}")"
2292
+ echo "结束原因=implementation changes are newer than associated spec commit"
2293
+ exit 2
2294
+ done
2295
+ fi
2296
+
2297
+ echo "Spec同步状态=通过"
2298
+ echo "Spec漂移=不存在"
2299
+ echo "Spec同步证据=$(evidence_csv "${spec_evidence[@]-}")"
2300
+ echo "结束原因=associated spec updated with implementation changes"
2301
+ exit 0
2302
+ fi
2303
+
2304
+ if [[ $has_spec_change -eq 1 ]]; then
2305
+ echo "Spec同步状态=阻断"
2306
+ echo "Spec漂移=存在"
2307
+ echo "Spec同步证据=$(evidence_csv "${spec_changed_paths[@]-}")"
2308
+ echo "结束原因=only non-associated spec files changed while implementation changed"
2309
+ exit 2
2310
+ fi
2311
+
2312
+ echo "Spec同步状态=阻断"
2313
+ echo "Spec漂移=存在"
2314
+ echo "Spec同步证据=未检查"
2315
+ echo "结束原因=implementation changes without spec sync"
2316
+ exit 2