@open-agent-toolkit/cli 0.3.16 → 0.3.17

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 (116) hide show
  1. package/assets/agents/oat-phase-implementer.md +26 -6
  2. package/assets/agents/oat-reviewer.md +51 -1
  3. package/assets/bundle-metadata.json +1 -1
  4. package/assets/docs/contributing/documentation.md +4 -0
  5. package/assets/docs/contributing/skills.md +3 -1
  6. package/assets/docs/getting-started/bootstrap.md +1 -1
  7. package/assets/docs/getting-started/index.md +0 -4
  8. package/assets/docs/getting-started/tool-packs.md +0 -7
  9. package/assets/docs/reference/cli-reference.md +42 -1
  10. package/assets/docs/reference/config-and-local-state.md +11 -2
  11. package/assets/docs/reference/project-artifacts.md +43 -8
  12. package/assets/docs/skills/repo-improve.md +9 -7
  13. package/assets/docs/workflows/advanced/autonomy.md +40 -0
  14. package/assets/docs/workflows/backlog-and-planning/backlog-lifecycle.md +25 -24
  15. package/assets/docs/workflows/backlog-and-planning/remote-project-management.md +0 -7
  16. package/assets/docs/workflows/ideas/lifecycle.md +2 -7
  17. package/assets/docs/workflows/projects/reviews/review-flavors.md +8 -0
  18. package/assets/public-package-versions.json +4 -4
  19. package/assets/skills/oat-agent-instructions-apply/SKILL.md +14 -4
  20. package/assets/skills/oat-brainstorm/SKILL.md +17 -13
  21. package/assets/skills/oat-docs-apply/SKILL.md +13 -3
  22. package/assets/skills/oat-doctor/SKILL.md +11 -1
  23. package/assets/skills/oat-explainer-kit/SKILL.md +1 -1
  24. package/assets/skills/oat-explainer-kit/references/lifecycle-contract.md +6 -3
  25. package/assets/skills/oat-pjm-review-backlog/SKILL.md +2 -2
  26. package/assets/skills/oat-pjm-update-repo-reference/SKILL.md +28 -3
  27. package/assets/skills/oat-project-autonomous/SKILL.md +60 -5
  28. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +44 -6
  29. package/assets/skills/oat-project-capture/SKILL.md +7 -3
  30. package/assets/skills/oat-project-complete/SKILL.md +39 -34
  31. package/assets/skills/oat-project-complete/scripts/execute-synced-archive-entry.mjs +106 -28
  32. package/assets/skills/oat-project-complete/scripts/parse-synced-archive-resume-fields.mjs +30 -3
  33. package/assets/skills/oat-project-design/SKILL.md +12 -9
  34. package/assets/skills/oat-project-discover/SKILL.md +8 -4
  35. package/assets/skills/oat-project-document/SKILL.md +14 -5
  36. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +44 -6
  37. package/assets/skills/oat-project-implement/SKILL.md +1 -1
  38. package/assets/skills/oat-project-implement/references/completion-and-closeout.md +6 -6
  39. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +44 -6
  40. package/assets/skills/oat-project-implement/references/phase-execution.md +20 -6
  41. package/assets/skills/oat-project-import-plan/SKILL.md +20 -6
  42. package/assets/skills/oat-project-lite/SKILL.md +7 -5
  43. package/assets/skills/oat-project-lite/references/docs/autonomy-contract.md +44 -6
  44. package/assets/skills/oat-project-new/SKILL.md +6 -2
  45. package/assets/skills/oat-project-plan/SKILL.md +14 -6
  46. package/assets/skills/oat-project-pr-final/SKILL.md +1 -1
  47. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +44 -6
  48. package/assets/skills/oat-project-progress/SKILL.md +13 -1
  49. package/assets/skills/oat-project-promote-spec-driven/SKILL.md +7 -3
  50. package/assets/skills/oat-project-quick-start/SKILL.md +17 -12
  51. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +44 -6
  52. package/assets/skills/oat-project-reconcile/SKILL.md +8 -4
  53. package/assets/skills/oat-project-retro/SKILL.md +1 -1
  54. package/assets/skills/oat-project-retro/references/apply-procedure.md +6 -6
  55. package/assets/skills/oat-project-retro-file/SKILL.md +7 -3
  56. package/assets/skills/oat-project-review-provide/SKILL.md +23 -4
  57. package/assets/skills/oat-project-review-provide-remote/SKILL.md +19 -1
  58. package/assets/skills/oat-project-review-receive/SKILL.md +37 -12
  59. package/assets/skills/oat-project-review-receive-remote/SKILL.md +7 -3
  60. package/assets/skills/oat-project-revise/SKILL.md +13 -5
  61. package/assets/skills/oat-project-spec/SKILL.md +8 -4
  62. package/assets/skills/oat-project-summary/SKILL.md +11 -7
  63. package/assets/skills/oat-repo-knowledge-index/SKILL.md +54 -20
  64. package/assets/skills/oat-repo-knowledge-index/scripts/refresh-owned.mjs +118 -0
  65. package/assets/skills/oat-review-provide/SKILL.md +7 -3
  66. package/assets/skills/oat-review-receive-remote/SKILL.md +14 -4
  67. package/assets/skills/oat-wave-execute/SKILL.md +24 -11
  68. package/assets/skills/oat-wave-execute/assets/wrapper-plan-template.md +16 -2
  69. package/assets/skills/oat-worktree-bootstrap-auto/SKILL.md +45 -17
  70. package/assets/templates/pjm-agents.md +38 -8
  71. package/assets/templates/repo-agents.md +5 -0
  72. package/assets/templates/repo-readme.md +5 -0
  73. package/dist/commands/backlog/archive.d.ts +3 -0
  74. package/dist/commands/backlog/archive.d.ts.map +1 -1
  75. package/dist/commands/backlog/archive.js +63 -26
  76. package/dist/commands/backlog/index.d.ts.map +1 -1
  77. package/dist/commands/backlog/index.js +3 -0
  78. package/dist/commands/backlog/rewrite-references.d.ts +5 -0
  79. package/dist/commands/backlog/rewrite-references.d.ts.map +1 -1
  80. package/dist/commands/backlog/rewrite-references.js +39 -1
  81. package/dist/commands/init/index.d.ts.map +1 -1
  82. package/dist/commands/init/index.js +1 -0
  83. package/dist/commands/internal/commit-paths.d.ts +3 -0
  84. package/dist/commands/internal/commit-paths.d.ts.map +1 -0
  85. package/dist/commands/internal/commit-paths.js +31 -0
  86. package/dist/commands/internal/index.d.ts.map +1 -1
  87. package/dist/commands/internal/index.js +2 -0
  88. package/dist/commands/pjm/init.d.ts.map +1 -1
  89. package/dist/commands/pjm/init.js +37 -8
  90. package/dist/commands/project/archive/archive-utils.d.ts +6 -3
  91. package/dist/commands/project/archive/archive-utils.d.ts.map +1 -1
  92. package/dist/commands/project/archive/archive-utils.js +510 -104
  93. package/dist/commands/project/archive/push-runner.d.ts.map +1 -1
  94. package/dist/commands/project/archive/push-runner.js +1 -0
  95. package/dist/commands/project/log/append.d.ts +2 -3
  96. package/dist/commands/project/log/append.d.ts.map +1 -1
  97. package/dist/commands/project/log/append.js +55 -101
  98. package/dist/commands/project/migrate/index.d.ts +1 -2
  99. package/dist/commands/project/migrate/index.d.ts.map +1 -1
  100. package/dist/commands/project/migrate/index.js +8 -2
  101. package/dist/commands/project/new/scaffold.d.ts.map +1 -1
  102. package/dist/commands/project/new/scaffold.js +4 -4
  103. package/dist/commands/project/promote/promote.d.ts +8 -0
  104. package/dist/commands/project/promote/promote.d.ts.map +1 -1
  105. package/dist/commands/project/promote/promote.js +37 -6
  106. package/dist/commands/project/status.d.ts.map +1 -1
  107. package/dist/commands/project/status.js +3 -0
  108. package/dist/commands/project/sync/ref-sync.d.ts +12 -1
  109. package/dist/commands/project/sync/ref-sync.d.ts.map +1 -1
  110. package/dist/commands/project/sync/ref-sync.js +347 -23
  111. package/dist/commands/shared/exact-path-commit.d.ts +32 -0
  112. package/dist/commands/shared/exact-path-commit.d.ts.map +1 -0
  113. package/dist/commands/shared/exact-path-commit.js +691 -0
  114. package/dist/validation/skills.d.ts.map +1 -1
  115. package/dist/validation/skills.js +138 -11
  116. package/package.json +3 -2
