@open-agent-toolkit/cli 0.2.41 → 0.2.45
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.
- package/assets/agents/oat-phase-implementer.md +11 -1
- package/assets/bundle-metadata.json +1 -1
- package/assets/docs/cli-utilities/configuration.md +11 -1
- package/assets/docs/quickstart.md +9 -0
- package/assets/docs/reference/cli-reference.md +56 -1
- package/assets/docs/reference/file-locations.md +18 -1
- package/assets/docs/reference/oat-directory-structure.md +20 -4
- package/assets/docs/workflows/projects/artifacts.md +27 -1
- package/assets/docs/workflows/projects/implementation-execution.md +22 -0
- package/assets/docs/workflows/projects/index.md +6 -0
- package/assets/docs/workflows/projects/lifecycle.md +19 -5
- package/assets/docs/workflows/projects/picking-up-projects.md +75 -0
- package/assets/docs/workflows/projects/pr-flow.md +22 -1
- package/assets/docs/workflows/projects/reviewing-oat-prs.md +60 -0
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-brainstorm/SKILL.md +135 -32
- package/assets/skills/oat-brainstorm/references/destinations.md +9 -6
- package/assets/skills/oat-cursor-cloud-projects/SKILL.md +11 -1
- package/assets/skills/oat-doctor/SKILL.md +8 -1
- package/assets/skills/oat-project-autonomous/SKILL.md +45 -1
- package/assets/skills/oat-project-autonomous/references/gate-inventory.md +8 -8
- package/assets/skills/oat-project-capture/SKILL.md +29 -9
- package/assets/skills/oat-project-complete/SKILL.md +610 -38
- package/assets/skills/oat-project-complete/scripts/parse-completion-retry-fields.mjs +265 -0
- package/assets/skills/oat-project-complete/scripts/recover-completion-receipts.mjs +764 -0
- package/assets/skills/oat-project-complete/scripts/resolve-completion-retry.mjs +134 -0
- package/assets/skills/oat-project-complete/scripts/validate-nonarchive-lifecycle-receipt.mjs +160 -0
- package/assets/skills/oat-project-design/SKILL.md +33 -9
- package/assets/skills/oat-project-discover/SKILL.md +16 -3
- package/assets/skills/oat-project-document/SKILL.md +10 -4
- package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +8 -8
- package/assets/skills/oat-project-implement/SKILL.md +14 -3
- package/assets/skills/oat-project-implement/references/completion-and-closeout.md +18 -6
- package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +8 -8
- package/assets/skills/oat-project-implement/references/phase-execution.md +9 -3
- package/assets/skills/oat-project-implement/references/plan-and-resume.md +3 -0
- package/assets/skills/oat-project-import-plan/SKILL.md +15 -9
- package/assets/skills/oat-project-new/SKILL.md +7 -5
- package/assets/skills/oat-project-next/SKILL.md +32 -10
- package/assets/skills/oat-project-plan/SKILL.md +18 -3
- package/assets/skills/oat-project-pr-final/SKILL.md +23 -2
- package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +8 -8
- package/assets/skills/oat-project-pr-progress/SKILL.md +23 -2
- package/assets/skills/oat-project-progress/SKILL.md +23 -9
- package/assets/skills/oat-project-promote-spec-driven/SKILL.md +20 -2
- package/assets/skills/oat-project-quick-start/SKILL.md +48 -18
- package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +8 -8
- package/assets/skills/oat-project-reconcile/SKILL.md +14 -10
- package/assets/skills/oat-project-retro/SKILL.md +3 -3
- package/assets/skills/oat-project-retro/references/apply-procedure.md +102 -6
- package/assets/skills/oat-project-retro-file/SKILL.md +57 -6
- package/assets/skills/oat-project-review-provide/SKILL.md +45 -4
- package/assets/skills/oat-project-review-receive/SKILL.md +16 -7
- package/assets/skills/oat-project-review-receive-remote/SKILL.md +9 -3
- package/assets/skills/oat-project-revise/SKILL.md +12 -3
- package/assets/skills/oat-project-spec/SKILL.md +16 -3
- package/assets/skills/oat-project-summary/SKILL.md +113 -13
- package/assets/skills/oat-wave-execute/SKILL.md +34 -2
- package/assets/skills/oat-worktree-bootstrap/SKILL.md +13 -1
- package/assets/skills/oat-worktree-bootstrap-auto/SKILL.md +13 -1
- package/dist/commands/config/index.d.ts +1 -0
- package/dist/commands/config/index.d.ts.map +1 -1
- package/dist/commands/config/index.js +30 -2
- package/dist/commands/doctor/index.d.ts +2 -0
- package/dist/commands/doctor/index.d.ts.map +1 -1
- package/dist/commands/doctor/index.js +27 -3
- package/dist/commands/doctor/synced-projects.d.ts +12 -0
- package/dist/commands/doctor/synced-projects.d.ts.map +1 -0
- package/dist/commands/doctor/synced-projects.js +208 -0
- package/dist/commands/init/gitattributes.d.ts +4 -0
- package/dist/commands/init/gitattributes.d.ts.map +1 -0
- package/dist/commands/init/gitattributes.js +12 -0
- package/dist/commands/init/gitignore.d.ts +8 -1
- package/dist/commands/init/gitignore.d.ts.map +1 -1
- package/dist/commands/init/gitignore.js +146 -41
- package/dist/commands/init/index.d.ts +2 -0
- package/dist/commands/init/index.d.ts.map +1 -1
- package/dist/commands/init/index.js +3 -0
- package/dist/commands/init/managed-block.d.ts +10 -0
- package/dist/commands/init/managed-block.d.ts.map +1 -0
- package/dist/commands/init/managed-block.js +40 -0
- package/dist/commands/init/tools/workflows/install-workflows.js +1 -1
- package/dist/commands/local/index.d.ts.map +1 -1
- package/dist/commands/local/index.js +5 -1
- package/dist/commands/local/sync.d.ts +4 -0
- package/dist/commands/local/sync.d.ts.map +1 -1
- package/dist/commands/local/sync.js +123 -2
- package/dist/commands/pjm/adoption.d.ts +2 -0
- package/dist/commands/pjm/adoption.d.ts.map +1 -1
- package/dist/commands/pjm/adoption.js +1 -1
- package/dist/commands/project/archive/archive-utils.d.ts +24 -0
- package/dist/commands/project/archive/archive-utils.d.ts.map +1 -1
- package/dist/commands/project/archive/archive-utils.js +349 -22
- package/dist/commands/project/archive/index.d.ts.map +1 -1
- package/dist/commands/project/archive/index.js +1 -0
- package/dist/commands/project/archive/push-runner.d.ts +5 -1
- package/dist/commands/project/archive/push-runner.d.ts.map +1 -1
- package/dist/commands/project/archive/push-runner.js +33 -4
- package/dist/commands/project/complete-state/index.d.ts.map +1 -1
- package/dist/commands/project/complete-state/index.js +3 -1
- package/dist/commands/project/index.d.ts.map +1 -1
- package/dist/commands/project/index.js +12 -0
- package/dist/commands/project/links/compute.d.ts +9 -0
- package/dist/commands/project/links/compute.d.ts.map +1 -0
- package/dist/commands/project/links/compute.js +27 -0
- package/dist/commands/project/links/index.d.ts +17 -0
- package/dist/commands/project/links/index.d.ts.map +1 -0
- package/dist/commands/project/links/index.js +72 -0
- package/dist/commands/project/links/refresh.d.ts +26 -0
- package/dist/commands/project/links/refresh.d.ts.map +1 -0
- package/dist/commands/project/links/refresh.js +92 -0
- package/dist/commands/project/links/render.d.ts +24 -0
- package/dist/commands/project/links/render.d.ts.map +1 -0
- package/dist/commands/project/links/render.js +68 -0
- package/dist/commands/project/list.d.ts +5 -0
- package/dist/commands/project/list.d.ts.map +1 -1
- package/dist/commands/project/list.js +182 -9
- package/dist/commands/project/migrate/index.d.ts +22 -0
- package/dist/commands/project/migrate/index.d.ts.map +1 -0
- package/dist/commands/project/migrate/index.js +79 -0
- package/dist/commands/project/new/index.d.ts +2 -0
- package/dist/commands/project/new/index.d.ts.map +1 -1
- package/dist/commands/project/new/index.js +14 -2
- package/dist/commands/project/new/scaffold.d.ts +22 -1
- package/dist/commands/project/new/scaffold.d.ts.map +1 -1
- package/dist/commands/project/new/scaffold.js +287 -69
- package/dist/commands/project/open/index.d.ts +16 -0
- package/dist/commands/project/open/index.d.ts.map +1 -1
- package/dist/commands/project/open/index.js +151 -19
- package/dist/commands/project/pause/index.d.ts +8 -0
- package/dist/commands/project/pause/index.d.ts.map +1 -1
- package/dist/commands/project/pause/index.js +129 -19
- package/dist/commands/project/prune/index.d.ts +21 -0
- package/dist/commands/project/prune/index.d.ts.map +1 -0
- package/dist/commands/project/prune/index.js +95 -0
- package/dist/commands/project/pull/index.d.ts +28 -0
- package/dist/commands/project/pull/index.d.ts.map +1 -0
- package/dist/commands/project/pull/index.js +157 -0
- package/dist/commands/project/push/index.d.ts +22 -0
- package/dist/commands/project/push/index.d.ts.map +1 -0
- package/dist/commands/project/push/index.js +100 -0
- package/dist/commands/project/scope/index.d.ts +17 -0
- package/dist/commands/project/scope/index.d.ts.map +1 -0
- package/dist/commands/project/scope/index.js +107 -0
- package/dist/commands/project/split/run.d.ts +4 -0
- package/dist/commands/project/split/run.d.ts.map +1 -1
- package/dist/commands/project/split/run.js +48 -10
- package/dist/commands/project/sync/git.d.ts +18 -0
- package/dist/commands/project/sync/git.d.ts.map +1 -0
- package/dist/commands/project/sync/git.js +60 -0
- package/dist/commands/project/sync/record.d.ts +22 -0
- package/dist/commands/project/sync/record.d.ts.map +1 -0
- package/dist/commands/project/sync/record.js +133 -0
- package/dist/commands/project/sync/ref-sync.d.ts +120 -0
- package/dist/commands/project/sync/ref-sync.d.ts.map +1 -0
- package/dist/commands/project/sync/ref-sync.js +962 -0
- package/dist/commands/project/sync/resolve-target.d.ts +27 -0
- package/dist/commands/project/sync/resolve-target.d.ts.map +1 -0
- package/dist/commands/project/sync/resolve-target.js +159 -0
- package/dist/commands/shared/oat-paths.d.ts +4 -1
- package/dist/commands/shared/oat-paths.d.ts.map +1 -1
- package/dist/commands/shared/oat-paths.js +2 -2
- package/dist/commands/shared/project-scope.d.ts +23 -0
- package/dist/commands/shared/project-scope.d.ts.map +1 -0
- package/dist/commands/shared/project-scope.js +106 -0
- package/dist/commands/tools/migrate/index.js +1 -1
- package/dist/commands/tools/shared/pack-inventory.d.ts.map +1 -1
- package/dist/commands/tools/shared/pack-inventory.js +11 -0
- package/dist/commands/tools/shared/pack-lifecycle.js +1 -1
- package/dist/commands/tools/shared/pack-reconcile.d.ts.map +1 -1
- package/dist/commands/tools/shared/pack-reconcile.js +4 -1
- package/dist/commands/tools/update/index.d.ts.map +1 -1
- package/dist/commands/tools/update/index.js +20 -10
- package/dist/commands/tools/update/update-tools.d.ts +2 -0
- package/dist/commands/tools/update/update-tools.d.ts.map +1 -1
- package/dist/config/oat-config.d.ts +6 -3
- package/dist/config/oat-config.d.ts.map +1 -1
- package/dist/config/oat-config.js +41 -7
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +2 -1
- package/dist/fs/io.d.ts +2 -1
- package/dist/fs/io.d.ts.map +1 -1
- package/dist/fs/io.js +5 -2
- package/dist/projects/split/finalize.d.ts.map +1 -1
- package/dist/projects/split/finalize.js +55 -2
- package/dist/projects/split/resume.d.ts +3 -0
- package/dist/projects/split/resume.d.ts.map +1 -1
- package/dist/projects/split/resume.js +34 -7
- package/dist/projects/split/seed-children.d.ts.map +1 -1
- package/dist/projects/split/seed-children.js +6 -0
- package/dist/projects/split/write-parent.d.ts +7 -0
- package/dist/projects/split/write-parent.d.ts.map +1 -1
- package/dist/projects/split/write-parent.js +7 -4
- package/dist/release/public-package-contract.d.ts.map +1 -1
- package/dist/release/public-package-contract.js +1 -0
- package/dist/validation/skills.d.ts.map +1 -1
- package/dist/validation/skills.js +434 -0
- package/package.json +4 -4
- package/dist/__tests__/skills/split-flow-fixtures.d.ts +0 -50
- package/dist/__tests__/skills/split-flow-fixtures.d.ts.map +0 -1
- package/dist/__tests__/skills/split-flow-fixtures.js +0 -161
- package/dist/commands/__tests__/helpers.d.ts +0 -12
- package/dist/commands/__tests__/helpers.d.ts.map +0 -1
- package/dist/commands/__tests__/helpers.js +0 -36
|
@@ -226,10 +226,10 @@ remains immutable baseline evidence for the original p01-t01 verification.
|
|
|
226
226
|
| Skill root / file | Stable prompt-site mappings |
|
|
227
227
|
| -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
228
228
|
| `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` |
|
|
229
|
-
| `oat-project-quick-start/SKILL.md` | `f7ca8635452f -> 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`; `
|
|
229
|
+
| `oat-project-quick-start/SKILL.md` | `f7ca8635452f -> 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`; `39e3fe23dd85 -> 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` |
|
|
230
230
|
| `oat-project-quick-start/references/docs/autonomy-contract.md` | `* -> NG` |
|
|
231
231
|
| `oat-project-discover/SKILL.md` | `8fe35bbfbcd6 -> NG`; `6acc57686847 -> NG`; `4df56b83b98e -> NG`; `660fcdb9dd0d -> NG`; `655d61df0a8f -> NG`; `302f5a4e2f7e -> DISC-03`; `8ee1861bb37c -> DISC-03`; `5c8d5f04f6e2 -> DISC-05`; `73964bb042ab -> DISC-05`; `82cc79370b80 -> DISC-05`; `ff09e8f7774f -> DISC-06`; `323e71dca05d -> DISC-06`; `012bab5b478e -> DISC-06`; `523764981692 -> 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` |
|
|
232
|
-
| `oat-project-design/SKILL.md` | `d942bb5a75dc -> NG`; `5eb3949f32e1 -> 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`; `
|
|
232
|
+
| `oat-project-design/SKILL.md` | `d942bb5a75dc -> NG`; `5eb3949f32e1 -> 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` |
|
|
233
233
|
| `oat-project-design/references/selective-review-pass.md` | `d4956192b82e -> DES-06`; `7d6e1f926ecb -> DES-06`; `04f918a5fcac -> DES-07` |
|
|
234
234
|
| `oat-project-plan/SKILL.md` | `5eb3949f32e1 -> NG`; `64a08153bb9e -> 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` |
|
|
235
235
|
| `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` |
|
|
@@ -239,14 +239,14 @@ remains immutable baseline evidence for the original p01-t01 verification.
|
|
|
239
239
|
| `oat-project-implement/references/docs/autonomy-contract.md` | `* -> NG` |
|
|
240
240
|
| `oat-project-implement/references/phase-execution.md` | `27737e814790 -> NG`; `6dda2b8e62e2 -> IMPLEMENT-10`; `b3197086bb1e -> IMPLEMENT-10`; `25f2a6e104ee -> NG`; `4aa21120295f -> NG` |
|
|
241
241
|
| `oat-project-implement/references/plan-and-resume.md` | `413829d31e32 -> IMPLEMENT-02`; `c7706cd8ad09 -> IMPLEMENT-03`; `a80a948df658 -> IMPLEMENT-03`; `b7ea139780ec -> IMPLEMENT-03+IMPLEMENT-04`; `8d438f2180ba -> IMPLEMENT-03`; `9e72e0518cda -> IMPLEMENT-03`; `3e177a1021e6 -> IMPLEMENT-03+IMPLEMENT-04`; `b59fc9eb9ce3 -> IMPLEMENT-03`; `a2b1d6855283 -> IMPLEMENT-03`; `44351a32e52a -> IMPLEMENT-03`; `b98b022f5523 -> IMPLEMENT-03`; `e9f5b949e214 -> IMPLEMENT-03`; `316fb6d9e980 -> IMPLEMENT-03`; `8b25a2c5c548 -> IMPLEMENT-03`; `1a59b1c0e705 -> IMPLEMENT-03`; `466cd562fc52 -> IMPLEMENT-03`; `083d896978d5 -> IMPLEMENT-03`; `f4ab11c13ae9 -> IMPLEMENT-03`; `7dc17ffcc1c4 -> IMPLEMENT-03`; `f731a90adabd -> IMPLEMENT-04`; `886ac01e7aa9 -> IMPLEMENT-04`; `b715db67df0c -> IMPLEMENT-04`; `2d9f26a539f3 -> IMPLEMENT-10`; `28384dee114f -> IMPLEMENT-05`; `f2591a4978b4 -> NG`; `8290823080b5 -> IMPLEMENT-06`; `f75789bf6c8e -> IMPLEMENT-07` |
|
|
242
|
-
| `oat-project-document/SKILL.md` | `4fc2d8618208 -> NG`; `
|
|
242
|
+
| `oat-project-document/SKILL.md` | `4fc2d8618208 -> NG`; `8c7b024c4e9d -> NG`; `40f8be47affa -> NG`; `3a3c390528f3 -> DOCUMENT-03`; `2a7ba093b315 -> DOCUMENT-02`; `252aabe44db2 -> DOCUMENT-02`; `3751172de299 -> DOCUMENT-02`; `b987a0697ba9 -> DOCUMENT-01`; `a06ff3ca7926 -> NG`; `0d04714ca9fc -> NG`; `f79af01d94c6 -> DOCUMENT-02`; `71634113c348 -> DOCUMENT-02`; `cdb707f5081e -> NG` |
|
|
243
243
|
| `oat-project-document/references/docs/autonomy-contract.md` | `* -> NG` |
|
|
244
|
-
| `oat-project-summary/SKILL.md` | `68c197c44c18 -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> SUMMARY-01`; `
|
|
245
|
-
| `oat-project-pr-final/SKILL.md` | `601ac2b890f2 -> NG`; `
|
|
244
|
+
| `oat-project-summary/SKILL.md` | `68c197c44c18 -> NG`; `35cb2ea1d677 -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> SUMMARY-01`; `f3e49b727752 -> NG`; `f979b2342d28 -> NG`; `803bf40ec423 -> NG`; `c8fced47ef8e -> NG`; `d7ea1e2a4f5f -> NG`; `5f315ab87cb1 -> NG` |
|
|
245
|
+
| `oat-project-pr-final/SKILL.md` | `601ac2b890f2 -> NG`; `c264a64398f0 -> NG`; `9efcbcee42ea -> NG`; `655d61df0a8f -> NG`; `cf317c17c586 -> PRFINAL-01`; `2de348a391c0 -> PRFINAL-03` |
|
|
246
246
|
| `oat-project-pr-final/references/docs/autonomy-contract.md` | `* -> NG` |
|
|
247
|
-
| `oat-project-complete/SKILL.md` | `6ed459f9e462 -> NG`; `a167d03559fa -> NG`; `79c2eeed668c -> COMPLETE-01`; `2c1514b9d9af -> COMPLETE-01`; `31c750b4fea7 -> COMPLETE-01`; `cfba413b1293 -> COMPLETE-01`; `
|
|
247
|
+
| `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`; `12f7c30a54c8 -> NG`; `fffe5eea5ebd -> NG`; `e7dc6fdc4eb3 -> COMPLETE-01`; `e5460e437299 -> NG`; `882b61c9096c -> NG`; `9ffa1c752505 -> NG` |
|
|
248
248
|
| `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`; `fcb9de611ff3 -> NG`; `d2a838dfb18d -> NG`; `c3d50ea7cf69 -> NG`; `09b1b8dd445c -> NG`; `7acc8f3718d2 -> REVIEWPROVIDE-09`; `b2fa883fc4a2 -> NG`; `fe4421531b4c -> NG` |
|
|
249
|
-
| `oat-project-review-receive/SKILL.md` | `9b8a3743d626 -> NG`; `df49c8c6f192 -> NG`; `4ee8730382d3 -> NG`; `655d61df0a8f -> NG`; `765f897d67ac -> NG`; `53b58d16dd32 -> NG`; `fb8755a3bdf4 -> NG`; `c8ab5dd90075 -> NG`; `1f7dd98dff2f -> NG`; `56f78c6740e6 -> NG`; `76f5fb5a88cd -> NG`; `085abfa3599f -> REVIEWRECEIVE-01`; `3ad3aadb8c60 -> NG`; `a7d114059bb6 -> NG`; `ac88cfaa83d9 -> NG`; `
|
|
249
|
+
| `oat-project-review-receive/SKILL.md` | `9b8a3743d626 -> NG`; `df49c8c6f192 -> NG`; `4ee8730382d3 -> NG`; `655d61df0a8f -> NG`; `765f897d67ac -> NG`; `53b58d16dd32 -> NG`; `fb8755a3bdf4 -> NG`; `c8ab5dd90075 -> NG`; `1f7dd98dff2f -> NG`; `56f78c6740e6 -> NG`; `76f5fb5a88cd -> NG`; `085abfa3599f -> REVIEWRECEIVE-01`; `3ad3aadb8c60 -> NG`; `a7d114059bb6 -> NG`; `ac88cfaa83d9 -> NG`; `594bbf70346c -> REVIEWRECEIVE-08`; `f31f07284718 -> REVIEWRECEIVE-02`; `aba178a21441 -> REVIEWRECEIVE-04`; `a37e601cd731 -> REVIEWRECEIVE-05`; `20e05e1a4381 -> REVIEWRECEIVE-06`; `90001dadf75f -> REVIEWRECEIVE-07`; `f8fd58180ecf -> NG`; `c3abcdc02d9f -> NG`; `f2ebdd6abb9b -> NG` |
|
|
250
250
|
| `oat-project-review-provide/SKILL.md` | `2e794bf4fc4a -> REVIEWPROVIDE-08`; `5441ab977b46 -> REVIEWPROVIDE-08` |
|
|
251
251
|
| `oat-project-review-provide/SKILL.md` | `f4238ebb1887 -> NG`; `0360fa2db9a5 -> NG` |
|
|
252
252
|
| `oat-project-implement/references/phase-execution.md` | `b31a9a4e6f75 -> NG` |
|
|
@@ -260,7 +260,7 @@ remains immutable baseline evidence for the original p01-t01 verification.
|
|
|
260
260
|
| `oat-project-dispatch-subagents/SKILL.md` | `eca03ad1ca12 -> PDISPATCH-01`; `59fbcdc79cea -> PDISPATCH-01` |
|
|
261
261
|
| `oat-project-plan/SKILL.md` | `f99e44b39932 -> PLAN-12`; `7e6a9854504b -> NG` |
|
|
262
262
|
| `oat-project-implement/references/completion-and-closeout.md` | `6909a5a5a1fa -> IMPLEMENT-19`; `a7c02ef670fd -> IMPLEMENT-19`; `9dde56d89a71 -> IMPLEMENT-16`; `13c41b2b2590 -> IMPLEMENT-16` |
|
|
263
|
-
| `oat-project-complete/SKILL.md` | `
|
|
263
|
+
| `oat-project-complete/SKILL.md` | `0177956707aa -> NG`; `8305b5bb65ef -> NG`; `eb3e75663ac0 -> 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` |
|
|
264
264
|
|
|
265
265
|
## Prompt-scan comparison
|
|
266
266
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-project-reconcile
|
|
3
|
-
version: 1.0.
|
|
3
|
+
version: 1.0.2
|
|
4
4
|
description: Use when human-implemented commits need to be mapped back to planned tasks. Reconciles implementation.md and state.md after manual work outside the OAT workflow.
|
|
5
5
|
disable-model-invocation: true
|
|
6
6
|
user-invocable: true
|
|
@@ -675,21 +675,25 @@ Add a reconciliation session entry to the `## Implementation Log` section:
|
|
|
675
675
|
|
|
676
676
|
Create a single bookkeeping commit for all artifact updates and present a final summary.
|
|
677
677
|
|
|
678
|
-
**6a.
|
|
678
|
+
**6a. Persist only tracking files:**
|
|
679
679
|
|
|
680
680
|
```bash
|
|
681
|
-
|
|
682
|
-
#
|
|
683
|
-
|
|
681
|
+
PROJECT_SCOPE=$(oat project scope "$PROJECT_PATH" --format value) || { echo "oat: cannot resolve project scope for $PROJECT_PATH; refusing to commit artifacts" >&2; exit 1; }
|
|
682
|
+
# fail closed: never fall back to branch bookkeeping when scope resolution fails
|
|
683
|
+
if [ "$PROJECT_SCOPE" = "synced" ]; then
|
|
684
|
+
oat project push "$PROJECT_PATH" --message "chore(oat): reconcile manual implementation ({first_task_id}..{last_task_id})" || { echo "oat: project push failed; run oat project pull, resolve the reported state, and retry" >&2; exit 1; }
|
|
685
|
+
else
|
|
686
|
+
git add "$PROJECT_PATH/implementation.md" "$PROJECT_PATH/state.md"
|
|
687
|
+
# Only add plan.md if it was modified
|
|
688
|
+
git diff --name-only "$PROJECT_PATH/plan.md" 2>/dev/null | grep -q . && git add "$PROJECT_PATH/plan.md"
|
|
689
|
+
git diff --cached --quiet || git commit -m "chore(oat): reconcile manual implementation ({first_task_id}..{last_task_id})"
|
|
690
|
+
fi
|
|
684
691
|
```
|
|
685
692
|
|
|
686
693
|
**Important:** Do NOT use `git add -A` or glob patterns. Only stage the specific OAT tracking files listed above.
|
|
687
694
|
|
|
688
|
-
**6b.
|
|
689
|
-
|
|
690
|
-
```bash
|
|
691
|
-
git diff --cached --quiet || git commit -m "chore(oat): reconcile manual implementation ({first_task_id}..{last_task_id})"
|
|
692
|
-
```
|
|
695
|
+
**6b. Record the reconciliation message:** use the same message in either the
|
|
696
|
+
synced push or branch commit above.
|
|
693
697
|
|
|
694
698
|
Example: `chore(oat): reconcile manual implementation (p01-t03..p02-t01)`
|
|
695
699
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-project-retro
|
|
3
|
-
version: 1.0.
|
|
3
|
+
version: 1.0.3
|
|
4
4
|
description: Use when the user requests or confirms a project retrospective — e.g. "run the project retro", "write project-retro.md", "retrospective this project", or confirms a previously offered retro. Do NOT auto-invoke merely because implementation or summary completed. Produces references/project-retro.md from project logs, execution learnings, and session/transcript evidence, with repo improvements and OAT upstream feedback.
|
|
5
5
|
disable-model-invocation: false
|
|
6
6
|
user-invocable: true
|
|
7
|
-
allowed-tools: Read, Write, Bash(git:*), Bash(pnpm:*), Bash(oat config:*), Bash(oat decision:*), Bash(oat project log:*), Bash(oat tools:*), Glob, Grep, AskUserQuestion
|
|
7
|
+
allowed-tools: Read, Write, Bash(git:*), Bash(jq:*), Bash(pnpm:*), Bash(oat config:*), Bash(oat decision:*), Bash(oat project log:*), Bash(oat project push:*), Bash(oat project scope:*), Bash(oat tools:*), Glob, Grep, AskUserQuestion
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Project Retrospective
|
|
@@ -42,7 +42,7 @@ identity, correction-commit, and later retro-writeback transitions. Perform
|
|
|
42
42
|
semantic post-side-effect recovery before appending again. Record `Applied-ref`
|
|
43
43
|
only after the correction and retro writeback are durably committed.
|
|
44
44
|
|
|
45
|
-
## Progress Indicators
|
|
45
|
+
## Progress Indicators (User-Facing)
|
|
46
46
|
|
|
47
47
|
Print one banner and concise step indicators:
|
|
48
48
|
|
|
@@ -76,7 +76,18 @@ continues immediately, this can be written back together with the final
|
|
|
76
76
|
- Only when recovery finds zero matches, run the complete judgment append
|
|
77
77
|
invocation exactly once:
|
|
78
78
|
|
|
79
|
+
Define `parse_synced_push_receipt` once before applying records:
|
|
80
|
+
|
|
79
81
|
```bash
|
|
82
|
+
parse_synced_push_receipt() {
|
|
83
|
+
node -e '
|
|
84
|
+
let value;
|
|
85
|
+
try { value = JSON.parse(process.argv[1]); } catch { process.exit(1); }
|
|
86
|
+
if (!["pushed", "up-to-date"].includes(value.status) || !/^[0-9a-f]{40}$/.test(value.sha)) process.exit(1);
|
|
87
|
+
process.stdout.write(value.sha);
|
|
88
|
+
' "$1"
|
|
89
|
+
}
|
|
90
|
+
|
|
80
91
|
oat project log append --project "$PROJECT_PATH" \
|
|
81
92
|
--type feedback \
|
|
82
93
|
--scope project \
|
|
@@ -84,9 +95,24 @@ continues immediately, this can be written back together with the final
|
|
|
84
95
|
--body "$CORRECTION_BODY"
|
|
85
96
|
```
|
|
86
97
|
|
|
87
|
-
- Commit the project-log append without retro writeback
|
|
88
|
-
contains the normalized project-log path
|
|
89
|
-
Capture its full 40-character SHA and exact
|
|
98
|
+
- Commit the project-log append without retro writeback using the scope
|
|
99
|
+
guard below. Verify the commit contains the normalized project-log path
|
|
100
|
+
and exact correction body. Capture its full 40-character SHA and exact
|
|
101
|
+
generated heading.
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
PROJECT_SCOPE=$(oat project scope "$PROJECT_PATH" --format value) || { echo "oat: cannot resolve project scope for $PROJECT_PATH; refusing to commit artifacts" >&2; exit 1; }
|
|
105
|
+
# fail closed: never fall back to branch bookkeeping when scope resolution fails
|
|
106
|
+
if [ "$PROJECT_SCOPE" = "synced" ]; then
|
|
107
|
+
CORRECTION_PUSH=$(oat project push "$PROJECT_PATH" --message "chore(oat): apply retro correction $RP_ID" --json) || { echo "oat: project push failed; run oat project pull, resolve the reported state, and retry" >&2; exit 1; }
|
|
108
|
+
CORRECTION_COMMIT=$(parse_synced_push_receipt "$CORRECTION_PUSH") || { printf '%s\n' "$CORRECTION_PUSH" >&2; echo "Recovery: run oat project pull \"$PROJECT_PATH\", resolve conflicts, then retry this push." >&2; exit 1; }
|
|
109
|
+
else
|
|
110
|
+
git add "$PROJECT_PATH/project-log.md"
|
|
111
|
+
git commit -m "chore(oat): apply retro correction $RP_ID"
|
|
112
|
+
CORRECTION_COMMIT=$(git rev-parse HEAD)
|
|
113
|
+
fi
|
|
114
|
+
```
|
|
115
|
+
|
|
90
116
|
- In a later retro-only writeback commit, set the RP status and
|
|
91
117
|
`Applied-ref`. The reference names the full 40-character correction commit
|
|
92
118
|
plus the exact generated heading, serialized as
|
|
@@ -194,11 +220,68 @@ Compute `oat_retro_promotions` exactly:
|
|
|
194
220
|
- Use one reviewed batch when the items are inseparable edits to the same
|
|
195
221
|
canonical surface.
|
|
196
222
|
- Include the target edit and its artifact status writeback in the same commit
|
|
197
|
-
whenever possible.
|
|
198
|
-
|
|
199
|
-
|
|
223
|
+
for shared and local projects whenever possible. Synced projects and the
|
|
224
|
+
project-log correction route are explicit two-commit transactions: the
|
|
225
|
+
repository target commit must precede the retro-only project-ref writeback
|
|
226
|
+
commit so `Applied-ref` can name an already durable target.
|
|
200
227
|
- Before each commit, format touched files, run surface-relevant checks, and
|
|
201
228
|
verify the item still has the expected pre-apply status.
|
|
229
|
+
- Before applying a non-project-log item, build `RETRO_TARGET_PATHS` from the
|
|
230
|
+
exact repository files owned by that proposal. A docs, agent-instruction, or
|
|
231
|
+
rule item lists every exact edited canonical file. A decision item lists the
|
|
232
|
+
exact generated or verified decision record and includes the managed decision
|
|
233
|
+
index only when this application changed it. Never stage a target directory.
|
|
234
|
+
- Fail if any owned target or the retro artifact was staged before this item,
|
|
235
|
+
then snapshot unrelated staged state with
|
|
236
|
+
`UNRELATED_STAGED_PATCH_BEFORE=$(git diff --cached --binary)`. After every
|
|
237
|
+
commit, require `git diff --cached --binary` to remain byte-for-byte equal to
|
|
238
|
+
that snapshot.
|
|
239
|
+
- Persist each target and retro writeback under this fail-closed scope guard:
|
|
240
|
+
|
|
241
|
+
```bash
|
|
242
|
+
PROJECT_SCOPE=$(oat project scope "$PROJECT_PATH" --format value) || { echo "oat: cannot resolve project scope for $PROJECT_PATH; refusing to commit artifacts" >&2; exit 1; }
|
|
243
|
+
# fail closed: never fall back to branch bookkeeping when scope resolution fails
|
|
244
|
+
for OWNED_PATH in "${RETRO_TARGET_PATHS[@]}" "$PROJECT_PATH/references/project-retro.md"; do
|
|
245
|
+
git diff --cached --quiet -- "$OWNED_PATH" || { echo "oat: owned retro path was already staged: $OWNED_PATH" >&2; exit 1; }
|
|
246
|
+
done
|
|
247
|
+
UNRELATED_STAGED_PATCH_BEFORE=$(git diff --cached --binary)
|
|
248
|
+
|
|
249
|
+
if [ "$PROJECT_SCOPE" = "synced" ]; then
|
|
250
|
+
# RETRO_TARGET_PATHS contains exact ordinary-doc, agent-instruction, rule,
|
|
251
|
+
# or decision-record paths; include the managed decision index only when changed.
|
|
252
|
+
git add -- "${RETRO_TARGET_PATHS[@]}"
|
|
253
|
+
git commit --only -m "chore(oat): apply retro target $RP_ID" -- "${RETRO_TARGET_PATHS[@]}"
|
|
254
|
+
RETRO_TARGET_COMMIT=$(git rev-parse HEAD) || exit 1
|
|
255
|
+
RETRO_TARGET_COMMIT_PATHS=$(git diff-tree --no-commit-id --name-only -r "$RETRO_TARGET_COMMIT") || exit 1
|
|
256
|
+
# Require RETRO_TARGET_COMMIT_PATHS to equal the complete normalized
|
|
257
|
+
# RETRO_TARGET_PATHS set exactly. Missing or additional paths stop writeback.
|
|
258
|
+
APPLIED_REF="$RETRO_TARGET_COMMIT :: ${RETRO_TARGET_PATHS[*]}"
|
|
259
|
+
|
|
260
|
+
# Only now write Status: applied, Applied-ref: $APPLIED_REF, the cleared
|
|
261
|
+
# disposition note, promotions, and Current State into project-retro.md.
|
|
262
|
+
RETRO_PUSH=$(oat project push "$PROJECT_PATH" --message "chore(oat): record retro application $RP_ID" --json) || { echo "oat: project push failed; run oat project pull, resolve the reported state, and retry" >&2; exit 1; }
|
|
263
|
+
RETRO_WRITEBACK_COMMIT=$(parse_synced_push_receipt "$RETRO_PUSH") || { printf '%s\n' "$RETRO_PUSH" >&2; echo "Recovery: run oat project pull \"$PROJECT_PATH\", resolve conflicts, then retry this push." >&2; exit 1; }
|
|
264
|
+
else
|
|
265
|
+
# Write back the artifact before this commit, then preserve the single-commit
|
|
266
|
+
# shared/local route with only the exact target and retro paths.
|
|
267
|
+
APPLIED_REF="${RETRO_TARGET_PATHS[*]}"
|
|
268
|
+
RETRO_COMMIT_PATHS=("${RETRO_TARGET_PATHS[@]}" "$PROJECT_PATH/references/project-retro.md")
|
|
269
|
+
git add -- "${RETRO_COMMIT_PATHS[@]}"
|
|
270
|
+
git commit --only -m "chore(oat): apply retro item $RP_ID" -- "${RETRO_COMMIT_PATHS[@]}"
|
|
271
|
+
RETRO_TARGET_COMMIT=$(git rev-parse HEAD) || exit 1
|
|
272
|
+
fi
|
|
273
|
+
|
|
274
|
+
UNRELATED_STAGED_PATCH_AFTER=$(git diff --cached --binary)
|
|
275
|
+
[ "$UNRELATED_STAGED_PATCH_AFTER" = "$UNRELATED_STAGED_PATCH_BEFORE" ] || { echo "oat: unrelated staged state changed during retro application" >&2; exit 1; }
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
The shown writeback comments are ordered operations, not permission to edit
|
|
279
|
+
fields before the synced target receipt exists. Format and verify every exact
|
|
280
|
+
repository target before `git add`. For a newly created decision, verify the
|
|
281
|
+
reported record and managed index before the parent commit. For an existing
|
|
282
|
+
matching decision, recover its existing durable commit and exact path receipt
|
|
283
|
+
rather than creating or recommitting it; if durability cannot be proven, stop.
|
|
284
|
+
|
|
202
285
|
- On re-run, rescan the artifact and process only remaining
|
|
203
286
|
`proposed | approved` apply-items. Never repeat an `applied` item.
|
|
204
287
|
|
|
@@ -210,3 +293,16 @@ rule, and decision items. A matching side effect plus missing writeback is an
|
|
|
210
293
|
interrupted success, not permission to apply twice. A partial, divergent, or
|
|
211
294
|
unverifiable target requires direction; never overwrite or claim it
|
|
212
295
|
automatically.
|
|
296
|
+
|
|
297
|
+
For synced projects, classify interruption recovery at the two-commit boundary:
|
|
298
|
+
|
|
299
|
+
| Interruption point | Required recovery |
|
|
300
|
+
| ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
301
|
+
| Before the parent target commit | The repository target is not durable. Leave the RP item unsettled, restore or finish only its exact target paths, rerun formatting and verification, then create the parent target commit. Do not write back or push the retro artifact yet. |
|
|
302
|
+
| Between the parent target commit and project-ref push | Verify the durable parent commit contains exactly the complete target-path set and represents the proposal. Recover `Applied-ref` from its full SHA and paths, do not reapply the target, then write back and push the retro artifact. |
|
|
303
|
+
| After both commits | Verify both the exact parent target receipt and the project-ref writeback receipt. Treat a matching `Status: applied` and `Applied-ref` as complete and skip the item; repair only a missing idempotent writeback from the two receipts. |
|
|
304
|
+
|
|
305
|
+
If the parent target commit succeeds but retro writeback or project-ref push
|
|
306
|
+
fails, preserve that immutable parent commit, leave the artifact unsettled, and
|
|
307
|
+
retry only writeback from the recovered receipt. Any partial, extra-path,
|
|
308
|
+
divergent, or ambiguous receipt requires direction without another commit.
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-project-retro-file
|
|
3
|
-
version: 1.0.
|
|
3
|
+
version: 1.0.2
|
|
4
4
|
description: Use when the user requests or confirms filing proposed feedback from a project retro into repository or upstream GitHub issues and OAT backlog items. Runs destination capability, duplicate, approval, and sanitization checks before filing, then writes destinations and statuses back to the retro artifact.
|
|
5
5
|
disable-model-invocation: false
|
|
6
6
|
user-invocable: true
|
|
7
|
-
allowed-tools: Read, Write, Bash(git:*), Bash(pnpm:*), Bash(gh:*), Bash(oat backlog:*), Bash(oat config:*), Glob, Grep, AskUserQuestion
|
|
7
|
+
allowed-tools: Read, Write, Bash(git:*), Bash(jq:*), Bash(pnpm:*), Bash(gh:*), Bash(oat backlog:*), Bash(oat config:*), Bash(oat project push:*), Bash(oat project scope:*), Glob, Grep, AskUserQuestion
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# File Project Retro Feedback
|
|
@@ -16,7 +16,7 @@ idempotent status writeback.
|
|
|
16
16
|
This skill never applies `Disposition: apply` repo edits and never mutates
|
|
17
17
|
`oat_retro_promotions`.
|
|
18
18
|
|
|
19
|
-
## Progress Indicators
|
|
19
|
+
## Progress Indicators (User-Facing)
|
|
20
20
|
|
|
21
21
|
Print one banner and concise step indicators:
|
|
22
22
|
|
|
@@ -278,10 +278,15 @@ strengthened local backlog destination:
|
|
|
278
278
|
not reachable from it, means `unpushed`.
|
|
279
279
|
5. Only after the receipt is confirmed, write back the retro in a subsequent
|
|
280
280
|
commit with `Destination`, `Destination-receipt`, and `Remote-visibility`.
|
|
281
|
-
6. Capture the full writeback commit SHA
|
|
282
|
-
destination commit,
|
|
281
|
+
6. Capture the full writeback commit SHA and require it to differ from the
|
|
282
|
+
destination commit. For shared/local projects, run
|
|
283
283
|
`git merge-base --is-ancestor "$DESTINATION_COMMIT" "$WRITEBACK_COMMIT"`.
|
|
284
|
-
|
|
284
|
+
For synced projects, the writeback lives on the independent project ref, so
|
|
285
|
+
ancestry is not expected; verify the destination commit and exact-path
|
|
286
|
+
receipt first, then perform the project push and retain both SHAs as the
|
|
287
|
+
ordering proof. In both branches, the destination commit predates the
|
|
288
|
+
writeback commit: shared/local history proves it by ancestry, while the
|
|
289
|
+
synced transaction proves it by verified-before-push sequencing.
|
|
285
290
|
|
|
286
291
|
If the destination mutation commit fails, stop that item without retro
|
|
287
292
|
writeback; a failed destination commit yields no receipt and must never yield
|
|
@@ -358,6 +363,52 @@ explicit `—` local receipt fields. On re-run, skip a `filed` item only after t
|
|
|
358
363
|
pre-selection integrity pass proves its destination-type state complete and
|
|
359
364
|
valid; retry all eligible unsettled statuses.
|
|
360
365
|
|
|
366
|
+
Resolve project scope and fail closed before committing the writeback. For a
|
|
367
|
+
synced project, capture the project-ref commit returned by the push; otherwise
|
|
368
|
+
commit only the retro artifact on the current branch:
|
|
369
|
+
|
|
370
|
+
```bash
|
|
371
|
+
PROJECT_SCOPE=$(oat project scope "$PROJECT_PATH" --format value) || {
|
|
372
|
+
echo "oat: cannot resolve project scope for $PROJECT_PATH; refusing to commit artifacts" >&2
|
|
373
|
+
exit 1
|
|
374
|
+
}
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
Define this fail-closed parser before the writeback push. If it rejects the
|
|
378
|
+
receipt, print the full CLI JSON, run `oat project pull "$PROJECT_PATH"`,
|
|
379
|
+
resolve the reported conflict, and retry the original push.
|
|
380
|
+
|
|
381
|
+
```bash
|
|
382
|
+
parse_synced_push_receipt() {
|
|
383
|
+
node -e '
|
|
384
|
+
let value;
|
|
385
|
+
try { value = JSON.parse(process.argv[1]); } catch { process.exit(1); }
|
|
386
|
+
if (!["pushed", "up-to-date"].includes(value.status) || !/^[0-9a-f]{40}$/.test(value.sha)) process.exit(1);
|
|
387
|
+
process.stdout.write(value.sha);
|
|
388
|
+
' "$1"
|
|
389
|
+
}
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
```bash
|
|
393
|
+
if [ "$PROJECT_SCOPE" = "synced" ]; then
|
|
394
|
+
RETRO_PUSH=$(oat project push "$PROJECT_PATH" --message "chore(oat): record project retro filing writeback" --json) || { echo "oat: project push failed; run oat project pull, resolve the reported state, and retry" >&2; exit 1; }
|
|
395
|
+
WRITEBACK_COMMIT=$(parse_synced_push_receipt "$RETRO_PUSH") || { printf '%s\n' "$RETRO_PUSH" >&2; echo "Recovery: run oat project pull \"$PROJECT_PATH\", resolve conflicts, then retry this push." >&2; exit 1; }
|
|
396
|
+
else
|
|
397
|
+
git add "$RETRO_PATH"
|
|
398
|
+
git diff --cached --quiet || git commit -m "chore(oat): record project retro filing writeback"
|
|
399
|
+
WRITEBACK_COMMIT=$(git rev-parse HEAD)
|
|
400
|
+
fi
|
|
401
|
+
|
|
402
|
+
if [ -n "${DESTINATION_COMMIT:-}" ]; then
|
|
403
|
+
[ "$DESTINATION_COMMIT" != "$WRITEBACK_COMMIT" ] || exit 1
|
|
404
|
+
if [ "$PROJECT_SCOPE" = "synced" ]; then
|
|
405
|
+
git cat-file -e "${DESTINATION_COMMIT}^{commit}" || exit 1
|
|
406
|
+
else
|
|
407
|
+
git merge-base --is-ancestor "$DESTINATION_COMMIT" "$WRITEBACK_COMMIT" || exit 1
|
|
408
|
+
fi
|
|
409
|
+
fi
|
|
410
|
+
```
|
|
411
|
+
|
|
361
412
|
## Final Report
|
|
362
413
|
|
|
363
414
|
Report:
|