@open-agent-toolkit/cli 0.2.55 → 0.2.57

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 (52) hide show
  1. package/assets/agents/oat-phase-implementer.md +123 -9
  2. package/assets/bundle-metadata.json +1 -1
  3. package/assets/docs/cli-utilities/configuration.md +12 -2
  4. package/assets/docs/docs-tooling/commands.md +36 -5
  5. package/assets/docs/reference/oat-directory-structure.md +56 -4
  6. package/assets/docs/workflows/projects/implementation-execution.md +5 -1
  7. package/assets/docs/workflows/skills/explainer-kit.md +8 -5
  8. package/assets/public-package-versions.json +4 -4
  9. package/assets/skills/analyze/SKILL.md +18 -17
  10. package/assets/skills/oat-brainstorm/SKILL.md +2 -2
  11. package/assets/skills/oat-doctor/SKILL.md +49 -36
  12. package/assets/skills/oat-idea-summarize/SKILL.md +2 -2
  13. package/assets/skills/oat-project-autonomous/SKILL.md +17 -10
  14. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +3 -3
  15. package/assets/skills/oat-project-complete/SKILL.md +18 -8
  16. package/assets/skills/oat-project-discover/SKILL.md +3 -3
  17. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +3 -3
  18. package/assets/skills/oat-project-implement/SKILL.md +1 -1
  19. package/assets/skills/oat-project-implement/references/completion-and-closeout.md +12 -3
  20. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +3 -3
  21. package/assets/skills/oat-project-implement/references/phase-execution.md +218 -4
  22. package/assets/skills/oat-project-implement/references/plan-and-resume.md +5 -2
  23. package/assets/skills/oat-project-implement/scripts/capture-dirty-tree.mjs +1069 -0
  24. package/assets/skills/oat-project-import-plan/SKILL.md +12 -6
  25. package/assets/skills/oat-project-next/SKILL.md +7 -5
  26. package/assets/skills/oat-project-plan/SKILL.md +24 -12
  27. package/assets/skills/oat-project-pr-final/SKILL.md +2 -2
  28. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +3 -3
  29. package/assets/skills/oat-project-quick-start/SKILL.md +11 -6
  30. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +3 -3
  31. package/assets/skills/oat-project-retro/SKILL.md +4 -2
  32. package/assets/skills/oat-project-review-receive/SKILL.md +9 -5
  33. package/assets/skills/oat-project-revise/SKILL.md +6 -6
  34. package/dist/commands/config/index.d.ts +1 -0
  35. package/dist/commands/config/index.d.ts.map +1 -1
  36. package/dist/commands/config/index.js +51 -4
  37. package/dist/commands/docs/index-generate/generator.d.ts +43 -1
  38. package/dist/commands/docs/index-generate/generator.d.ts.map +1 -1
  39. package/dist/commands/docs/index-generate/generator.js +169 -3
  40. package/dist/commands/docs/index-generate/index.d.ts +8 -3
  41. package/dist/commands/docs/index-generate/index.d.ts.map +1 -1
  42. package/dist/commands/docs/index-generate/index.js +340 -24
  43. package/dist/commands/docs/init/scaffold.d.ts +11 -1
  44. package/dist/commands/docs/init/scaffold.d.ts.map +1 -1
  45. package/dist/commands/docs/init/scaffold.js +11 -2
  46. package/dist/config/oat-config.d.ts +14 -0
  47. package/dist/config/oat-config.d.ts.map +1 -1
  48. package/dist/config/oat-config.js +61 -0
  49. package/dist/fs/assets.d.ts +33 -4
  50. package/dist/fs/assets.d.ts.map +1 -1
  51. package/dist/fs/assets.js +127 -12
  52. package/package.json +2 -2