@@ -11,6 +11,25 @@ mid-run user input. It defines the activation signal, boundary behavior,
11
11
  provenance requirements, and the inventory of interactive gates that an
12
12
  autonomous caller must resolve.
13
13
 
14
+ ## Exact-path commit ownership
15
+
16
+ Autonomous parent-branch bookkeeping and task commits use the shared
17
+ `oat internal commit-paths` primitive with an exact producer-owned file list,
18
+ message and stable unique operation/task identity. Capture the list when files
19
+ are created, changed, removed or renamed; retain it and the identity through
20
+ hook formatting and resumable retries. Include both rename sides and tracked
21
+ removals; omit ignored local outputs. Never infer ownership from unrelated
22
+ staging or pass directories for the helper to expand.
23
+
24
+ Verify `oat internal commit-paths --help` before the first commit. A missing
25
+ command stops execution with CLI-update guidance; blocked/failed outcomes stop
26
+ with their receipt and diagnostic. There is no staged-index or pathspec-only
27
+ fallback. Ordinary hooks remain enabled; a validated smoke child retains its
28
+ launcher-owned hook policy on the same primitive. Synced project artifacts
29
+ continue through scope-resolved `oat project push`, with scope/push failures
30
+ stopping bookkeeping. This ownership contract applies to the lifecycle sites
31
+ in the vendored inventory below.
32
+
14
33
  ## Activation and lifetime
15
34
 
16
35
  Autonomy is active only when the current process environment contains the exact
@@ -65,6 +84,25 @@ Operational, validation, correlation, malformed or contradictory envelope,
65
84
  launch, and receive failures are boundary stops regardless of `onFailure`.
66
85
  None can continue under `warn` or produce an allowed disposition.
67
86
 
87
+ ## Kickoff disclosure
88
+
89
+ The autonomous caller must read the owning recovery, gate and dispatch
90
+ contracts before execution and disclose effective project/phase limits, their
91
+ source/override, prior durable usage, remaining capacity and reconciled pending
92
+ attempts. `oat-project-autonomous` owns the kickoff report; phase dispatch and
93
+ resume refresh it from `state.md` using the phase-execution contract.
94
+
95
+ Capacity is not permission. A failed recovery attempt is terminal even when
96
+ allowance remains; continuing after failure requires a separate future policy.
97
+ Report all applicable owning stops: eligibility/proof failure, new-attempt
98
+ budget exhaustion, malformed ledger or unresolved pending attempt, exact-target
99
+ or accepted-launch failure, configured blocking reviews, missing credentials,
100
+ repository authority, product judgment, destructive risk and inventory gaps.
101
+ Route retries, recovery events/attempts, warnings and review/gate budgets have
102
+ separate meanings. Neither a counter nor a warning overrides a stop or grants
103
+ recovery permission. Existing failure dispositions and gate policies remain
104
+ authoritative.
105
+
68
106
  ## Boundary classes
69
107
 
70
108
  | Class | Required behavior |
@@ -241,16 +279,16 @@ remains immutable baseline evidence for the original p01-t01 verification.
241
279
 
242
280
  | Skill root / file | Stable prompt-site mappings |
243
281
  | -------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
