@open-agent-toolkit/cli 0.3.12 → 0.3.14

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 (152) 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/skills.md +64 -2
  5. package/assets/docs/contributing/smoke-testing.md +3 -3
  6. package/assets/docs/contributing/updating-model-guidance.md +2 -2
  7. package/assets/docs/contributing/verifying-cursor-pins.md +1 -1
  8. package/assets/docs/docs-tooling/add-docs-to-a-repo.md +112 -15
  9. package/assets/docs/docs-tooling/agent-instructions.md +131 -0
  10. package/assets/docs/docs-tooling/commands.md +74 -30
  11. package/assets/docs/docs-tooling/index.md +7 -6
  12. package/assets/docs/docs-tooling/meta.json +1 -1
  13. package/assets/docs/docs-tooling/workflows.md +357 -11
  14. package/assets/docs/{cli-utilities → getting-started}/bootstrap.md +60 -5
  15. package/assets/docs/{guide → getting-started}/concepts.md +28 -10
  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 +146 -15
  20. package/assets/docs/index.md +47 -48
  21. package/assets/docs/meta.json +6 -7
  22. package/assets/docs/provider-sync/commands.md +26 -3
  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 +43 -5
  26. package/assets/docs/provider-sync/manifest-and-drift.md +85 -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 +34 -34
  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/docs-index-contract.md +19 -4
  34. package/assets/docs/reference/file-locations.md +7 -2
  35. package/assets/docs/reference/index.md +13 -1
  36. package/assets/docs/reference/meta.json +7 -1
  37. package/assets/docs/reference/oat-directory-structure.md +24 -22
  38. package/assets/docs/{workflows/projects/artifacts.md → reference/project-artifacts.md} +4 -4
  39. package/assets/docs/{workflows/projects/state-machine.md → reference/project-state-machine.md} +1 -1
  40. package/assets/docs/{workflows/projects/repo-analysis.md → reference/repository-pr-comments.md} +2 -2
  41. package/assets/docs/reference/troubleshooting.md +125 -10
  42. package/assets/docs/reference/what-oat-writes.md +410 -0
  43. package/assets/docs/skills/brainstorm.md +77 -0
  44. package/assets/docs/skills/diagnostics.md +56 -0
  45. package/assets/docs/{workflows/skills → skills}/explainer-kit.md +121 -0
  46. package/assets/docs/skills/index.md +416 -0
  47. package/assets/docs/{workflows/skills → skills}/meta.json +4 -2
  48. package/assets/docs/{workflows/skills → skills}/recon.md +49 -0
  49. package/assets/docs/skills/repo-improve.md +254 -0
  50. package/assets/docs/skills/research.md +237 -0
  51. package/assets/docs/skills/session-closeout.md +61 -0
  52. package/assets/docs/workflows/advanced/autonomy.md +344 -0
  53. package/assets/docs/workflows/{projects → advanced}/cursor-cloud.md +69 -1
  54. package/assets/docs/workflows/{projects → advanced}/dispatch-ceiling.md +163 -18
  55. package/assets/docs/workflows/{projects → advanced}/evidence-layers.md +1 -1
  56. package/assets/docs/workflows/advanced/index.md +19 -0
  57. package/assets/docs/workflows/advanced/meta.json +13 -0
  58. package/assets/docs/workflows/{projects → advanced}/orchestration-model.md +63 -4
  59. package/assets/docs/workflows/{projects → advanced}/programmatic-execution.md +4 -4
  60. package/assets/docs/{cli-utilities → workflows/advanced}/workflow-gates.md +162 -8
  61. package/assets/docs/workflows/advanced/worktree-bootstrap.md +83 -0
  62. package/assets/docs/workflows/approvals-and-automation.md +261 -0
  63. package/assets/docs/workflows/backlog-and-planning/backlog-lifecycle.md +348 -0
  64. package/assets/docs/workflows/backlog-and-planning/index.md +13 -0
  65. package/assets/docs/workflows/backlog-and-planning/meta.json +4 -0
  66. package/assets/docs/workflows/backlog-and-planning/remote-project-management.md +303 -0
  67. package/assets/docs/workflows/choose-workflow.md +114 -0
  68. package/assets/docs/workflows/ideas/index.md +3 -3
  69. package/assets/docs/workflows/ideas/lifecycle.md +218 -1
  70. package/assets/docs/workflows/index.md +11 -62
  71. package/assets/docs/workflows/meta.json +10 -2
  72. package/assets/docs/workflows/projects/closeout/closeout-skills.md +538 -0
  73. package/assets/docs/workflows/projects/closeout/index.md +14 -0
  74. package/assets/docs/workflows/projects/closeout/meta.json +4 -0
  75. package/assets/docs/workflows/projects/{pr-flow.md → closeout/pr-flow.md} +1 -1
  76. package/assets/docs/workflows/projects/{retro.md → closeout/retro.md} +1 -1
  77. package/assets/docs/workflows/projects/execution/execution-skills.md +258 -0
  78. package/assets/docs/workflows/projects/{implementation-execution.md → execution/implementation-execution.md} +8 -8
  79. package/assets/docs/workflows/projects/execution/index.md +15 -0
  80. package/assets/docs/workflows/projects/execution/meta.json +9 -0
  81. package/assets/docs/workflows/projects/execution/picking-up-projects.md +376 -0
  82. package/assets/docs/{cli-utilities → workflows/projects/execution}/project-log.md +1 -1
  83. package/assets/docs/workflows/projects/index.md +38 -49
  84. package/assets/docs/workflows/projects/lifecycle.md +47 -11
  85. package/assets/docs/workflows/projects/meta.json +2 -23
  86. package/assets/docs/workflows/projects/{design-modes.md → planning/design-modes.md} +29 -0
  87. package/assets/docs/workflows/projects/planning/hill-checkpoints.md +167 -0
  88. package/assets/docs/workflows/projects/planning/index.md +16 -0
  89. package/assets/docs/workflows/projects/planning/meta.json +10 -0
  90. package/assets/docs/workflows/projects/planning/planning-skills.md +381 -0
  91. package/assets/docs/workflows/projects/{splitting.md → planning/splitting.md} +3 -3
  92. package/assets/docs/workflows/projects/planning/starting-projects.md +511 -0
  93. package/assets/docs/workflows/projects/{reviews.md → reviews/index.md} +51 -5
  94. package/assets/docs/workflows/projects/reviews/meta.json +4 -0
  95. package/assets/docs/workflows/projects/reviews/review-flavors.md +643 -0
  96. package/assets/docs/workflows/projects/{reviewing-oat-prs.md → reviews/reviewing-oat-prs.md} +3 -3
  97. package/assets/docs/workflows/waves/index.md +12 -0
  98. package/assets/docs/workflows/waves/meta.json +4 -0
  99. package/assets/docs/workflows/waves/wave-workflows.md +206 -0
  100. package/assets/public-package-versions.json +4 -4
  101. package/assets/skills/oat-docs/SKILL.md +19 -19
  102. package/assets/skills/oat-docs-analyze/SKILL.md +27 -7
  103. package/assets/skills/oat-docs-analyze/references/quality-checklist.md +16 -3
  104. package/assets/skills/oat-docs-apply/SKILL.md +20 -3
  105. package/assets/skills/oat-docs-authoring/SKILL.md +11 -7
  106. package/assets/skills/oat-docs-authoring/references/docs-root-resolution.md +12 -5
  107. package/assets/skills/oat-docs-authoring/references/lifecycle-boundaries.md +7 -7
  108. package/assets/skills/oat-docs-authoring/references/oat-fumadocs-contract.md +13 -3
  109. package/assets/skills/oat-docs-authoring/references/targeted-authoring-workflow.md +5 -4
  110. package/assets/skills/oat-docs-authoring/references/validation.md +11 -1
  111. package/assets/skills/oat-docs-bootstrap/SKILL.md +31 -8
  112. package/assets/skills/oat-docs-bootstrap/assets/AGENTS.md.template +2 -1
  113. package/assets/skills/oat-doctor/SKILL.md +25 -25
  114. package/assets/skills/oat-project-document/SKILL.md +21 -2
  115. package/assets/templates/docs-markdown/contributing.md +35 -0
  116. package/assets/templates/docs-markdown/index.md +18 -0
  117. package/dist/commands/docs/index-generate/index.d.ts.map +1 -1
  118. package/dist/commands/docs/index-generate/index.js +41 -8
  119. package/dist/commands/docs/init/index.d.ts +17 -2
  120. package/dist/commands/docs/init/index.d.ts.map +1 -1
  121. package/dist/commands/docs/init/index.js +194 -14
  122. package/dist/commands/docs/init/markdown.d.ts +39 -0
  123. package/dist/commands/docs/init/markdown.d.ts.map +1 -0
  124. package/dist/commands/docs/init/markdown.js +317 -0
  125. package/dist/commands/docs/init/resolve-options.d.ts +3 -1
  126. package/dist/commands/docs/init/resolve-options.d.ts.map +1 -1
  127. package/dist/commands/docs/init/resolve-options.js +36 -0
  128. package/dist/commands/docs/init/scaffold.d.ts.map +1 -1
  129. package/dist/commands/docs/init/scaffold.js +11 -0
  130. package/dist/commands/shared/agents-md.d.ts +7 -0
  131. package/dist/commands/shared/agents-md.d.ts.map +1 -1
  132. package/dist/commands/shared/agents-md.js +131 -91
  133. package/dist/commands/tools/shared/pack-manifest.d.ts.map +1 -1
  134. package/dist/commands/tools/shared/pack-manifest.js +1 -0
  135. package/dist/config/oat-config.d.ts +2 -1
  136. package/dist/config/oat-config.d.ts.map +1 -1
  137. package/dist/config/oat-config.js +4 -2
  138. package/package.json +2 -2
  139. package/assets/docs/cli-utilities/backlog-lifecycle.md +0 -80
  140. package/assets/docs/cli-utilities/index.md +0 -74
  141. package/assets/docs/cli-utilities/meta.json +0 -13
  142. package/assets/docs/cli-utilities/remote-project-management.md +0 -191
  143. package/assets/docs/guide/index.md +0 -31
  144. package/assets/docs/guide/meta.json +0 -4
  145. package/assets/docs/quickstart.md +0 -88
  146. package/assets/docs/workflows/projects/autonomy.md +0 -196
  147. package/assets/docs/workflows/projects/hill-checkpoints.md +0 -93
  148. package/assets/docs/workflows/projects/picking-up-projects.md +0 -124
  149. package/assets/docs/workflows/projects/review-flavors.md +0 -138
  150. package/assets/docs/workflows/skills/index.md +0 -184
  151. package/assets/docs/workflows/skills/repo-improve.md +0 -89
  152. package/assets/docs/workflows/wave-workflows.md +0 -77
