@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.
Files changed (124) hide show
  1. package/README.md +1 -1
  2. package/assets/bundle-metadata.json +1 -1
  3. package/assets/docs/contributing/index.md +14 -1
  4. package/assets/docs/contributing/markdown-features.md +38 -0
  5. package/assets/docs/contributing/skills.md +64 -2
  6. package/assets/docs/contributing/smoke-testing.md +23 -16
  7. package/assets/docs/contributing/updating-model-guidance.md +2 -2
  8. package/assets/docs/contributing/verifying-cursor-pins.md +1 -1
  9. package/assets/docs/docs-tooling/add-docs-to-a-repo.md +32 -0
  10. package/assets/docs/docs-tooling/agent-instructions.md +131 -0
  11. package/assets/docs/docs-tooling/index.md +1 -0
  12. package/assets/docs/docs-tooling/meta.json +1 -1
  13. package/assets/docs/docs-tooling/workflows.md +338 -2
  14. package/assets/docs/{cli-utilities → getting-started}/bootstrap.md +60 -5
  15. package/assets/docs/getting-started/concepts.md +120 -0
  16. package/assets/docs/getting-started/index.md +68 -0
  17. package/assets/docs/getting-started/meta.json +4 -0
  18. package/assets/docs/getting-started/quickstart.md +174 -0
  19. package/assets/docs/{cli-utilities → getting-started}/tool-packs.md +142 -14
  20. package/assets/docs/index.md +47 -48
  21. package/assets/docs/meta.json +6 -7
  22. package/assets/docs/provider-sync/commands.md +25 -2
  23. package/assets/docs/provider-sync/config.md +60 -1
  24. package/assets/docs/provider-sync/index.md +31 -15
  25. package/assets/docs/provider-sync/instruction-sync.md +32 -1
  26. package/assets/docs/provider-sync/manifest-and-drift.md +92 -0
  27. package/assets/docs/provider-sync/meta.json +1 -0
  28. package/assets/docs/provider-sync/pilot-with-a-team.md +236 -0
  29. package/assets/docs/provider-sync/scope-and-surface.md +37 -3
  30. package/assets/docs/reference/cli-reference.md +33 -33
  31. package/assets/docs/{cli-utilities → reference}/config-and-local-state.md +25 -9
  32. package/assets/docs/{cli-utilities → reference}/configuration.md +151 -34
  33. package/assets/docs/reference/file-locations.md +4 -1
  34. package/assets/docs/reference/index.md +13 -1
  35. package/assets/docs/reference/meta.json +7 -1
  36. package/assets/docs/reference/oat-directory-structure.md +1 -1
  37. package/assets/docs/{workflows/projects/artifacts.md → reference/project-artifacts.md} +4 -4
  38. package/assets/docs/{workflows/projects/state-machine.md → reference/project-state-machine.md} +28 -21
  39. package/assets/docs/{workflows/projects/repo-analysis.md → reference/repository-pr-comments.md} +2 -2
  40. package/assets/docs/reference/troubleshooting.md +125 -10
  41. package/assets/docs/reference/what-oat-writes.md +410 -0
  42. package/assets/docs/skills/brainstorm.md +77 -0
  43. package/assets/docs/skills/diagnostics.md +56 -0
  44. package/assets/docs/{workflows/skills → skills}/explainer-kit.md +121 -0
  45. package/assets/docs/skills/index.md +416 -0
  46. package/assets/docs/{workflows/skills → skills}/meta.json +4 -2
  47. package/assets/docs/{workflows/skills → skills}/recon.md +49 -0
  48. package/assets/docs/skills/repo-improve.md +254 -0
  49. package/assets/docs/skills/research.md +237 -0
  50. package/assets/docs/skills/session-closeout.md +61 -0
  51. package/assets/docs/workflows/advanced/autonomy.md +344 -0
  52. package/assets/docs/workflows/{projects → advanced}/cursor-cloud.md +69 -1
  53. package/assets/docs/workflows/{projects → advanced}/dispatch-ceiling.md +163 -18
  54. package/assets/docs/workflows/{projects → advanced}/evidence-layers.md +20 -13
  55. package/assets/docs/workflows/advanced/index.md +19 -0
  56. package/assets/docs/workflows/advanced/meta.json +13 -0
  57. package/assets/docs/workflows/{projects → advanced}/orchestration-model.md +108 -35
  58. package/assets/docs/workflows/{projects → advanced}/programmatic-execution.md +4 -4
  59. package/assets/docs/{cli-utilities → workflows/advanced}/workflow-gates.md +162 -8
  60. package/assets/docs/workflows/advanced/worktree-bootstrap.md +83 -0
  61. package/assets/docs/workflows/approvals-and-automation.md +261 -0
  62. package/assets/docs/workflows/backlog-and-planning/backlog-lifecycle.md +348 -0
  63. package/assets/docs/workflows/backlog-and-planning/index.md +13 -0
  64. package/assets/docs/workflows/backlog-and-planning/meta.json +4 -0
  65. package/assets/docs/workflows/backlog-and-planning/remote-project-management.md +303 -0
  66. package/assets/docs/workflows/choose-workflow.md +114 -0
  67. package/assets/docs/workflows/ideas/index.md +3 -3
  68. package/assets/docs/workflows/ideas/lifecycle.md +225 -1
  69. package/assets/docs/workflows/index.md +11 -62
  70. package/assets/docs/workflows/meta.json +10 -2
  71. package/assets/docs/workflows/projects/closeout/closeout-skills.md +538 -0
  72. package/assets/docs/workflows/projects/closeout/index.md +14 -0
  73. package/assets/docs/workflows/projects/closeout/meta.json +4 -0
  74. package/assets/docs/workflows/projects/{pr-flow.md → closeout/pr-flow.md} +1 -1
  75. package/assets/docs/workflows/projects/{retro.md → closeout/retro.md} +1 -1
  76. package/assets/docs/workflows/projects/execution/execution-skills.md +258 -0
  77. package/assets/docs/workflows/projects/{implementation-execution.md → execution/implementation-execution.md} +52 -38
  78. package/assets/docs/workflows/projects/execution/index.md +15 -0
  79. package/assets/docs/workflows/projects/execution/meta.json +9 -0
  80. package/assets/docs/workflows/projects/execution/picking-up-projects.md +376 -0
  81. package/assets/docs/{cli-utilities → workflows/projects/execution}/project-log.md +1 -1
  82. package/assets/docs/workflows/projects/index.md +38 -49
  83. package/assets/docs/workflows/projects/lifecycle.md +159 -74
  84. package/assets/docs/workflows/projects/meta.json +2 -23
  85. package/assets/docs/workflows/projects/{design-modes.md → planning/design-modes.md} +29 -0
  86. package/assets/docs/workflows/projects/planning/hill-checkpoints.md +167 -0
  87. package/assets/docs/workflows/projects/planning/index.md +16 -0
  88. package/assets/docs/workflows/projects/planning/meta.json +10 -0
  89. package/assets/docs/workflows/projects/planning/planning-skills.md +381 -0
  90. package/assets/docs/workflows/projects/{splitting.md → planning/splitting.md} +3 -3
  91. package/assets/docs/workflows/projects/planning/starting-projects.md +511 -0
  92. package/assets/docs/workflows/projects/{reviews.md → reviews/index.md} +51 -5
  93. package/assets/docs/workflows/projects/reviews/meta.json +4 -0
  94. package/assets/docs/workflows/projects/reviews/review-flavors.md +650 -0
  95. package/assets/docs/workflows/projects/{reviewing-oat-prs.md → reviews/reviewing-oat-prs.md} +3 -3
  96. package/assets/docs/workflows/waves/index.md +12 -0
  97. package/assets/docs/workflows/waves/meta.json +4 -0
  98. package/assets/docs/workflows/waves/wave-workflows.md +206 -0
  99. package/assets/public-package-versions.json +4 -4
  100. package/assets/skills/oat-docs/SKILL.md +19 -19
  101. package/assets/skills/oat-docs-analyze/SKILL.md +1 -1
  102. package/assets/skills/oat-docs-apply/SKILL.md +1 -1
  103. package/assets/skills/oat-docs-authoring/SKILL.md +1 -1
  104. package/assets/skills/oat-docs-bootstrap/SKILL.md +1 -1
  105. package/assets/skills/oat-doctor/SKILL.md +25 -25
  106. package/assets/templates/docs-app-fuma/app/[[...slug]]/page.tsx +14 -2
  107. package/assets/templates/docs-app-fuma/app/globals.css +1 -0
  108. package/dist/release/public-package-contract.js +1 -1
  109. package/package.json +2 -2
  110. package/assets/docs/cli-utilities/backlog-lifecycle.md +0 -80
  111. package/assets/docs/cli-utilities/index.md +0 -74
  112. package/assets/docs/cli-utilities/meta.json +0 -13
  113. package/assets/docs/cli-utilities/remote-project-management.md +0 -191
  114. package/assets/docs/guide/concepts.md +0 -88
  115. package/assets/docs/guide/index.md +0 -31
  116. package/assets/docs/guide/meta.json +0 -4
  117. package/assets/docs/quickstart.md +0 -88
  118. package/assets/docs/workflows/projects/autonomy.md +0 -196
  119. package/assets/docs/workflows/projects/hill-checkpoints.md +0 -93
  120. package/assets/docs/workflows/projects/picking-up-projects.md +0 -124
  121. package/assets/docs/workflows/projects/review-flavors.md +0 -138
  122. package/assets/docs/workflows/skills/index.md +0 -184
  123. package/assets/docs/workflows/skills/repo-improve.md +0 -89
  124. 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