244
- | `oat-project-new/SKILL.md` | `f7ca8635452f -> NG`; `dceff5cc04b5 -> NG`; `1af4957a1af2 -> NEW-01`; `45b699c1c0b5 -> NEW-01`; `ba6d120791c1 -> NEW-01`; `33ce6a6c30aa -> NEW-02`; `0f5a90f34f63 -> NG`; `d0ea3a91261d -> NG` |
245
- | `oat-project-quick-start/SKILL.md` | `3d101cb200b3 -> NG`; `c493a38b89f2 -> QS-04`; `655d61df0a8f -> NG`; `dceff5cc04b5 -> NG`; `1af4957a1af2 -> QS-01`; `141d0a20099b -> QS-01`; `45b699c1c0b5 -> QS-01`; `ba6d120791c1 -> QS-01`; `1a5ee85164ff -> QS-02`; `af8e2bea90d7 -> QS-04`; `a823cf5aeaec -> QS-04`; `7753dc323083 -> QS-04`; `1f557da5e03c -> QS-04`; `1564ca151111 -> NG`; `c24787334ade -> QS-05`; `021ba03c82c5 -> QS-05`; `5d1a9d1b661d -> QS-05`; `318f304ee3b3 -> QS-05`; `cc700d4d2cab -> QS-05`; `7ef6aa642400 -> QS-05`; `4d389b234556 -> QS-05`; `84c506dac106 -> QS-05`; `caf7622a2e02 -> QS-05`; `8917190b2e98 -> QS-06`; `5a028d846aa5 -> QS-06`; `b1d92192b8ca -> QS-06`; `bdbb18955cc4 -> QS-06`; `6d159a2e8f8e -> QS-06`; `61a9849f4dfc -> QS-06`; `31cb92052ea6 -> QS-06`; `ed1ed94c6d32 -> QS-07`; `1b4d962822b2 -> QS-07`; `1c37d3834054 -> QS-07`; `2cb069a2590b -> NG`; `fd0aff270853 -> NG`; `a114b27f8b4b -> NG`; `77dc8e1b728a -> QS-08`; `d3e3fba65b96 -> QS-09`; `71c2a0ba99bf -> QS-09`; `f47f9f9c0d03 -> QS-09`; `224a4b43fb29 -> QS-10`; `744f130d4116 -> QS-12`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> QS-12`; `857e91aa3095 -> NG`; `b4af2220eb91 -> QS-12` |
282
+ | `oat-project-new/SKILL.md` | `f7ca8635452f -> NG`; `93afef50c96b -> NG`; `1af4957a1af2 -> NEW-01`; `45b699c1c0b5 -> NEW-01`; `ba6d120791c1 -> NEW-01`; `33ce6a6c30aa -> NEW-02`; `0f5a90f34f63 -> NG`; `d0ea3a91261d -> NG` |
283
+ | `oat-project-quick-start/SKILL.md` | `3d101cb200b3 -> NG`; `c493a38b89f2 -> QS-04`; `655d61df0a8f -> NG`; `81fde4589fa0 -> NG`; `1af4957a1af2 -> QS-01`; `141d0a20099b -> QS-01`; `45b699c1c0b5 -> QS-01`; `ba6d120791c1 -> QS-01`; `1a5ee85164ff -> QS-02`; `af8e2bea90d7 -> QS-04`; `a823cf5aeaec -> QS-04`; `7753dc323083 -> QS-04`; `1f557da5e03c -> QS-04`; `1564ca151111 -> NG`; `c24787334ade -> QS-05`; `021ba03c82c5 -> QS-05`; `5d1a9d1b661d -> QS-05`; `318f304ee3b3 -> QS-05`; `cc700d4d2cab -> QS-05`; `7ef6aa642400 -> QS-05`; `4d389b234556 -> QS-05`; `84c506dac106 -> QS-05`; `caf7622a2e02 -> QS-05`; `8917190b2e98 -> QS-06`; `5a028d846aa5 -> QS-06`; `b1d92192b8ca -> QS-06`; `bdbb18955cc4 -> QS-06`; `6d159a2e8f8e -> QS-06`; `61a9849f4dfc -> QS-06`; `31cb92052ea6 -> QS-06`; `ed1ed94c6d32 -> QS-07`; `1b4d962822b2 -> QS-07`; `1c37d3834054 -> QS-07`; `2cb069a2590b -> NG`; `fd0aff270853 -> NG`; `a114b27f8b4b -> NG`; `77dc8e1b728a -> QS-08`; `d3e3fba65b96 -> QS-09`; `71c2a0ba99bf -> QS-09`; `f47f9f9c0d03 -> QS-09`; `224a4b43fb29 -> QS-10`; `744f130d4116 -> QS-12`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> QS-12`; `857e91aa3095 -> NG`; `b4af2220eb91 -> QS-12` |
246
284
  | `oat-project-lite/SKILL.md` | `f7ca8635452f -> NG`; `ccb52f3fe44f -> NG`; `d09c1d63de1e -> NG`; `74b3049abec0 -> NG`; `973d0ae8a3dc -> NG`; `2d41ff5e5312 -> NG`; `5d4905b0be0c -> NG`; `f83829edf0a9 -> LITE-03`; `1515a1f4cded -> LITE-03`; `d0ff7aed2105 -> NG`; `22a862d34014 -> NG`; `3f5d2168fae3 -> LITE-05`; `c42b996db4f1 -> LITE-05`; `b2f7560edf76 -> LITE-05`; `92d354802e4c -> LITE-05`; `ccd2225b1a37 -> LITE-05`; `89266e7d2643 -> NG`; `b018d0fc3536 -> LITE-09`; `e2d7d177f04e -> LITE-09`; `60db88220f98 -> NG`; `43ae7872602f -> NG` |
247
285
  | `oat-project-lite/SKILL.md` | `b8a40746b272 -> NG`; `090e205f5959 -> LITE-10` |
248
286
  | `oat-project-quick-start/references/docs/autonomy-contract.md` | `* -> NG` |
249
287
  | `oat-project-discover/SKILL.md` | `6acc57686847 -> NG`; `4df56b83b98e -> NG`; `660fcdb9dd0d -> NG`; `655d61df0a8f -> NG`; `302f5a4e2f7e -> DISC-03`; `8ee1861bb37c -> DISC-03`; `50a1cdc5156b -> DISC-05`; `73964bb042ab -> DISC-05`; `82cc79370b80 -> DISC-05`; `ff09e8f7774f -> DISC-06`; `323e71dca05d -> DISC-06`; `012bab5b478e -> DISC-06`; `59b36042ba08 -> DISC-06`; `7eaa40e078b9 -> DISC-07`; `b57408be1e7b -> DISC-07`; `4683ea4a7d2f -> DISC-07`; `04454a79d998 -> DISC-08`; `54444ee79fc8 -> DISC-08`; `dd3b5d3d6424 -> DISC-08`; `f64efa435cb2 -> DISC-08`; `1f802b9bc5ad -> DISC-08`; `3fad0405b2bc -> NG`; `2eeba46b7d76 -> DISC-08`; `459873105e7a -> NG` |