@@ -228,10 +228,10 @@ remains immutable baseline evidence for the original p01-t01 verification.
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
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
- | `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` |
231
+ | `oat-project-discover/SKILL.md` | `8fe35bbfbcd6 -> NG`; `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` |
232
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
- | `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` |
234
+ | `oat-project-plan/SKILL.md` | `5eb3949f32e1 -> 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` |
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` |
236
236
  | `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` |
237
237
  | `oat-project-implement/references/completion-and-closeout.md` | `f7dab9c1f96c -> IMPLEMENT-12`; `c69c17a069a8 -> IMPLEMENT-14`; `a97fa5634a68 -> IMPLEMENT-14`; `3af58881811c -> IMPLEMENT-14`; `4203e1f49d0f -> IMPLEMENT-14`; `c3bd2458a3d3 -> IMPLEMENT-13`; `95b5eafc070d -> IMPLEMENT-13`; `25ecbe9c998b -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `0a384debbbe7 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `f18283bc1cf9 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `2c1ffc4a82dd -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `3454a07aa843 -> IMPLEMENT-16`; `8d7cd69e5b09 -> NG`; `d5fe597d266f -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `55a152e944c1 -> IMPLEMENT-16`; `effac7cbd573 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `9d2a34d8b148 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `d27462aaed26 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `9d52ecb17268 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `5b91aabe3757 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `fd0ad919f702 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `63bf28df1474 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `a4ed471dbc78 -> IMPLEMENT-16`; `6b7a64cec6e5 -> IMPLEMENT-16`; `0a4fdba0ebc0 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `a5033c2aada5 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `e77609eddba0 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `351156e8dde4 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `51d45bd2bbd1 -> IMPLEMENT-16`; `f7796ffcc804 -> IMPLEMENT-16`; `990d730cb494 -> IMPLEMENT-16`; `6ed28bb7d384 -> IMPLEMENT-16`; `8b7d4b5bcf1b -> IMPLEMENT-16`; `88aad500e6e9 -> IMPLEMENT-16`; `877e3e3f9eda -> IMPLEMENT-16`; `fc03c97f834e -> IMPLEMENT-16`; `12939a3da5e0 -> IMPLEMENT-16`; `bdb418335a88 -> IMPLEMENT-16`; `fba97e596ebd -> IMPLEMENT-16`; `3d0b5e2f14f0 -> IMPLEMENT-17`; `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`; `567d43ab0c2e -> 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`; `e0c2ea5032de -> NG`; `e3055dc5dcd1 -> NG`; `d26330f2299f -> NG` |
@@ -244,7 +244,7 @@ remains immutable baseline evidence for the original p01-t01 verification.
244
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
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`; `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` |
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`; `fffe5eea5ebd -> NG`; `e7dc6fdc4eb3 -> COMPLETE-01`; `e5460e437299 -> NG`; `882b61c9096c -> NG`; `9ffa1c752505 -> NG`; `8c5e599f6bac -> 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
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` |
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-retro
3
- version: 1.0.3
3
+ version: 1.0.4
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
@@ -178,7 +178,9 @@ Read effective `workflow.retro.apply` and `workflow.retro.filing` configuration.
178
178
  - Apply only when `workflow.retro.apply` is `auto`.
179
179
  - `ask` or absent means propose-only.
180
180
  - Chain to `oat-project-retro-file` only when at least one
181
- `workflow.retro.filing` destination is explicitly configured.
181
+ `workflow.retro.filing` destination is explicitly configured; chaining means
182
+ loading the current `oat-project-retro-file/SKILL.md` and following it, or
183
+ dispatching a child that carries it.
182
184
  - Without filing config, file nothing and report that proposals remain.
183
185
 
184
186
  All applications follow the apply procedure. Filing remains owned by
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-review-receive
3
- version: 1.6.1
3
+ version: 1.6.2
4
4
  description: Use when the user explicitly asks to receive review findings for an OAT project — e.g. "receive review", "process review", "process the project review", or confirms a previously offered review-receive step. Do NOT auto-invoke merely because a review file exists. Resolves the latest review and offers before acting.
5
5
  disable-model-invocation: false
6
6
  user-invocable: true
@@ -404,9 +404,8 @@ Fix tasks that edit synced artifacts use `oat project push` under the scope
404
404
  guard instead of the branch commit template above.
405
405
  ````
406
406
 
407
- ````
408
-
409
407
  **Task naming:**
408
+
410
409
  - Prefix with `(review)` to indicate review-generated task
411
410
  - Use active verb: "Fix...", "Add...", "Update..."
412
411
 
@@ -415,6 +414,7 @@ guard instead of the branch commit template above.
415
414
  Add new tasks to plan.md in the target phase. When adding or editing tasks, preserve/restore shared `plan.md` invariants per the `oat-project-plan-writing` contract (stable task IDs, required sections, review table preservation, accurate `## Implementation Complete` totals).
