@open-agent-toolkit/cli 0.3.17 → 0.3.19
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 +81 -3
- package/assets/agents/oat-reviewer.md +15 -5
- package/assets/bundle-metadata.json +1 -1
- package/assets/docs/reference/cli-reference.md +8 -5
- package/assets/docs/reference/oat-directory-structure.md +1 -0
- package/assets/docs/reference/project-artifacts.md +17 -1
- package/assets/docs/reference/project-state-machine.md +19 -4
- package/assets/docs/skills/brainstorm.md +2 -1
- package/assets/docs/skills/index.md +1 -0
- package/assets/docs/workflows/advanced/autonomy.md +9 -1
- package/assets/docs/workflows/advanced/workflow-gates.md +11 -6
- package/assets/docs/workflows/approvals-and-automation.md +13 -8
- package/assets/docs/workflows/choose-workflow.md +16 -8
- package/assets/docs/workflows/projects/closeout/closeout-skills.md +8 -3
- package/assets/docs/workflows/projects/closeout/pr-flow.md +2 -0
- package/assets/docs/workflows/projects/execution/execution-skills.md +14 -2
- package/assets/docs/workflows/projects/execution/implementation-execution.md +15 -0
- package/assets/docs/workflows/projects/execution/picking-up-projects.md +10 -1
- package/assets/docs/workflows/projects/execution/project-log.md +22 -0
- package/assets/docs/workflows/projects/lifecycle.md +73 -9
- package/assets/docs/workflows/projects/planning/hill-checkpoints.md +18 -1
- package/assets/docs/workflows/projects/planning/planning-skills.md +11 -10
- package/assets/docs/workflows/projects/planning/starting-projects.md +92 -20
- package/assets/docs/workflows/projects/reviews/index.md +15 -2
- package/assets/docs/workflows/projects/reviews/review-flavors.md +5 -3
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-brainstorm/SKILL.md +33 -9
- package/assets/skills/oat-brainstorm/references/destinations.md +9 -4
- package/assets/skills/oat-docs/SKILL.md +9 -4
- package/assets/skills/oat-pjm-review-backlog/SKILL.md +2 -2
- package/assets/skills/oat-project-autonomous/SKILL.md +14 -8
- package/assets/skills/oat-project-autonomous/references/gate-inventory.md +17 -2
- package/assets/skills/oat-project-brief/SKILL.md +592 -0
- package/assets/skills/oat-project-brief/references/brief-contract.md +294 -0
- package/assets/skills/oat-project-brief/references/docs/autonomy-contract.md +393 -0
- package/assets/skills/oat-project-brief/references/docs/gate-approval-record.md +84 -0
- package/assets/skills/oat-project-capture/SKILL.md +2 -2
- package/assets/skills/oat-project-complete/SKILL.md +7 -2
- package/assets/skills/oat-project-discover/SKILL.md +3 -2
- package/assets/skills/oat-project-dispatch-subagents/SKILL.md +9 -1
- package/assets/skills/oat-project-document/SKILL.md +11 -1
- package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +17 -2
- package/assets/skills/oat-project-implement/SKILL.md +1 -1
- package/assets/skills/oat-project-implement/references/completion-and-closeout.md +40 -0
- package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +17 -2
- package/assets/skills/oat-project-implement/references/docs/gate-approval-record.md +4 -0
- package/assets/skills/oat-project-implement/references/phase-execution.md +166 -1
- package/assets/skills/oat-project-implement/references/plan-and-resume.md +97 -3
- package/assets/skills/oat-project-import-plan/SKILL.md +5 -1
- package/assets/skills/oat-project-lite/SKILL.md +4 -1
- package/assets/skills/oat-project-lite/references/docs/autonomy-contract.md +17 -2
- package/assets/skills/oat-project-new/SKILL.md +5 -1
- package/assets/skills/oat-project-next/SKILL.md +31 -4
- package/assets/skills/oat-project-next/references/docs/gate-approval-record.md +4 -0
- package/assets/skills/oat-project-plan/SKILL.md +12 -2
- package/assets/skills/oat-project-plan-writing/SKILL.md +6 -4
- package/assets/skills/oat-project-pr-final/SKILL.md +15 -3
- package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +17 -2
- package/assets/skills/oat-project-pr-progress/SKILL.md +31 -4
- package/assets/skills/oat-project-progress/SKILL.md +30 -8
- package/assets/skills/oat-project-progress/references/docs/gate-approval-record.md +4 -0
- package/assets/skills/oat-project-promote-spec-driven/SKILL.md +2 -2
- package/assets/skills/oat-project-quick-start/SKILL.md +60 -1
- package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +17 -2
- package/assets/skills/oat-project-quick-start/references/docs/gate-approval-record.md +4 -0
- package/assets/skills/oat-project-reconcile/SKILL.md +65 -3
- package/assets/skills/oat-project-review-provide/SKILL.md +331 -12
- package/assets/skills/oat-project-review-receive/SKILL.md +86 -1
- package/assets/skills/oat-project-revise/SKILL.md +27 -4
- package/assets/skills/oat-project-summary/SKILL.md +95 -2
- package/assets/skills/oat-wave-execute/SKILL.md +3 -2
- package/assets/templates/implementation-brief.md +165 -0
- package/assets/templates/plan-brief.md +140 -0
- package/assets/templates/plan.md +1 -1
- package/assets/templates/state.md +8 -2
- package/dist/commands/init/tools/shared/skill-script-references.d.ts.map +1 -1
- package/dist/commands/init/tools/shared/skill-script-references.js +8 -1
- package/dist/commands/project/log/append.d.ts.map +1 -1
- package/dist/commands/project/log/append.js +70 -10
- package/dist/commands/project/new/scaffold.d.ts +1 -1
- package/dist/commands/project/new/scaffold.d.ts.map +1 -1
- package/dist/commands/project/new/scaffold.js +35 -7
- package/dist/commands/project/promote/promote.d.ts +32 -1
- package/dist/commands/project/promote/promote.d.ts.map +1 -1
- package/dist/commands/project/promote/promote.js +562 -5
- package/dist/commands/project/validate-plan/frontmatter.d.ts +12 -0
- package/dist/commands/project/validate-plan/frontmatter.d.ts.map +1 -0
- package/dist/commands/project/validate-plan/frontmatter.js +27 -0
- package/dist/commands/project/validate-plan/index.d.ts.map +1 -1
- package/dist/commands/project/validate-plan/index.js +52 -18
- package/dist/commands/project/validate-plan/profiles.d.ts +54 -0
- package/dist/commands/project/validate-plan/profiles.d.ts.map +1 -0
- package/dist/commands/project/validate-plan/profiles.js +269 -0
- package/dist/commands/project/validate-plan/validate-plan.d.ts +3 -19
- package/dist/commands/project/validate-plan/validate-plan.d.ts.map +1 -1
- package/dist/commands/project/validate-plan/validate-plan.js +5 -82
- package/dist/commands/shared/agents-md-lock.d.ts +3 -0
- package/dist/commands/shared/agents-md-lock.d.ts.map +1 -0
- package/dist/commands/shared/agents-md-lock.js +130 -0
- package/dist/commands/shared/agents-md.d.ts.map +1 -1
- package/dist/commands/shared/agents-md.js +26 -8
- package/dist/commands/shared/frontmatter.d.ts +1 -1
- package/dist/commands/shared/frontmatter.d.ts.map +1 -1
- package/dist/commands/shared/frontmatter.js +1 -0
- package/dist/commands/state/generate.d.ts.map +1 -1
- package/dist/commands/state/generate.js +51 -2
- package/dist/commands/tools/shared/pack-manifest.d.ts.map +1 -1
- package/dist/commands/tools/shared/pack-manifest.js +3 -0
- package/package.json +2 -2
|
@@ -165,6 +165,17 @@ remains.
|
|
|
165
165
|
| LITE-08 | `oat-project-lite` | Plan artifact-review findings | Accept offered Medium/Low fixes | Apply only unambiguous canonicalization fixes; never rewrite source intent; unresolved Critical or ambiguity stops | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row and lite disposition |
|
|
166
166
|
| LITE-09 | `oat-project-lite` | Configured exit gate | `block`, `prompt`, or `warn` after failure | Apply the configured failure semantics; `prompt` becomes a reported boundary | `auto-resolve` / `boundary:repository-policy-approval` | Structured gate result and disposition |
|
|
167
167
|
| LITE-10 | `oat-project-lite` | Configured lifecycle gate posture | Keep or disable each configured lifecycle gate | Preserve an existing override map; otherwise preserve configured gates and write no override in non-interactive planning | `auto-resolve` / `boundary:repository-policy-approval` | `state.md` override map or recorded non-interactive preservation |
|
|
168
|
+
| BRIEF-01 | `oat-project-brief` | Inherited dirty tree | Commit, proceed, or abort | Proceed without staging unrelated files; a required destructive cleanup stops | `auto-resolve` / `boundary:destructive-change-risk` | Brief preflight note |
|
|
169
|
+
| BRIEF-02 | `oat-project-brief` | Missing name or description | Ask for required startup input | Derive a slug from the explicit goal and use the goal as the description; stop if the goal is not substantive | `auto-resolve` / `boundary:product-judgment` | Brief Goal and project path |
|
|
170
|
+
| BRIEF-03 | `oat-project-brief` | Alignment interview | Ask readiness rounds until the user accepts the design | Settle facts from repository evidence, adopt the supported recommendation for each decision, and record it; material product or design ambiguity stops | `auto-resolve` / `boundary:product-judgment` | `plan.md` Approach, Decisions, and Known Unknowns |
|
|
171
|
+
| BRIEF-04 | `oat-project-brief` | Workflow fit | Continue brief, promote to quick, or split the work | Apply the documented content heuristic; when an implementation-affecting design question cannot be settled from evidence, promote through `oat project promote --to quick` only after the Step 3 brief is validated and committed, and before that abandon the scaffold and start `oat-project-quick-start`; several independent deliveries stop; otherwise record why brief fits | `auto-resolve` / `boundary:product-judgment` | `plan.md` Decisions and promotion result |
|
|
172
|
+
| BRIEF-05 | `oat-project-brief` | Dispatch-ladder scope | Choose shared, local, user, or no adoption | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
|
|
173
|
+
| BRIEF-06 | `oat-project-brief` | Project dispatch policy | Choose a named ceiling, uncapped, inherit, or unresolved | Preserve an explicit/configured value; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
|
|
174
|
+
| BRIEF-07 | `oat-project-brief` | Optional phase-gate setup | Choose all, selected, or disabled | Use the shared non-interactive contract: leave absent and disabled unless an explicit value already exists | `auto-resolve` | Phase-gate setup status |
|
|
175
|
+
| BRIEF-08 | `oat-project-brief` | Configured lifecycle gate posture | Keep or disable each configured lifecycle gate | Preserve an existing override map; otherwise preserve configured gates and write no override in non-interactive planning | `auto-resolve` / `boundary:repository-policy-approval` | `state.md` override map or recorded non-interactive preservation |
|
|
176
|
+
| BRIEF-09 | `oat-project-brief` | Brief artifact-review findings | Fold minor fixes; take material findings to the user | Apply only unambiguous artifact-local fixes and re-review; never rewrite agreed intent; unresolved Critical findings or material ambiguity stop | `auto-resolve` / `boundary:unresolved-critical-findings` | Brief review row and residual-finding disposition |
|
|
177
|
+
| BRIEF-10 | `oat-project-brief` | Configured exit gate | `block`, `prompt`, or `warn` after failure | Apply the configured failure semantics; `prompt` becomes a reported boundary; persist the outcome as `oat_brief_gate` | `auto-resolve` / `boundary:repository-policy-approval` | Structured gate result and disposition, and `oat_brief_gate` |
|
|
178
|
+
| BRIEF-11 | `oat-project-brief` | Brief approval | Approve, revise, or promote | Approve the reviewed brief and record the approval line; contradictory or materially incomplete outcomes stop | `auto-resolve` / `boundary:product-judgment` | Approval line in `plan.md` |
|
|
168
179
|
| DISC-01 | `oat-project-discover` | Active-project confirmation or switch | Confirm the active project or choose another | Use only an explicitly supplied or valid active project; otherwise stop without guessing | `boundary:product-judgment` | Resolved project path |
|
|
169
180
|
| DISC-02 | `oat-project-discover` | Stale knowledge | Continue or refresh | Refresh through the canonical knowledge workflow when available; otherwise record staleness and continue only when it does not create material ambiguity | `auto-resolve` / `boundary:product-judgment` | Discovery evidence note |
|
|
170
181
|
| DISC-03 | `oat-project-discover` | Gray areas and clarifying questions | Select areas and answer questions | Select risk-relevant areas from evidence and record supported answers/assumptions; material ambiguity stops | `auto-resolve` / `boundary:product-judgment` | `discovery.md` Q&A and assumptions |
|
|
@@ -269,7 +280,7 @@ assertions, vendored copies, and other unreachable occurrences to `NG`. Add a
|
|
|
269
280
|
new inventory row when no existing gate ID describes the behavior.
|
|
270
281
|
|
|
271
282
|
`packages/cli/src/validation/autonomy-gate-inventory.test.ts` is the CI
|
|
272
|
-
backstop. It derives the
|
|
283
|
+
backstop. It derives the seventeen scan roots from the inventory, scans Markdown
|
|
273
284
|
recursively, and matches each site by file plus a stable semantic key derived
|
|
274
285
|
from its normalized heading and text, never by line number. Its failure output
|
|
275
286
|
provides the key to add or replace. The committed line-number comparison below
|
|
@@ -301,7 +312,7 @@ remains immutable baseline evidence for the original p01-t01 verification.
|
|
|
301
312
|
| `oat-project-pr-final/SKILL.md` | `601ac2b890f2 -> NG`; `c264a64398f0 -> NG`; `9efcbcee42ea -> NG`; `655d61df0a8f -> NG`; `cf317c17c586 -> PRFINAL-01`; `2de348a391c0 -> PRFINAL-03` |
|
|
302
313
|
| `oat-project-pr-final/references/docs/autonomy-contract.md` | `* -> NG` |
|
|
303
314
|
| `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` |
|
|
304
|
-
| `oat-project-review-provide/SKILL.md` | `1f4b981cac8b -> NG`; `adaeca152bb2 -> NG`; `2f7c201c3c06 -> NG`; `88f79700afdc -> NG`; `655d61df0a8f -> NG`; `efafde9ef5a0 -> NG`; `d2a3861d6323 -> REVIEWPROVIDE-02`; `65f5b9cf49cd -> REVIEWPROVIDE-04`; `962cb38d246a -> REVIEWPROVIDE-04`; `1a568483ba0b -> REVIEWPROVIDE-04`; `610e27edfe85 -> REVIEWPROVIDE-04`; `bb0096e95c47 -> REVIEWPROVIDE-06`; `55f6357a987d -> REVIEWPROVIDE-06`; `1bee61f8531c -> REVIEWPROVIDE-07`; `3d35091607a1 -> REVIEWPROVIDE-08`; `fb40c4341c4c -> NG`; `b22d16885150 -> NG`; `d2b25906242e -> REVIEWPROVIDE-08`; `fd8ebf72b3c4 -> NG`; `79c8103e8656 -> NG`; `4fbd78337e33 -> NG`; `c3d50ea7cf69 -> NG`; `09b1b8dd445c -> NG`; `7acc8f3718d2 -> REVIEWPROVIDE-09`; `b2fa883fc4a2 -> NG`; `fe4421531b4c -> NG`
|
|
315
|
+
| `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`; `e3c08ecdab17 -> REVIEWPROVIDE-06`; `1bee61f8531c -> REVIEWPROVIDE-07`; `3d35091607a1 -> REVIEWPROVIDE-08`; `fb40c4341c4c -> NG`; `b22d16885150 -> NG`; `d2b25906242e -> REVIEWPROVIDE-08`; `fd8ebf72b3c4 -> NG`; `79c8103e8656 -> NG`; `4fbd78337e33 -> NG`; `c3d50ea7cf69 -> NG`; `09b1b8dd445c -> NG`; `7acc8f3718d2 -> REVIEWPROVIDE-09`; `b2fa883fc4a2 -> NG`; `fe4421531b4c -> NG` |
|
|
305
316
|
| `oat-project-review-receive/SKILL.md` | `9b8a3743d626 -> NG`; `49ed2780983b -> NG`; `4ee8730382d3 -> NG`; `655d61df0a8f -> NG`; `765f897d67ac -> NG`; `53b58d16dd32 -> NG`; `fb8755a3bdf4 -> NG`; `1d710fb4cc66 -> NG`; `1f7dd98dff2f -> NG`; `56f78c6740e6 -> NG`; `76f5fb5a88cd -> NG`; `085abfa3599f -> REVIEWRECEIVE-01`; `92578f7df686 -> NG`; `a7d114059bb6 -> NG`; `ac88cfaa83d9 -> NG`; `594bbf70346c -> REVIEWRECEIVE-08`; `f31f07284718 -> REVIEWRECEIVE-02`; `e4c0625439f8 -> REVIEWRECEIVE-04`; `505ad8389c0a -> REVIEWRECEIVE-05`; `20e05e1a4381 -> REVIEWRECEIVE-06`; `e30e06f39281 -> REVIEWRECEIVE-07`; `f8fd58180ecf -> NG`; `c3abcdc02d9f -> NG`; `f2ebdd6abb9b -> NG` |
|
|
306
317
|
| `oat-project-review-provide/SKILL.md` | `2e794bf4fc4a -> REVIEWPROVIDE-08`; `5441ab977b46 -> REVIEWPROVIDE-08` |
|
|
307
318
|
| `oat-project-review-provide/SKILL.md` | `f4238ebb1887 -> NG`; `0360fa2db9a5 -> NG` |
|
|
@@ -317,6 +328,10 @@ remains immutable baseline evidence for the original p01-t01 verification.
|
|
|
317
328
|
| `oat-project-plan/SKILL.md` | `f99e44b39932 -> PLAN-12`; `7e6a9854504b -> NG` |
|
|
318
329
|
| `oat-project-complete/SKILL.md` | `0177956707aa -> NG`; `1234c29d1999 -> NG`; `3c0b26f0ff1c -> NG`; `8cc1fa5aab1e -> COMPLETE-01`; `4c209fbb4716 -> COMPLETE-01`; `02e4175e1171 -> COMPLETE-01`; `d698d4f98e76 -> COMPLETE-01`; `9f86a7218d93 -> COMPLETE-01`; `024713698d9a -> COMPLETE-01`; `c327995053fa -> COMPLETE-01`; `61f81d4ec7c1 -> COMPLETE-01`; `14fb2e56809f -> COMPLETE-01`; `7d4ff668744d -> COMPLETE-01`; `502a6c141784 -> COMPLETE-01`; `fb7e2db356af -> COMPLETE-01`; `f73f8476360a -> NG`; `1e15f420039f -> NG`; `cc234032ddd7 -> NG`; `1dd54687229b -> NG`; `fc05c8303cd2 -> NG`; `24be721d635e -> NG` |
|
|
319
330
|
| `oat-project-lite/references/docs/autonomy-contract.md` | `* -> NG` |
|
|
331
|
+
| `oat-project-brief/references/docs/autonomy-contract.md` | `* -> NG` |
|
|
332
|
+
| `oat-project-brief/references/docs/gate-approval-record.md` | `* -> NG` |
|
|
333
|
+
| `oat-project-brief/SKILL.md` | `3d101cb200b3 -> NG`; `494f08a25a22 -> NG`; `ae6d9bdd3cc0 -> NG`; `beeb946393dc -> NG`; `83b5e9396197 -> NG`; `709dd744d813 -> NG`; `4e1222d879f2 -> BRIEF-03`; `a9dd42731b88 -> BRIEF-04`; `7bff55da6726 -> NG`; `c5fb9ce4b27d -> NG`; `e2e809154403 -> BRIEF-10`; `93d6f62c5dac -> BRIEF-10`; `92da21e87ab4 -> NG`; `304c39a13de5 -> BRIEF-10`; `06490315c2f9 -> BRIEF-10`; `0b85a5738ca5 -> BRIEF-11`; `f34dfb297a83 -> NG`; `06179c668e16 -> BRIEF-11`; `5ef3a708eed9 -> BRIEF-11`; `1c798da87f49 -> BRIEF-11`; `f73421b4937f -> NG`; `6e3e97f9cbcf -> NG`; `9b3abe616c5d -> BRIEF-08` |
|
|
334
|
+
| `oat-project-brief/references/brief-contract.md` | `5359cae29ca8 -> NG`; `b417d06e35b4 -> BRIEF-03`; `964e9fc49596 -> NG`; `02270b5b835d -> BRIEF-11`; `e1cb9cbbd308 -> NG` |
|
|
320
335
|
| `oat-project-implement/references/completion-and-closeout.md` | `87f1424a8692 -> NG`; `6b1ec05182f0 -> IMPLEMENT-11`; `e6d696a27c91 -> NG`; `c77f8ccb52ad -> NG`; `48de2614c0ba -> IMPLEMENT-11`; `32d53f5212e5 -> IMPLEMENT-11`; `7cdb4a9c57b7 -> IMPLEMENT-11`; `16ffc0aa099b -> IMPLEMENT-11`; `d6868ea10b3f -> IMPLEMENT-11`; `4f05ff5567be -> IMPLEMENT-11`; `c70b47ae7a6d -> IMPLEMENT-11`; `5fafd093b58e -> NG`; `21ceaf7e658a -> NG`; `249427a9f475 -> NG`; `8a7ec13a9b7c -> NG`; `9aeb7fce2012 -> IMPLEMENT-18`; `f11a7cdda220 -> IMPLEMENT-18`; `4523ac029152 -> NG`; `6e87b08c4046 -> NG`; `baa6052c7f0a -> IMPLEMENT-18`; `27d3fad116b1 -> IMPLEMENT-18`; `2cfbeb4388a5 -> IMPLEMENT-18`; `c56ea56a56db -> NG`; `43e2e3c1380d -> IMPLEMENT-17`; `b49690277fb5 -> NG`; `df12304d6a36 -> NG`; `52eacac11fef -> IMPLEMENT-17`; `60092df6b17b -> IMPLEMENT-17`; `361872c6b00e -> IMPLEMENT-17`; `d2bc711a75fb -> IMPLEMENT-17` |
|
|
321
336
|
| `oat-project-quick-start/SKILL.md` | `aa560418765a -> QS-13`; `40ddcac880ef -> NG` |
|
|
322
337
|
| `oat-project-plan/SKILL.md` | `2b32bc5e9fea -> NG`; `58cc6b0adf97 -> PLAN-13`; `9fba3b40b522 -> NG` |
|
|
@@ -5,7 +5,7 @@ disable-model-invocation: true
|
|
|
5
5
|
user-invocable: true
|
|
6
6
|
allowed-tools: Read, Write, Bash(awk:*), Bash(gh:*), Bash(git:*), Bash(mktemp:*), Bash(oat:*), Bash(rm:*), Glob, Grep, AskUserQuestion
|
|
7
7
|
metadata:
|
|
8
|
-
version: 1.3.
|
|
8
|
+
version: 1.3.3
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# Progress PR
|
|
@@ -16,7 +16,7 @@ Create a progress PR description (typically at a plan phase boundary) and write
|
|
|
16
16
|
|
|
17
17
|
Generate a PR-ready summary that is:
|
|
18
18
|
|
|
19
|
-
- grounded in OAT artifacts (mode-aware: spec-driven uses spec/design; quick/import may use discovery/import reference; lite uses the five plan.md contract sections)
|
|
19
|
+
- grounded in OAT artifacts (mode-aware: spec-driven uses spec/design; quick/import may use discovery/import reference; lite uses the five plan.md contract sections; brief uses the Project Brief's Outcomes and each phase's Intent and Exit evidence)
|
|
20
20
|
- scoped to a specific phase (pNN) or an explicit git range
|
|
21
21
|
- easy to paste into GitHub (or used with `gh pr create` if desired)
|
|
22
22
|
|
|
@@ -141,7 +141,7 @@ If scope is `pNN`, gather commits via commit convention grep:
|
|
|
141
141
|
|
|
142
142
|
```bash
|
|
143
143
|
PHASE="p02" # example
|
|
144
|
-
git log --oneline --grep="
|
|
144
|
+
git log --oneline --fixed-strings --grep="(${PHASE}-" --max-count=500
|
|
145
145
|
```
|
|
146
146
|
|
|
147
147
|
If the grep returns no commits:
|
|
@@ -155,6 +155,26 @@ If scope is `range`/`base_sha`, set:
|
|
|
155
155
|
|
|
156
156
|
- `SCOPE_RANGE` to the range string (e.g., `abc..HEAD`)
|
|
157
157
|
|
|
158
|
+
**Brief modes (`oat_workflow_mode: brief`).** A `pNN` or `p-revN` scope (or a
|
|
159
|
+
contiguous `pNN-pMM` run) resolves from the journal anchors, never from the
|
|
160
|
+
commit grep above (`oat-project-brief/references/brief-contract.md` section
|
|
161
|
+
10):
|
|
162
|
+
|
|
163
|
+
- Read the exact `**Base:**` and `**Head:**` lines directly under the phase's
|
|
164
|
+
`## Phase` heading in `implementation.md`.
|
|
165
|
+
- When both exist, verify each names a commit (`git cat-file -e "$SHA^{commit}"`)
|
|
166
|
+
and that the base is an ancestor of the head
|
|
167
|
+
(`git merge-base --is-ancestor "$PHASE_BASE" "$PHASE_HEAD"`), then set
|
|
168
|
+
`SCOPE_RANGE="$PHASE_BASE..$PHASE_HEAD"`. For a run, the range is the first
|
|
169
|
+
base through the last head, under the same containment and continuity
|
|
170
|
+
checks as `oat-project-review-provide` Step 3.0.
|
|
171
|
+
- A missing anchor widens the range to `merge-base..HEAD`; `(pNN-` commit
|
|
172
|
+
matches only label which commits belong to the phase, and the PR body says
|
|
173
|
+
the range was widened because the anchors are missing.
|
|
174
|
+
- An anchor that is not a commit, a base that is not an ancestor of its head,
|
|
175
|
+
or a contradictory ordering stops the PR: route to `oat-project-reconcile`
|
|
176
|
+
and never narrow the range silently.
|
|
177
|
+
|
|
158
178
|
### Step 2: Load Artifacts (Mode-Aware)
|
|
159
179
|
|
|
160
180
|
Resolve workflow mode from `state.md` (default `spec-driven`):
|
|
@@ -172,6 +192,13 @@ Read (as available):
|
|
|
172
192
|
- `{PROJECT_PATH}/discovery.md` (recommended for quick mode)
|
|
173
193
|
- `{PROJECT_PATH}/references/imported-plan.md` (recommended for import mode)
|
|
174
194
|
|
|
195
|
+
For `WORKFLOW_MODE=brief`, read `plan.md` (the Project Brief: Goal, Outcomes,
|
|
196
|
+
Decisions, and the in-scope phases' Intent and Exit evidence are the
|
|
197
|
+
requirements source) and `implementation.md` (the phase journal: anchors,
|
|
198
|
+
execution records, verification evidence). `discovery.md`, `spec.md`, and
|
|
199
|
+
`design.md` are absent by design; say in the PR summary that the requirements
|
|
200
|
+
come from the brief rather than noting missing spec-driven artifacts.
|
|
201
|
+
|
|
175
202
|
If `WORKFLOW_MODE != spec-driven` and spec/design are missing:
|
|
176
203
|
|
|
177
204
|
- continue (do not block)
|
|
@@ -286,7 +313,7 @@ oat_project: { PROJECT_PATH }
|
|
|
286
313
|
|
|
287
314
|
## Goals / Non-Goals
|
|
288
315
|
|
|
289
|
-
{goals addressed by this phase, from available requirement artifacts: spec in spec-driven mode; discovery/import reference in quick/import mode; Summary, Decisions, Assumptions, Out of Scope, and Validation Criteria in plan.md for lite}
|
|
316
|
+
{goals addressed by this phase, from available requirement artifacts: spec in spec-driven mode; discovery/import reference in quick/import mode; Summary, Decisions, Assumptions, Out of Scope, and Validation Criteria in plan.md for lite; the phase's Intent and Exit evidence plus the brief's Outcomes for brief}
|
|
290
317
|
|
|
291
318
|
## Changes
|
|
292
319
|
|
|
@@ -5,7 +5,7 @@ disable-model-invocation: false
|
|
|
5
5
|
user-invocable: true
|
|
6
6
|
allowed-tools: Read, Glob, Grep, Bash(git:*), Bash(oat:*), AskUserQuestion
|
|
7
7
|
metadata:
|
|
8
|
-
version: 1.4.
|
|
8
|
+
version: 1.4.6
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# Progress Router
|
|
@@ -162,6 +162,7 @@ Start a new project:
|
|
|
162
162
|
oat-project-new - Create a spec-driven project scaffold
|
|
163
163
|
oat-project-quick-start - Start a quick workflow project
|
|
164
164
|
oat-project-lite - Start a lite workflow (interview -> plan -> implement)
|
|
165
|
+
oat-project-brief - Start a brief workflow (interview -> brief -> implement)
|
|
165
166
|
oat-project-import-plan - Import an external markdown plan into OAT
|
|
166
167
|
```
|
|
167
168
|
|
|
@@ -173,7 +174,7 @@ Read `{project}/state.md` frontmatter:
|
|
|
173
174
|
|
|
174
175
|
- `oat_phase` - Current phase
|
|
175
176
|
- `oat_phase_status` - in_progress or complete
|
|
176
|
-
- `oat_workflow_mode` - spec-driven | quick | import | lite
|
|
177
|
+
- `oat_workflow_mode` - spec-driven | quick | import | lite | brief
|
|
177
178
|
- `oat_blockers` - Any blockers
|
|
178
179
|
- `oat_hill_checkpoints` - Configured gates (e.g., `["discovery", "spec", "design"]`)
|
|
179
180
|
- `oat_hill_completed` - Completed HiLL checkpoints
|
|
@@ -181,6 +182,7 @@ Read `{project}/state.md` frontmatter:
|
|
|
181
182
|
deliberately disabled, keyed by gate-aware skill name
|
|
182
183
|
- `oat_implement_exit_gate` - The implementation exit gate record
|
|
183
184
|
- `oat_quick_start_gate` - The quick-start plan gate record
|
|
185
|
+
- `oat_brief_gate` - The brief artifact gate record (brief mode)
|
|
184
186
|
|
|
185
187
|
Blockers may be legacy reason strings or structured `{task_id, reason, since}`
|
|
186
188
|
records. Display strings as their reason; display records as
|
|
@@ -206,6 +208,7 @@ state or routing merely to render blockers.
|
|
|
206
208
|
HiLL Pending: {yes/no for current phase}
|
|
207
209
|
Gate Overrides: {gate-aware skill keys from oat_skill_gate_overrides, or "None"}
|
|
208
210
|
Quick-Start Gate: {status}/{disposition}, decided {decided_at}, fingerprint {config_fingerprint} (as recorded), or "None"
|
|
211
|
+
Brief Gate: {status}/{disposition}, decided {decided_at}, fingerprint {config_fingerprint} (as recorded), or "None" (brief mode only)
|
|
209
212
|
Exit Gate: {status}/{disposition} as recorded, or "None"
|
|
210
213
|
Blockers: {oat_blockers or "None"}
|
|
211
214
|
Next: {recommended_skill}
|
|
@@ -219,15 +222,15 @@ even when no gate is currently configured for that skill, and never infer a
|
|
|
219
222
|
configured gate from an override alone. This is read-only reporting: never add,
|
|
220
223
|
remove, or repair the map here.
|
|
221
224
|
|
|
222
|
-
|
|
223
|
-
`references/docs/gate-approval-record.md`. Report a quick-start
|
|
224
|
-
doc describes: its stored fields as recorded, with `config_fingerprint` shown as
|
|
225
|
+
All three gate records share the core defined in
|
|
226
|
+
`references/docs/gate-approval-record.md`. Report a quick-start or brief record
|
|
227
|
+
as that doc describes: its stored fields as recorded, with `config_fingerprint` shown as
|
|
225
228
|
provenance and never recomputed, or `malformed` when its fields do not form a
|
|
226
229
|
valid record. Report the exit-gate
|
|
227
230
|
record's `status` and `disposition` as recorded; its freshness belongs to the
|
|
228
|
-
implementation workflow and is not re-derived here.
|
|
231
|
+
implementation workflow and is not re-derived here. Each record adds no route
|
|
229
232
|
and no warning: quick plan readiness stays the single routing rule for quick
|
|
230
|
-
plans. Show "None" for an absent record, and never write or repair one here.
|
|
233
|
+
plans, and the brief record is provenance only, read back by no route. Show "None" for an absent record, and never write or repair one here.
|
|
231
234
|
|
|
232
235
|
### Step 5: Determine Next Skill
|
|
233
236
|
|
|
@@ -239,6 +242,7 @@ Read `oat_workflow_mode` from `state.md` frontmatter:
|
|
|
239
242
|
- `quick`
|
|
240
243
|
- `import`
|
|
241
244
|
- `lite`
|
|
245
|
+
- `brief`
|
|
242
246
|
|
|
243
247
|
**HiLL override (apply before phase routing):**
|
|
244
248
|
|
|
@@ -279,6 +283,9 @@ fi
|
|
|
279
283
|
|
|
280
284
|
If drift is detected, recommend `oat-project-reconcile` alongside the normal implementation skill.
|
|
281
285
|
|
|
286
|
+
In brief mode `plan.md` carries no tasks, so skip the `PLAN_TASKS` comparison;
|
|
287
|
+
compare `(pNN-tNN)` commits against the journal's execution records instead.
|
|
288
|
+
|
|
282
289
|
Routing matrix by mode:
|
|
283
290
|
|
|
284
291
|
**Spec-Driven mode (`oat_workflow_mode: spec-driven`):**
|
|
@@ -338,6 +345,20 @@ branch, which finishes the plan in place without re-scaffolding the project.
|
|
|
338
345
|
| implement | complete | Ready for final review / PR |
|
|
339
346
|
| implement | pr_open | `oat-project-complete` |
|
|
340
347
|
|
|
348
|
+
**Brief mode (`oat_workflow_mode: brief`):**
|
|
349
|
+
|
|
350
|
+
| oat_phase | oat_phase_status | Next Skill |
|
|
351
|
+
| --------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|
|
352
|
+
| plan | in_progress | Continue `oat-project-brief` (it owns review, gate, and approval of the brief) |
|
|
353
|
+
| plan | complete | `oat-project-implement` |
|
|
354
|
+
| implement | in_progress | Continue `oat-project-implement`. If drift detected (see drift detection above), also mention `oat-project-reconcile` as an option. |
|
|
355
|
+
| implement | complete | `oat-project-implement` while any phase-unit is unaccepted; otherwise ready for final review / PR |
|
|
356
|
+
| implement | pr_open | `oat-project-implement` while any phase-unit is unaccepted; otherwise `oat-project-complete` |
|
|
357
|
+
|
|
358
|
+
Brief progress counts phase-units: report `{accepted}/{total} phases accepted`
|
|
359
|
+
from `oat project status`, never task counts. A provisional phase is never
|
|
360
|
+
accepted, and execution records never change the totals.
|
|
361
|
+
|
|
341
362
|
**If blockers exist:**
|
|
342
363
|
|
|
343
364
|
```
|
|
@@ -361,9 +382,10 @@ Knowledge:
|
|
|
361
382
|
|
|
362
383
|
Workflow:
|
|
363
384
|
oat-project-lite - Start a lite workflow (interview -> plan -> implement)
|
|
385
|
+
oat-project-brief - Start a brief workflow (interview -> brief -> implement)
|
|
364
386
|
oat-project-quick-start - Start a quick workflow (discover -> plan -> implement)
|
|
365
387
|
oat-project-import-plan - Import an external markdown plan and normalize plan.md
|
|
366
|
-
oat-project-promote-spec-driven - Promote quick/import/lite project to spec-driven lifecycle (lite
|
|
388
|
+
oat-project-promote-spec-driven - Promote quick/import/lite project to spec-driven lifecycle (lite and brief promote via quick)
|
|
367
389
|
oat-project-discover - Start discovery phase (requirements gathering)
|
|
368
390
|
oat-project-design - Confirm requirements + create technical design (folds spec authoring inline)
|
|
369
391
|
oat-project-spec - Optional standalone specification (most projects skip this — design handles it)
|
|
@@ -58,6 +58,10 @@ replaces the record.
|
|
|
58
58
|
record is current.
|
|
59
59
|
- **`oat_quick_start_gate`** (`oat-project-quick-start`, Gate Execution) carries
|
|
60
60
|
exactly the core.
|
|
61
|
+
- **`oat_brief_gate`** (`oat-project-brief`, Gate Execution) carries exactly the
|
|
62
|
+
core, written and read under the same rules as `oat_quick_start_gate`. It is
|
|
63
|
+
absent when no gate is configured, and nothing routes on it: it is provenance
|
|
64
|
+
only.
|
|
61
65
|
|
|
62
66
|
## Reading a quick-start record
|
|
63
67
|
|
|
@@ -6,14 +6,14 @@ disable-model-invocation: true
|
|
|
6
6
|
user-invocable: true
|
|
7
7
|
allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion
|
|
8
8
|
metadata:
|
|
9
|
-
version: 1.2.
|
|
9
|
+
version: 1.2.6
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
# Promote Project To Spec-Driven Lifecycle
|
|
13
13
|
|
|
14
14
|
Convert a quick/import workflow project into a Spec-Driven OAT lifecycle project without creating a new project directory.
|
|
15
15
|
|
|
16
|
-
Lite projects promote through quick first: run `oat project promote <path> --to quick`, then use this skill. This skill's direct eligibility remains quick/import only.
|
|
16
|
+
Lite and brief projects promote through quick first: run `oat project promote <path> --to quick`, then use this skill (a promoted brief first finishes its pending phase tasks through `oat-project-quick-start`). This skill's direct eligibility remains quick/import only.
|
|
17
17
|
|
|
18
18
|
## Hook-safe exact-path commits
|
|
19
19
|
|
|
@@ -7,7 +7,7 @@ disable-model-invocation: true
|
|
|
7
7
|
user-invocable: true
|
|
8
8
|
allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion, Task
|
|
9
9
|
metadata:
|
|
10
|
-
version: 2.3.
|
|
10
|
+
version: 2.3.20
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
# Quick Start Project
|
|
@@ -151,6 +151,33 @@ Step 3.7 — against `"$PROJECT_PATH/plan.md"`:
|
|
|
151
151
|
- Ready → there is nothing left to author here; load
|
|
152
152
|
`oat-project-implement/SKILL.md` and follow it to begin execution.
|
|
153
153
|
|
|
154
|
+
**Promoted-brief resume.** When the resumed `plan.md` frontmatter records
|
|
155
|
+
`oat_promoted_from: brief`, the project came from
|
|
156
|
+
`oat project promote --to quick` (brief contract section 11), and quick plan
|
|
157
|
+
readiness stays false while `oat_promotion_pending_phases` lists any phase
|
|
158
|
+
(condition 6). `discovery.md` was rendered from the brief and counts as
|
|
159
|
+
existing output, so re-enter at Step 2.9 and then:
|
|
160
|
+
|
|
161
|
+
1. Author executable `### Task pNN-tNN:` tasks, under Step 3's plan
|
|
162
|
+
requirements, for every phase in `oat_promotion_pending_phases`, in document
|
|
163
|
+
order. A phase that carries an `**Unfinished records:**` line keeps those
|
|
164
|
+
record IDs as its first authored tasks; every new task takes the next free
|
|
165
|
+
ordinal after all existing plan tasks and journal records in its phase, so no
|
|
166
|
+
ID is reused.
|
|
167
|
+
2. In the same plan write that adds a phase's tasks, remove that phase from
|
|
168
|
+
`oat_promotion_pending_phases`; when the last one is authored, write
|
|
169
|
+
`oat_promotion_pending_phases: []`. Keep `oat_promoted_from: brief`.
|
|
170
|
+
3. Present historical tasks (those copied from completed execution records and
|
|
171
|
+
any synthesized `Accepted via phase evidence` task) as already accepted:
|
|
172
|
+
their journal markers already satisfy quick progress, and they and the
|
|
173
|
+
`**Historical records:**` lines are never re-authored, renumbered, or
|
|
174
|
+
reordered.
|
|
175
|
+
4. Run Steps 3.5 through 3.7 on the whole plan. The plan artifact review and the
|
|
176
|
+
configured gate see every task, with the historical ones labeled as accepted
|
|
177
|
+
context, and the disposition Step 3.7 records is the sign-off for the newly
|
|
178
|
+
authored tasks only. Existing `## Reviews` rows and the promotion provenance
|
|
179
|
+
line stay untouched.
|
|
180
|
+
|
|
154
181
|
If no valid active project exists:
|
|
155
182
|
|
|
156
183
|
- Resolve startup input from `$ARGUMENTS` before doing any discovery work:
|
|
@@ -629,6 +656,12 @@ Required frontmatter updates:
|
|
|
629
656
|
- `oat_import_provider: null`
|
|
630
657
|
- `oat_template: true`
|
|
631
658
|
|
|
659
|
+
**Promoted-brief provenance.** Promotion already wrote `oat_plan_source: quick`,
|
|
660
|
+
and this step leaves it unchanged; the origin lives in `oat_promoted_from:
|
|
661
|
+
brief`. Re-asserting the values above never removes `oat_promoted_from` or
|
|
662
|
+
`oat_promotion_pending_phases`; only the Step 0.5 promoted-brief resume shrinks
|
|
663
|
+
that list as it authors each phase.
|
|
664
|
+
|
|
632
665
|
These values are the interruption-safe pre-review state. Here,
|
|
633
666
|
`oat_template: true` marks the generated plan as still owned by the current
|
|
634
667
|
planning workflow even after its substantive content has been written. If the
|
|
@@ -996,6 +1029,12 @@ A quick `plan.md` is implementation-ready only when all of the following hold:
|
|
|
996
1029
|
5. At least one phase carries a substantive task — a `### Task pNN-tNN:`
|
|
997
1030
|
heading under a `## Phase` heading, outside any fenced example, whose title
|
|
998
1031
|
still reads as text once every `{placeholder}` is removed.
|
|
1032
|
+
6. Frontmatter `oat_promotion_pending_phases` is absent or empty, so a brief
|
|
1033
|
+
promoted to quick stays not ready while any of its phases still lacks
|
|
1034
|
+
executable tasks. Empty means declared exactly once as `[]`, `null`, `~`, or
|
|
1035
|
+
a bare key whose next frontmatter line, after any blank or `#` comment lines,
|
|
1036
|
+
is not a block-list item; a duplicated key is contradictory. The control
|
|
1037
|
+
plane's `quick-plan-readiness.ts` mirrors this condition.
|
|
999
1038
|
|
|
1000
1039
|
Substantive tasks alone never make a plan ready. The plan that Step 3 writes
|
|
1001
1040
|
already has concrete tasks, yet it carries the Step 3 pre-review frontmatter, so
|
|
@@ -1140,6 +1179,26 @@ quick_plan_ready() {
|
|
|
1140
1179
|
}
|
|
1141
1180
|
' "$PLAN_FILE" | sed -E 's/\{[^}]*\}//g' | grep -qE '[[:alnum:]]' || return 1
|
|
1142
1181
|
|
|
1182
|
+
# Condition 6: a brief promoted to quick lists the phases that still need
|
|
1183
|
+
# executable tasks in `oat_promotion_pending_phases`. Absent is ready; a
|
|
1184
|
+
# duplicated key is contradictory; `[]` is empty; `null`, `~`, or a bare key
|
|
1185
|
+
# is empty only when no block-list item follows it, skipping blank and `#`
|
|
1186
|
+
# comment lines, which do not end a block list. Anything else is not ready.
|
|
1187
|
+
PENDING_KEY=$(quick_plan_key oat_promotion_pending_phases)
|
|
1188
|
+
PENDING_COUNT=$(printf '%s\n' "$FRONTMATTER" | grep -cE "^$PENDING_KEY")
|
|
1189
|
+
[ "$PENDING_COUNT" -le 1 ] || return 1
|
|
1190
|
+
if [ "$PENDING_COUNT" = "1" ] &&
|
|
1191
|
+
! printf '%s\n' "$FRONTMATTER" |
|
|
1192
|
+
grep -qE "^$PENDING_KEY[[:space:]]*\[[[:space:]]*\][[:space:]]*(#.*)?$"; then
|
|
1193
|
+
printf '%s\n' "$FRONTMATTER" |
|
|
1194
|
+
grep -qE "^$PENDING_KEY[[:space:]]*(null|~)?[[:space:]]*(#.*)?$" || return 1
|
|
1195
|
+
printf '%s\n' "$FRONTMATTER" | awk -v key="^$PENDING_KEY" '
|
|
1196
|
+
found && /^[[:space:]]*(#.*)?$/ { next }
|
|
1197
|
+
found { exit ($0 ~ /^[[:space:]]*-([[:space:]]|$)/) ? 1 : 0 }
|
|
1198
|
+
$0 ~ key { found = 1 }
|
|
1199
|
+
' || return 1
|
|
1200
|
+
fi
|
|
1201
|
+
|
|
1143
1202
|
return 0
|
|
1144
1203
|
}
|
|
1145
1204
|
```
|