250
- | `oat-project-design/SKILL.md` | `d942bb5a75dc -> NG`; `f9e319c9b223 -> NG`; `8bdedbff2084 -> NG`; `655d61df0a8f -> NG`; `cf317c17c586 -> DES-01`; `2fd9e4306093 -> NG`; `30aaa490f54f -> NG`; `5d39260a7350 -> DES-03`; `925238b3a9b8 -> DES-03`; `f44832c14f8f -> DES-03`; `7f6ed9174a80 -> DES-03`; `ea8a45cff484 -> DES-03`; `ae06e7f3590d -> DES-03`; `ad9715bfa9b5 -> DES-03`; `235f4eba81d9 -> DES-03`; `86d15c022ff2 -> DES-03`; `c08ee2c84186 -> DES-03`; `bd3ee332d171 -> DES-03`; `ec88b585a24d -> DES-03`; `a9595a6486f1 -> DES-04`; `accb06cd6f3c -> DES-04`; `806001c2c365 -> DES-04`; `696587b33f1e -> DES-04`; `9c3320eee2f8 -> NG`; `8b653210ce17 -> NG`; `8ad2a4dc63d2 -> DES-05`; `33cc7540d89e -> DES-05`; `51a2b698ba14 -> DES-05`; `81085592cc91 -> DES-05`; `74b952cc1121 -> DES-05`; `da7551391a41 -> DES-05`; `02c93ec05a4a -> DES-06`; `6864967fd8a4 -> DES-06`; `84e9be719156 -> DES-06`; `7ed89c44264b -> DES-06`; `dc7ba56c1cd4 -> DES-06`; `57ccefb935bf -> DES-06`; `9d27238332b2 -> NG`; `a0c758ab26aa -> NG`; `0e17c1a2de0b -> DES-07`; `e9ea8625567c -> DES-07`; `908e710e7304 -> DES-07`; `b3df7f6b838c -> DES-07`; `f2cb6d4a915e -> DES-07`; `2f4a7f0c9fe5 -> DES-07`; `feccfddbb990 -> DES-07`; `62556fd0060a -> DES-07`; `5382604ed237 -> DES-07`; `3b8724979206 -> DES-07`; `f86a1f05edb9 -> DES-07`; `65f2c8b5c7fd -> DES-07`; `96e24cf8a888 -> DES-07`; `bd3ad56d6265 -> DES-08`; `a19d9c6d7b42 -> DES-08`; `3af5412588ba -> DES-08`; `a0f1c66507d0 -> DES-08`; `a97364c2ca8b -> DES-08`; `4725e333dea4 -> DES-07`; `595d3a64c0f4 -> DES-07`; `57923a130802 -> DES-07`; `7d8fdfb4ca6f -> NG`; `033fb711de49 -> NG`; `d30bb6464138 -> DES-08` |
288
+ | `oat-project-design/SKILL.md` | `d942bb5a75dc -> NG`; `f9e319c9b223 -> NG`; `8bdedbff2084 -> NG`; `655d61df0a8f -> NG`; `cf317c17c586 -> DES-01`; `2fd9e4306093 -> NG`; `30aaa490f54f -> NG`; `5d39260a7350 -> DES-03`; `925238b3a9b8 -> DES-03`; `f44832c14f8f -> DES-03`; `7f6ed9174a80 -> DES-03`; `ea8a45cff484 -> DES-03`; `ae06e7f3590d -> DES-03`; `ad9715bfa9b5 -> DES-03`; `235f4eba81d9 -> DES-03`; `86d15c022ff2 -> DES-03`; `c08ee2c84186 -> DES-03`; `bd3ee332d171 -> DES-03`; `ec88b585a24d -> DES-03`; `a9595a6486f1 -> DES-04`; `accb06cd6f3c -> DES-04`; `806001c2c365 -> DES-04`; `696587b33f1e -> DES-04`; `9c3320eee2f8 -> NG`; `4f53e61a9df5 -> NG`; `8ad2a4dc63d2 -> DES-05`; `33cc7540d89e -> DES-05`; `51a2b698ba14 -> DES-05`; `81085592cc91 -> DES-05`; `74b952cc1121 -> DES-05`; `da7551391a41 -> DES-05`; `02c93ec05a4a -> DES-06`; `6864967fd8a4 -> DES-06`; `84e9be719156 -> DES-06`; `7ed89c44264b -> DES-06`; `dc7ba56c1cd4 -> DES-06`; `57ccefb935bf -> DES-06`; `9d27238332b2 -> NG`; `a0c758ab26aa -> NG`; `0e17c1a2de0b -> DES-07`; `e9ea8625567c -> DES-07`; `908e710e7304 -> DES-07`; `b3df7f6b838c -> DES-07`; `f2cb6d4a915e -> DES-07`; `2f4a7f0c9fe5 -> DES-07`; `feccfddbb990 -> DES-07`; `62556fd0060a -> DES-07`; `5382604ed237 -> DES-07`; `3b8724979206 -> DES-07`; `f86a1f05edb9 -> DES-07`; `65f2c8b5c7fd -> DES-07`; `96e24cf8a888 -> DES-07`; `bd3ad56d6265 -> DES-08`; `a19d9c6d7b42 -> DES-08`; `3af5412588ba -> DES-08`; `a0f1c66507d0 -> DES-08`; `a97364c2ca8b -> DES-08`; `4725e333dea4 -> DES-07`; `595d3a64c0f4 -> DES-07`; `57923a130802 -> DES-07`; `7d8fdfb4ca6f -> NG`; `033fb711de49 -> NG`; `d30bb6464138 -> DES-08` |
251
289
  | `oat-project-design/references/selective-review-pass.md` | `d4956192b82e -> DES-06`; `7d6e1f926ecb -> DES-06`; `04f918a5fcac -> DES-07` |