416
415
 
417
416
  **Review-fix bookkeeping (required):**
417
+
418
418
  - When you add review-generated fix tasks:
419
419
  - Locate the Reviews event matching the selected review's Scope, Type, and `SOURCE_REVIEW_FILENAME`, then update it to `fixes_added` (work queued), set the Date, and replace its Artifact with `reviews/archived/$REVIEW_FILENAME`.
420
420
  - For code events, populate or preserve `Reviewed Head`, `Invocation`, and
@@ -432,18 +432,22 @@ Add new tasks to plan.md in the target phase. When adding or editing tasks, pres
432
432
  - If the plan includes any phase rollups that reference task counts, update those too.
433
433
 
434
434
  **Keep plan runnable:**
435
+
435
436
  - Do NOT leave plan.md in a state that blocks `oat-project-implement`.
436
437
  - Ensure plan.md frontmatter remains:
437
438
  - `oat_status: complete`
438
439
  - `oat_ready_for: oat-project-implement`
439
440
 
440
441
  **Keep plan internally consistent:**
442
+
441
443
  - If the plan contains an `## Implementation Complete` summary (phase counts, total task count), update it to reflect any newly added review fix tasks.
442
444
  - If the plan has phase headings that include task counts (or other rollups), update those rollups as well.
443
445
 
444
446
  **Update Reviews section:**
447
+
445
448
  ```markdown
446
449
  ## Reviews
450
+
447
451
  - Find the existing event by `{scope}`, review Type, and
448
452
  `$SOURCE_REVIEW_FILENAME`, then update only that row:
449
453
  - Status: `fixes_added` (if tasks were added) or `passed` (if no Critical/Important/Medium and no unresolved final-scope gates)
@@ -452,7 +456,7 @@ Add new tasks to plan.md in the target phase. When adding or editing tasks, pres
452
456
  - Reviewed Head: validated full `oat_review_head_sha` for code reviews
453
457
  - Invocation: `oat_review_invocation` for code reviews
454
458
  - Gate Target: exact `oat_gate_target` for gate code reviews; `-` otherwise
455
- ````
459
+ ```
456
460
 
457
461
  **Status semantics (v1):**
458
462
 
@@ -682,7 +686,7 @@ Choose:
682
686
 
683
687
  - Update state.md: `oat_phase_status: in_progress`, `oat_project_state_updated: "{ISO 8601 UTC timestamp}"`
684
688
  - Tell user: "Run the `oat-project-implement` skill to execute fix tasks starting from {first_fix_task_id}"
685
- - Or directly invoke `oat-project-implement` if environment supports skill chaining
689
+ - Or directly invoke `oat-project-implement` if environment supports skill chaining, loading the current `oat-project-implement/SKILL.md` and following it
686
690
 
687
691
  **If review first:**
688
692
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-revise
3
- version: 1.0.1
3
+ version: 1.0.2
4
4
  description: Use when a project has an open PR and human feedback needs to be incorporated. Creates revision tasks and re-enters implementation.
5
5
  disable-model-invocation: true
6
6
  user-invocable: true
@@ -190,8 +190,6 @@ Fix tasks that edit synced artifacts use `oat project push` under the scope
190
190
  guard instead of the branch commit template above.
191
191
  ````
192
192
 
193
- ````
194
-
195
193
  **Task naming:** Prefix with `(revision)` — following the `(review)` convention in review-receive.
196
194
 
197
195
  **Task IDs:** `prev{N}-t{NN}` format (e.g., `prev1-t01`, `prev1-t02`).
@@ -218,13 +216,14 @@ Add a "Revision Received" entry:
218
216
  **Source:** inline conversation
219
217
 
220
218
  **Changes requested:**
219
+
221
220
  - {item 1}
222
221
  - {item 2}
