@open-agent-toolkit/cli 0.2.5 → 0.2.7
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/docs/cli-utilities/configuration.md +40 -0
- package/assets/docs/cli-utilities/tool-packs.md +31 -0
- package/assets/docs/workflows/projects/artifacts.md +27 -0
- package/assets/docs/workflows/skills/explainer-kit.md +125 -0
- package/assets/docs/workflows/skills/index.md +4 -0
- package/assets/migration/pjm-restructure.md +12 -0
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/explainer-kit/SKILL.md +95 -0
- package/assets/skills/explainer-kit/examples/project-explainer/content.md +31 -0
- package/assets/skills/explainer-kit/examples/project-explainer/fact-base.md +22 -0
- package/assets/skills/explainer-kit/examples/project-recap/content.md +34 -0
- package/assets/skills/explainer-kit/examples/project-recap/fact-base.md +22 -0
- package/assets/skills/explainer-kit/examples/theme-bundle.json +87 -0
- package/assets/skills/explainer-kit/palettes/ember.json +37 -0
- package/assets/skills/explainer-kit/palettes/forest.json +37 -0
- package/assets/skills/explainer-kit/palettes/neutral.json +37 -0
- package/assets/skills/explainer-kit/palettes/ocean.json +37 -0
- package/assets/skills/explainer-kit/palettes/violet.json +37 -0
- package/assets/skills/explainer-kit/profiles/clean.json +42 -0
- package/assets/skills/explainer-kit/profiles/editorial.json +42 -0
- package/assets/skills/explainer-kit/profiles/technical.json +39 -0
- package/assets/skills/explainer-kit/recipes/engineer-tour.json +33 -0
- package/assets/skills/explainer-kit/recipes/project-explainer.json +33 -0
- package/assets/skills/explainer-kit/recipes/project-recap.json +34 -0
- package/assets/skills/explainer-kit/references/contracts.md +101 -0
- package/assets/skills/explainer-kit/references/destination-contract.md +94 -0
- package/assets/skills/explainer-kit/references/extension-contract.md +71 -0
- package/assets/skills/explainer-kit/references/fact-base-contract.md +119 -0
- package/assets/skills/explainer-kit/schemas/build-record.schema.json +92 -0
- package/assets/skills/explainer-kit/schemas/durability-evidence.schema.json +53 -0
- package/assets/skills/explainer-kit/schemas/fact-base.schema.json +129 -0
- package/assets/skills/explainer-kit/schemas/manifest.schema.json +193 -0
- package/assets/skills/explainer-kit/schemas/publish-receipt.schema.json +97 -0
- package/assets/skills/explainer-kit/schemas/publish-request.schema.json +32 -0
- package/assets/skills/explainer-kit/schemas/run-request.schema.json +132 -0
- package/assets/skills/explainer-kit/schemas/theme.schema.json +217 -0
- package/assets/skills/explainer-kit/scripts/lib/content-approval.mjs +180 -0
- package/assets/skills/explainer-kit/scripts/lib/contracts.mjs +680 -0
- package/assets/skills/explainer-kit/scripts/lib/durability.mjs +538 -0
- package/assets/skills/explainer-kit/scripts/lib/fact-base.mjs +494 -0
- package/assets/skills/explainer-kit/scripts/lib/fs-safe.mjs +218 -0
- package/assets/skills/explainer-kit/scripts/lib/qa.mjs +512 -0
- package/assets/skills/explainer-kit/scripts/lib/recipes.mjs +289 -0
- package/assets/skills/explainer-kit/scripts/lib/records.mjs +231 -0
- package/assets/skills/explainer-kit/scripts/lib/render.mjs +485 -0
- package/assets/skills/explainer-kit/scripts/lib/s3-static.mjs +587 -0
- package/assets/skills/explainer-kit/scripts/lib/safe-paths.mjs +96 -0
- package/assets/skills/explainer-kit/scripts/lib/theme.mjs +332 -0
- package/assets/skills/explainer-kit/scripts/publish.mjs +76 -0
- package/assets/skills/explainer-kit/scripts/record-durability.mjs +64 -0
- package/assets/skills/explainer-kit/scripts/render-qa.mjs +273 -0
- package/assets/skills/explainer-kit/scripts/run.mjs +778 -0
- package/assets/skills/explainer-kit/scripts/validate.mjs +59 -0
- package/assets/skills/explainer-kit/templates/deck-shell.html +233 -0
- package/assets/skills/explainer-kit/templates/diagram-shell.html +219 -0
- package/assets/skills/explainer-kit/templates/engineer-tour.html +273 -0
- package/assets/skills/explainer-kit/templates/house-style.html +218 -0
- package/assets/skills/oat-explainer-kit/SKILL.md +92 -0
- package/assets/skills/oat-explainer-kit/references/config-contract.md +67 -0
- package/assets/skills/oat-explainer-kit/references/lifecycle-contract.md +143 -0
- package/assets/skills/oat-explainer-kit/references/migration.md +143 -0
- package/assets/skills/oat-explainer-kit/scripts/bind-project-sources.mjs +103 -0
- package/assets/skills/oat-explainer-kit/scripts/check-core.mjs +127 -0
- package/assets/skills/oat-explainer-kit/scripts/finalize-tracked-run.mjs +392 -0
- package/assets/skills/oat-explainer-kit/scripts/persist-intent.mjs +130 -0
- package/assets/skills/oat-explainer-kit/scripts/resolve-config.mjs +293 -0
- package/assets/skills/oat-explainer-kit/scripts/resolve-intent.mjs +209 -0
- package/assets/skills/oat-explainer-kit/scripts/resolve-paths.mjs +166 -0
- package/assets/skills/oat-explainer-kit/scripts/run.mjs +284 -0
- package/assets/skills/oat-project-autonomous/SKILL.md +22 -1
- package/assets/skills/oat-project-autonomous/references/gate-inventory.md +5 -1
- package/assets/skills/oat-project-complete/SKILL.md +166 -28
- package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +5 -1
- package/assets/skills/oat-project-implement/SKILL.md +1 -1
- package/assets/skills/oat-project-implement/references/completion-and-closeout.md +17 -0
- package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +5 -1
- package/assets/skills/oat-project-plan/SKILL.md +30 -1
- package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +5 -1
- package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +5 -1
- package/assets/skills/oat-project-summary/SKILL.md +20 -1
- package/assets/skills/oat-wave-execute/SKILL.md +1 -1
- package/dist/commands/config/index.d.ts.map +1 -1
- package/dist/commands/config/index.js +232 -1
- package/dist/commands/init/tools/shared/skill-manifest.d.ts +2 -2
- package/dist/commands/init/tools/shared/skill-manifest.d.ts.map +1 -1
- package/dist/commands/init/tools/shared/skill-manifest.js +2 -0
- package/dist/commands/project/archive/archive-utils.d.ts +12 -0
- package/dist/commands/project/archive/archive-utils.d.ts.map +1 -1
- package/dist/commands/project/archive/archive-utils.js +320 -8
- 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 +1 -0
- package/dist/commands/project/archive/push-runner.d.ts.map +1 -1
- package/dist/commands/project/archive/push-runner.js +9 -2
- package/dist/config/oat-config.d.ts +26 -0
- package/dist/config/oat-config.d.ts.map +1 -1
- package/dist/config/oat-config.js +88 -0
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +18 -0
- package/dist/validation/project-state.d.ts +3 -0
- package/dist/validation/project-state.d.ts.map +1 -1
- package/dist/validation/project-state.js +91 -0
- package/package.json +2 -2
- /package/assets/skills/{oat-wave-execute/assets/program-recap.recipe.json → explainer-kit/recipes/program-recap.json} +0 -0
|
@@ -142,6 +142,7 @@ remains.
|
|
|
142
142
|
| PLAN-09 | `oat-project-plan` | Plan artifact-review findings | Accept offered Medium/Minor fixes | Apply unambiguous artifact-local fixes and re-review; unresolved Critical or material ambiguity stops | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row and residuals |
|
|
143
143
|
| PLAN-10 | `oat-project-plan` | Parallel-group proposal | Confirm a candidate group | Accept only when write-set and dependency evidence proves independence; otherwise keep sequential and record why | `auto-resolve` | Plan Parallelism section |
|
|
144
144
|
| PLAN-11 | `oat-project-plan` | Configured exit gate | `block`, `prompt`, or `warn` after failure | Apply configured failure semantics; `prompt` becomes a reported boundary | `auto-resolve` / `boundary:repository-policy-approval` | Structured gate result and disposition |
|
|
145
|
+
| PLAN-12 | `oat-project-plan` | Project-explainer intent | Generate or skip the project explainer | Preserve explicit or persisted intent; in autonomy generate only when kickoff explicitly requested it and never prompt | `auto-resolve` | Persisted project-explainer intent |
|
|
145
146
|
| IMPORT-01 | `oat-project-import-plan` | Inherited dirty tree | Commit, proceed, or abort | Proceed without staging unrelated files; destructive cleanup stops | `auto-resolve` / `boundary:destructive-change-risk` | Import preflight note |
|
|
146
147
|
| IMPORT-02 | `oat-project-import-plan` | Missing project | Ask for project identity | Use explicit invocation context; otherwise stop rather than guess | `boundary:product-judgment` | Resolved project path |
|
|
147
148
|
| IMPORT-03 | `oat-project-import-plan` | Source plan selection or extension exception | Choose a candidate/path or confirm nonstandard Markdown | Use an explicit unique source; ambiguity or nonstandard content stops | `auto-resolve` / `boundary:product-judgment` | Import reference metadata |
|
|
@@ -169,6 +170,7 @@ remains.
|
|
|
169
170
|
| IMPLEMENT-16 | `oat-project-implement` | Final HiLL approval | Approve, decline, or defer between pre/post steps | After passing auto-review and successful pre-approval steps, record approval and continue post-approval steps; otherwise stop | `auto-resolve` / `boundary:unresolved-critical-findings` | Sequence snapshot, review artifact, dispatch record |
|
|
170
171
|
| IMPLEMENT-17 | `oat-project-implement` | Next-step prompt | Choose lifecycle tail actions | Unreachable when the autonomous sequence snapshot exists; never present the prompt | `auto-resolve` | Completed sequence snapshot |
|
|
171
172
|
| IMPLEMENT-18 | `oat-project-implement` | Configured exit gate | `block`, `prompt`, or `warn` after validated findings | Apply configured failure semantics only to a validated, receive-eligible `blocked` envelope after durable receive; all operational, validation, correlation, malformed/contradictory-envelope, launch, and receive failures stop regardless of `onFailure`, including `warn` | `auto-resolve` / `boundary:repository-policy-approval` | Validated structured gate result, completed receive, and disposition |
|
|
173
|
+
| IMPLEMENT-19 | `oat-project-implement` | Implementation-tail project recap | Generate or skip the final project recap | In autonomy attempt one recap when no fresh recap exists; preserve resolved interactive intent otherwise, and never block completion on recap outcome | `auto-resolve` | Recap manifest and outcome record |
|
|
172
174
|
| DOCUMENT-01 | `oat-project-document` | Missing project path | Ask for a path | Use explicit/active project only; otherwise stop | `boundary:product-judgment` | Resolved project path |
|
|
173
175
|
| DOCUMENT-02 | `oat-project-document` | Documentation delta approval | Apply all, individual, or skip | Invoke the existing `--auto` path and apply all non-destructive recommendations | `auto-resolve` | Documentation delta and state update |
|
|
174
176
|
| DOCUMENT-03 | `oat-project-document` | Delete or restructure docs | Require explicit approval | Stop before destructive or broad restructuring not already authorized by the plan | `boundary:destructive-change-risk` | Documentation blocker |
|
|
@@ -256,7 +258,9 @@ remains immutable baseline evidence for the original p01-t01 verification.
|
|
|
256
258
|
| `oat-dispatch-subagents/references/provider-cursor.md` | `ca11e28923eb -> NG`; `be0a84c48fc0 -> NG` |
|
|
257
259
|
| `oat-dispatch-subagents/references/record-schema.md` | `78f8069274a8 -> NG` |
|
|
258
260
|
| `oat-project-dispatch-subagents/SKILL.md` | `eca03ad1ca12 -> PDISPATCH-01`; `59fbcdc79cea -> PDISPATCH-01` |
|
|
259
|
-
| `oat-project-
|
|
261
|
+
| `oat-project-plan/SKILL.md` | `f99e44b39932 -> PLAN-12`; `7e6a9854504b -> NG` |
|
|
262
|
+
| `oat-project-implement/references/completion-and-closeout.md` | `6909a5a5a1fa -> IMPLEMENT-19`; `a7c02ef670fd -> IMPLEMENT-19` |
|
|
263
|
+
| `oat-project-complete/SKILL.md` | `ffad9f909dba -> COMPLETE-01`; `ffe636f736e8 -> COMPLETE-01`; `ea2dced337be -> COMPLETE-01`; `93d3e4ee3355 -> COMPLETE-01`; `2407ebed0921 -> NG`; `0177956707aa -> NG`; `8305b5bb65ef -> NG` |
|
|
260
264
|
|
|
261
265
|
## Prompt-scan comparison
|
|
262
266
|
|
|
@@ -142,6 +142,7 @@ remains.
|
|
|
142
142
|
| PLAN-09 | `oat-project-plan` | Plan artifact-review findings | Accept offered Medium/Minor fixes | Apply unambiguous artifact-local fixes and re-review; unresolved Critical or material ambiguity stops | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row and residuals |
|
|
143
143
|
| PLAN-10 | `oat-project-plan` | Parallel-group proposal | Confirm a candidate group | Accept only when write-set and dependency evidence proves independence; otherwise keep sequential and record why | `auto-resolve` | Plan Parallelism section |
|
|
144
144
|
| PLAN-11 | `oat-project-plan` | Configured exit gate | `block`, `prompt`, or `warn` after failure | Apply configured failure semantics; `prompt` becomes a reported boundary | `auto-resolve` / `boundary:repository-policy-approval` | Structured gate result and disposition |
|
|
145
|
+
| PLAN-12 | `oat-project-plan` | Project-explainer intent | Generate or skip the project explainer | Preserve explicit or persisted intent; in autonomy generate only when kickoff explicitly requested it and never prompt | `auto-resolve` | Persisted project-explainer intent |
|
|
145
146
|
| IMPORT-01 | `oat-project-import-plan` | Inherited dirty tree | Commit, proceed, or abort | Proceed without staging unrelated files; destructive cleanup stops | `auto-resolve` / `boundary:destructive-change-risk` | Import preflight note |
|
|
146
147
|
| IMPORT-02 | `oat-project-import-plan` | Missing project | Ask for project identity | Use explicit invocation context; otherwise stop rather than guess | `boundary:product-judgment` | Resolved project path |
|
|
147
148
|
| IMPORT-03 | `oat-project-import-plan` | Source plan selection or extension exception | Choose a candidate/path or confirm nonstandard Markdown | Use an explicit unique source; ambiguity or nonstandard content stops | `auto-resolve` / `boundary:product-judgment` | Import reference metadata |
|
|
@@ -169,6 +170,7 @@ remains.
|
|
|
169
170
|
| IMPLEMENT-16 | `oat-project-implement` | Final HiLL approval | Approve, decline, or defer between pre/post steps | After passing auto-review and successful pre-approval steps, record approval and continue post-approval steps; otherwise stop | `auto-resolve` / `boundary:unresolved-critical-findings` | Sequence snapshot, review artifact, dispatch record |
|
|
170
171
|
| IMPLEMENT-17 | `oat-project-implement` | Next-step prompt | Choose lifecycle tail actions | Unreachable when the autonomous sequence snapshot exists; never present the prompt | `auto-resolve` | Completed sequence snapshot |
|
|
171
172
|
| IMPLEMENT-18 | `oat-project-implement` | Configured exit gate | `block`, `prompt`, or `warn` after validated findings | Apply configured failure semantics only to a validated, receive-eligible `blocked` envelope after durable receive; all operational, validation, correlation, malformed/contradictory-envelope, launch, and receive failures stop regardless of `onFailure`, including `warn` | `auto-resolve` / `boundary:repository-policy-approval` | Validated structured gate result, completed receive, and disposition |
|
|
173
|
+
| IMPLEMENT-19 | `oat-project-implement` | Implementation-tail project recap | Generate or skip the final project recap | In autonomy attempt one recap when no fresh recap exists; preserve resolved interactive intent otherwise, and never block completion on recap outcome | `auto-resolve` | Recap manifest and outcome record |
|
|
172
174
|
| DOCUMENT-01 | `oat-project-document` | Missing project path | Ask for a path | Use explicit/active project only; otherwise stop | `boundary:product-judgment` | Resolved project path |
|
|
173
175
|
| DOCUMENT-02 | `oat-project-document` | Documentation delta approval | Apply all, individual, or skip | Invoke the existing `--auto` path and apply all non-destructive recommendations | `auto-resolve` | Documentation delta and state update |
|
|
174
176
|
| DOCUMENT-03 | `oat-project-document` | Delete or restructure docs | Require explicit approval | Stop before destructive or broad restructuring not already authorized by the plan | `boundary:destructive-change-risk` | Documentation blocker |
|
|
@@ -256,7 +258,9 @@ remains immutable baseline evidence for the original p01-t01 verification.
|
|
|
256
258
|
| `oat-dispatch-subagents/references/provider-cursor.md` | `ca11e28923eb -> NG`; `be0a84c48fc0 -> NG` |
|
|
257
259
|
| `oat-dispatch-subagents/references/record-schema.md` | `78f8069274a8 -> NG` |
|
|
258
260
|
| `oat-project-dispatch-subagents/SKILL.md` | `eca03ad1ca12 -> PDISPATCH-01`; `59fbcdc79cea -> PDISPATCH-01` |
|
|
259
|
-
| `oat-project-
|
|
261
|
+
| `oat-project-plan/SKILL.md` | `f99e44b39932 -> PLAN-12`; `7e6a9854504b -> NG` |
|
|
262
|
+
| `oat-project-implement/references/completion-and-closeout.md` | `6909a5a5a1fa -> IMPLEMENT-19`; `a7c02ef670fd -> IMPLEMENT-19` |
|
|
263
|
+
| `oat-project-complete/SKILL.md` | `ffad9f909dba -> COMPLETE-01`; `ffe636f736e8 -> COMPLETE-01`; `ea2dced337be -> COMPLETE-01`; `93d3e4ee3355 -> COMPLETE-01`; `2407ebed0921 -> NG`; `0177956707aa -> NG`; `8305b5bb65ef -> NG` |
|
|
260
264
|
|
|
261
265
|
## Prompt-scan comparison
|
|
262
266
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-project-summary
|
|
3
|
-
version: 1.3.
|
|
3
|
+
version: 1.3.4
|
|
4
4
|
description: Use when the user requests or confirms summarizing an active OAT project — e.g. "summarize the project", "generate the summary", "run oat-project-summary", or confirms a previously offered summary run. Do NOT auto-invoke when implementation completes. Generates summary.md from project artifacts as institutional memory.
|
|
5
5
|
disable-model-invocation: false
|
|
6
6
|
user-invocable: true
|
|
@@ -229,6 +229,23 @@ For each section, synthesize content from the relevant artifacts. Apply these ru
|
|
|
229
229
|
| Associated Issues | state.md `associated_issues` field |
|
|
230
230
|
| Workflow Observations | project-log.md via `oat project log rollup` only |
|
|
231
231
|
| Autonomous Execution Learnings | oat-execution-learnings.md dated entries |
|
|
232
|
+
| Explainer Outcome | project-recap `manifest.json` and `build-record.json` |
|
|
233
|
+
|
|
234
|
+
**Explainer Outcome (conditional):**
|
|
235
|
+
|
|
236
|
+
When a project-recap attempt exists, render this section:
|
|
237
|
+
|
|
238
|
+
```markdown
|
|
239
|
+
## Explainer Outcome
|
|
240
|
+
|
|
241
|
+
- **project-recap:** {outcome} — `{run path}`{optional warning or recovery note}
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
When a project-recap attempt exists, include exactly one concise outcome item with its recipe, outcome (`built-durable`, `built-not-durable`, or `failed`), run path, and warning or recovery note when applicable.
|
|
245
|
+
|
|
246
|
+
Use `manifest.json` and `build-record.json` as the source of truth; refresh the existing item instead of appending a duplicate.
|
|
247
|
+
|
|
248
|
+
Omit `Explainer Outcome` when no project-recap attempt exists. A failed or non-durable recap remains visible as its product outcome; do not reinterpret it as project implementation failure.
|
|
232
249
|
|
|
233
250
|
**Autonomous Execution Learnings (conditional):**
|
|
234
251
|
|
|
@@ -466,3 +483,5 @@ Summary tracks: last task {task_id}, {N} revision phases
|
|
|
466
483
|
ledger graduation
|
|
467
484
|
- When the PJM tool pack is installed, each Key Decision is promoted to a canonical `reference/decisions/DR-YYMMDD-slug` record via `oat decision new` (status `accepted`), deduped on the date-independent slug so re-runs never create duplicate records
|
|
468
485
|
- When the PJM tool pack is not installed, decision promotion is skipped silently with no prompt
|
|
486
|
+
- A project-recap attempt appears once in a concise Explainer Outcome section
|
|
487
|
+
sourced from its manifest and build record
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-wave-execute
|
|
3
|
-
version: 1.6.
|
|
3
|
+
version: 1.6.2
|
|
4
4
|
description: Use when executing a wave of external implementation plans as a wrapper OAT project — scaffolding, drift refresh, parallel worktree groups, briefs, gates, merge choreography, and closeout.
|
|
5
5
|
argument-hint: '<wave-id> [plan-names...] (e.g. wave-2 http-listener-before-indexing ...)'
|
|
6
6
|
disable-model-invocation: false
|
|
@@ -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;AAEhF,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,iCAAiC,CAAC;AAezC,OAAO,EAML,KAAK,SAAS,EACd,KAAK,cAAc,EAGnB,KAAK,UAAU,EAehB,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;AAC1C,OAAO,EACL,mCAAmC,EACnC,0BAA0B,EAC3B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
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;AAEhF,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,iCAAiC,CAAC;AAezC,OAAO,EAML,KAAK,SAAS,EACd,KAAK,cAAc,EAGnB,KAAK,UAAU,EAehB,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;AAC1C,OAAO,EACL,mCAAmC,EACnC,0BAA0B,EAC3B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmGpC,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,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;AA61ED,wBAAgB,mBAAmB,CACjC,SAAS,GAAE,OAAO,CAAC,yBAAyB,CAAM,GACjD,OAAO,CAsKT"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { readFile as readFileDefault } from 'node:fs/promises';
|
|
2
|
-
import { join } from 'node:path';
|
|
2
|
+
import { isAbsolute, join } from 'node:path';
|
|
3
3
|
import { buildCommandContext } from '../../app/command-context.js';
|
|
4
4
|
import { resolveProjectsRoot } from '../shared/oat-paths.js';
|
|
5
5
|
import { confirmAction, } from '../shared/shared.prompts.js';
|
|
@@ -37,6 +37,14 @@ const KEY_ORDER = [
|
|
|
37
37
|
'documentation.tooling',
|
|
38
38
|
'documentation.config',
|
|
39
39
|
'documentation.requireForProjectCompletion',
|
|
40
|
+
'explainers.defaults.palette',
|
|
41
|
+
'explainers.defaults.visualProfile',
|
|
42
|
+
'explainers.defaults.themeBundlePath',
|
|
43
|
+
'explainers.publish.provider',
|
|
44
|
+
'explainers.publish.s3Uri',
|
|
45
|
+
'explainers.publish.publicBaseUrl',
|
|
46
|
+
'explainers.publish.awsRegion',
|
|
47
|
+
'explainers.publish.awsProfile',
|
|
40
48
|
'git.defaultBranch',
|
|
41
49
|
'projects.root',
|
|
42
50
|
'tools.brainstorm',
|
|
@@ -65,6 +73,8 @@ const KEY_ORDER = [
|
|
|
65
73
|
'workflow.dispatchCeiling.preset',
|
|
66
74
|
'workflow.dispatchCeiling.providers.codex',
|
|
67
75
|
'workflow.dispatchCeiling.providers.claude',
|
|
76
|
+
'workflow.explainers.projectExplainer',
|
|
77
|
+
'workflow.explainers.projectRecap',
|
|
68
78
|
'workflow.gateTimeouts.code',
|
|
69
79
|
'workflow.gateTimeouts.artifact',
|
|
70
80
|
'worktrees.root',
|
|
@@ -312,6 +322,116 @@ const CONFIG_CATALOG = [
|
|
|
312
322
|
owningCommand: 'oat tools install / oat tools update',
|
|
313
323
|
description: 'Whether the workflows tool pack is installed.',
|
|
314
324
|
},
|
|
325
|
+
{
|
|
326
|
+
key: 'explainers.defaults.palette',
|
|
327
|
+
group: 'Explainer Defaults (3-layer: local > shared > user)',
|
|
328
|
+
file: '.oat/config.local.json | .oat/config.json | ~/.oat/config.json',
|
|
329
|
+
scope: 'local, shared, or user',
|
|
330
|
+
type: 'non-empty string',
|
|
331
|
+
defaultValue: 'neutral',
|
|
332
|
+
mutability: 'read/write',
|
|
333
|
+
owningCommand: 'oat config set explainers.defaults.palette <value> [--local|--shared|--user]',
|
|
334
|
+
description: 'Named default color palette for explainer builds.',
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
key: 'explainers.defaults.visualProfile',
|
|
338
|
+
group: 'Explainer Defaults (3-layer: local > shared > user)',
|
|
339
|
+
file: '.oat/config.local.json | .oat/config.json | ~/.oat/config.json',
|
|
340
|
+
scope: 'local, shared, or user',
|
|
341
|
+
type: 'non-empty string',
|
|
342
|
+
defaultValue: 'clean',
|
|
343
|
+
mutability: 'read/write',
|
|
344
|
+
owningCommand: 'oat config set explainers.defaults.visualProfile <value> [--local|--shared|--user]',
|
|
345
|
+
description: 'Named default visual profile for explainer builds.',
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
key: 'explainers.defaults.themeBundlePath',
|
|
349
|
+
group: 'Explainer Defaults (local > shared)',
|
|
350
|
+
file: '.oat/config.local.json | .oat/config.json',
|
|
351
|
+
scope: 'local or shared',
|
|
352
|
+
type: 'path',
|
|
353
|
+
defaultValue: 'unset',
|
|
354
|
+
mutability: 'read/write',
|
|
355
|
+
owningCommand: 'oat config set explainers.defaults.themeBundlePath <path> [--local|--shared]',
|
|
356
|
+
description: 'Theme bundle path; shared values must be repository-relative and local values may be absolute.',
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
key: 'explainers.publish.provider',
|
|
360
|
+
group: 'Explainer Publish (shared)',
|
|
361
|
+
file: '.oat/config.json',
|
|
362
|
+
scope: 'shared repo',
|
|
363
|
+
type: 's3-static',
|
|
364
|
+
defaultValue: 'unset',
|
|
365
|
+
mutability: 'read/write',
|
|
366
|
+
owningCommand: 'oat config set explainers.publish.provider s3-static --shared',
|
|
367
|
+
description: 'Static publishing provider for explainer artifacts.',
|
|
368
|
+
},
|
|
369
|
+
{
|
|
370
|
+
key: 'explainers.publish.s3Uri',
|
|
371
|
+
group: 'Explainer Publish (shared)',
|
|
372
|
+
file: '.oat/config.json',
|
|
373
|
+
scope: 'shared repo',
|
|
374
|
+
type: 's3:// URI',
|
|
375
|
+
defaultValue: 'unset',
|
|
376
|
+
mutability: 'read/write',
|
|
377
|
+
owningCommand: 'oat config set explainers.publish.s3Uri <s3://bucket/prefix> --shared',
|
|
378
|
+
description: 'Shared S3 destination root for explainer publishing.',
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
key: 'explainers.publish.publicBaseUrl',
|
|
382
|
+
group: 'Explainer Publish (shared)',
|
|
383
|
+
file: '.oat/config.json',
|
|
384
|
+
scope: 'shared repo',
|
|
385
|
+
type: 'https:// URL',
|
|
386
|
+
defaultValue: 'unset',
|
|
387
|
+
mutability: 'read/write',
|
|
388
|
+
owningCommand: 'oat config set explainers.publish.publicBaseUrl <https://url> --shared',
|
|
389
|
+
description: 'Shared public URL root for published explainer artifacts.',
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
key: 'explainers.publish.awsRegion',
|
|
393
|
+
group: 'Explainer Publish (shared)',
|
|
394
|
+
file: '.oat/config.json',
|
|
395
|
+
scope: 'shared repo',
|
|
396
|
+
type: 'non-empty string',
|
|
397
|
+
defaultValue: 'unset',
|
|
398
|
+
mutability: 'read/write',
|
|
399
|
+
owningCommand: 'oat config set explainers.publish.awsRegion <region> --shared',
|
|
400
|
+
description: 'AWS region used for explainer publishing.',
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
key: 'explainers.publish.awsProfile',
|
|
404
|
+
group: 'Explainer Publish Credentials (local > user)',
|
|
405
|
+
file: '.oat/config.local.json | ~/.oat/config.json',
|
|
406
|
+
scope: 'local or user',
|
|
407
|
+
type: 'non-empty string',
|
|
408
|
+
defaultValue: 'unset',
|
|
409
|
+
mutability: 'read/write',
|
|
410
|
+
owningCommand: 'oat config set explainers.publish.awsProfile <profile> [--local|--user]',
|
|
411
|
+
description: 'Checkout- or user-specific AWS profile used for explainer publishing.',
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
key: 'workflow.explainers.projectExplainer',
|
|
415
|
+
group: 'Workflow Preferences (3-layer: local > shared > user)',
|
|
416
|
+
file: '.oat/config.local.json | .oat/config.json | ~/.oat/config.json',
|
|
417
|
+
scope: 'workflow',
|
|
418
|
+
type: 'always | ask | never',
|
|
419
|
+
defaultValue: 'ask',
|
|
420
|
+
mutability: 'read/write',
|
|
421
|
+
owningCommand: 'oat config set workflow.explainers.projectExplainer <always|ask|never>',
|
|
422
|
+
description: 'Controls project-explainer lifecycle invocation.',
|
|
423
|
+
},
|
|
424
|
+
{
|
|
425
|
+
key: 'workflow.explainers.projectRecap',
|
|
426
|
+
group: 'Workflow Preferences (3-layer: local > shared > user)',
|
|
427
|
+
file: '.oat/config.local.json | .oat/config.json | ~/.oat/config.json',
|
|
428
|
+
scope: 'workflow',
|
|
429
|
+
type: 'always | ask | never',
|
|
430
|
+
defaultValue: 'ask',
|
|
431
|
+
mutability: 'read/write',
|
|
432
|
+
owningCommand: 'oat config set workflow.explainers.projectRecap <always|ask|never>',
|
|
433
|
+
description: 'Controls project-recap lifecycle invocation.',
|
|
434
|
+
},
|
|
315
435
|
{
|
|
316
436
|
key: 'activeProject',
|
|
317
437
|
group: 'Repo Local (.oat/config.local.json)',
|
|
@@ -709,6 +829,38 @@ function normalizeSharedRoot(value) {
|
|
|
709
829
|
}
|
|
710
830
|
return trimmed.replace(/\/+$/, '');
|
|
711
831
|
}
|
|
832
|
+
function parseExplainerValue(key, rawValue, surface) {
|
|
833
|
+
const value = rawValue.trim();
|
|
834
|
+
if (!value) {
|
|
835
|
+
throw new Error(`Invalid value for ${key}: value cannot be empty.`);
|
|
836
|
+
}
|
|
837
|
+
if (key === 'explainers.defaults.themeBundlePath') {
|
|
838
|
+
if (surface === 'shared' &&
|
|
839
|
+
(isAbsolute(value) || value === '..' || value.startsWith('../'))) {
|
|
840
|
+
throw new Error(`Invalid value for ${key}: shared theme bundle paths must be repository-relative.`);
|
|
841
|
+
}
|
|
842
|
+
return value;
|
|
843
|
+
}
|
|
844
|
+
if (key === 'explainers.publish.provider') {
|
|
845
|
+
if (value !== 's3-static') {
|
|
846
|
+
throw new Error(`Invalid value for ${key}: expected 's3-static', got '${rawValue}'.`);
|
|
847
|
+
}
|
|
848
|
+
return value;
|
|
849
|
+
}
|
|
850
|
+
if (key === 'explainers.publish.s3Uri') {
|
|
851
|
+
if (!/^s3:\/\/[^/\s]+(?:\/.*)?$/.test(value)) {
|
|
852
|
+
throw new Error(`Invalid value for ${key}: expected an s3:// URI, got '${rawValue}'.`);
|
|
853
|
+
}
|
|
854
|
+
return value.replace(/\/+$/, '');
|
|
855
|
+
}
|
|
856
|
+
if (key === 'explainers.publish.publicBaseUrl') {
|
|
857
|
+
if (!/^https:\/\/[^/\s]+(?:\/.*)?$/.test(value)) {
|
|
858
|
+
throw new Error(`Invalid value for ${key}: expected an https:// URL, got '${rawValue}'.`);
|
|
859
|
+
}
|
|
860
|
+
return value.replace(/\/+$/, '');
|
|
861
|
+
}
|
|
862
|
+
return value;
|
|
863
|
+
}
|
|
712
864
|
const WORKFLOW_ENUM_VALUES = {
|
|
713
865
|
'workflow.hillCheckpointDefault': ['every', 'final'],
|
|
714
866
|
'workflow.postImplementSequence': ['wait', 'summary', 'pr', 'docs-pr'],
|
|
@@ -730,6 +882,8 @@ const WORKFLOW_ENUM_VALUES = {
|
|
|
730
882
|
'opus',
|
|
731
883
|
'fable',
|
|
732
884
|
],
|
|
885
|
+
'workflow.explainers.projectExplainer': ['always', 'ask', 'never'],
|
|
886
|
+
'workflow.explainers.projectRecap': ['always', 'ask', 'never'],
|
|
733
887
|
};
|
|
734
888
|
function closedDispatchProviderValues(provider) {
|
|
735
889
|
if (provider === 'codex') {
|
|
@@ -774,6 +928,20 @@ function validateSurfaceForKey(key, surface) {
|
|
|
774
928
|
}
|
|
775
929
|
return;
|
|
776
930
|
}
|
|
931
|
+
if (key.startsWith('explainers.')) {
|
|
932
|
+
const allowed = key === 'explainers.defaults.palette' ||
|
|
933
|
+
key === 'explainers.defaults.visualProfile'
|
|
934
|
+
? ['shared', 'local', 'user']
|
|
935
|
+
: key === 'explainers.defaults.themeBundlePath'
|
|
936
|
+
? ['shared', 'local']
|
|
937
|
+
: key === 'explainers.publish.awsProfile'
|
|
938
|
+
? ['local', 'user']
|
|
939
|
+
: ['shared'];
|
|
940
|
+
if (!allowed.includes(surface)) {
|
|
941
|
+
throw new Error(`Cannot set '${key}' at '${surface}' scope. Allowed scopes: ${allowed.join(', ')}.`);
|
|
942
|
+
}
|
|
943
|
+
return;
|
|
944
|
+
}
|
|
777
945
|
if (isStructuralKey(key)) {
|
|
778
946
|
if (surface !== 'shared') {
|
|
779
947
|
throw new Error(`Cannot set structural key '${key}' at '${surface}' scope. Structural keys (projects.root, worktrees.root, git.*, documentation.*, archive.*, tools.*) can only be set at shared scope (.oat/config.json).`);
|
|
@@ -808,6 +976,12 @@ function defaultSurfaceForKey(key) {
|
|
|
808
976
|
if (key === 'updateNotifications') {
|
|
809
977
|
return 'user';
|
|
810
978
|
}
|
|
979
|
+
if (key === 'explainers.defaults.palette' ||
|
|
980
|
+
key === 'explainers.defaults.visualProfile' ||
|
|
981
|
+
key === 'explainers.defaults.themeBundlePath' ||
|
|
982
|
+
key === 'explainers.publish.awsProfile') {
|
|
983
|
+
return 'local';
|
|
984
|
+
}
|
|
811
985
|
if (isWorkflowKey(key) || isStateKey(key)) {
|
|
812
986
|
return 'local';
|
|
813
987
|
}
|
|
@@ -1082,6 +1256,16 @@ function applyWorkflowValue(workflow, key, value) {
|
|
|
1082
1256
|
},
|
|
1083
1257
|
};
|
|
1084
1258
|
}
|
|
1259
|
+
if (subKey.startsWith('explainers.')) {
|
|
1260
|
+
const explainerKey = subKey.slice('explainers.'.length);
|
|
1261
|
+
return {
|
|
1262
|
+
...workflow,
|
|
1263
|
+
explainers: {
|
|
1264
|
+
...workflow.explainers,
|
|
1265
|
+
[explainerKey]: value,
|
|
1266
|
+
},
|
|
1267
|
+
};
|
|
1268
|
+
}
|
|
1085
1269
|
return {
|
|
1086
1270
|
...workflow,
|
|
1087
1271
|
[subKey]: value,
|
|
@@ -1248,6 +1432,53 @@ async function setConfigValue(repoRoot, userConfigDir, key, rawValue, surface, d
|
|
|
1248
1432
|
source: 'user',
|
|
1249
1433
|
};
|
|
1250
1434
|
}
|
|
1435
|
+
if (key.startsWith('explainers.')) {
|
|
1436
|
+
const nextValue = parseExplainerValue(key, rawValue, effectiveSurface);
|
|
1437
|
+
const section = key.startsWith('explainers.defaults.')
|
|
1438
|
+
? 'defaults'
|
|
1439
|
+
: 'publish';
|
|
1440
|
+
const field = key.slice(`explainers.${section}.`.length);
|
|
1441
|
+
if (effectiveSurface === 'user') {
|
|
1442
|
+
const userConfig = await dependencies.readUserConfig(userConfigDir);
|
|
1443
|
+
await dependencies.writeUserConfig(userConfigDir, {
|
|
1444
|
+
...userConfig,
|
|
1445
|
+
explainers: {
|
|
1446
|
+
...userConfig.explainers,
|
|
1447
|
+
[section]: {
|
|
1448
|
+
...userConfig.explainers?.[section],
|
|
1449
|
+
[field]: nextValue,
|
|
1450
|
+
},
|
|
1451
|
+
},
|
|
1452
|
+
});
|
|
1453
|
+
return { key, value: nextValue, source: 'user' };
|
|
1454
|
+
}
|
|
1455
|
+
if (effectiveSurface === 'local') {
|
|
1456
|
+
const localConfig = await dependencies.readOatLocalConfig(repoRoot);
|
|
1457
|
+
await dependencies.writeOatLocalConfig(repoRoot, {
|
|
1458
|
+
...localConfig,
|
|
1459
|
+
explainers: {
|
|
1460
|
+
...localConfig.explainers,
|
|
1461
|
+
[section]: {
|
|
1462
|
+
...localConfig.explainers?.[section],
|
|
1463
|
+
[field]: nextValue,
|
|
1464
|
+
},
|
|
1465
|
+
},
|
|
1466
|
+
});
|
|
1467
|
+
return { key, value: nextValue, source: 'local' };
|
|
1468
|
+
}
|
|
1469
|
+
const sharedConfig = await dependencies.readOatConfig(repoRoot);
|
|
1470
|
+
await dependencies.writeOatConfig(repoRoot, {
|
|
1471
|
+
...sharedConfig,
|
|
1472
|
+
explainers: {
|
|
1473
|
+
...sharedConfig.explainers,
|
|
1474
|
+
[section]: {
|
|
1475
|
+
...sharedConfig.explainers?.[section],
|
|
1476
|
+
[field]: nextValue,
|
|
1477
|
+
},
|
|
1478
|
+
},
|
|
1479
|
+
});
|
|
1480
|
+
return { key, value: nextValue, source: 'shared' };
|
|
1481
|
+
}
|
|
1251
1482
|
const config = await dependencies.readOatConfig(repoRoot);
|
|
1252
1483
|
if (key.startsWith('documentation.')) {
|
|
1253
1484
|
const doc = { ...config.documentation };
|
|
@@ -11,7 +11,7 @@ export interface PackMetadata {
|
|
|
11
11
|
}
|
|
12
12
|
export declare const PACK_METADATA: Record<string, PackMetadata>;
|
|
13
13
|
export declare function resolvePackDefaultScope(packName: string): 'user' | 'project';
|
|
14
|
-
export declare const WORKFLOW_SKILLS: readonly ["oat-cursor-cloud-projects", "oat-project-autonomous", "oat-project-capture", "oat-project-clear-active", "oat-project-complete", "oat-project-design", "oat-project-dispatch-subagents", "oat-project-discover", "oat-project-document", "oat-project-implement", "oat-project-import-plan", "oat-project-new", "oat-project-next", "oat-project-open", "oat-project-plan", "oat-project-plan-writing", "oat-project-pr-final", "oat-project-pr-progress", "oat-project-progress", "oat-project-promote-spec-driven", "oat-project-quick-start", "oat-project-reconcile", "oat-project-revise", "oat-project-review-provide", "oat-project-review-provide-remote", "oat-project-review-receive", "oat-project-review-receive-remote", "oat-project-spec", "oat-project-split", "oat-project-summary", "oat-repo-knowledge-index", "oat-worktree-bootstrap", "oat-worktree-bootstrap-auto", "oat-wave-execute", "oat-wave-program", "oat-wrap-up"];
|
|
14
|
+
export declare const WORKFLOW_SKILLS: readonly ["oat-cursor-cloud-projects", "oat-explainer-kit", "oat-project-autonomous", "oat-project-capture", "oat-project-clear-active", "oat-project-complete", "oat-project-design", "oat-project-dispatch-subagents", "oat-project-discover", "oat-project-document", "oat-project-implement", "oat-project-import-plan", "oat-project-new", "oat-project-next", "oat-project-open", "oat-project-plan", "oat-project-plan-writing", "oat-project-pr-final", "oat-project-pr-progress", "oat-project-progress", "oat-project-promote-spec-driven", "oat-project-quick-start", "oat-project-reconcile", "oat-project-revise", "oat-project-review-provide", "oat-project-review-provide-remote", "oat-project-review-receive", "oat-project-review-receive-remote", "oat-project-spec", "oat-project-split", "oat-project-summary", "oat-repo-knowledge-index", "oat-worktree-bootstrap", "oat-worktree-bootstrap-auto", "oat-wave-execute", "oat-wave-program", "oat-wrap-up"];
|
|
15
15
|
export declare const WORKFLOW_AGENTS: readonly ["oat-codebase-mapper.md", "oat-phase-implementer.md", "oat-reviewer.md"];
|
|
16
16
|
export declare const WORKFLOW_TEMPLATES: readonly ["state.md", "discovery.md", "spec.md", "design.md", "plan.md", "implementation.md", "summary.md", "project-log.md"];
|
|
17
17
|
export declare const WORKFLOW_SCRIPTS: readonly ["generate-oat-state.sh", "generate-thin-index.sh", "resolve-tracking.sh"];
|
|
@@ -19,7 +19,7 @@ export declare const IDEA_SKILLS: readonly ["oat-idea-new", "oat-idea-ideate", "
|
|
|
19
19
|
export declare const CORE_SKILLS: readonly ["oat-docs", "oat-doctor"];
|
|
20
20
|
export declare const DOCS_SKILLS: readonly ["authoring-docs", "oat-agent-instructions-analyze", "oat-agent-instructions-apply", "oat-docs-analyze", "oat-docs-apply", "oat-docs-authoring", "oat-docs-bootstrap"];
|
|
21
21
|
export declare const DOCS_SCRIPTS: readonly ["resolve-tracking.sh"];
|
|
22
|
-
export declare const UTILITY_SKILLS: readonly ["create-agnostic-skill", "oat-dispatch-subagents", "oat-repo-improve", "oat-repo-maintainability-review", "oat-review-provide", "oat-review-provide-remote", "oat-review-receive", "oat-review-receive-remote"];
|
|
22
|
+
export declare const UTILITY_SKILLS: readonly ["create-agnostic-skill", "explainer-kit", "oat-dispatch-subagents", "oat-repo-improve", "oat-repo-maintainability-review", "oat-review-provide", "oat-review-provide-remote", "oat-review-receive", "oat-review-receive-remote"];
|
|
23
23
|
export declare const PROJECT_MANAGEMENT_SKILLS: readonly ["oat-pjm-add-backlog-item", "oat-pjm-decision", "oat-pjm-update-repo-reference", "oat-pjm-review-backlog"];
|
|
24
24
|
export declare const PROJECT_MANAGEMENT_TEMPLATES: readonly ["backlog-item.md", "roadmap.md", "current-state.md", "decision.md", "repo-agents.md", "pjm-agents.md", "reference-agents.md"];
|
|
25
25
|
export declare const PROJECT_MANAGEMENT_SCRIPTS: readonly [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-manifest.d.ts","sourceRoot":"","sources":["../../../../../src/commands/init/tools/shared/skill-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAKtD,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE5E;AAID,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"skill-manifest.d.ts","sourceRoot":"","sources":["../../../../../src/commands/init/tools/shared/skill-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAKtD,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE5E;AAID,eAAO,MAAM,eAAe,m7BAsClB,CAAC;AAEX,eAAO,MAAM,eAAe,oFAIlB,CAAC;AAEX,eAAO,MAAM,kBAAkB,+HASrB,CAAC;AAEX,eAAO,MAAM,gBAAgB,qFAInB,CAAC;AAIX,eAAO,MAAM,WAAW,2FAKd,CAAC;AAIX,eAAO,MAAM,WAAW,qCAAsC,CAAC;AAI/D,eAAO,MAAM,WAAW,iLAQd,CAAC;AAEX,eAAO,MAAM,YAAY,kCAAmC,CAAC;AAI7D,eAAO,MAAM,cAAc,4OAUjB,CAAC;AAIX,eAAO,MAAM,yBAAyB,sHAK5B,CAAC;AAEX,eAAO,MAAM,4BAA4B,yIAQ/B,CAAC;AAEX,eAAO,MAAM,0BAA0B,aAAc,CAAC;AAItD,eAAO,MAAM,iBAAiB,6BAA8B,CAAC;AAI7D,eAAO,MAAM,eAAe,2EAMlB,CAAC;AAEX,eAAO,MAAM,eAAe,qCAAsC,CAAC"}
|
|
@@ -17,6 +17,7 @@ export function resolvePackDefaultScope(packName) {
|
|
|
17
17
|
// ── Workflow pack ──────────────────────────────────────────────────
|
|
18
18
|
export const WORKFLOW_SKILLS = [
|
|
19
19
|
'oat-cursor-cloud-projects',
|
|
20
|
+
'oat-explainer-kit',
|
|
20
21
|
'oat-project-autonomous',
|
|
21
22
|
'oat-project-capture',
|
|
22
23
|
'oat-project-clear-active',
|
|
@@ -96,6 +97,7 @@ export const DOCS_SCRIPTS = ['resolve-tracking.sh'];
|
|
|
96
97
|
// ── Utility pack ───────────────────────────────────────────────────
|
|
97
98
|
export const UTILITY_SKILLS = [
|
|
98
99
|
'create-agnostic-skill',
|
|
100
|
+
'explainer-kit',
|
|
99
101
|
'oat-dispatch-subagents',
|
|
100
102
|
'oat-repo-improve',
|
|
101
103
|
'oat-repo-maintainability-review',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { rename } from 'node:fs/promises';
|
|
1
2
|
import { copyDirectory, copySingleFile, dirExists, ensureDir, fileExists } from '../../../fs/io.js';
|
|
2
3
|
export type ExecFileResult = {
|
|
3
4
|
stdout: string;
|
|
@@ -42,6 +43,7 @@ export interface ArchiveProjectOnCompletionOptions {
|
|
|
42
43
|
s3Uri?: string | null;
|
|
43
44
|
s3SyncOnComplete: boolean;
|
|
44
45
|
summaryExportPath?: string | null;
|
|
46
|
+
projectRecapRun?: string | null;
|
|
45
47
|
/**
|
|
46
48
|
* Config-only AWS profile (`archive.awsProfile`). The completion path has no
|
|
47
49
|
* flag override. When non-empty, this value clobbers any parent-env
|
|
@@ -88,12 +90,22 @@ interface ArchiveProjectOnCompletionDependencies extends EnsureS3ArchiveAccessDe
|
|
|
88
90
|
}) => Promise<void>;
|
|
89
91
|
copySingleFile?: typeof copySingleFile;
|
|
90
92
|
fileExists?: typeof fileExists;
|
|
93
|
+
renamePath?: typeof rename;
|
|
91
94
|
timestamp?: () => string;
|
|
92
95
|
}
|
|
96
|
+
export interface ArchiveProjectRecapExportV1 {
|
|
97
|
+
sourceRunRoot: string;
|
|
98
|
+
exportRoot: string;
|
|
99
|
+
manifest: {
|
|
100
|
+
relativePath: 'manifest.json';
|
|
101
|
+
verifiedArtifactCount: number;
|
|
102
|
+
};
|
|
103
|
+
}
|
|
93
104
|
export interface ArchiveProjectOnCompletionResult {
|
|
94
105
|
archivePath: string;
|
|
95
106
|
s3Path: string | null;
|
|
96
107
|
summaryExportFile: string | null;
|
|
108
|
+
projectRecapExport: ArchiveProjectRecapExportV1 | null;
|
|
97
109
|
warnings: string[];
|
|
98
110
|
}
|
|
99
111
|
export declare const ARCHIVE_SNAPSHOT_METADATA_FILENAME = ".oat-archive-source.json";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive-utils.d.ts","sourceRoot":"","sources":["../../../../src/commands/project/archive/archive-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"archive-utils.d.ts","sourceRoot":"","sources":["../../../../src/commands/project/archive/archive-utils.ts"],"names":[],"mappings":"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"}
|