252
290
  | `oat-project-plan/SKILL.md` | `f9e319c9b223 -> NG`; `2f0ae331febf -> NG`; `655d61df0a8f -> NG`; `56b37486f09d -> PLAN-01`; `cf317c17c586 -> PLAN-02`; `781643b0f2c3 -> NG`; `01fd7cca8253 -> PLAN-04`; `7bc7fa3f2cbb -> NG`; `da28ce0a5f2e -> NG`; `e334f94c4d35 -> NG`; `1fa55762c038 -> NG`; `c0935b5484a2 -> NG`; `6008163054f8 -> PLAN-05`; `571271f4d71b -> PLAN-06`; `746b760289e4 -> PLAN-06`; `de195590ff83 -> NG`; `49640510829a -> PLAN-07`; `4bef7afa7a71 -> PLAN-08`; `e5886632533e -> PLAN-08`; `4cfe1df14372 -> NG`; `d116c97a500c -> PLAN-10`; `aa62facff547 -> PLAN-10`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> PLAN-11`; `1734b2c85c5d -> NG`; `b4af2220eb91 -> PLAN-11` |
253
- | `oat-project-import-plan/SKILL.md` | `f7ca8635452f -> NG`; `c2e5fa410069 -> NG`; `655d61df0a8f -> NG`; `dceff5cc04b5 -> NG`; `1af4957a1af2 -> IMPORT-01`; `45b699c1c0b5 -> IMPORT-01`; `ba6d120791c1 -> IMPORT-01`; `070ebc5259af -> IMPORT-03`; `c11552696e2e -> IMPORT-03`; `cfe661966baf -> IMPORT-04`; `baa91c0a0bf8 -> NG`; `e364e84b2702 -> NG`; `39031985a945 -> IMPORT-06`; `f106aa29a217 -> IMPORT-07`; `65038450aee3 -> IMPORT-07`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> IMPORT-09`; `30aa74677c8d -> IMPORT-03`; `430c2bc030a6 -> IMPORT-03`; `93522f67da52 -> NG` |
291
+ | `oat-project-import-plan/SKILL.md` | `f7ca8635452f -> NG`; `c2e5fa410069 -> NG`; `655d61df0a8f -> NG`; `4c47bc965ad9 -> NG`; `1af4957a1af2 -> IMPORT-01`; `45b699c1c0b5 -> IMPORT-01`; `ba6d120791c1 -> IMPORT-01`; `070ebc5259af -> IMPORT-03`; `c11552696e2e -> IMPORT-03`; `9727e7ffb5cb -> IMPORT-04`; `959ec0019ee5 -> IMPORT-04`; `9b8eab171295 -> IMPORT-04`; `baa91c0a0bf8 -> NG`; `e364e84b2702 -> NG`; `39031985a945 -> IMPORT-06`; `f106aa29a217 -> IMPORT-07`; `65038450aee3 -> IMPORT-07`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> IMPORT-09`; `30aa74677c8d -> IMPORT-03`; `430c2bc030a6 -> IMPORT-03`; `93522f67da52 -> NG` |
254
292
  | `oat-project-implement/SKILL.md` | `18980f6bc1a6 -> NG`; `e0355c7a05e9 -> IMPLEMENT-11+IMPLEMENT-13+IMPLEMENT-16`; `6296f41ae11c -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> IMPLEMENT-01`; `8ce8a09feca4 -> NG`; `bd0cb4988188 -> NG`; `28af4ee0055d -> NG` |
255
293
  | `oat-project-implement/references/completion-and-closeout.md` | `87f1424a8692 -> NG`; `6b1ec05182f0 -> IMPLEMENT-11`; `e6d696a27c91 -> NG`; `c77f8ccb52ad -> NG`; `48de2614c0ba -> IMPLEMENT-11`; `32d53f5212e5 -> IMPLEMENT-11`; `7cdb4a9c57b7 -> IMPLEMENT-11`; `16ffc0aa099b -> IMPLEMENT-11`; `d6868ea10b3f -> IMPLEMENT-11`; `4f05ff5567be -> IMPLEMENT-11`; `c70b47ae7a6d -> IMPLEMENT-11`; `5fafd093b58e -> NG`; `21ceaf7e658a -> NG`; `249427a9f475 -> NG`; `8a7ec13a9b7c -> NG`; `9aeb7fce2012 -> IMPLEMENT-18`; `f11a7cdda220 -> IMPLEMENT-18`; `4523ac029152 -> NG`; `6e87b08c4046 -> NG`; `baa6052c7f0a -> IMPLEMENT-18`; `27d3fad116b1 -> IMPLEMENT-18`; `2cfbeb4388a5 -> IMPLEMENT-18`; `c56ea56a56db -> NG`; `43e2e3c1380d -> IMPLEMENT-17`; `b49690277fb5 -> NG`; `df12304d6a36 -> NG`; `52eacac11fef -> IMPLEMENT-17`; `60092df6b17b -> IMPLEMENT-17`; `361872c6b00e -> IMPLEMENT-17`; `d2bc711a75fb -> IMPLEMENT-17`; `9889538f6212 -> NG`; `58add7778cef -> NG`; `3984cd158ca8 -> NG`; `64a638393159 -> NG`; `ecdaaf6c76fa -> NG`; `96e01b7c0713 -> NG`; `79806948373a -> NG`; `82701dfaf962 -> NG`; `b1c7b8299bf7 -> IMPLEMENT-13+IMPLEMENT-15`; `352caf79e5cb -> IMPLEMENT-13+IMPLEMENT-15`; `6792dd0068a7 -> IMPLEMENT-13+IMPLEMENT-15`; `91f4ebf1704c -> IMPLEMENT-13+IMPLEMENT-15`; `1119540c90cd -> IMPLEMENT-13+IMPLEMENT-15`; `13e6d608682c -> IMPLEMENT-15`; `9fc3aa86e096 -> IMPLEMENT-13+IMPLEMENT-15`; `b44bd8f4fe7e -> NG`; `d62f3ae68677 -> NG`; `4133bca9bd9f -> IMPLEMENT-12`; `f6f87d97896b -> IMPLEMENT-14`; `9d066a59d00a -> IMPLEMENT-14`; `abd7a8d8fc89 -> IMPLEMENT-14`; `a2199f9dafee -> IMPLEMENT-14`; `fcef83b91326 -> NG`; `e2df750966f5 -> IMPLEMENT-13+IMPLEMENT-15`; `2b714060ccae -> IMPLEMENT-13+IMPLEMENT-15`; `708e8e6d33ac -> IMPLEMENT-15`; `f81e67549c28 -> IMPLEMENT-13+IMPLEMENT-15`; `8980233e250d -> NG`; `713729395d08 -> IMPLEMENT-13`; `671f3622cd05 -> IMPLEMENT-13`; `19c38f351f3e -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `b552eeb1fa37 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `24de52a2e140 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `18071a1287a9 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `318989f76cd7 -> IMPLEMENT-16`; `50c9170a3fc8 -> NG`; `8af4d1f8c32c -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `f47aefb3a3cc -> IMPLEMENT-16`; `7c7bcd0381cb -> NG`; `4808cd2e14d6 -> NG`; `906d7d8628af -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `c7221ba40303 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `05eaa2d6f58f -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `acf05140d8f3 -> IMPLEMENT-19`; `6d68053180a0 -> NG`; `1128ae7838f5 -> IMPLEMENT-19`; `2b3e427b5fc0 -> IMPLEMENT-19`; `9fdeb38897a2 -> IMPLEMENT-13+IMPLEMENT-15`; `4f1c82e4bef8 -> IMPLEMENT-13+IMPLEMENT-15`; `d74b5b3c4ad3 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `85b8fae4aa24 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `912923a29ecf -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `c9707e20ad4a -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `8108196d68a5 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `ad9d8e0114a6 -> IMPLEMENT-16`; `e6ef8cdc8986 -> IMPLEMENT-16`; `d3891824ecfa -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `045d486db046 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `7f3891ba6f9d -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `2db46931ac00 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `aaaf9a6d018a -> IMPLEMENT-16`; `5198341f296c -> IMPLEMENT-16`; `4443b0d16d43 -> IMPLEMENT-16`; `76511502e95b -> IMPLEMENT-16`; `585a1f4575a1 -> IMPLEMENT-16`; `7dc4e4afca1e -> IMPLEMENT-16`; `0d3f1d6038fd -> IMPLEMENT-16`; `e3dfc24fbed6 -> IMPLEMENT-16`; `f19c8013230c -> IMPLEMENT-16`; `ba83e7ce6aed -> IMPLEMENT-16`; `4e4c5485b755 -> IMPLEMENT-16`; `cc8e7e01f30c -> IMPLEMENT-17`; `a13b8adde5da -> IMPLEMENT-17` |
256
294
  | `oat-project-implement/references/dispatch-and-dry-run.md` | `21b85f5e4daa -> IMPLEMENT-08`; `74c92b32bb2a -> IMPLEMENT-08`; `8efd2d0517ab -> IMPLEMENT-09`; `461ed9b3e495 -> IMPLEMENT-09`; `b5ad64fd744d -> NG`; `14ce436cfffa -> NG`; `043ca36da3e2 -> NG`; `a23e45c1dc8d -> NG`; `498143bb41a7 -> NG`; `4fe3eb179023 -> NG`; `7f75485e5a33 -> NG`; `8ec3a96df029 -> NG`; `16c3f96e758d -> NG`; `5915c41fe058 -> NG`; `f51e43eeac56 -> NG`; `fd41c25623cb -> NG`; `58a932ed6453 -> NG`; `4718bd3ce12d -> NG`; `58c444a2126b -> NG`; `e75df892b55c -> NG`; `8ba5dbd2a0d8 -> NG`; `4d6c519131e5 -> NG` |
@@ -264,7 +302,7 @@ remains immutable baseline evidence for the original p01-t01 verification.
264
302
  | `oat-project-pr-final/references/docs/autonomy-contract.md` | `* -> NG` |
265
303
  | `oat-project-complete/SKILL.md` | `6ed459f9e462 -> NG`; `a167d03559fa -> NG`; `79c2eeed668c -> COMPLETE-01`; `2c1514b9d9af -> COMPLETE-01`; `31c750b4fea7 -> COMPLETE-01`; `cfba413b1293 -> COMPLETE-01`; `7fcfce0423ac -> COMPLETE-01`; `7bcbf58b54e9 -> NG`; `4c7f88a7f942 -> COMPLETE-02`; `6a1a95acc8cc -> COMPLETE-02`; `3b559956b3eb -> COMPLETE-03`; `14d161cdf99b -> COMPLETE-03`; `fffe5eea5ebd -> NG`; `e7dc6fdc4eb3 -> COMPLETE-01`; `e5460e437299 -> NG`; `882b61c9096c -> NG`; `9ffa1c752505 -> NG`; `8c5e599f6bac -> NG` |
