@open-agent-toolkit/cli 0.3.13 → 0.3.15
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/README.md +1 -1
- package/assets/bundle-metadata.json +1 -1
- package/assets/docs/contributing/index.md +14 -1
- package/assets/docs/contributing/markdown-features.md +38 -0
- package/assets/docs/contributing/skills.md +64 -2
- package/assets/docs/contributing/smoke-testing.md +23 -16
- package/assets/docs/contributing/updating-model-guidance.md +2 -2
- package/assets/docs/contributing/verifying-cursor-pins.md +1 -1
- package/assets/docs/docs-tooling/add-docs-to-a-repo.md +32 -0
- package/assets/docs/docs-tooling/agent-instructions.md +131 -0
- package/assets/docs/docs-tooling/index.md +1 -0
- package/assets/docs/docs-tooling/meta.json +1 -1
- package/assets/docs/docs-tooling/workflows.md +338 -2
- package/assets/docs/{cli-utilities → getting-started}/bootstrap.md +60 -5
- package/assets/docs/getting-started/concepts.md +120 -0
- package/assets/docs/getting-started/index.md +68 -0
- package/assets/docs/getting-started/meta.json +4 -0
- package/assets/docs/getting-started/quickstart.md +174 -0
- package/assets/docs/{cli-utilities → getting-started}/tool-packs.md +142 -14
- package/assets/docs/index.md +47 -48
- package/assets/docs/meta.json +6 -7
- package/assets/docs/provider-sync/commands.md +25 -2
- package/assets/docs/provider-sync/config.md +60 -1
- package/assets/docs/provider-sync/index.md +31 -15
- package/assets/docs/provider-sync/instruction-sync.md +32 -1
- package/assets/docs/provider-sync/manifest-and-drift.md +92 -0
- package/assets/docs/provider-sync/meta.json +1 -0
- package/assets/docs/provider-sync/pilot-with-a-team.md +236 -0
- package/assets/docs/provider-sync/scope-and-surface.md +37 -3
- package/assets/docs/reference/cli-reference.md +33 -33
- package/assets/docs/{cli-utilities → reference}/config-and-local-state.md +25 -9
- package/assets/docs/{cli-utilities → reference}/configuration.md +151 -34
- package/assets/docs/reference/file-locations.md +4 -1
- package/assets/docs/reference/index.md +13 -1
- package/assets/docs/reference/meta.json +7 -1
- package/assets/docs/reference/oat-directory-structure.md +1 -1
- package/assets/docs/{workflows/projects/artifacts.md → reference/project-artifacts.md} +4 -4
- package/assets/docs/{workflows/projects/state-machine.md → reference/project-state-machine.md} +28 -21
- package/assets/docs/{workflows/projects/repo-analysis.md → reference/repository-pr-comments.md} +2 -2
- package/assets/docs/reference/troubleshooting.md +125 -10
- package/assets/docs/reference/what-oat-writes.md +410 -0
- package/assets/docs/skills/brainstorm.md +77 -0
- package/assets/docs/skills/diagnostics.md +56 -0
- package/assets/docs/{workflows/skills → skills}/explainer-kit.md +121 -0
- package/assets/docs/skills/index.md +416 -0
- package/assets/docs/{workflows/skills → skills}/meta.json +4 -2
- package/assets/docs/{workflows/skills → skills}/recon.md +49 -0
- package/assets/docs/skills/repo-improve.md +254 -0
- package/assets/docs/skills/research.md +237 -0
- package/assets/docs/skills/session-closeout.md +61 -0
- package/assets/docs/workflows/advanced/autonomy.md +344 -0
- package/assets/docs/workflows/{projects → advanced}/cursor-cloud.md +69 -1
- package/assets/docs/workflows/{projects → advanced}/dispatch-ceiling.md +163 -18
- package/assets/docs/workflows/{projects → advanced}/evidence-layers.md +20 -13
- package/assets/docs/workflows/advanced/index.md +19 -0
- package/assets/docs/workflows/advanced/meta.json +13 -0
- package/assets/docs/workflows/{projects → advanced}/orchestration-model.md +108 -35
- package/assets/docs/workflows/{projects → advanced}/programmatic-execution.md +4 -4
- package/assets/docs/{cli-utilities → workflows/advanced}/workflow-gates.md +162 -8
- package/assets/docs/workflows/advanced/worktree-bootstrap.md +83 -0
- package/assets/docs/workflows/approvals-and-automation.md +261 -0
- package/assets/docs/workflows/backlog-and-planning/backlog-lifecycle.md +348 -0
- package/assets/docs/workflows/backlog-and-planning/index.md +13 -0
- package/assets/docs/workflows/backlog-and-planning/meta.json +4 -0
- package/assets/docs/workflows/backlog-and-planning/remote-project-management.md +303 -0
- package/assets/docs/workflows/choose-workflow.md +114 -0
- package/assets/docs/workflows/ideas/index.md +3 -3
- package/assets/docs/workflows/ideas/lifecycle.md +225 -1
- package/assets/docs/workflows/index.md +11 -62
- package/assets/docs/workflows/meta.json +10 -2
- package/assets/docs/workflows/projects/closeout/closeout-skills.md +538 -0
- package/assets/docs/workflows/projects/closeout/index.md +14 -0
- package/assets/docs/workflows/projects/closeout/meta.json +4 -0
- package/assets/docs/workflows/projects/{pr-flow.md → closeout/pr-flow.md} +1 -1
- package/assets/docs/workflows/projects/{retro.md → closeout/retro.md} +1 -1
- package/assets/docs/workflows/projects/execution/execution-skills.md +258 -0
- package/assets/docs/workflows/projects/{implementation-execution.md → execution/implementation-execution.md} +52 -38
- package/assets/docs/workflows/projects/execution/index.md +15 -0
- package/assets/docs/workflows/projects/execution/meta.json +9 -0
- package/assets/docs/workflows/projects/execution/picking-up-projects.md +376 -0
- package/assets/docs/{cli-utilities → workflows/projects/execution}/project-log.md +1 -1
- package/assets/docs/workflows/projects/index.md +38 -49
- package/assets/docs/workflows/projects/lifecycle.md +159 -74
- package/assets/docs/workflows/projects/meta.json +2 -23
- package/assets/docs/workflows/projects/{design-modes.md → planning/design-modes.md} +29 -0
- package/assets/docs/workflows/projects/planning/hill-checkpoints.md +167 -0
- package/assets/docs/workflows/projects/planning/index.md +16 -0
- package/assets/docs/workflows/projects/planning/meta.json +10 -0
- package/assets/docs/workflows/projects/planning/planning-skills.md +381 -0
- package/assets/docs/workflows/projects/{splitting.md → planning/splitting.md} +3 -3
- package/assets/docs/workflows/projects/planning/starting-projects.md +511 -0
- package/assets/docs/workflows/projects/{reviews.md → reviews/index.md} +51 -5
- package/assets/docs/workflows/projects/reviews/meta.json +4 -0
- package/assets/docs/workflows/projects/reviews/review-flavors.md +650 -0
- package/assets/docs/workflows/projects/{reviewing-oat-prs.md → reviews/reviewing-oat-prs.md} +3 -3
- package/assets/docs/workflows/waves/index.md +12 -0
- package/assets/docs/workflows/waves/meta.json +4 -0
- package/assets/docs/workflows/waves/wave-workflows.md +206 -0
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-docs/SKILL.md +19 -19
- package/assets/skills/oat-docs-analyze/SKILL.md +1 -1
- package/assets/skills/oat-docs-apply/SKILL.md +1 -1
- package/assets/skills/oat-docs-authoring/SKILL.md +1 -1
- package/assets/skills/oat-docs-bootstrap/SKILL.md +1 -1
- package/assets/skills/oat-doctor/SKILL.md +25 -25
- package/assets/templates/docs-app-fuma/app/[[...slug]]/page.tsx +14 -2
- package/assets/templates/docs-app-fuma/app/globals.css +1 -0
- package/dist/release/public-package-contract.js +1 -1
- package/package.json +2 -2
- package/assets/docs/cli-utilities/backlog-lifecycle.md +0 -80
- package/assets/docs/cli-utilities/index.md +0 -74
- package/assets/docs/cli-utilities/meta.json +0 -13
- package/assets/docs/cli-utilities/remote-project-management.md +0 -191
- package/assets/docs/guide/concepts.md +0 -88
- package/assets/docs/guide/index.md +0 -31
- package/assets/docs/guide/meta.json +0 -4
- package/assets/docs/quickstart.md +0 -88
- package/assets/docs/workflows/projects/autonomy.md +0 -196
- package/assets/docs/workflows/projects/hill-checkpoints.md +0 -93
- package/assets/docs/workflows/projects/picking-up-projects.md +0 -124
- package/assets/docs/workflows/projects/review-flavors.md +0 -138
- package/assets/docs/workflows/skills/index.md +0 -184
- package/assets/docs/workflows/skills/repo-improve.md +0 -89
- package/assets/docs/workflows/wave-workflows.md +0 -77
|
@@ -23,7 +23,9 @@ OAT lifecycle order:
|
|
|
23
23
|
|
|
24
24
|
**Shortcut:** `oat-project-next` reads project state and invokes the correct next skill automatically — use it instead of remembering which skill comes next. Complements `oat-project-progress` (which is read-only diagnostic).
|
|
25
25
|
|
|
26
|
-
Full spec-driven design supports three interaction modes: collaborative, selective collaborative, and draft-and-review. Selective collaborative drafts routine sections silently and presents high-risk or uncertain sections for live review. Quick-start lightweight design stays simpler and offers only collaborative or draft-and-review. See [Design Modes](design-modes.md) for details.
|
|
26
|
+
Full spec-driven design supports three interaction modes: collaborative, selective collaborative, and draft-and-review. Selective collaborative drafts routine sections silently and presents high-risk or uncertain sections for live review. Quick-start lightweight design stays simpler and offers only collaborative or draft-and-review. See [Design Modes](planning/design-modes.md) for details.
|
|
27
|
+
|
|
28
|
+
For a one-page view of where people approve and what runs automatically in each mode, see [Approvals and Automation](../approvals-and-automation.md).
|
|
27
29
|
|
|
28
30
|
## Quick Look
|
|
29
31
|
|
|
@@ -33,14 +35,21 @@ Full spec-driven design supports three interaction modes: collaborative, selecti
|
|
|
33
35
|
|
|
34
36
|
## Lifecycle Map
|
|
35
37
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
```
|
|
38
|
+
=== "Diagram"
|
|
39
|
+
|
|
40
|
+

|
|
41
|
+

|
|
42
|
+
|
|
43
|
+
=== "Mermaid source"
|
|
44
|
+
|
|
45
|
+
```mermaid
|
|
46
|
+
flowchart LR
|
|
47
|
+
D["Discovery"] --> S["Spec"] --> G["Design"] --> P["Plan"]
|
|
48
|
+
P --> I["Implement (oat-project-implement)"]
|
|
49
|
+
I --> R["Review loop"] --> PR["PR flow"]
|
|
50
|
+
PR --> DOC["Docs sync (optional)"]
|
|
51
|
+
DOC --> C["Complete"]
|
|
52
|
+
```
|
|
44
53
|
|
|
45
54
|
This map shows the spec-driven default. The quick, lite, import, and capture
|
|
46
55
|
lanes each skip part of it — see [Lane diagrams](#lane-diagrams) below. Lite in
|
|
@@ -126,7 +135,7 @@ On completion, OAT treats archive handling as an explicit closeout choice:
|
|
|
126
135
|
pointer immediately, as does any completion that declines archive. An archive
|
|
127
136
|
failure therefore leaves the pointer intact and the completion directly
|
|
128
137
|
resumable. See
|
|
129
|
-
[Picking Up a Project](picking-up-projects.md#archive-contents) for the
|
|
138
|
+
[Picking Up a Project](execution/picking-up-projects.md#archive-contents) for the
|
|
130
139
|
post-archive resume and its manual recovery path.
|
|
131
140
|
- When archiving is disabled or declined, durable projects remain at their
|
|
132
141
|
active path. Synced completion still finalizes and pushes the project ref,
|
|
@@ -144,7 +153,7 @@ On completion, OAT treats archive handling as an explicit closeout choice:
|
|
|
144
153
|
valid terminal shapes. The active alias is inert: list omits it and pull/open
|
|
145
154
|
reject it. Differing SHAs are a hard mismatch with recovery guidance.
|
|
146
155
|
- If `.oat/config.json` enables `archive.s3SyncOnComplete` and sets `archive.s3Uri`, completion requires the S3 upload of a dated snapshot such as `<archive.s3Uri>/<repo-slug>/projects/20260401-<project>/` to succeed before terminal record/ref cleanup. A failed configured upload leaves retry identity intact and does not claim closeout.
|
|
147
|
-
- If `.oat/config.json` sets `archive.awsProfile` and/or `archive.awsRegion`, those values are forwarded to every `aws` invocation triggered by completion (preflight checks + `aws s3 sync`) and override any ambient shell `AWS_PROFILE` / `AWS_DEFAULT_PROFILE` / `AWS_REGION` / `AWS_DEFAULT_REGION` values. The repo's archive-scoped credentials are treated as deliberate intent so users don't have to unset shell env vars before running completion. See [`config-and-local-state.md`](../../
|
|
156
|
+
- If `.oat/config.json` sets `archive.awsProfile` and/or `archive.awsRegion`, those values are forwarded to every `aws` invocation triggered by completion (preflight checks + `aws s3 sync`) and override any ambient shell `AWS_PROFILE` / `AWS_DEFAULT_PROFILE` / `AWS_REGION` / `AWS_DEFAULT_REGION` values. The repo's archive-scoped credentials are treated as deliberate intent so users don't have to unset shell env vars before running completion. See [`config-and-local-state.md`](../../reference/config-and-local-state.md) for the full precedence chain.
|
|
148
157
|
- If `.oat/config.json` sets `archive.summaryExportPath`, completion copies `summary.md` to `<archive.summaryExportPath>/20260401-<project>.md`.
|
|
149
158
|
- Missing or unusable AWS CLI configuration blocks synced terminal cleanup when S3 durability is configured; when S3 sync is not configured, it is not part of the durability requirement.
|
|
150
159
|
- `oat repo archive sync` can later sync all archived projects, or one named archived project, back down from S3; it selects the latest dated remote snapshot and materializes it into the local bare archive tree.
|
|
@@ -225,6 +234,8 @@ This distinction matters during completion: `oat-project-complete` can skip the
|
|
|
225
234
|
|
|
226
235
|
### Auto-review at HiLL checkpoints
|
|
227
236
|
|
|
237
|
+
When `workflow.autoReviewAtHillCheckpoints` is enabled or `plan.md` frontmatter sets `oat_auto_review_at_hill_checkpoints`, completing a HiLL checkpoint automatically runs the extra lifecycle review scoped to every implementation phase not already covered by a passed whole-phase code review, through the just-completed checkpoint. Mid-implementation multi-phase reviews use inclusive phase-range scopes such as `p02-p03`; the final implementation checkpoint uses `code final`. The review uses auto-disposition mode (low findings auto-converted to fix tasks, no user prompts). The preference is unset by default; interactive implementation asks with "no" suggested, while autonomous non-lite implementation forces it on. Legacy `autoReviewAtCheckpoints` and `oat_auto_review_at_checkpoints` are still read as fallbacks. This does not control Tier 1 per-phase `oat-reviewer` gates.
|
|
238
|
+
|
|
228
239
|
### Approval-aware post-implementation sequencing
|
|
229
240
|
|
|
230
241
|
`workflow.postImplementSequence` can use the legacy string values or a structured
|
|
@@ -264,8 +275,6 @@ registers. Non-interactive completion skips this offer, so autonomous
|
|
|
264
275
|
generation occurs only through an explicitly configured post-approval `retro`
|
|
265
276
|
step.
|
|
266
277
|
|
|
267
|
-
When `workflow.autoReviewAtHillCheckpoints` is enabled or `plan.md` frontmatter sets `oat_auto_review_at_hill_checkpoints`, completing a HiLL checkpoint automatically runs the extra lifecycle review scoped to every implementation phase not already covered by a passed whole-phase code review, through the just-completed checkpoint. Mid-implementation multi-phase reviews use inclusive phase-range scopes such as `p02-p03`; the final implementation checkpoint uses `code final`. The review uses auto-disposition mode (low findings auto-converted to fix tasks, no user prompts). Disabled by default. Legacy `autoReviewAtCheckpoints` and `oat_auto_review_at_checkpoints` are still read as fallbacks. This does not control Tier 1 per-phase `oat-reviewer` gates.
|
|
268
|
-
|
|
269
278
|
### Phase-review setup during planning
|
|
270
279
|
|
|
271
280
|
Spec-driven, quick, and import planning run one shared setup after stable phase
|
|
@@ -302,7 +311,7 @@ Within either tier, parallelism is expressed as plan metadata:
|
|
|
302
311
|
- **Sequential (default):** plans with no `oat_plan_parallel_groups` field, or with an empty array. Phases run in plan order on the orchestration branch.
|
|
303
312
|
- **Parallel groups:** phases listed together in `oat_plan_parallel_groups` run concurrently in worktrees (Tier 1 only) and merge back to the orchestration branch in plan order. Groups themselves execute sequentially.
|
|
304
313
|
|
|
305
|
-
See [Implementation Execution](implementation-execution.md) for the full execution model — tier detection, bounded fix loop, fan-in, merge-conflict handling, dry-run, and resumption.
|
|
314
|
+
See [Implementation Execution](execution/implementation-execution.md) for the full execution model — tier detection, bounded fix loop, fan-in, merge-conflict handling, dry-run, and resumption.
|
|
306
315
|
|
|
307
316
|
## Review receive behavior
|
|
308
317
|
|
|
@@ -312,7 +321,7 @@ See [Implementation Execution](implementation-execution.md) for the full executi
|
|
|
312
321
|
|
|
313
322
|
## Alternate lifecycle lanes
|
|
314
323
|
|
|
315
|
-
### Quick lane
|
|
324
|
+
### Quick lane steps
|
|
316
325
|
|
|
317
326
|
1. `oat-project-quick-start` (adaptive discovery — provide a project name and optional description; if only the name is provided, quick-start asks for the missing description before discovery. Well-understood requests synthesize quickly, exploratory requests invest in solution space exploration. Before scaffolding, the skill checks inherited git state and asks whether to commit, proceed, or abort when the worktree is already dirty.)
|
|
318
327
|
2. Decision point: straight to plan, optional lightweight `design.md`, or promote to spec-driven
|
|
@@ -320,14 +329,14 @@ See [Implementation Execution](implementation-execution.md) for the full executi
|
|
|
320
329
|
4. `oat-project-review-provide` / `oat-project-pr-final`
|
|
321
330
|
5. Optional `oat-project-promote-spec-driven` to backfill spec-driven lifecycle artifacts in-place
|
|
322
331
|
|
|
323
|
-
### Lite lane
|
|
332
|
+
### Lite lane steps
|
|
324
333
|
|
|
325
334
|
1. `oat-project-lite` runs one batched interview, authors a single-phase `plan.md` with validation criteria, and pauses once for approval
|
|
326
335
|
2. Implement: `oat-project-implement` runs the single phase without HiLL checkpoint prompts
|
|
327
336
|
3. Pass the mandatory final review, then route directly to `oat-project-pr-final`
|
|
328
337
|
4. Optional `oat project promote <project-path> --to quick` when the work no longer fits one sitting
|
|
329
338
|
|
|
330
|
-
### Import lane
|
|
339
|
+
### Import lane steps
|
|
331
340
|
|
|
332
341
|
1. `oat-project-import-plan` (checks inherited git state before import scaffolding so sync-generated or unrelated dirty files do not silently roll into project bookkeeping)
|
|
333
342
|
2. Implement: `oat-project-implement` (sequential by default; parallel when `oat_plan_parallel_groups` is declared)
|
|
@@ -338,12 +347,19 @@ See [Implementation Execution](implementation-execution.md) for the full executi
|
|
|
338
347
|
|
|
339
348
|
### Spec-Driven workflow lane
|
|
340
349
|
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
350
|
+
=== "Diagram"
|
|
351
|
+
|
|
352
|
+

|
|
353
|
+

|
|
354
|
+
|
|
355
|
+
=== "Mermaid source"
|
|
356
|
+
|
|
357
|
+
```mermaid
|
|
358
|
+
flowchart LR
|
|
359
|
+
D["Discover"] --> S["Spec"] --> G["Design"] --> P["Plan"]
|
|
360
|
+
P --> I["Implement (oat-project-implement)"]
|
|
361
|
+
I --> R["Review"] --> PR["PR"] --> Doc["Docs (optional)"] --> C["Complete"]
|
|
362
|
+
```
|
|
347
363
|
|
|
348
364
|
During the Design step, `oat-project-design` asks how to work through the document unless a mode was selected by argument, environment, or `workflow.designMode`. The three full-design choices are collaborative, selective collaborative, and draft-and-review.
|
|
349
365
|
|
|
@@ -363,15 +379,22 @@ effort controls.
|
|
|
363
379
|
|
|
364
380
|
### Quick lane
|
|
365
381
|
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
382
|
+
=== "Diagram"
|
|
383
|
+
|
|
384
|
+

|
|
385
|
+

|
|
386
|
+
|
|
387
|
+
=== "Mermaid source"
|
|
388
|
+
|
|
389
|
+
```mermaid
|
|
390
|
+
flowchart LR
|
|
391
|
+
Q["Quick Start\n(adaptive discovery)"] --> D{"Design depth?"}
|
|
392
|
+
D -->|Straight to plan| P["Plan"]
|
|
393
|
+
D -->|Lightweight design| LD["Design (quick)"] --> P
|
|
394
|
+
D -->|Promote| SD["→ Spec-Driven lane"]
|
|
395
|
+
P --> QI["Implement (oat-project-implement)"]
|
|
396
|
+
QI --> QR["Review / PR"]
|
|
397
|
+
```
|
|
375
398
|
|
|
376
399
|
Quick lane lightweight design intentionally keeps a smaller collaborative/draft choice. Selective collaborative becomes available only after promotion into the full spec-driven design lane.
|
|
377
400
|
|
|
@@ -384,13 +407,20 @@ should use the dispatch-policy names, including explicit `Uncapped` and
|
|
|
384
407
|
|
|
385
408
|
### Lite lane
|
|
386
409
|
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
410
|
+
=== "Diagram"
|
|
411
|
+
|
|
412
|
+

|
|
413
|
+

|
|
414
|
+
|
|
415
|
+
=== "Mermaid source"
|
|
416
|
+
|
|
417
|
+
```mermaid
|
|
418
|
+
flowchart LR
|
|
419
|
+
L["Lite interview\n(one batched round)"] --> P["Single-phase plan\n(one approval)"]
|
|
420
|
+
P --> I["Implement (oat-project-implement)"]
|
|
421
|
+
I --> R["Final review"] --> PR["PR (default closeout)"]
|
|
422
|
+
P -->|Scope grows| Q["Promote to Quick"]
|
|
423
|
+
```
|
|
394
424
|
|
|
395
425
|
Lite keeps planning and validation in `plan.md`. The interview selects a
|
|
396
426
|
`minimal`, `product`, `technical`, or `both` content shape and records the
|
|
@@ -418,29 +448,36 @@ from its five core sections plus any adaptive Product Behavior and Technical
|
|
|
418
448
|
Design, a **fresh** quick template takes over the `plan.md` path, and `state.md`
|
|
419
449
|
is **rewritten** to quick mode.
|
|
420
450
|
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
451
|
+
=== "Diagram"
|
|
452
|
+
|
|
453
|
+

|
|
454
|
+

|
|
455
|
+
|
|
456
|
+
=== "Mermaid source"
|
|
457
|
+
|
|
458
|
+
```mermaid
|
|
459
|
+
flowchart LR
|
|
460
|
+
subgraph Before
|
|
461
|
+
LPLAN["plan.md\nfive core sections plus adaptive\nProduct Behavior / Technical Design"]
|
|
462
|
+
LSTATE["state.md\noat_workflow_mode: lite"]
|
|
463
|
+
end
|
|
464
|
+
|
|
465
|
+
CMD["oat project promote\n--to quick"]
|
|
466
|
+
|
|
467
|
+
subgraph After
|
|
468
|
+
DISC["discovery.md\nderived from the lite plan\noat_ready_for: oat-project-quick-start"]
|
|
469
|
+
REF["references/lite-plan.md\noriginal lite plan, preserved"]
|
|
470
|
+
QPLAN["plan.md\nfresh quick-start template"]
|
|
471
|
+
QSTATE["state.md\noat_workflow_mode: quick\noat_phase: discovery (complete)\noat_ready_for: oat-project-quick-start"]
|
|
472
|
+
end
|
|
473
|
+
|
|
474
|
+
LPLAN --> CMD
|
|
475
|
+
LSTATE --> CMD
|
|
476
|
+
CMD -->|derive| DISC
|
|
477
|
+
CMD -->|move| REF
|
|
478
|
+
CMD -->|scaffold| QPLAN
|
|
479
|
+
CMD -->|rewrite| QSTATE
|
|
480
|
+
```
|
|
444
481
|
|
|
445
482
|
The project slug, directory, and branch are untouched, so history and any open
|
|
446
483
|
work continue uninterrupted. `oat_ready_for` is stamped on **both** `discovery.md`
|
|
@@ -453,21 +490,35 @@ categorical `reason` and exit non-zero. See
|
|
|
453
490
|
|
|
454
491
|
### Import lane
|
|
455
492
|
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
493
|
+
=== "Diagram"
|
|
494
|
+
|
|
495
|
+

|
|
496
|
+

|
|
497
|
+
|
|
498
|
+
=== "Mermaid source"
|
|
499
|
+
|
|
500
|
+
```mermaid
|
|
501
|
+
flowchart LR
|
|
502
|
+
I["Import Plan"] --> II1["Implement (oat-project-implement)"]
|
|
503
|
+
II1 --> IR["Review / PR"]
|
|
504
|
+
```
|
|
461
505
|
|
|
462
506
|
### Capture lane
|
|
463
507
|
|
|
464
508
|
Retroactive project creation for work done outside the OAT project workflow. Common scenario: mobile/cloud sessions where you brainstorm and implement with an agent, then want to open a PR and review from your desktop.
|
|
465
509
|
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
510
|
+
=== "Diagram"
|
|
511
|
+
|
|
512
|
+

|
|
513
|
+

|
|
514
|
+
|
|
515
|
+
=== "Mermaid source"
|
|
516
|
+
|
|
517
|
+
```mermaid
|
|
518
|
+
flowchart LR
|
|
519
|
+
W["Work on branch\n(no project)"] --> Cap["oat-project-capture"]
|
|
520
|
+
Cap --> R["Review / PR"]
|
|
521
|
+
```
|
|
471
522
|
|
|
472
523
|
Entry point: `/oat-project-capture` (skill-only, no CLI command — requires agent conversation context).
|
|
473
524
|
|
|
@@ -513,7 +564,7 @@ Capture lane progression:
|
|
|
513
564
|
|
|
514
565
|
The lifecycle has several interactive prompts that power users often answer the same way every time — HiLL checkpoint behavior, archive on complete, auto-create PR, post-implementation chaining, final review execution model, and re-review scope narrowing. These can be configured once via `workflow.*` preference keys and respected automatically by skills.
|
|
515
566
|
|
|
516
|
-
See the [Workflow preferences section in the Configuration guide](../../
|
|
567
|
+
See the [Workflow preferences section in the Configuration guide](../../reference/configuration.md#workflow-preferences-workflow) for the full list of keys and how to set them. Workflow preferences resolve through `repo-local > repo-shared > user > default`; there is no generic workflow environment layer. Individual skills may separately read environment controls such as `OAT_DESIGN_MODE`. Set personal defaults at user scope and override per-repo when needed.
|
|
517
568
|
|
|
518
569
|
## Active project resolution
|
|
519
570
|
|
|
@@ -538,7 +589,7 @@ separate checks, and both must hold before any PJM write:
|
|
|
538
589
|
Pack presence is never treated as evidence of repository adoption. A skill that
|
|
539
590
|
finds the capability available but the repository unadopted reports the
|
|
540
591
|
actionable `oat pjm init` stop instead of scaffolding implicitly. See
|
|
541
|
-
[Install vs. initialize](../../
|
|
592
|
+
[Install vs. initialize](../../getting-started/tool-packs.md#install-vs-initialize).
|
|
542
593
|
|
|
543
594
|
## Brainstorming integration with the project lifecycle
|
|
544
595
|
|
|
@@ -566,3 +617,37 @@ The fold-back path is what makes "we got to plan and realized the design missed
|
|
|
566
617
|
- `.oat/projects/<scope>/<project>/design.md`
|
|
567
618
|
- `.oat/projects/<scope>/<project>/plan.md`
|
|
568
619
|
- `.oat/projects/<scope>/<project>/implementation.md`
|
|
620
|
+
|
|
621
|
+
## Choosing lifecycle controls
|
|
622
|
+
|
|
623
|
+
OAT has four separate controls that are easy to confuse. Each one adds a
|
|
624
|
+
different kind of check:
|
|
625
|
+
|
|
626
|
+
- **Planning checkpoints** hold a spec-driven project after discovery and after
|
|
627
|
+
design until a person approves.
|
|
628
|
+
- **Implementation checkpoints** (HiLL checkpoints) pause implementation after
|
|
629
|
+
chosen phases until a person approves.
|
|
630
|
+
- **Artifact review loops** have the same agent session check a generated plan
|
|
631
|
+
or analysis and fix clear problems before handing it on.
|
|
632
|
+
- **Gates** send the work to a second agent CLI, preferably running a different
|
|
633
|
+
family of models, and turn its findings into a pass or a fail.
|
|
634
|
+
|
|
635
|
+
None of these replaces the code reviews that run after every implementation
|
|
636
|
+
phase and before closeout; those run whatever you choose here.
|
|
637
|
+
|
|
638
|
+
Decide in this order: first the
|
|
639
|
+
[workflow mode](../choose-workflow.md#which-mode-should-i-choose), then the
|
|
640
|
+
[design interaction mode](planning/design-modes.md#choosing-an-interaction-mode),
|
|
641
|
+
then the [checkpoint frequency](planning/hill-checkpoints.md#choosing-checkpoint-frequency).
|
|
642
|
+
|
|
643
|
+
- If your team needs to approve the architecture before any code is written,
|
|
644
|
+
choose a spec-driven project for its planning checkpoints, or add a gate to a
|
|
645
|
+
planning skill.
|
|
646
|
+
- If you want to steer implementation after risky phases, choose
|
|
647
|
+
implementation checkpoints for those phases.
|
|
648
|
+
- If a plan or analysis will be handed to another workflow, keep its artifact
|
|
649
|
+
review loop on.
|
|
650
|
+
- If a high-risk change needs a reviewer from a different model family, add a
|
|
651
|
+
[gate](../advanced/workflow-gates.md#choosing-gate-posture) and check which
|
|
652
|
+
reviewer it actually used. Adding more reviews makes a run slower; it does not
|
|
653
|
+
by itself make them independent.
|
|
@@ -1,25 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"title": "
|
|
3
|
-
"pages": [
|
|
4
|
-
"lifecycle",
|
|
5
|
-
"retro",
|
|
6
|
-
"autonomy",
|
|
7
|
-
"cursor-cloud",
|
|
8
|
-
"design-modes",
|
|
9
|
-
"hill-checkpoints",
|
|
10
|
-
"dispatch-ceiling",
|
|
11
|
-
"orchestration-model",
|
|
12
|
-
"review-flavors",
|
|
13
|
-
"evidence-layers",
|
|
14
|
-
"programmatic-execution",
|
|
15
|
-
"artifacts",
|
|
16
|
-
"implementation-execution",
|
|
17
|
-
"reviewing-oat-prs",
|
|
18
|
-
"picking-up-projects",
|
|
19
|
-
"splitting",
|
|
20
|
-
"state-machine",
|
|
21
|
-
"reviews",
|
|
22
|
-
"pr-flow",
|
|
23
|
-
"repo-analysis"
|
|
24
|
-
]
|
|
2
|
+
"title": "Projects",
|
|
3
|
+
"pages": ["lifecycle", "reviews", "planning", "execution", "closeout"]
|
|
25
4
|
}
|
|
@@ -106,3 +106,32 @@ oat config set workflow.designMode draft --local
|
|
|
106
106
|
Valid values are `collaborative`, `selective`, and `draft`.
|
|
107
107
|
|
|
108
108
|
Runtime non-interactive signals still win over this preference. If `OAT_NON_INTERACTIVE=1` is set, design runs in draft-and-review mode so automation does not block on prompts.
|
|
109
|
+
|
|
110
|
+
## Choosing an interaction mode
|
|
111
|
+
|
|
112
|
+
The design mode decides how the agent reviews the design with you while it
|
|
113
|
+
writes `design.md`.
|
|
114
|
+
|
|
115
|
+
| Mode | Choose it when | What you give up |
|
|
116
|
+
| ------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
|
|
117
|
+
| Collaborative | The design is uncertain, or the repository has little documentation to build on | Time: you confirm every section before the file is written |
|
|
118
|
+
| Selective | A spec-driven project in a repository whose architecture is well documented | Seeing routine sections live; you review them only in the final recap |
|
|
119
|
+
| Draft | You want a complete proposal first, or nobody is available to answer prompts | Live input: the final review of the whole file is your only chance to steer it |
|
|
120
|
+
|
|
121
|
+
If you have not set `workflow.designMode`, the design skill asks you each time
|
|
122
|
+
and suggests collaborative. When more than one source sets a mode, the skill
|
|
123
|
+
uses the first of these it finds: the `--mode` argument, the `OAT_DESIGN_MODE`
|
|
124
|
+
environment variable, draft for a non-interactive run (so automation never
|
|
125
|
+
waits on a prompt), and finally your configured preference or the prompt. Quick
|
|
126
|
+
projects offer only collaborative and draft; a configured `selective` behaves
|
|
127
|
+
as collaborative there.
|
|
128
|
+
|
|
129
|
+
- If you are trying OAT on your own and are unsure, leave the preference unset
|
|
130
|
+
and pick collaborative when asked.
|
|
131
|
+
- If your team is still debating the architecture, choose collaborative so
|
|
132
|
+
people can steer each section before the design is written.
|
|
133
|
+
- If a spec-driven project follows well-documented repository patterns, choose
|
|
134
|
+
selective: risky sections such as security and migration are still shown to
|
|
135
|
+
you live, and routine ones appear in the final recap.
|
|
136
|
+
- If you need a complete proposal before a scheduled review meeting, or the run
|
|
137
|
+
is scripted, choose draft and set aside time to read the whole result.
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Human-in-the-Loop Lifecycle (HiLL) Checkpoints
|
|
3
|
+
description: 'Checkpoint configuration and behavior for pauseable, human-in-the-loop lifecycle execution.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Human-in-the-Loop Lifecycle (HiLL) Checkpoints
|
|
7
|
+
|
|
8
|
+
OAT supports two checkpoint classes:
|
|
9
|
+
|
|
10
|
+
- Workflow phase checkpoints
|
|
11
|
+
- Plan phase checkpoints
|
|
12
|
+
|
|
13
|
+
The [Phase gate review](../reviews/index.md#phase-review-gate) (`oat_phase_review_gate`) is a separate, non-pausing mechanism — it does not pause on a passing gate and never modifies the HiLL keys below (`oat_hill_completed`, `oat_plan_hill_phases`).
|
|
14
|
+
|
|
15
|
+
## Workflow checkpoints (`state.md`)
|
|
16
|
+
|
|
17
|
+
Frontmatter keys:
|
|
18
|
+
|
|
19
|
+
- `oat_hill_checkpoints`
|
|
20
|
+
- `oat_hill_completed`
|
|
21
|
+
|
|
22
|
+
Example:
|
|
23
|
+
|
|
24
|
+
```yaml
|
|
25
|
+
oat_hill_checkpoints: ['discovery', 'design']
|
|
26
|
+
oat_hill_completed: ['discovery']
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
An older project may still list `spec`, and the design skill honors it by
|
|
30
|
+
asking for your review at the design step unless the standalone
|
|
31
|
+
`oat-project-spec` skill already completed that checkpoint.
|
|
32
|
+
|
|
33
|
+
## Plan phase checkpoints (`plan.md`)
|
|
34
|
+
|
|
35
|
+
Frontmatter key written after implementation confirmation:
|
|
36
|
+
|
|
37
|
+
- `oat_plan_hill_phases`
|
|
38
|
+
|
|
39
|
+
Semantics:
|
|
40
|
+
|
|
41
|
+
- Field absent: valid before the first `oat-project-implement` run confirms checkpoint selection. Planning may intentionally leave the field unset until that first execution starts.
|
|
42
|
+
- Empty list: checkpoint after every phase boundary, but only after implementation has confirmed the choice and written `oat_plan_hill_phases: []` into `plan.md`.
|
|
43
|
+
- Explicit list: checkpoint only after completing the named phases (`p01`, `p04`, etc).
|
|
44
|
+
|
|
45
|
+
### Lite checkpoint bypass
|
|
46
|
+
|
|
47
|
+
Lite projects have no HiLL checkpoints. `oat-project-implement` resolves
|
|
48
|
+
`oat_workflow_mode` from project state before any checkpoint field read, and
|
|
49
|
+
when the mode is `lite` it resolves checkpoint state as `none` without reading
|
|
50
|
+
or interpreting `oat_plan_hill_phases`. An empty list cannot represent lite's
|
|
51
|
+
policy, because for every other mode an empty list means "checkpoint after every
|
|
52
|
+
phase". `oat-project-implement`'s Lite checkpoint bypass writes:
|
|
53
|
+
|
|
54
|
+
```yaml
|
|
55
|
+
oat_auto_review_at_hill_checkpoints: false # lite: no checkpoints
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
The workflow preference prompt, the standard checkpoint prompt, and the
|
|
59
|
+
auto-review preference prompt are all skipped in both interactive and autonomous
|
|
60
|
+
runs. Only HiLL approval pauses are absent — the root-owned per-phase review and
|
|
61
|
+
the final review remain required.
|
|
62
|
+
|
|
63
|
+
The rest of this section applies to `spec-driven`, `quick`, and `import`
|
|
64
|
+
projects.
|
|
65
|
+
|
|
66
|
+
On the first implementation run, `oat-project-implement` must summarize every plan phase, state the total phase count and final phase ID, and then ask an explicit three-option checkpoint question:
|
|
67
|
+
|
|
68
|
+
- Stop after each phase
|
|
69
|
+
- Stop after specific phases
|
|
70
|
+
- Stop only after the final phase is completed
|
|
71
|
+
|
|
72
|
+
It then writes the confirmed value into `plan.md`. If the field is later missing during a resumed implementation run, treat that as bookkeeping drift rather than as an implicit default.
|
|
73
|
+
|
|
74
|
+
Listed phases are where you stop **after completing them**, not before. `["p03"]` means "complete p03, then pause" — not "pause before starting p03." Setting the last phase ID (e.g., `["p03"]` when p03 is final) means "stop only at the end of implementation."
|
|
75
|
+
|
|
76
|
+
### Setting a default via `workflow.hillCheckpointDefault`
|
|
77
|
+
|
|
78
|
+
The first-run checkpoint prompt can be skipped entirely by setting the `workflow.hillCheckpointDefault` preference:
|
|
79
|
+
|
|
80
|
+
- `every` — automatically write `oat_plan_hill_phases: []` (pause after every phase) without prompting
|
|
81
|
+
- `final` — automatically write `oat_plan_hill_phases: ["<final-phase-id>"]` (pause only at the end) without prompting
|
|
82
|
+
|
|
83
|
+
When set, `oat-project-implement` reads the preference before the prompt and prints `HiLL checkpoints: <every|final> (from workflow.hillCheckpointDefault)`, skipping the interactive choice. When unset (default), the skill prompts as before.
|
|
84
|
+
|
|
85
|
+
Treat this setting as a personal preference by default and set it at user
|
|
86
|
+
level (`--user`, stored in `~/.oat/config.json`), so it applies to every
|
|
87
|
+
repository you work in. Set it at shared level (`--shared`, stored in the
|
|
88
|
+
committed `.oat/config.json`) only when your team has agreed on a rule for
|
|
89
|
+
where agents must pause. Configuration resolves local first, then shared, then
|
|
90
|
+
user, so a shared value overrides each person's user-level value, and anyone
|
|
91
|
+
can still override it for their own checkout with `--local`.
|
|
92
|
+
|
|
93
|
+
A configured value is used on each project's first implementation run without
|
|
94
|
+
asking, and it replaces any checkpoint value already written in that project's
|
|
95
|
+
`plan.md` (see the warning under
|
|
96
|
+
[Choosing checkpoint frequency](#choosing-checkpoint-frequency)).
|
|
97
|
+
|
|
98
|
+
- If you want more control and the chance to steer between phases, use
|
|
99
|
+
`every`:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
oat config set workflow.hillCheckpointDefault every --user
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
- If you want fewer interruptions and you trust the plan and the automatic
|
|
106
|
+
reviews, use `final`:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
oat config set workflow.hillCheckpointDefault final --user
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
- If you want to decide per project, or to pause after specific phases, leave
|
|
113
|
+
the setting unset and answer the prompt on the first implementation run.
|
|
114
|
+
|
|
115
|
+
See [Workflow preferences in the Configuration guide](../../../reference/configuration.md#workflow-preferences-workflow) for the full list of preference keys and surface guidance.
|
|
116
|
+
|
|
117
|
+
## Reference artifacts
|
|
118
|
+
|
|
119
|
+
- `.oat/templates/plan.md`
|
|
120
|
+
- `.oat/projects/<scope>/<project>/plan.md`
|
|
121
|
+
- `.oat/projects/<scope>/<project>/state.md`
|
|
122
|
+
|
|
123
|
+
## Choosing checkpoint frequency
|
|
124
|
+
|
|
125
|
+
A HiLL (human-in-the-loop lifecycle) checkpoint is a point where the
|
|
126
|
+
implementing agent stops and waits for a person to approve before it continues.
|
|
127
|
+
This choice decides how often that happens during implementation. Lite projects
|
|
128
|
+
have no checkpoints, so it does not apply to them.
|
|
129
|
+
|
|
130
|
+
| Choice | Choose it when | What you give up |
|
|
131
|
+
| ------------------ | ------------------------------------------------- | -------------------------------------------- |
|
|
132
|
+
| Every phase (`[]`) | The work is high-risk and you want to steer often | Speed: you approve after every phase |
|
|
133
|
+
| Specific phases | Only some phases are risky | Pauses after the other phases |
|
|
134
|
+
| Final phase only | You trust the plan and the automatic reviews | The chance to correct course partway through |
|
|
135
|
+
|
|
136
|
+
You can pick any of the three at the first-run prompt. The
|
|
137
|
+
`workflow.hillCheckpointDefault` setting can express only `every` or `final`, so
|
|
138
|
+
choosing specific phases needs the prompt or a hand edit of
|
|
139
|
+
`oat_plan_hill_phases` in `plan.md`. The setting is unset by default, and the
|
|
140
|
+
prompt suggests stopping after every phase.
|
|
141
|
+
|
|
142
|
+
> [!WARNING]
|
|
143
|
+
> On a project's first implementation run (unless the run is autonomous), a
|
|
144
|
+
> configured `workflow.hillCheckpointDefault` is used without asking, and it
|
|
145
|
+
> replaces any checkpoint value already written in that project's `plan.md`. After the first
|
|
146
|
+
> run, the value stored in `plan.md` is what applies; changing the config later
|
|
147
|
+
> does not change that project. To choose specific phases, remove the setting
|
|
148
|
+
> before the first run from the layer that sets it (for example
|
|
149
|
+
> `oat config unset workflow.hillCheckpointDefault --user` if you set it with
|
|
150
|
+
> `--user`), or edit `oat_plan_hill_phases` in `plan.md` afterwards.
|
|
151
|
+
|
|
152
|
+
- If you are a solo developer working from a plan you trust, choose final only,
|
|
153
|
+
for example with `oat config set workflow.hillCheckpointDefault final --user`.
|
|
154
|
+
- If the change is high-risk or regulated, such as a data migration, run
|
|
155
|
+
implementation interactively and choose every phase. Check that no
|
|
156
|
+
`workflow.hillCheckpointDefault` is configured first, because it would skip
|
|
157
|
+
the prompt.
|
|
158
|
+
- If only a few phases need sign-off, such as a migration phase and a
|
|
159
|
+
deployment phase, list those phases at the first-run prompt.
|
|
160
|
+
|
|
161
|
+
Autonomous runs (started with `OAT_AUTONOMOUS=1`) ignore
|
|
162
|
+
`workflow.hillCheckpointDefault`. If `plan.md` has no checkpoint value, they
|
|
163
|
+
write the final phase only; a valid value already in `plan.md` is kept as
|
|
164
|
+
written. Autonomous runs also turn on the automatic review at checkpoints: at
|
|
165
|
+
each checkpoint the agent runs that review, handles its findings, and continues
|
|
166
|
+
instead of waiting for a person. The per-phase and final code reviews run in
|
|
167
|
+
every mode.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Planning
|
|
3
|
+
description: 'Design modes, lifecycle checkpoints and project splitting.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Planning
|
|
7
|
+
|
|
8
|
+
Use these guides to plan a tracked project and choose its collaboration boundaries.
|
|
9
|
+
|
|
10
|
+
## Contents
|
|
11
|
+
|
|
12
|
+
- [Starting projects](starting-projects.md) - Choose an entry point, import a plan, capture work or split a broad scope.
|
|
13
|
+
- [Planning skills](planning-skills.md) - Discovery, requirements, design, planning and workflow promotion.
|
|
14
|
+
- [Design Modes](design-modes.md) - How full design balances collaborative, selective collaborative, and draft-and-review interaction.
|
|
15
|
+
- [Human-in-the-Loop Lifecycle (HiLL) Checkpoints](hill-checkpoints.md) - Human-in-the-Loop Lifecycle configuration and approval behavior.
|
|
16
|
+
- [Project Splitting](splitting.md) - How broad discoveries or brainstorms become coordination parents and child projects.
|