@@ -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
+ }
@@ -0,0 +1,381 @@
1
+ ---
2
+ title: Planning skills
3
+ description: 'Continue discovery, formalize requirements, design a solution, write executable tasks, or promote an existing project.'
4
+ ---
5
+
6
+ # Planning skills
7
+
8
+ These skills act on an existing project. They do not create one from a new
9
+ idea. Choose a [project entry skill](starting-projects.md) first if the work is
10
+ not yet tracked.
11
+
12
+ For a spec-driven project (one using the full workflow: discovery, design, plan,
13
+ then implementation), the usual path is discovery, then design, then plan.
14
+ Design confirms requirements and produces `spec.md` as well as `design.md`.
15
+ Standalone spec is optional when you want to review requirements before
16
+ designing. Quick, lite, and import workflows author their own plans through
17
+ their entry skills. Do not send those projects through spec-driven planning
18
+ just because they contain a file named `plan.md`.
19
+
20
+ | You need to resolve | Skill |
21
+ | --------------------------------------------------------------- | --------------------------------- |
22
+ | The problem, scope, alternatives, and success criteria. | `oat-project-discover` |
23
+ | Formal requirements before technical design. | `oat-project-spec` |
24
+ | Architecture, interfaces, and verification decisions. | `oat-project-design` |
25
+ | Executable phases and tasks from a completed design. | `oat-project-plan` |
26
+ | More lifecycle rigor for an existing quick or imported project. | `oat-project-promote-spec-driven` |
27
+
28
+ ## Check the project before continuing
29
+
30
+ The examples are requests to your agent. `/oat-project-design` uses slash-command
31
+ syntax. A provider that uses `$` skill syntax accepts `$oat-project-design`
32
+ instead. Neither form is an `oat` terminal subcommand. Terminal commands below
33
+ use `bash` blocks.
34
+
35
+ Every skill on this page acts on the _active project_, the project recorded as
36
+ `activeProject` in `.oat/config.local.json`. Resolve it and inspect its
37
+ artifacts (project files such as `discovery.md`, `design.md`, and `state.md`)
38
+ before continuing:
39
+
40
+ ```bash
41
+ oat config get activeProject
42
+ oat project status
43
+ ```
44
+
45
+ Read the reported project's `state.md` and relevant artifact frontmatter.
46
+ An artifact that exists can still be a template or unfinished draft. Its
47
+ presence alone does not prove readiness. If another project is active, switch
48
+ to the intended project through `oat-project-open` before invoking these skills.
49
+
50
+ Planning writes and commits artifacts without asking, but it does not implement
51
+ the product. For synced-scope projects, each commit is pushed to `origin` with
52
+ `oat project push`. A committed draft is not necessarily approved.
53
+
54
+ A _HiLL (human-in-the-loop lifecycle) checkpoint_ is a point where a skill stops
55
+ and waits for your explicit approval before marking a phase complete. Projects
56
+ created with `oat-project-new` have HiLL approvals on discovery and design **by
57
+ default**: each skill stops after writing its artifact and waits for your
58
+ explicit approval before marking it complete. Quick, lite, and import projects
59
+ have no workflow-phase HiLL checkpoints. Configured exit gates (optional reviews
60
+ or commands your repository runs before a skill marks its work complete) can
61
+ also keep an artifact in progress. See [HiLL checkpoints](hill-checkpoints.md).
62
+ The [skill catalog](../../../skills/index.md) lists the broader lifecycle tools.
63
+
64
+ ## oat-project-discover
65
+
66
+ Use discovery to clarify the problem before deciding how to implement it. The
67
+ skill explores alternatives and captures constraints without writing code,
68
+ technical specifications, or task lists.
69
+
70
+ **Invocation:** Explicitly request discovery for the active spec-driven project.
71
+ The skill confirms the project before continuing.
72
+
73
+ ```text
74
+ /oat-project-discover
75
+ Continue discovery for webhook-delivery. Clarify delivery guarantees and which failures users need to investigate.
76
+ ```
77
+
78
+ **Prerequisites:** Needs an active OAT project: yes, a spec-driven one. If none
79
+ is active, discovery stops and points you to `oat-project-new` or
80
+ `oat-project-open`. A missing workflow-mode field is accepted only for a legacy
81
+ spec-driven project. The repository knowledge index must exist at
82
+ `.oat/repo/knowledge/project-index.md`. If it is missing, run
83
+ `oat-repo-knowledge-index` first. The skill checks knowledge staleness and asks
84
+ whether to refresh or continue when the index is stale.
85
+
86
+ Quick, import, and lite projects use their own next step instead. Mentioning a
87
+ new idea does not authorize automatic discovery invocation.
88
+
89
+ **Example scenario:** The webhook-delivery project is active, but the team has
90
+ not agreed whether duplicate deliveries are acceptable or how operators detect
91
+ lost events. Discovery asks targeted questions, compares approaches, and records
92
+ the chosen direction and measurable outcomes. It leaves concrete component
93
+ design for the next phase.
94
+
95
+ **Expected output:** `discovery.md` records the request, clarifying answers,
96
+ approaches, decisions, constraints, success criteria, and exclusions. Deferred
97
+ ideas and open questions stay visible. The skill also evaluates whether the
98
+ scope is one cohesive project or needs a confirmed split. If you confirm a
99
+ split, `oat-project-split` still needs a saved split-plan JSON file. Discovery
100
+ does not write one. See [oat-project-split](starting-projects.md#oat-project-split).
101
+
102
+ By default, discovery is a HiLL checkpoint: the skill stops and asks you to
103
+ approve discovery before it continues. If you do not approve yet, discovery
104
+ stays in progress. After approval and any configured exit gate resolve,
105
+ discovery completes through the CLI validation boundary and becomes ready for
106
+ `oat-project-design`. A split child must revalidate inherited context before
107
+ discovery can complete.
108
+
109
+ **What it does without asking:** After you confirm it should continue with the
110
+ active project, its setup steps copy fresh `state.md` and `discovery.md`
111
+ templates into the project with `oat template resolve --output`, which
112
+ overwrites existing files of those names. At completion it runs
113
+ `oat project complete-discovery --ready-for oat-project-design`, updates
114
+ `state.md`, and commits `discovery.md` and `state.md` (an `oat project push` to
115
+ `origin` in synced scope). It runs any configured exit gate and passes an
116
+ eligible result to `oat-project-review-receive`. If you choose to split, it
117
+ hands off to `oat-project-split`. In non-interactive runs that detect a split,
118
+ it appends a "Detected Split Recommendation" section to `discovery.md` and
119
+ exits with an error. It asks before: continuing with the active project,
120
+ continuing on a stale knowledge index, choosing an approach, the scope check
121
+ (always shown in interactive runs), and the HiLL approval.
122
+
123
+ **Next step:** Run `oat-project-design` for requirements confirmation and full
124
+ design. If you want a standalone requirements review first, check
125
+ [oat-project-spec's readiness requirement](#oat-project-spec) before invoking it.
126
+
127
+ ## oat-project-spec
128
+
129
+ Use standalone spec when discovery is complete but you want requirements
130
+ formalized before starting technical design. Running this skill is not a
131
+ mandatory step before design.
132
+
133
+ **Invocation:** Explain the requirements review you want for the active project.
134
+
135
+ ```text
136
+ /oat-project-spec
137
+ Formalize the webhook delivery requirements and acceptance criteria before we decide on storage and worker design.
138
+ ```
139
+
140
+ **Prerequisites:** Needs an active OAT project: yes. If none is active, the
141
+ skill asks for a project name and sets it as the active project. The existing
142
+ project's `discovery.md` must record `oat_status: complete` and
143
+ `oat_ready_for: oat-project-spec`. Discovery content must include the chosen
144
+ approach with rationale, constraints, measurable success criteria, and scope
145
+ boundaries. Relevant repository knowledge provides additional context.
146
+
147
+ Current behavior: standalone spec refuses any discovery completed the normal
148
+ way. Discovery records `oat_ready_for: oat-project-design`, and spec requires
149
+ `oat-project-spec`. There are two ways forward:
150
+
151
+ 1. **Recommended:** skip standalone spec and run `oat-project-design`, which
152
+ confirms requirements and writes `spec.md` for you.
153
+ 2. **If you need a separate requirements review:** re-mark discovery as ready
154
+ for spec, commit the change (with `oat project push` for a synced project),
155
+ and then invoke spec. This command sets `oat_ready_for` in `discovery.md`'s
156
+ frontmatter after validating the project:
157
+
158
+ ```bash
159
+ oat project complete-discovery <project-path> --ready-for oat-project-spec
160
+ ```
161
+
162
+ **Example scenario:** Stakeholders need to agree on retention and delivery
163
+ guarantees before you choose infrastructure. With discovery complete and
164
+ re-marked as ready for spec, spec translates those outcomes into functional and
165
+ non-functional requirements, priorities, and testable acceptance criteria.
166
+ Choose it instead of design because the immediate decision is what the system
167
+ must do, not how its components work.
168
+
169
+ **Expected output:** `spec.md` contains the problem, goals, non-goals,
170
+ requirements, constraints, dependencies, proposed high-level approach, and
171
+ success metrics. Its Requirement Index gives each requirement a stable ID and
172
+ verification method. Planned tasks remain unassigned until planning.
173
+
174
+ The skill iterates on requirements with you and checks quality and boundaries.
175
+ It does not select new technology beyond discovery, design component internals,
176
+ or write implementation tasks. After the completion boundary, the spec is ready
177
+ for `oat-project-design`.
178
+
179
+ **What it does without asking:** It copies the spec template to `spec.md`
180
+ (overwriting an existing `spec.md`), writes the requirements, marks the spec
181
+ complete and ready for design, updates `state.md`, and commits `spec.md` and
182
+ `state.md` (an `oat project push` to `origin` in synced scope). It stops for
183
+ approval only if `spec` is a configured HiLL checkpoint, which it is not by
184
+ default. It runs no exit gate. It asks for a project name when none is active,
185
+ and asks you to confirm the requirements until you agree they are complete.
186
+
187
+ **Next step:** Run `oat-project-design`, which reuses the completed spec instead
188
+ of drafting the requirements again.
189
+
190
+ ## oat-project-design
191
+
192
+ Use design to make the architecture and implementation decisions that a plan
193
+ needs. Requirements confirmation is part of this flow, so a separate spec phase
194
+ is usually unnecessary.
195
+
196
+ **Invocation:** Choose an interaction mode when you know how you want to review
197
+ the design.
198
+
199
+ ```text
200
+ /oat-project-design --mode collaborative
201
+ ```
202
+
203
+ Supported modes are `collaborative`, `selective`, and `draft`. Collaborative
204
+ presents each section for confirmation. Selective drafts routine sections and
205
+ walks you through sections that need review, after confirming a section review
206
+ plan. Draft writes the full design for review together. See
207
+ [Design modes](design-modes.md) for selection and precedence.
208
+
209
+ **Prerequisites:** Needs an active OAT project: yes. If none is active, the
210
+ skill asks for a project name and sets it as the active project. The existing
211
+ project needs completed discovery. A pre-existing `spec.md` must be complete and
212
+ ready for design. If that file is an incomplete draft, resolve it before
213
+ continuing. If no spec exists, design creates it from discovery. Repository
214
+ knowledge provides architecture and implementation context.
215
+
216
+ **Example scenario:** Webhook requirements are clear, but the queue, delivery
217
+ record, and retry worker need consistent responsibilities. Choose collaborative
218
+ mode to review those interfaces and failure cases section by section. Design
219
+ confirms requirements, reaffirms the chosen approach once, and checks that the
220
+ testing strategy covers each requirement.
221
+
222
+ **Expected output:** A completed or reused `spec.md` and a `design.md` covering
223
+ architecture, components, data, interfaces, security, failure handling, tests,
224
+ deployment, migration, and risks as applicable. Requirements map to verification
225
+ scenarios, and implementation phases give planning a starting point.
226
+
227
+ In collaborative mode, approved sections are assembled into the file after the
228
+ section pass. Draft mode writes the full file first. The skill self-reviews and
229
+ commits the design before its user-review prompt. By default, design is a HiLL
230
+ checkpoint on projects created with `oat-project-new`: after the commit, the
231
+ skill shows you where `design.md` and `spec.md` are and waits for your approval
232
+ or change requests. It marks design complete only after you approve and any
233
+ configured exit gate resolves. Committing the draft alone does not mean it is
234
+ approved.
235
+
236
+ **What it does without asking:** When it writes `spec.md`, it commits it
237
+ separately. It self-reviews `design.md` and `spec.md` and fixes issues inline
238
+ without a prompt, then commits `spec.md`, `design.md`, and `state.md` as a
239
+ draft, even when no HiLL checkpoint is configured. In selective mode, routine
240
+ sections are drafted without live confirmation. Each revision after your
241
+ feedback is a new commit. Without a `design` or `spec` HiLL checkpoint, it skips
242
+ the review prompt and continues to completion. It runs any configured exit gate,
243
+ passes an eligible result to `oat-project-review-receive`, then marks design
244
+ complete and commits `design.md` and `state.md`. In synced scope every commit is
245
+ an `oat project push` to `origin`. It asks before: choosing the interaction mode
246
+ (unless `--mode`, `OAT_DESIGN_MODE`, or `workflow.designMode` sets it),
247
+ confirming requirements, reaffirming the approach, confirming sections as the
248
+ mode requires, and the HiLL approval.
249
+
250
+ **Next step:** Run `oat-project-plan` when `design.md` is complete and ready for
251
+ planning. Quick projects that only need lightweight design stay in quick-start;
252
+ they do not use this full design flow.
253
+
254
+ ## oat-project-plan
255
+
256
+ Use plan to convert a completed spec-driven design into tasks an implementer
257
+ can execute and verify. Planning preserves design decisions rather than
258
+ reopening architecture or adding scope.
259
+
260
+ **Invocation:** Request task decomposition for the active project. Name useful
261
+ constraints in the conversation rather than inventing planning flags.
262
+
263
+ ```text
264
+ /oat-project-plan
265
+ Turn the completed webhook design into phases with exact files, requirement coverage, verification commands, and task commits.
266
+ ```
267
+
268
+ **Prerequisites:** Needs an active OAT project: yes. If none is active, the
269
+ skill asks for a project name and sets it as the active project. The project
270
+ must use spec-driven mode, with `design.md` recording `oat_status: complete` and
271
+ `oat_ready_for: oat-project-plan`.
272
+
273
+ Quick, import, and lite projects never use this skill to author a plan. On a
274
+ quick project, it resumes quick-start if the plan is not ready, and **starts
275
+ `oat-project-implement` immediately** if the plan is ready. On an import project
276
+ with a plan, it points you to `oat-project-implement`. On a lite project, it
277
+ points you to `oat-project-lite`. Do not invoke it on those projects unless you
278
+ intend that handoff.
279
+
280
+ **Example scenario:** The webhook design now defines persistence, retries, and
281
+ operator reporting. Plan turns those decisions into testable milestones and
282
+ stable task IDs, each with a declared file scope and verification command.
283
+ It fills the spec's Planned Tasks column so you can trace a requirement to the
284
+ tasks that implement it.
285
+
286
+ **Expected output:** `plan.md` contains phases, stable `pNN-tNN` tasks,
287
+ implementation and proof steps, exact verification commands, commit messages,
288
+ review rows, and references. Existing review history remains intact. If a draft
289
+ plan exists, the skill offers resume, view, or explicit overwrite instead of
290
+ silently discarding it.
291
+
292
+ The skill resolves dispatch policy and review readiness, records artifact
293
+ review, and runs any configured exit gate. Implementation tracking begins when
294
+ you run `oat-project-implement`. Resolving dispatch policy means you are asked
295
+ to choose a _dispatch policy_, the highest tier of models and effort OAT may use
296
+ for implementation and review agents. If your configuration has no complete
297
+ dispatch ladder, you are offered the bundled one to adopt into shared, local, or
298
+ user config; see [Dispatch policy](../../advanced/dispatch-ceiling.md).
299
+ Implementation checkpoint selection is deferred to implementation start unless
300
+ already supplied and confirmed. The plan contains no product code.
301
+
302
+ **What it does without asking:** It writes `plan.md`, updates the spec's
303
+ requirement index, and records the dispatch policy you choose in `state.md`.
304
+ Plan artifact review runs automatically, usually in your current agent session,
305
+ and may launch a separate reviewer agent when the current model is unknown or
306
+ below the reviewer tier. It applies unambiguous Critical and High fixes to
307
+ `plan.md`. It runs any configured exit gate and passes an eligible result to
308
+ `oat-project-review-receive`. It then marks the plan complete and commits
309
+ `plan.md` and `state.md` (an `oat project push` to `origin` in synced scope). If
310
+ you chose a project explainer, it generates one after the commit. It does not
311
+ write `implementation.md`. It asks before: resuming, viewing, or overwriting an
312
+ existing plan; generating a project explainer (once); accepting the phase
313
+ breakdown; declaring parallel phase groups; adopting a dispatch ladder into
314
+ config; choosing the dispatch policy; enabling an extra phase gate review; and
315
+ keeping or disabling configured gates for this project.
316
+
317
+ **Next step:** Run `oat-project-implement` after the plan is ready. If task
318
+ decomposition exposes a missing design decision, resolve it in design instead
319
+ of making that decision inside the plan.
320
+
321
+ ## oat-project-promote-spec-driven
322
+
323
+ Use promotion when an existing quick or imported project needs more lifecycle
324
+ rigor. Promotion works in place and preserves the plan and implementation
325
+ history. It is not a project reset or a fresh discovery run.
326
+
327
+ **Invocation:** Make the intended project active first (for example with
328
+ `oat-project-open`), then invoke the skill without a project-selector flag. The
329
+ skill's argument hint lists `--project`, but the skill currently ignores it and
330
+ always acts on the active project.
331
+
332
+ ```text
333
+ /oat-project-promote-spec-driven
334
+ Promote the active cache-refresh project, keeping its imported plan and completed task history.
335
+ ```
336
+
337
+ **Prerequisites:** Needs an active OAT project: yes. If none is active, the
338
+ skill asks for a project name and sets it as the active project. The active
339
+ project's `state.md` must record quick or import workflow mode. A spec-driven
340
+ project is already promoted, so the skill reports a no-op unless you request
341
+ artifact refresh. Lite must promote to quick first through the actual terminal
342
+ command:
343
+
344
+ ```bash
345
+ oat project promote <lite-project-path> --to quick
346
+ ```
347
+
348
+ Use the reported lite project path, for example
349
+ `.oat/projects/synced/retry-message` in the default synced scope. Then use this
350
+ skill against the active quick project.
351
+
352
+ **Example scenario:** The imported cache-refresh plan is partly implemented,
353
+ but its next stage requires explicit requirements and architecture rationale.
354
+ Promotion fills missing lifecycle artifacts from the existing plan,
355
+ implementation records, and imported source. It keeps completed tasks and the
356
+ original plan provenance rather than starting the project over.
357
+
358
+ **Expected output:** The project remains in the same directory and switches to
359
+ spec-driven mode. Missing discovery, spec, and design documents are drafted
360
+ from existing context. Existing artifacts are inspected rather than blindly
361
+ replaced. The skill preserves `oat_plan_source` unless you explicitly request
362
+ new spec-driven plan regeneration, and retains workflow origin and execution
363
+ history.
364
+
365
+ Backfilled drafts are not a claim that full discovery and design approval have
366
+ already happened. Promotion aligns state with actual progress, persists the
367
+ artifact changes, and reports created artifacts, retained provenance, and the
368
+ next action.
369
+
370
+ **What it does without asking:** It creates each missing `discovery.md`,
371
+ `spec.md`, and `design.md` from templates and fills them from the plan,
372
+ implementation records, and imported source. It switches `state.md` to
373
+ spec-driven mode and sets the phase to match actual progress, then commits
374
+ `discovery.md`, `spec.md`, `design.md`, and `state.md` (an `oat project push` to
375
+ `origin` in synced scope). There is no confirmation step before these writes,
376
+ and it runs no exit gate. It asks only for a project name when none is active.
377
+
378
+ **Next step:** Follow the reported phase and readiness. The handoff commonly
379
+ continues implementation or review for work already planned or executed.
380
+ Review missing requirements and design detail before treating new drafts as
381
+ completed lifecycle artifacts.
@@ -74,6 +74,6 @@ to show them. Completed coordination parents render as `decomposition (complete)
74
74
 
75
75
  ## Related Pages
76
76
 
77
- - [Lifecycle](lifecycle.md)
78
- - [Artifacts](artifacts.md)
79
- - [Implementation Execution](implementation-execution.md)
77
+ - [Lifecycle](../lifecycle.md)
78
+ - [Artifacts](../../../reference/project-artifacts.md)
79
+ - [Implementation Execution](../execution/implementation-execution.md)