266
304
  | `oat-project-review-provide/SKILL.md` | `1f4b981cac8b -> NG`; `adaeca152bb2 -> NG`; `2f7c201c3c06 -> NG`; `88f79700afdc -> NG`; `655d61df0a8f -> NG`; `efafde9ef5a0 -> NG`; `d2a3861d6323 -> REVIEWPROVIDE-02`; `65f5b9cf49cd -> REVIEWPROVIDE-04`; `962cb38d246a -> REVIEWPROVIDE-04`; `1a568483ba0b -> REVIEWPROVIDE-04`; `610e27edfe85 -> REVIEWPROVIDE-04`; `bb0096e95c47 -> REVIEWPROVIDE-06`; `55f6357a987d -> REVIEWPROVIDE-06`; `1bee61f8531c -> REVIEWPROVIDE-07`; `3d35091607a1 -> REVIEWPROVIDE-08`; `fb40c4341c4c -> NG`; `b22d16885150 -> NG`; `d2b25906242e -> REVIEWPROVIDE-08`; `fd8ebf72b3c4 -> NG`; `79c8103e8656 -> NG`; `4fbd78337e33 -> NG`; `c3d50ea7cf69 -> NG`; `09b1b8dd445c -> NG`; `7acc8f3718d2 -> REVIEWPROVIDE-09`; `b2fa883fc4a2 -> NG`; `fe4421531b4c -> NG` |
267
- | `oat-project-review-receive/SKILL.md` | `9b8a3743d626 -> NG`; `49ed2780983b -> NG`; `4ee8730382d3 -> NG`; `655d61df0a8f -> NG`; `765f897d67ac -> NG`; `53b58d16dd32 -> NG`; `fb8755a3bdf4 -> NG`; `1d710fb4cc66 -> NG`; `1f7dd98dff2f -> NG`; `56f78c6740e6 -> NG`; `76f5fb5a88cd -> NG`; `085abfa3599f -> REVIEWRECEIVE-01`; `92578f7df686 -> NG`; `a7d114059bb6 -> NG`; `ac88cfaa83d9 -> NG`; `594bbf70346c -> REVIEWRECEIVE-08`; `f31f07284718 -> REVIEWRECEIVE-02`; `e4c0625439f8 -> REVIEWRECEIVE-04`; `505ad8389c0a -> REVIEWRECEIVE-05`; `20e05e1a4381 -> REVIEWRECEIVE-06`; `90001dadf75f -> REVIEWRECEIVE-07`; `f8fd58180ecf -> NG`; `c3abcdc02d9f -> NG`; `f2ebdd6abb9b -> NG` |
305
+ | `oat-project-review-receive/SKILL.md` | `9b8a3743d626 -> NG`; `49ed2780983b -> NG`; `4ee8730382d3 -> NG`; `655d61df0a8f -> NG`; `765f897d67ac -> NG`; `53b58d16dd32 -> NG`; `fb8755a3bdf4 -> NG`; `1d710fb4cc66 -> NG`; `1f7dd98dff2f -> NG`; `56f78c6740e6 -> NG`; `76f5fb5a88cd -> NG`; `085abfa3599f -> REVIEWRECEIVE-01`; `92578f7df686 -> NG`; `a7d114059bb6 -> NG`; `ac88cfaa83d9 -> NG`; `594bbf70346c -> REVIEWRECEIVE-08`; `f31f07284718 -> REVIEWRECEIVE-02`; `e4c0625439f8 -> REVIEWRECEIVE-04`; `505ad8389c0a -> REVIEWRECEIVE-05`; `20e05e1a4381 -> REVIEWRECEIVE-06`; `e30e06f39281 -> REVIEWRECEIVE-07`; `f8fd58180ecf -> NG`; `c3abcdc02d9f -> NG`; `f2ebdd6abb9b -> NG` |
268
306
  | `oat-project-review-provide/SKILL.md` | `2e794bf4fc4a -> REVIEWPROVIDE-08`; `5441ab977b46 -> REVIEWPROVIDE-08` |
269
307
  | `oat-project-review-provide/SKILL.md` | `f4238ebb1887 -> NG`; `0360fa2db9a5 -> NG` |
270
308
  | `oat-project-implement/references/phase-execution.md` | `b31a9a4e6f75 -> NG` |
@@ -277,7 +315,7 @@ remains immutable baseline evidence for the original p01-t01 verification.
277
315
  | `oat-dispatch-subagents/references/record-schema.md` | `78f8069274a8 -> NG`; `1c9a84c4d1e0 -> NG`; `2a63da6e3a96 -> NG`; `30762d53b043 -> NG`; `66bc2f0d4fda -> NG` |
278
316
  | `oat-project-dispatch-subagents/SKILL.md` | `eca03ad1ca12 -> PDISPATCH-01`; `59fbcdc79cea -> PDISPATCH-01` |
279
317
  | `oat-project-plan/SKILL.md` | `f99e44b39932 -> PLAN-12`; `7e6a9854504b -> NG` |
280
- | `oat-project-complete/SKILL.md` | `0177956707aa -> NG`; `8305b5bb65ef -> NG`; `3c0b26f0ff1c -> NG`; `8cc1fa5aab1e -> COMPLETE-01`; `4c209fbb4716 -> COMPLETE-01`; `02e4175e1171 -> COMPLETE-01`; `d698d4f98e76 -> COMPLETE-01`; `9f86a7218d93 -> COMPLETE-01`; `024713698d9a -> COMPLETE-01`; `c327995053fa -> COMPLETE-01`; `61f81d4ec7c1 -> COMPLETE-01`; `14fb2e56809f -> COMPLETE-01`; `7d4ff668744d -> COMPLETE-01`; `502a6c141784 -> COMPLETE-01`; `fb7e2db356af -> COMPLETE-01`; `f73f8476360a -> NG`; `1e15f420039f -> NG`; `cc234032ddd7 -> NG`; `1dd54687229b -> NG`; `fc05c8303cd2 -> NG`; `24be721d635e -> NG` |
318
+ | `oat-project-complete/SKILL.md` | `0177956707aa -> NG`; `1234c29d1999 -> NG`; `3c0b26f0ff1c -> NG`; `8cc1fa5aab1e -> COMPLETE-01`; `4c209fbb4716 -> COMPLETE-01`; `02e4175e1171 -> COMPLETE-01`; `d698d4f98e76 -> COMPLETE-01`; `9f86a7218d93 -> COMPLETE-01`; `024713698d9a -> COMPLETE-01`; `c327995053fa -> COMPLETE-01`; `61f81d4ec7c1 -> COMPLETE-01`; `14fb2e56809f -> COMPLETE-01`; `7d4ff668744d -> COMPLETE-01`; `502a6c141784 -> COMPLETE-01`; `fb7e2db356af -> COMPLETE-01`; `f73f8476360a -> NG`; `1e15f420039f -> NG`; `cc234032ddd7 -> NG`; `1dd54687229b -> NG`; `fc05c8303cd2 -> NG`; `24be721d635e -> NG` |
281
319
  | `oat-project-lite/references/docs/autonomy-contract.md` | `* -> NG` |