223
222
 
224
223
  **New tasks added:** {task_ids}
225
224
 
226
225
  **Next:** Execute revision tasks via the `oat-project-implement` skill.
227
- ````
226
+ ```
228
227
 
229
228
  #### 4f: Update state.md
230
229
 
@@ -236,7 +235,7 @@ Add a "Revision Received" entry:
236
235
 
237
236
  Tell the user: "Revision tasks created. Run the `oat-project-implement` skill to execute them starting from {first_task_id}."
238
237
 
239
- Or directly invoke `oat-project-implement` if environment supports skill chaining.
238
+ Or directly invoke `oat-project-implement` if environment supports skill chaining, loading the current `oat-project-implement/SKILL.md` and following it.
240
239
 
241
240
  ### Step 5: Delegated Feedback Paths
242
241
 
@@ -255,6 +254,7 @@ This is the key value revise adds: state transition management so agents know th
255
254
 
256
255
  - **GitHub PR feedback:** Delegate to `oat-project-review-receive-remote`
257
256
  - **Review artifact feedback:** Delegate to `oat-project-review-receive`
257
+ - Delegating means loading the selected skill's current `SKILL.md` and following it, or dispatching a child that carries it, if environment supports skill chaining; otherwise tell the user which skill to run and stop. Never act from a remembered delegation outcome.
258
258
 
259
259
  These skills use their existing conventions: `(review)` task prefix, severity classification, standard task IDs appended to the last plan phase. This is correct — structured review feedback should go through the structured triage model.
260
260
 
@@ -262,7 +262,7 @@ These skills use their existing conventions: `(review)` task prefix, severity cl
262
262
 
263
263
  After the delegated skill completes:
264
264
 
265
- - **If fix tasks were added:** State stays `in_progress`. Route to `oat-project-implement`.
265
+ - **If fix tasks were added:** State stays `in_progress`. Route to `oat-project-implement` by loading the current `oat-project-implement/SKILL.md` and following it, or by dispatching a child that carries it, if environment supports skill chaining; otherwise tell the user to run the `oat-project-implement` skill and stop.
266
266
  - **If no actionable findings:** Return to `pr_open`:
267
267
  - `oat_phase_status: pr_open`
268
268
  - `oat_project_state_updated: "{ISO 8601 UTC timestamp}"`
@@ -10,6 +10,7 @@ interface ConfigCommandDependencies {
10
10
  resolveProjectRoot: (cwd: string) => Promise<string>;
11
11
  readOatConfig: (repoRoot: string) => Promise<OatConfig>;
12
12
  readOatConfigForDefaultScopeRepair: (repoRoot: string) => Promise<OatConfig>;
13
+ readOatConfigForDocumentationExcludesRepair: (repoRoot: string) => Promise<OatConfig>;
13
14
  writeOatConfig: (repoRoot: string, config: OatConfig) => Promise<void>;
14
15
  readOatLocalConfig: (repoRoot: string) => Promise<OatLocalConfig>;
15
16
  writeOatLocalConfig: (repoRoot: string, config: OatLocalConfig) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/config/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGhF,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,iCAAiC,CAAC;AAmBzC,OAAO,EAML,KAAK,SAAS,EACd,KAAK,cAAc,EAGnB,KAAK,UAAU,EAgBhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAGL,KAAK,8BAA8B,EACnC,KAAK,yBAAyB,EAC/B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,mCAAmC,EACnC,0BAA0B,EAC3B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0GpC,UAAU,yBAAyB;IACjC,mBAAmB,EAAE,CACnB,OAAO,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAC/C,cAAc,CAAC;IACpB,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,kCAAkC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7E,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAClE,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,KACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,cAAc,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/D,eAAe,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,UAAU,KACnB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,sBAAsB,EAAE,CACtB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,CAAC,UAAU,KACnB,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzE,kBAAkB,EAAE,CAClB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,yBAAyB,KAC/B,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC7C,mCAAmC,EAAE,OAAO,mCAAmC,CAAC;IAChF,0BAA0B,EAAE,OAAO,0BAA0B,CAAC;IAC9D,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;CAC/B;AAqkFD,wBAAgB,mBAAmB,CACjC,SAAS,GAAE,OAAO,CAAC,yBAAyB,CAAM,GACjD,OAAO,CAsKT"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/config/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGhF,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,iCAAiC,CAAC;AAmBzC,OAAO,EAML,KAAK,SAAS,EACd,KAAK,cAAc,EAGnB,KAAK,UAAU,EAiBhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAGL,KAAK,8BAA8B,EACnC,KAAK,yBAAyB,EAC/B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,mCAAmC,EACnC,0BAA0B,EAC3B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2GpC,UAAU,yBAAyB;IACjC,mBAAmB,EAAE,CACnB,OAAO,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAC/C,cAAc,CAAC;IACpB,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,kCAAkC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7E,2CAA2C,EAAE,CAC3C,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,SAAS,CAAC,CAAC;IACxB,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAClE,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,KACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,cAAc,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/D,eAAe,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,UAAU,KACnB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,sBAAsB,EAAE,CACtB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,CAAC,UAAU,KACnB,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzE,kBAAkB,EAAE,CAClB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,yBAAyB,KAC/B,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC7C,mCAAmC,EAAE,OAAO,mCAAmC,CAAC;IAChF,0BAA0B,EAAE,OAAO,0BAA0B,CAAC;IAC9D,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;CAC/B;AAunFD,wBAAgB,mBAAmB,CACjC,SAAS,GAAE,OAAO,CAAC,yBAAyB,CAAM,GACjD,OAAO,CAsKT"}
@@ -9,7 +9,7 @@ import { compileDispatchCeilingPreset } from '../../config/dispatch-ceiling-pres
9
9
  import { normalizeDispatchMatrix, validateDispatchRouteTarget, walkDispatchMatrix, } from '../../config/dispatch-matrix.js';
10
10
  import { formatDispatchNotices, terminalReviewerNoticesForMatrix, } from '../../config/dispatch-notices.js';
11
11
  import { dispatchPolicyModeDescription, dispatchPolicyPolicyDescription, managedDispatchPolicyValueList, } from '../../config/dispatch-policy-options.js';
12
- import { VALID_DISPATCH_POLICY_MODES, VALID_MANAGED_DISPATCH_POLICIES, MAX_GATE_TIMEOUT_MS, MIN_GATE_TIMEOUT_MS, isValidGateTimeoutMs, normalizeWorkflowPostImplementSequence, readOatConfig, readOatConfigForDefaultScopeRepair, readOatLocalConfig, readUserConfig, writeOatConfig, writeOatLocalConfig, writeUserConfig, } from '../../config/oat-config.js';
12
+ import { VALID_DISPATCH_POLICY_MODES, VALID_MANAGED_DISPATCH_POLICIES, MAX_GATE_TIMEOUT_MS, MIN_GATE_TIMEOUT_MS, isValidGateTimeoutMs, normalizeWorkflowPostImplementSequence, readOatConfig, readOatConfigForDefaultScopeRepair, readOatConfigForDocumentationExcludesRepair, readOatLocalConfig, readUserConfig, writeOatConfig, writeOatLocalConfig, writeUserConfig, } from '../../config/oat-config.js';
13
13
  import { resolveEffectiveConfig, } from '../../config/resolve.js';
14
14
  import { resolveAssetsRoot } from '../../fs/assets.js';
15
15
  import { resolveProjectRoot } from '../../fs/paths.js';
@@ -38,6 +38,7 @@ const KEY_ORDER = [
38
38
  'documentation.root',
39
39
  'documentation.tooling',
40
40
  'documentation.config',
41
+ 'documentation.excludes',
41
42
  'documentation.requireForProjectCompletion',
42
43
  'explainers.defaults.style',
43
44
  'explainers.defaults.palette',
@@ -177,6 +178,17 @@ const CONFIG_CATALOG = [
177
178
  owningCommand: 'oat config set documentation.config <value>',
178
179
  description: 'Repository-relative path to the primary documentation tool config file.',
179
180
  },
181
+ {
182
+ key: 'documentation.excludes',
183
+ group: 'Shared Repo (.oat/config.json)',
184
+ file: '.oat/config.json',
185
+ scope: 'shared repo',
186
+ type: 'string[]',
187
+ defaultValue: 'unset',
188
+ mutability: 'read/write',
189
+ owningCommand: 'oat config set documentation.excludes <glob[,glob...]>',
190
+ description: 'Comma-separated globs, relative to the docs directory, excluded from `oat docs generate-index`. Repeated `--exclude` flags extend this list; an empty value clears the key.',
191
+ },
180
192
  {
181
193
  key: 'documentation.requireForProjectCompletion',
182
194
  group: 'Shared Repo (.oat/config.json)',
@@ -854,6 +866,7 @@ const DEFAULT_DEPENDENCIES = {
854
866
  resolveProjectRoot,
855
867
  readOatConfig,
856
868
  readOatConfigForDefaultScopeRepair,
869
+ readOatConfigForDocumentationExcludesRepair,
857
870
  writeOatConfig,
858
871
  readOatLocalConfig,
859
872
  writeOatLocalConfig,
@@ -916,6 +929,20 @@ function normalizeSharedRoot(value) {
916
929
  }
917
930
  return trimmed.replace(/\/+$/, '');
918
931
  }
932
+ /**
933
+ * Split the one array-valued config key's comma-separated grammar.
934
+ *
935
+ * Entries are trimmed and de-duplicated in order; blank entries are dropped, so
936
+ * an empty (or all-blank) value yields an empty list, which the caller treats
937
+ * as "clear the key" rather than as an error.
938
+ */
939
+ function parseDocumentationExcludes(rawValue) {
940
+ const parsed = rawValue
941
+ .split(',')
942
+ .map((entry) => entry.trim())
943
+ .filter((entry) => entry.length > 0);
944
+ return [...new Set(parsed)];
945
+ }
919
946
  function parseExplainerValue(key, rawValue, surface) {
920
947
  const value = rawValue.trim();
921
948
  if (!value) {
@@ -1633,7 +1660,12 @@ async function setConfigValue(repoRoot, userConfigDir, key, rawValue, surface, d
1633
1660
  });
1634
1661
  return { key, value: defaultScope, source: 'shared' };
1635
1662
  }
1636
- const config = await dependencies.readOatConfig(repoRoot);
1663
+ // `documentation.excludes` is the one shared key whose own validation error
1664
+ // names `oat config set` as the repair, so it reads leniently: a strict read
1665
+ // would reject the very value the operator is trying to replace.
1666
+ const config = key === 'documentation.excludes'
1667
+ ? await dependencies.readOatConfigForDocumentationExcludesRepair(repoRoot)
1668
+ : await dependencies.readOatConfig(repoRoot);
1637
1669
  if (key.startsWith('documentation.')) {
1638
1670
  const doc = { ...config.documentation };
1639
1671
  if (key === 'documentation.root') {
@@ -1645,6 +1677,17 @@ async function setConfigValue(repoRoot, userConfigDir, key, rawValue, surface, d
1645
1677
  else if (key === 'documentation.config') {
1646
1678
  doc.config = normalizeSharedRoot(rawValue);
1647
1679
  }
1680
+ else if (key === 'documentation.excludes') {
1681
+ const excludes = parseDocumentationExcludes(rawValue);
1682
+ if (excludes.length === 0) {
1683
+ // Unlike the scalar shared keys, an empty value is the documented way
1684
+ // to clear this list rather than an error.
1685
+ delete doc.excludes;
1686
+ }
1687
+ else {
1688
+ doc.excludes = excludes;
1689
+ }
1690
+ }
1648
1691
  else if (key === 'documentation.requireForProjectCompletion') {
1649
1692
  doc.requireForProjectCompletion =
1650
1693
  rawValue.trim().toLowerCase() === 'true';
@@ -1655,7 +1698,9 @@ async function setConfigValue(repoRoot, userConfigDir, key, rawValue, surface, d
1655
1698
  });
1656
1699
  const resultValue = key === 'documentation.requireForProjectCompletion'
1657
1700
  ? String(doc.requireForProjectCompletion ?? false)
1658
- : (doc[key.replace('documentation.', '')] ?? null);
1701
+ : key === 'documentation.excludes'
1702
+ ? (doc.excludes ?? null)
1703
+ : (doc[key.replace('documentation.', '')] ?? null);
1659
1704
  return {
1660
1705
  key,
1661
1706
  value: resultValue,
@@ -1990,7 +2035,9 @@ async function runSet(keyArg, rawValue, surface, context, dependencies) {
1990
2035
  });
1991
2036
  }
1992
2037
  else {
1993
- context.logger.info(`${result.key}=${result.value ?? ''}`);
2038
+ // `formatResolvedValue` renders an array-valued key the same way `get`
2039
+ // does, rather than leaning on implicit `Array.prototype.toString`.
2040
+ context.logger.info(`${result.key}=${formatResolvedValue(result.value) ?? ''}`);
1994
2041
  }
1995
2042
  process.exitCode = 0;
1996
2043
  }
@@ -4,6 +4,48 @@ export interface IndexEntry {
4
4
  path: string;
5
5
  children?: IndexEntry[];
6
6
  }
7
- export declare function generateIndex(docsDir: string): Promise<IndexEntry[]>;
7
+ export interface GenerateIndexOptions {
8
+ /**
9
+ * Glob patterns whose matches are left out of the index. See
10
+ * {@link createExclusionMatcher} for the grammar; an empty or omitted list
11
+ * indexes everything, byte-identically to the pre-exclusion behavior.
12
+ */
13
+ excludes?: string[];
14
+ }
15
+ /**
16
+ * A compiled exclusion list.
17
+ *
18
+ * Files and directories are asked separately so a trailing-slash pattern can
19
+ * mean "directories only" while every other pattern applies to both.
20
+ */
21
+ export interface ExclusionMatcher {
22
+ excludesFile: (relativePath: string) => boolean;
23
+ excludesDirectory: (relativePath: string) => boolean;
24
+ }
25
+ /**
26
+ * Compile exclusion globs matched against **docs-root-relative POSIX paths**
27
+ * (`api/auth.md`, `api/nested`), never against absolute or CWD-relative ones.
28
+ *
29
+ * Grammar, defined once and documented in
30
+ * `apps/oat-docs/docs/reference/oat-directory-structure.md`:
31
+ *
32
+ * - `*` matches any run of characters inside a single path segment.
33
+ * - `**` spans `/` only as a whole segment, where it covers zero or more
34
+ * segments: `**\/CLAUDE.md` matches `CLAUDE.md` and `api/CLAUDE.md`. Inside a
35
+ * segment (`a**b`) it is an ordinary single-segment wildcard.
36
+ * - Patterns are anchored at both ends against the whole relative path, so a
37
+ * bare `CLAUDE.md` matches only the root-level file. Use `**\/CLAUDE.md` for
38
+ * every depth.
39
+ * - A trailing `/` restricts a pattern to directories: `drafts/` prunes the
40
+ * `drafts` directory and everything beneath it, and never matches a file.
41
+ * Without it, a pattern that matches a directory path prunes it too.
42
+ * - Matching is case-sensitive, `/` is the separator on every platform, and
43
+ * `*` is the only metacharacter — `.`, `+`, and friends are literal.
44
+ *
45
+ * Entries are trimmed; a leading `./` or `/` is stripped so both spellings
46
+ * anchor at the docs root. Blank entries are ignored.
47
+ */
48
+ export declare function createExclusionMatcher(patterns: readonly string[]): ExclusionMatcher;
49
+ export declare function generateIndex(docsDir: string, options?: GenerateIndexOptions): Promise<IndexEntry[]>;
8
50
  export declare function renderIndex(entries: IndexEntry[]): string;
9
51
  //# sourceMappingURL=generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../src/commands/docs/index-generate/generator.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;CACzB;AA4ED,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAiC1E;AAmBD,wBAAgB,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,CAMzD"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../src/commands/docs/index-generate/generator.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;IAChD,iBAAiB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;CACtD;AAmHD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,gBAAgB,CAwClB;AAqID,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,UAAU,EAAE,CAAC,CAMvB;AAmBD,wBAAgB,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,CAMzD"}