- ```mermaid
37
- flowchart LR
38
- D["Discovery"] --> S["Spec"] --> G["Design"] --> P["Plan"]
39
- P --> I["Implement (oat-project-implement)"]
40
- I --> R["Review loop"] --> PR["PR flow"]
41
- PR --> DOC["Docs sync (optional)"]
42
- DOC --> C["Complete"]
43
- ```
38
+ === "Diagram"
39
+
40
+ ![Project lifecycle map: discovery, spec, design, plan, implement, review loop, PR flow, optional docs sync, complete](/diagrams/project-lifecycle-1-lifecycle-map-light.svg)
41
+ ![Project lifecycle map: discovery, spec, design, plan, implement, review loop, PR flow, optional docs sync, complete](/diagrams/project-lifecycle-1-lifecycle-map-dark.svg)
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`](../../cli-utilities/config-and-local-state.md) for the full precedence chain.
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 diagram
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 diagram
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 diagram
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
- ```mermaid
342
- flowchart LR
343
- D["Discover"] --> S["Spec"] --> G["Design"] --> P["Plan"]
344
- P --> I["Implement (oat-project-implement)"]
345
- I --> R["Review"] --> PR["PR"] --> Doc["Docs (optional)"] --> C["Complete"]
346
- ```
350
+ === "Diagram"
351
+
352
+ ![Spec-driven lane: discover, spec, design, plan, implement, review, PR, optional docs, complete](/diagrams/project-lifecycle-2-spec-driven-light.svg)
353
+ ![Spec-driven lane: discover, spec, design, plan, implement, review, PR, optional docs, complete](/diagrams/project-lifecycle-2-spec-driven-dark.svg)
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
- ```mermaid
367
- flowchart LR
368
- Q["Quick Start\n(adaptive discovery)"] --> D{"Design depth?"}
369
- D -->|Straight to plan| P["Plan"]
370
- D -->|Lightweight design| LD["Design (quick)"] --> P
371
- D -->|Promote| SD["→ Spec-Driven lane"]
372
- P --> QI["Implement (oat-project-implement)"]
373
- QI --> QR["Review / PR"]
374
- ```
382
+ === "Diagram"
383
+
384
+ ![Quick lane: quick start with adaptive discovery, then a design-depth choice (straight to plan, lightweight design, or promote to spec-driven), plan, implement, review and PR](/diagrams/project-lifecycle-3-quick-lane-light.svg)
385
+ ![Quick lane: quick start with adaptive discovery, then a design-depth choice (straight to plan, lightweight design, or promote to spec-driven), plan, implement, review and PR](/diagrams/project-lifecycle-3-quick-lane-dark.svg)
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
- ```mermaid
388
- flowchart LR
389
- L["Lite interview\n(one batched round)"] --> P["Single-phase plan\n(one approval)"]
390
- P --> I["Implement (oat-project-implement)"]
391
- I --> R["Final review"] --> PR["PR (default closeout)"]
392
- P -->|Scope grows| Q["Promote to Quick"]
393
- ```
410
+ === "Diagram"
411
+
412
+ ![Lite lane: one batched interview, a single-phase plan with one approval, implement, final review and PR, with promotion to quick if scope grows](/diagrams/project-lifecycle-4-lite-lane-light.svg)
413
+ ![Lite lane: one batched interview, a single-phase plan with one approval, implement, final review and PR, with promotion to quick if scope grows](/diagrams/project-lifecycle-4-lite-lane-dark.svg)
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
- ```mermaid
422
- flowchart LR
423
- subgraph Before
424
- LPLAN["plan.md\nfive core sections plus adaptive\nProduct Behavior / Technical Design"]
425
- LSTATE["state.md\noat_workflow_mode: lite"]
426
- end
427
-
428
- CMD["oat project promote\n--to quick"]
429
-
430
- subgraph After
431
- DISC["discovery.md\nderived from the lite plan\noat_ready_for: oat-project-quick-start"]
432
- REF["references/lite-plan.md\noriginal lite plan, preserved"]
433
- QPLAN["plan.md\nfresh quick-start template"]
434
- QSTATE["state.md\noat_workflow_mode: quick\noat_phase: discovery (complete)\noat_ready_for: oat-project-quick-start"]
435
- end
436
-
437
- LPLAN --> CMD
438
- LSTATE --> CMD
439
- CMD -->|derive| DISC
440
- CMD -->|move| REF
441
- CMD -->|scaffold| QPLAN
442
- CMD -->|rewrite| QSTATE
443
- ```
451
+ === "Diagram"
452
+
453
+ ![Promoting a lite project to quick: oat project promote --to quick derives discovery.md from the lite plan, moves the original to references/lite-plan.md, scaffolds a fresh quick plan.md, and rewrites state.md to quick mode](/diagrams/project-lifecycle-5-promote-lite-to-quick-light.svg)
454
+ ![Promoting a lite project to quick: oat project promote --to quick derives discovery.md from the lite plan, moves the original to references/lite-plan.md, scaffolds a fresh quick plan.md, and rewrites state.md to quick mode](/diagrams/project-lifecycle-5-promote-lite-to-quick-dark.svg)
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
- ```mermaid
457
- flowchart LR
458
- I["Import Plan"] --> II1["Implement (oat-project-implement)"]
459
- II1 --> IR["Review / PR"]
460
- ```
493
+ === "Diagram"
494
+
495
+ ![Import lane: import a plan, implement, then review and PR](/diagrams/project-lifecycle-6-import-lane-light.svg)
496
+ ![Import lane: import a plan, implement, then review and PR](/diagrams/project-lifecycle-6-import-lane-dark.svg)
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
- ```mermaid
467
- flowchart LR
468
- W["Work on branch\n(no project)"] --> Cap["oat-project-capture"]
469
- Cap --> R["Review / PR"]
470
- ```
510
+ === "Diagram"
511
+
512
+ ![Capture lane: work on a branch without a project, run oat-project-capture, then review and PR](/diagrams/project-lifecycle-7-capture-lane-light.svg)
513
+ ![Capture lane: work on a branch without a project, run oat-project-capture, then review and PR](/diagrams/project-lifecycle-7-capture-lane-dark.svg)
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](../../cli-utilities/configuration.md#workflow-preferences-workflow) for the full list of keys and how to set them. Preferences resolve through a three-layer chain (`env > repo-local > repo-shared > user > default`), so you can set personal defaults at user scope once and override per-repo only when needed.
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](../../cli-utilities/tool-packs.md#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": "Workflow & Projects",
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.
@@ -0,0 +1,10 @@
1
+ {
2
+ "title": "Planning",
3
+ "pages": [
4
+ "starting-projects",
5
+ "planning-skills",
6
+ "design-modes",
7
+ "hill-checkpoints",
8
+ "splitting"
9
+ ]
10
+ }