282
320
  | `oat-project-implement/references/completion-and-closeout.md` | `87f1424a8692 -> NG`; `6b1ec05182f0 -> IMPLEMENT-11`; `e6d696a27c91 -> NG`; `c77f8ccb52ad -> NG`; `48de2614c0ba -> IMPLEMENT-11`; `32d53f5212e5 -> IMPLEMENT-11`; `7cdb4a9c57b7 -> IMPLEMENT-11`; `16ffc0aa099b -> IMPLEMENT-11`; `d6868ea10b3f -> IMPLEMENT-11`; `4f05ff5567be -> IMPLEMENT-11`; `c70b47ae7a6d -> IMPLEMENT-11`; `5fafd093b58e -> NG`; `21ceaf7e658a -> NG`; `249427a9f475 -> NG`; `8a7ec13a9b7c -> NG`; `9aeb7fce2012 -> IMPLEMENT-18`; `f11a7cdda220 -> IMPLEMENT-18`; `4523ac029152 -> NG`; `6e87b08c4046 -> NG`; `baa6052c7f0a -> IMPLEMENT-18`; `27d3fad116b1 -> IMPLEMENT-18`; `2cfbeb4388a5 -> IMPLEMENT-18`; `c56ea56a56db -> NG`; `43e2e3c1380d -> IMPLEMENT-17`; `b49690277fb5 -> NG`; `df12304d6a36 -> NG`; `52eacac11fef -> IMPLEMENT-17`; `60092df6b17b -> IMPLEMENT-17`; `361872c6b00e -> IMPLEMENT-17`; `d2bc711a75fb -> IMPLEMENT-17` |
283
321
  | `oat-project-quick-start/SKILL.md` | `aa560418765a -> QS-13`; `40ddcac880ef -> NG` |
@@ -5,7 +5,7 @@ disable-model-invocation: false
5
5
  user-invocable: true
6
6
  allowed-tools: Read, Glob, Grep, Bash(git:*), Bash(oat:*), AskUserQuestion
7
7
  metadata:
8
- version: 1.4.4
8
+ version: 1.4.5
9
9
  ---
10
10
 
11
11
  # Progress Router
@@ -182,6 +182,18 @@ Read `{project}/state.md` frontmatter:
182
182
  - `oat_implement_exit_gate` - The implementation exit gate record
183
183
  - `oat_quick_start_gate` - The quick-start plan gate record
184
184
 
185
+ Blockers may be legacy reason strings or structured `{task_id, reason, since}`
186
+ records. Display strings as their reason; display records as
187
+ `{task_id}: {reason} (since {since})`, reading each field deliberately rather
188
+ than coercing the object to text. `oat project status --json` preserves those
189
+ three literal string fields; `--field project.blockers` and
190
+ `--shell BLOCKERS=project.blockers` serialize the list as JSON. Empty lists mean
191
+ no blockers; mixed lists retain entries in order. Records missing any nonempty
192
+ string field and other malformed entries become diagnostic legacy strings:
193
+ `Malformed blocker entry: <JSON>`. They remain visible to blocker checks and
194
+ human output. Legacy string normalization remains unchanged. Do not change
195
+ state or routing merely to render blockers.
196
+
185
197
  **Display format:**
186
198
 
187
199
  ```
@@ -6,7 +6,7 @@ disable-model-invocation: true
6
6
  user-invocable: true
7
7
  allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion
8
8
  metadata:
9
- version: 1.2.4
9
+ version: 1.2.5
10
10
  ---
11
11
 
12
12
  # Promote Project To Spec-Driven Lifecycle
@@ -15,6 +15,10 @@ Convert a quick/import workflow project into a Spec-Driven OAT lifecycle project
15
15
 
16
16
  Lite projects promote through quick first: run `oat project promote <path> --to quick`, then use this skill. This skill's direct eligibility remains quick/import only.
17
17
 
18
+ ## Hook-safe exact-path commits
19
+
20
+ Before a parent-branch commit, verify `oat internal commit-paths --help` succeeds. If unavailable, stop and update the OAT CLI; never fall back to a staged-index or pathspec-only commit. Set `COMMIT_IDENTITY` to a unique operation/artifact identity before the first attempt and retain it for every retry; use a new identity for a new operation. Pass only the exact produced file list, including tracked removals and both names of a rename. A blocked/failed result stops the workflow; retain its receipt and follow its diagnostics. Hooks remain enabled. Synced project artifacts continue through `oat project push`.
21
+
18
22
  ## Prerequisites
19
23
 
20
24
  - Active project exists.
@@ -153,8 +157,8 @@ PROJECT_SCOPE=$(oat project scope "$PROJECT_PATH" --format value) || {
153
157
  if [ "$PROJECT_SCOPE" = "synced" ]; then
154
158
  oat project push "$PROJECT_PATH" --message "chore(oat): promote {project-name} to spec-driven" || { echo "oat: project push failed; run oat project pull, resolve the reported state, and retry" >&2; exit 1; }
155
159
  else
156
- git add "$PROJECT_PATH/discovery.md" "$PROJECT_PATH/spec.md" "$PROJECT_PATH/design.md" "$PROJECT_PATH/state.md"
157
- git diff --cached --quiet || git commit -m "chore(oat): promote {project-name} to spec-driven"
160
+ OWNED_COMMIT_PATHS=("$PROJECT_PATH/discovery.md" "$PROJECT_PATH/spec.md" "$PROJECT_PATH/design.md" "$PROJECT_PATH/state.md")
161
+ oat internal commit-paths --identity "${COMMIT_IDENTITY:?set once and retain for retries}:oat-project-promote-spec-driven:1" --message "chore(oat): promote {project-name} to spec-driven" -- "${OWNED_COMMIT_PATHS[@]}" || exit 1
158
162
  fi
159
163
  ```
160
164
 
@@ -7,13 +7,17 @@ disable-model-invocation: true
7
7
  user-invocable: true
8
8
  allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion, Task
9
9
  metadata:
10
- version: 2.3.18
10
+ version: 2.3.19
11
11
  ---
12
12
 
13
13
  # Quick Start Project
14
14
 
15
15
  Create or resume a project in **quick mode** and produce a runnable `plan.md` with minimal ceremony.
16
16
 
17
+ ## Hook-safe exact-path commits
18
+
19
+ Before a parent-branch commit, verify `oat internal commit-paths --help` succeeds. If unavailable, stop and update the OAT CLI; never fall back to a staged-index or pathspec-only commit. Set `COMMIT_IDENTITY` to a unique operation/artifact identity before the first attempt and retain it for every retry; use a new identity for a new operation. Pass only the exact produced file list, including tracked removals and both names of a rename. A blocked/failed result stops the workflow; retain its receipt and follow its diagnostics. Hooks remain enabled. Synced project artifacts continue through `oat project push`.
20
+
17
21
  ## Prerequisites
18
22
 
19
23
  - A repository initialized for OAT (`.oat/` and `.agents/` exist).
@@ -98,7 +102,7 @@ writing lifecycle artifacts does not imply unrelated full test suites.
98
102
  Before scaffolding, surface the working tree state so unrelated changes don't get carried into the project workflow's bookkeeping commits.
99
103
 
100
104
  1. Run `git status --porcelain`. If empty, continue silently to the next step.
101
- 2. If `.oat/sync/manifest.json` is the only entry **and** its two-character status code is either `??` or made up solely of the letter `M` and blanks — a plain modification, staged, unstaged, or both — commit it without asking: `git add -- .oat/sync/manifest.json` then `git commit -m "chore: run sync"`. Report the commit in one line and continue to the next step. That file is `oat sync` output and carries no user content, so the prompt below was always answered "commit now" for it. Every other code falls through to the prompt below, including any code that pairs `M` with something else: `MD` (deleted in the worktree), `MT` (type change), `AM`, `RM`, `CM`, and every unmerged state. Auto-staging one of those would commit a deletion, a retyped file, or a half-resolved merge. Any other dirty path, in any combination, also falls through.
105
+ 2. If `.oat/sync/manifest.json` is the only entry **and** its two-character status code is either `??` or made up solely of the letter `M` and blanks — a plain modification, staged, unstaged, or both — commit it without asking: `oat internal commit-paths --identity "${COMMIT_IDENTITY:?set once and retain for retries}:oat-project-quick-start:1" --message "chore: run sync" -- .oat/sync/manifest.json`. Report the commit in one line and continue to the next step. That file is `oat sync` output and carries no user content, so the prompt below was always answered "commit now" for it. Every other code falls through to the prompt below, including any code that pairs `M` with something else: `MD` (deleted in the worktree), `MT` (type change), `AM`, `RM`, `CM`, and every unmerged state. Auto-staging one of those would commit a deletion, a retyped file, or a half-resolved merge. Any other dirty path, in any combination, also falls through.
102
106
  3. Otherwise, present the dirty list to the user.
103
107
  4. If `.oat/sync/manifest.json` or paths under `.claude/`, `.cursor/`, `.codex/` appear in the list, note: "These are generated by `oat sync` (often by `pnpm run worktree:init` or `oat-worktree-bootstrap-auto`) and are typically safe to commit as `chore: run sync`."
104
108
  5. Offer three choices via `AskUserQuestion`:
@@ -290,8 +294,8 @@ PROJECT_SCOPE=$(oat project scope "$PROJECT_PATH" --format value) || { echo "oat
290
294
  if [ "$PROJECT_SCOPE" = "synced" ]; then
291
295
  oat project push "$PROJECT_PATH" --message "chore(oat): capture quick-start discovery for {project-name}" || { echo "oat: project push failed; run oat project pull, resolve the reported state, and retry" >&2; exit 1; }
292
296
  else
293
- git add "$PROJECT_PATH/discovery.md" "$PROJECT_PATH/state.md"
294
- git diff --cached --quiet || git commit -m "chore(oat): capture quick-start discovery for {project-name}"
297
+ OWNED_COMMIT_PATHS=("$PROJECT_PATH/discovery.md" "$PROJECT_PATH/state.md")
298
+ oat internal commit-paths --identity "${COMMIT_IDENTITY:?set once and retain for retries}:oat-project-quick-start:2" --message "chore(oat): capture quick-start discovery for {project-name}" -- "${OWNED_COMMIT_PATHS[@]}" || exit 1
295
299
  fi
296
300
  ```
297
301
 
@@ -348,8 +352,8 @@ PROJECT_SCOPE=$(oat project scope "$PROJECT_PATH" --format value) || { echo "oat
348
352
  if [ "$PROJECT_SCOPE" = "synced" ]; then
349
353
  oat project push "$PROJECT_PATH" --message "chore(oat): promote quick-start discovery for {project-name}" || { echo "oat: project push failed; run oat project pull, resolve the reported state, and retry" >&2; exit 1; }
350
354
  else
351
- git add "$PROJECT_PATH/discovery.md" "$PROJECT_PATH/state.md"
352
- git diff --cached --quiet || git commit -m "chore(oat): promote quick-start discovery for {project-name}"
355
+ OWNED_COMMIT_PATHS=("$PROJECT_PATH/discovery.md" "$PROJECT_PATH/state.md")
356
+ oat internal commit-paths --identity "${COMMIT_IDENTITY:?set once and retain for retries}:oat-project-quick-start:3" --message "chore(oat): promote quick-start discovery for {project-name}" -- "${OWNED_COMMIT_PATHS[@]}" || exit 1
353
357
  fi
354
358
  ```
355
359
 
@@ -555,8 +559,8 @@ PROJECT_SCOPE=$(oat project scope "$PROJECT_PATH" --format value) || { echo "oat
555
559
  if [ "$PROJECT_SCOPE" = "synced" ]; then
556
560
  oat project push "$PROJECT_PATH" --message "chore(oat): capture quick-start design for {project-name}" || { echo "oat: project push failed; run oat project pull, resolve the reported state, and retry" >&2; exit 1; }
557
561
  else
558
- git add "$PROJECT_PATH/design.md" "$PROJECT_PATH/state.md"
559
- git diff --cached --quiet || git commit -m "chore(oat): capture quick-start design for {project-name}"
562
+ OWNED_COMMIT_PATHS=("$PROJECT_PATH/design.md" "$PROJECT_PATH/state.md")
563
+ oat internal commit-paths --identity "${COMMIT_IDENTITY:?set once and retain for retries}:oat-project-quick-start:4" --message "chore(oat): capture quick-start design for {project-name}" -- "${OWNED_COMMIT_PATHS[@]}" || exit 1
560
564
  fi
561
565
  ```
562
566
 
@@ -569,8 +573,8 @@ PROJECT_SCOPE=$(oat project scope "$PROJECT_PATH" --format value) || { echo "oat
569
573
  if [ "$PROJECT_SCOPE" = "synced" ]; then
570
574
  oat project push "$PROJECT_PATH" --message "chore(oat): complete quick-start discovery for {project-name}" || { echo "oat: project push failed; run oat project pull, resolve the reported state, and retry" >&2; exit 1; }
571
575
  else
572
- git add "$PROJECT_PATH/discovery.md" "$PROJECT_PATH/state.md"
573
- git diff --cached --quiet || git commit -m "chore(oat): complete quick-start discovery for {project-name}"
576
+ OWNED_COMMIT_PATHS=("$PROJECT_PATH/discovery.md" "$PROJECT_PATH/state.md")
577
+ oat internal commit-paths --identity "${COMMIT_IDENTITY:?set once and retain for retries}:oat-project-quick-start:5" --message "chore(oat): complete quick-start discovery for {project-name}" -- "${OWNED_COMMIT_PATHS[@]}" || exit 1
574
578
  fi
575
579
  ```
576
580
 
@@ -1181,15 +1185,16 @@ PROJECT_SCOPE=$(oat project scope "$PROJECT_PATH" --format value) || { echo "oat
1181
1185
  if [ "$PROJECT_SCOPE" = "synced" ]; then
1182
1186
  oat project push "$PROJECT_PATH" --message "chore(oat): update quick-start artifacts for {project-name}" || { echo "oat: project push failed; run oat project pull, resolve the reported state, and retry" >&2; exit 1; }
1183
1187
  else
1188
+ OWNED_COMMIT_PATHS=()
1184
1189
  for path in \
1185
1190
  "$PROJECT_PATH/discovery.md" \
1186
1191
  "$PROJECT_PATH/design.md" \
1187
1192
  "$PROJECT_PATH/plan.md" \
1188
1193
  "$PROJECT_PATH/implementation.md" \
1189
1194
  "$PROJECT_PATH/state.md"; do
1190
- [ -e "$path" ] && git add "$path"
1195
+ [ -e "$path" ] && OWNED_COMMIT_PATHS+=("$path")
1191
1196
  done
1192
- git diff --cached --quiet || git commit -m "chore(oat): update quick-start artifacts for {project-name}"
1197
+ oat internal commit-paths --identity "${COMMIT_IDENTITY:?set once and retain for retries}:oat-project-quick-start:6" --message "chore(oat): update quick-start artifacts for {project-name}" -- "${OWNED_COMMIT_PATHS[@]}" || exit 1
1193
1198
  fi
1194
1199
  ```
1195
1200