@open-agent-toolkit/cli 0.3.13 → 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 (119) 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 +32 -0
  9. package/assets/docs/docs-tooling/agent-instructions.md +131 -0
  10. package/assets/docs/docs-tooling/index.md +1 -0
  11. package/assets/docs/docs-tooling/meta.json +1 -1
  12. package/assets/docs/docs-tooling/workflows.md +331 -2
  13. package/assets/docs/{cli-utilities → getting-started}/bootstrap.md +60 -5
  14. package/assets/docs/{guide → getting-started}/concepts.md +28 -10
  15. package/assets/docs/getting-started/index.md +68 -0
  16. package/assets/docs/getting-started/meta.json +4 -0
  17. package/assets/docs/getting-started/quickstart.md +174 -0
  18. package/assets/docs/{cli-utilities → getting-started}/tool-packs.md +142 -14
  19. package/assets/docs/index.md +47 -48
  20. package/assets/docs/meta.json +6 -7
  21. package/assets/docs/provider-sync/commands.md +25 -2
  22. package/assets/docs/provider-sync/config.md +60 -1
  23. package/assets/docs/provider-sync/index.md +31 -15
  24. package/assets/docs/provider-sync/instruction-sync.md +32 -1
  25. package/assets/docs/provider-sync/manifest-and-drift.md +85 -0
  26. package/assets/docs/provider-sync/meta.json +1 -0
  27. package/assets/docs/provider-sync/pilot-with-a-team.md +236 -0
  28. package/assets/docs/provider-sync/scope-and-surface.md +37 -3
  29. package/assets/docs/reference/cli-reference.md +33 -33
  30. package/assets/docs/{cli-utilities → reference}/config-and-local-state.md +25 -9
  31. package/assets/docs/{cli-utilities → reference}/configuration.md +151 -34
  32. package/assets/docs/reference/file-locations.md +4 -1
  33. package/assets/docs/reference/index.md +13 -1
  34. package/assets/docs/reference/meta.json +7 -1
  35. package/assets/docs/reference/oat-directory-structure.md +1 -1
  36. package/assets/docs/{workflows/projects/artifacts.md → reference/project-artifacts.md} +4 -4
  37. package/assets/docs/{workflows/projects/state-machine.md → reference/project-state-machine.md} +1 -1
  38. package/assets/docs/{workflows/projects/repo-analysis.md → reference/repository-pr-comments.md} +2 -2
  39. package/assets/docs/reference/troubleshooting.md +125 -10
  40. package/assets/docs/reference/what-oat-writes.md +410 -0
  41. package/assets/docs/skills/brainstorm.md +77 -0
  42. package/assets/docs/skills/diagnostics.md +56 -0
  43. package/assets/docs/{workflows/skills → skills}/explainer-kit.md +121 -0
  44. package/assets/docs/skills/index.md +416 -0
  45. package/assets/docs/{workflows/skills → skills}/meta.json +4 -2
  46. package/assets/docs/{workflows/skills → skills}/recon.md +49 -0
  47. package/assets/docs/skills/repo-improve.md +254 -0
  48. package/assets/docs/skills/research.md +237 -0
  49. package/assets/docs/skills/session-closeout.md +61 -0
  50. package/assets/docs/workflows/advanced/autonomy.md +344 -0
  51. package/assets/docs/workflows/{projects → advanced}/cursor-cloud.md +69 -1
  52. package/assets/docs/workflows/{projects → advanced}/dispatch-ceiling.md +163 -18
  53. package/assets/docs/workflows/{projects → advanced}/evidence-layers.md +1 -1
  54. package/assets/docs/workflows/advanced/index.md +19 -0
  55. package/assets/docs/workflows/advanced/meta.json +13 -0
  56. package/assets/docs/workflows/{projects → advanced}/orchestration-model.md +63 -4
  57. package/assets/docs/workflows/{projects → advanced}/programmatic-execution.md +4 -4
  58. package/assets/docs/{cli-utilities → workflows/advanced}/workflow-gates.md +162 -8
  59. package/assets/docs/workflows/advanced/worktree-bootstrap.md +83 -0
  60. package/assets/docs/workflows/approvals-and-automation.md +261 -0
  61. package/assets/docs/workflows/backlog-and-planning/backlog-lifecycle.md +348 -0
  62. package/assets/docs/workflows/backlog-and-planning/index.md +13 -0
  63. package/assets/docs/workflows/backlog-and-planning/meta.json +4 -0
  64. package/assets/docs/workflows/backlog-and-planning/remote-project-management.md +303 -0
  65. package/assets/docs/workflows/choose-workflow.md +114 -0
  66. package/assets/docs/workflows/ideas/index.md +3 -3
  67. package/assets/docs/workflows/ideas/lifecycle.md +218 -1
  68. package/assets/docs/workflows/index.md +11 -62
  69. package/assets/docs/workflows/meta.json +10 -2
  70. package/assets/docs/workflows/projects/closeout/closeout-skills.md +538 -0
  71. package/assets/docs/workflows/projects/closeout/index.md +14 -0
  72. package/assets/docs/workflows/projects/closeout/meta.json +4 -0
  73. package/assets/docs/workflows/projects/{pr-flow.md → closeout/pr-flow.md} +1 -1
  74. package/assets/docs/workflows/projects/{retro.md → closeout/retro.md} +1 -1
  75. package/assets/docs/workflows/projects/execution/execution-skills.md +258 -0
  76. package/assets/docs/workflows/projects/{implementation-execution.md → execution/implementation-execution.md} +8 -8
  77. package/assets/docs/workflows/projects/execution/index.md +15 -0
  78. package/assets/docs/workflows/projects/execution/meta.json +9 -0
  79. package/assets/docs/workflows/projects/execution/picking-up-projects.md +376 -0
  80. package/assets/docs/{cli-utilities → workflows/projects/execution}/project-log.md +1 -1
  81. package/assets/docs/workflows/projects/index.md +38 -49
  82. package/assets/docs/workflows/projects/lifecycle.md +47 -11
  83. package/assets/docs/workflows/projects/meta.json +2 -23
  84. package/assets/docs/workflows/projects/{design-modes.md → planning/design-modes.md} +29 -0
  85. package/assets/docs/workflows/projects/planning/hill-checkpoints.md +167 -0
  86. package/assets/docs/workflows/projects/planning/index.md +16 -0
  87. package/assets/docs/workflows/projects/planning/meta.json +10 -0
  88. package/assets/docs/workflows/projects/planning/planning-skills.md +381 -0
  89. package/assets/docs/workflows/projects/{splitting.md → planning/splitting.md} +3 -3
  90. package/assets/docs/workflows/projects/planning/starting-projects.md +511 -0
  91. package/assets/docs/workflows/projects/{reviews.md → reviews/index.md} +51 -5
  92. package/assets/docs/workflows/projects/reviews/meta.json +4 -0
  93. package/assets/docs/workflows/projects/reviews/review-flavors.md +643 -0
  94. package/assets/docs/workflows/projects/{reviewing-oat-prs.md → reviews/reviewing-oat-prs.md} +3 -3
  95. package/assets/docs/workflows/waves/index.md +12 -0
  96. package/assets/docs/workflows/waves/meta.json +4 -0
  97. package/assets/docs/workflows/waves/wave-workflows.md +206 -0
  98. package/assets/public-package-versions.json +4 -4
  99. package/assets/skills/oat-docs/SKILL.md +19 -19
  100. package/assets/skills/oat-docs-analyze/SKILL.md +1 -1
  101. package/assets/skills/oat-docs-apply/SKILL.md +1 -1
  102. package/assets/skills/oat-docs-authoring/SKILL.md +1 -1
  103. package/assets/skills/oat-docs-bootstrap/SKILL.md +1 -1
  104. package/assets/skills/oat-doctor/SKILL.md +25 -25
  105. package/package.json +2 -2
  106. package/assets/docs/cli-utilities/backlog-lifecycle.md +0 -80
  107. package/assets/docs/cli-utilities/index.md +0 -74
  108. package/assets/docs/cli-utilities/meta.json +0 -13
  109. package/assets/docs/cli-utilities/remote-project-management.md +0 -191
  110. package/assets/docs/guide/index.md +0 -31
  111. package/assets/docs/guide/meta.json +0 -4
  112. package/assets/docs/quickstart.md +0 -88
  113. package/assets/docs/workflows/projects/autonomy.md +0 -196
  114. package/assets/docs/workflows/projects/hill-checkpoints.md +0 -93
  115. package/assets/docs/workflows/projects/picking-up-projects.md +0 -124
  116. package/assets/docs/workflows/projects/review-flavors.md +0 -138
  117. package/assets/docs/workflows/skills/index.md +0 -184
  118. package/assets/docs/workflows/skills/repo-improve.md +0 -89
  119. package/assets/docs/workflows/wave-workflows.md +0 -77
@@ -0,0 +1,511 @@
1
+ ---
2
+ title: Starting projects
3
+ description: 'Choose a project entry skill, import an existing plan, capture completed work, or split a confirmed broad scope.'
4
+ ---
5
+
6
+ # Starting projects
7
+
8
+ Choose an entry path based on what you already know and what already exists.
9
+ These skills do not require an existing active project. They create or import
10
+ tracked work, although quick-start and lite resume an active project of their
11
+ own mode, and import writes into whichever project is active.
12
+
13
+ | Your situation | Entry skill | Result |
14
+ | ------------------------------------------------------------------ | ------------------------- | ------------------------------------------------------------------------------ |
15
+ | Requirements need discovery and a full technical design. | `oat-project-new` | A spec-driven scaffold, ready to begin discovery. |
16
+ | The outcome is bounded, with optional design decisions to resolve. | `oat-project-quick-start` | Discovery and an executable plan, with lightweight design when needed. |
17
+ | The change fits one implementation sitting. | `oat-project-lite` | One approved plan with requirements and validation criteria. |
18
+ | You already have a Markdown plan. | `oat-project-import-plan` | The original source preserved beside a normalized OAT plan. |
19
+ | Implementation happened without project tracking. | `oat-project-capture` | Retroactive discovery and implementation records from the session and commits. |
20
+ | A confirmed scope contains several coordinated projects. | `oat-project-split` | A coordination parent and children that resume at discovery. |
21
+
22
+ For the broader mode decision, see [Choose a workflow](../../choose-workflow.md).
23
+ For an existing project's discovery, design, or plan, see
24
+ [Planning skills](planning-skills.md). The [skill catalog](../../../skills/index.md)
25
+ provides the complete supported-skill inventory.
26
+
27
+ A few terms recur on this page. The _active project_ is the project recorded as
28
+ `activeProject` in `.oat/config.local.json`, which project skills act on by
29
+ default. _Spec-driven_ is the full workflow: discovery, design, plan, then
30
+ implementation. An _artifact_ is a project file such as `discovery.md`,
31
+ `plan.md`, or `state.md`.
32
+
33
+ ## Before your first project
34
+
35
+ Check these before you start. Each one can stop or misdirect a first project
36
+ in a fresh repository.
37
+
38
+ 1. **Initialize the repository and install the workflows pack.** Run
39
+ `oat init --scope project`, then install the pack that contains the project
40
+ skills, also with `--scope project`. If you leave out `--scope project`,
41
+ `oat init` uses its default scope, `all`, and also writes under your home
42
+ directory, and the pack installs to your user scope instead of the
43
+ repository:
44
+
45
+ ```bash
46
+ oat init --scope project
47
+ oat tools install workflows --scope project
48
+ ```
49
+
50
+ See [Bootstrap](../../../getting-started/bootstrap.md) and
51
+ [Tool packs](../../../getting-started/tool-packs.md).
52
+
53
+ 2. **Decide where project files live.** New projects default to the `synced`
54
+ scope. A synced project is stored on its own Git ref and pushed to a remote
55
+ named `origin` every time a skill saves it. In a repository with no `origin`
56
+ remote, creating a synced project fails with "Synced project creation
57
+ requires a configured origin remote." Either add an `origin` remote, or
58
+ change the default before you start:
59
+
60
+ ```bash
61
+ oat config set projects.defaultScope shared
62
+ ```
63
+
64
+ `shared` keeps project files in the repository and commits them on the
65
+ current branch. `local` keeps them on this machine only; OAT adds a
66
+ `.gitignore` rule for them. This command writes the repository's
67
+ `.oat/config.json`. The `OAT_PROJECTS_DEFAULT_SCOPE` environment variable
68
+ overrides the setting for one shell.
69
+
70
+ 3. **Only `oat-project-new` takes a scope.** It accepts `--scope shared|local|synced`.
71
+ Quick-start, lite, import, capture, and split have no scope argument.
72
+ Quick-start, lite, import, and capture always create projects in the
73
+ default scope. Split uses the active project's scope, or `shared` when no
74
+ project is active. Set the default first if you do not want `synced`.
75
+
76
+ 4. **Build the knowledge index before spec-driven discovery.** `oat-project-discover`
77
+ refuses to start until `.oat/repo/knowledge/project-index.md` exists. Run
78
+ `/oat-repo-knowledge-index` once before your first spec-driven project.
79
+ Quick-start, lite, import, and capture do not check for it.
80
+
81
+ 5. **Know what happens when a project is already active.** Check with
82
+ `oat config get activeProject` before you start:
83
+ - `oat-project-new` and `oat-project-capture` create a new project and make
84
+ it active instead.
85
+ - `oat-project-quick-start` resumes an active quick project and ignores the
86
+ name and description you pass. If that plan is already
87
+ implementation-ready, it goes straight into `oat-project-implement`.
88
+ - `oat-project-lite` resumes an active lite project and ignores the name and
89
+ description you pass. With any other project active, it creates a new lite
90
+ project.
91
+ - `oat-project-import-plan` writes into any active project, whatever its
92
+ mode. It rewrites that project's `plan.md` and switches it to import mode.
93
+ - `oat-project-split` makes its first child the active project.
94
+
95
+ To start fresh work, run `/oat-project-clear-active` (or switch with
96
+ `/oat-project-open`) first.
97
+
98
+ ## Before invoking an entry skill
99
+
100
+ Examples beginning with `/` are skill requests sent to your agent, not terminal
101
+ commands. In a provider that uses `$` skill syntax, use `$oat-project-new` instead
102
+ of `/oat-project-new`, and apply the same substitution to the other names.
103
+ Blocks labelled `bash` contain terminal commands.
104
+
105
+ Project creation normally activates the new project in `.oat/config.local.json`.
106
+ Check the reported project path before continuing, especially when another
107
+ project is already active.
108
+
109
+ The new, quick-start, lite, and import skills check inherited Git changes before
110
+ scaffolding. Unrelated changes require an explicit disposition in interactive
111
+ runs. One exception: if the only change is `.oat/sync/manifest.json`, it is
112
+ committed automatically as `chore: run sync`. Capture does not run this check.
113
+ Do not assume starting a project also authorizes implementation or a PR.
114
+
115
+ **Dispatch policy.** Before a plan is marked ready, quick-start, lite, and
116
+ import ask you to choose a _dispatch policy_: the highest tier of models and
117
+ effort OAT may use when it dispatches implementation and review agents. The
118
+ choices come from `oat project dispatch-ceiling choices`. If your configuration
119
+ has no complete dispatch ladder (the list of models for each tier), the skill
120
+ shows the bundled recommendation and asks whether to adopt it into shared,
121
+ local, or user config. That writes a config file, so pick the scope
122
+ deliberately. The plan stays not ready until this resolves. See
123
+ [Dispatch policy](../../advanced/dispatch-ceiling.md).
124
+
125
+ **Approval checkpoints.** A _HiLL (human-in-the-loop lifecycle) checkpoint_ is
126
+ a point where a skill stops and waits for your explicit approval before it marks
127
+ a phase complete. Projects created by `oat-project-new` have checkpoints on
128
+ discovery and design by default. Quick, lite, import, and captured projects have
129
+ no workflow-phase checkpoints before implementation. Lite still asks you to
130
+ approve its plan once. See [HiLL checkpoints](hill-checkpoints.md).
131
+
132
+ Several skills also run a configured _exit gate_, an optional review or command
133
+ your repository configures to run before a skill marks its work complete. When
134
+ a gate produces a review the skill can accept, the skill hands it to
135
+ `oat-project-review-receive` without asking.
136
+
137
+ ## oat-project-new
138
+
139
+ Use this entry when you need the spec-driven lifecycle but have not yet explored
140
+ the requirements. This skill creates the project structure. It does not conduct
141
+ discovery or draft the design.
142
+
143
+ **Invocation:** Send the project slug to your agent. Use `--scope` when the
144
+ project's storage scope must differ from the resolved default.
145
+
146
+ ```text
147
+ /oat-project-new webhook-delivery --scope shared
148
+ ```
149
+
150
+ **Prerequisites:** No active project is needed; this skill creates one. You
151
+ need an initialized repository (see [Before your first project](#before-your-first-project)).
152
+ The name accepts letters, numbers, dashes, and underscores. Omitted scope uses
153
+ `projects.defaultScope`, which defaults to `synced`. Synced projects need a Git
154
+ remote named `origin`, and creating one pushes the project to `origin`. In a
155
+ repository without `origin`, or if you do not want that push, pass
156
+ `--scope shared` or `--scope local`.
157
+
158
+ **Example scenario:** You need webhook delivery across several services, but
159
+ retry limits, ownership, and failure handling are still undecided. Create
160
+ `webhook-delivery` in shared scope so its artifacts live in the repository.
161
+ Choose this entry rather than quick-start because the requirements and component
162
+ boundaries need a full discovery and design pass.
163
+
164
+ **Expected output:** The scaffolder creates standard project artifacts, reports
165
+ their scope and path, sets the active project, and refreshes the local dashboard
166
+ when enabled. Templates resolve from the repository, then user scope, then the
167
+ bundle. The scaffold is not an approved plan. Its `state.md` sets HiLL
168
+ checkpoints on discovery and design.
169
+
170
+ **What it does without asking:** After the Git-changes check, it runs
171
+ `oat project new`, which creates the project directory and artifacts, makes the
172
+ new project active (replacing any active project), and refreshes `.oat/state.md`.
173
+ It also records the scaffold in Git: a commit in shared scope; in synced scope,
174
+ a push to `origin` plus a commit of the project record and of any `.gitignore`
175
+ rule it added; in local scope, a `.gitignore` rule that it leaves uncommitted.
176
+ It does not start discovery.
177
+
178
+ **Next step:** If `.oat/repo/knowledge/project-index.md` does not exist yet, run
179
+ `oat-repo-knowledge-index` first; discovery refuses to start without it. Then
180
+ invoke [oat-project-discover](planning-skills.md#oat-project-discover) to
181
+ explore the problem. The optional `--force` scaffold flag allows the same slug
182
+ to exist in another scope and fills missing files without overwriting existing
183
+ content. It is not a reset.
184
+
185
+ ## oat-project-quick-start
186
+
187
+ Use quick-start to turn a bounded request into a runnable plan without requiring
188
+ separate spec and design phases. Discovery depth follows the ambiguity of the
189
+ request, not the number of files you expect to change.
190
+
191
+ **Invocation:** Supply a name and a substantive description. A bare name prompts
192
+ for the description before repository exploration begins.
193
+
194
+ ```text
195
+ /oat-project-quick-start export-filter "Add a date-range filter to CSV exports, preserving the current default output."
196
+ ```
197
+
198
+ **Prerequisites:** No active project is needed. The repository must contain
199
+ OAT scaffolding, including `.oat/` and `.agents/`, and you need a task
200
+ objective. The new project uses the default scope, because quick-start takes no
201
+ scope argument. If the active project is a quick project, quick-start resumes it
202
+ and ignores the name and description you pass. If that plan is already
203
+ implementation-ready, it goes straight into `oat-project-implement`. To start a
204
+ different piece of work, run `oat-project-clear-active` (or open another
205
+ project) first. The contract does not define what happens when the active
206
+ project uses another mode, so clear or switch it first in that case too.
207
+
208
+ **Example scenario:** The export endpoint works, and you know which date range
209
+ users need. You still need to decide where the filter belongs and how to verify
210
+ unchanged default exports. Quick-start captures those constraints and either
211
+ plans directly or adds lightweight design before writing tasks.
212
+
213
+ **Expected output:** A new or resumed quick project has `discovery.md`, an
214
+ execution-ready `plan.md`, and initialized `implementation.md`. The design
215
+ decision can select straight-to-plan, lightweight `design.md`, or promotion to
216
+ spec-driven. Lightweight design does not create `spec.md` and offers
217
+ collaborative or draft-and-review interaction, not selective collaborative.
218
+
219
+ Before marking the plan ready, the skill asks you to choose a dispatch policy
220
+ (and, if needed, where to adopt a dispatch ladder), then records the
221
+ plan-review result. It commits changed project artifacts and runs any
222
+ configured exit gate. If promotion is selected during discovery, it stops with a
223
+ design handoff instead of generating a quick plan.
224
+
225
+ **What it does without asking:** It creates the project through
226
+ `oat project new` in the default scope (commit or push as described under
227
+ oat-project-new) and makes it active. It commits the changed artifacts
228
+ (`discovery.md`, `design.md`, `plan.md`, `implementation.md`, `state.md`) before
229
+ every pause and again before handoff; in synced scope each commit is an
230
+ `oat project push` to `origin`. It runs the plan artifact review automatically,
231
+ usually in your current agent session, and may launch a separate reviewer agent
232
+ when the current model is unknown or below the reviewer tier. It applies
233
+ unambiguous Critical and High fixes to `plan.md`. It runs any configured exit
234
+ gate and passes an eligible result to `oat-project-review-receive`. When it
235
+ resumes a quick project whose plan is already ready, it starts
236
+ `oat-project-implement`. It asks before: proceeding with a dirty working tree,
237
+ choosing design depth (skipped for clear requests with no design questions),
238
+ confirming the requirements behind the plan, choosing a lightweight design
239
+ mode, adopting a dispatch ladder into config, choosing the dispatch policy,
240
+ enabling an extra phase gate review, and keeping or disabling configured gates
241
+ for this project.
242
+
243
+ **Next step:** Follow the reported handoff to `oat-project-implement` once the
244
+ quick plan is ready. If interrupted before readiness, run quick-start again to
245
+ continue in place. Do not use `oat-project-plan` to finish a quick plan.
246
+
247
+ ## oat-project-lite
248
+
249
+ Use lite for a change that fits one implementation sitting and needs explicit
250
+ requirements, proof, and approval in one plan. Lite keeps resumable task commits
251
+ and review while removing separate discovery, spec, and design documents.
252
+
253
+ **Invocation:** Provide the slug and the intended change.
254
+
255
+ ```text
256
+ /oat-project-lite retry-message "Show the failed request's retry delay in the CLI error message without changing retry behavior."
257
+ ```
258
+
259
+ **Prerequisites:** No active project is needed. You need an OAT-initialized
260
+ repository and a change intended to fit one sitting. The new project uses the
261
+ default scope, because lite takes no scope argument. If the active project is a
262
+ lite project, lite resumes it and ignores the name and description you pass.
263
+ With any other project active, lite creates a new lite project and makes it
264
+ active. To start a different piece of work while a lite project is active, run
265
+ `oat-project-clear-active` first. Unresolved implementation-affecting design
266
+ decisions or a larger task list trigger promotion to quick mode.
267
+
268
+ **Example scenario:** Users cannot tell when the CLI will retry a failed
269
+ request. The retry algorithm is already correct, so the change only adds the
270
+ delay to the message. Lite asks one batched round of critical questions (plus a
271
+ short follow-up only if your answers raise new ones), records the message
272
+ behavior and its proof, and gives you one plan to approve.
273
+
274
+ **Expected output:** A single sequential phase in `plan.md`, with Summary,
275
+ Decisions, Assumptions, Out of Scope, and executable Validation Criteria. The
276
+ selected content shape adds Product Behavior, Technical Design, or both when
277
+ needed. This example changes visible behavior, so product content is required.
278
+
279
+ The skill persists the authored plan before approval, asks you to choose a
280
+ dispatch policy, records artifact review, and runs the configured exit gate
281
+ before marking readiness. It creates no `spec.md` or `design.md`, no parallel
282
+ group, and no phase-review or [HiLL checkpoint](hill-checkpoints.md) setup. If
283
+ it promotes instead, the authored plan remains available to quick-start.
284
+
285
+ **What it does without asking:** It creates the project through
286
+ `oat project new` in the default scope and makes it active. It writes
287
+ `plan.md`, `state.md`, and `implementation.md` and commits them three times:
288
+ after authoring (before approval), after artifact review, and at completion. In
289
+ synced scope each commit is an `oat project push` to `origin`. If its
290
+ escalation check finds that the work will not fit one sitting or a design
291
+ decision is unresolved, it runs `oat project promote --to quick` and stops,
292
+ pointing you to quick-start. Artifact review runs with no pause and applies only
293
+ unambiguous fixes. It runs any configured exit gate and passes an eligible result
294
+ to `oat-project-review-receive`. It asks before: proceeding with a dirty working
295
+ tree, the critical interview, approving the plan (approve, revise, or promote),
296
+ adopting a dispatch ladder into config, choosing the dispatch policy, and
297
+ keeping or disabling configured gates for this project.
298
+
299
+ **Next step:** Run `oat-project-implement` after the approved lite plan is ready.
300
+ If the scope grows, continue through `oat-project-quick-start` after promotion.
301
+
302
+ ## oat-project-import-plan
303
+
304
+ Use import when the plan already exists, including one produced in a provider's
305
+ native plan mode. Import preserves the source before translating it into OAT
306
+ task and review structure.
307
+
308
+ **Invocation:** Provide the local Markdown path. The provider hint records where
309
+ the plan came from.
310
+
311
+ ```text
312
+ /oat-project-import-plan ./plans/cache-refresh.md --provider codex --project cache-refresh
313
+ ```
314
+
315
+ **Prerequisites:** No active project is needed. The external file must exist,
316
+ contain content, and use `.md` unless you explicitly confirm another Markdown
317
+ extension. OAT repository scaffolding must be available.
318
+
319
+ If any project is active, import writes into **that** project, whatever its
320
+ mode: it normalizes the plan into its `plan.md` and switches it to import mode.
321
+ That includes a spec-driven project in the middle of design. `--project` is read
322
+ only when no project is active. To import into a new project, run
323
+ `oat-project-clear-active` first.
324
+
325
+ In the default `synced` scope, the import contract can resolve the wrong
326
+ project directory for a new project: it looks for the new project under
327
+ `projects.root` (`.oat/projects/shared` by default) while the scaffolder creates
328
+ it under `.oat/projects/synced`. Until that is fixed, set `projects.defaultScope`
329
+ to `shared` before importing into a new project, or create the project first and
330
+ import into it while it is active. Confirm the reported project path afterwards.
331
+
332
+ **Example scenario:** You drafted cache-refresh work in Codex plan mode and now
333
+ want stable task IDs and tracked execution. Your repository's default scope is
334
+ `shared` and no project is active, so import creates `cache-refresh` and
335
+ imports the saved file into it. Choose import instead of quick-start because
336
+ the plan's intent and ordering already exist and need preservation, not another
337
+ discovery conversation.
338
+
339
+ **Expected output:** `references/imported-plan.md` preserves the source.
340
+ `plan.md` contains normalized phases, stable `pNN-tNN` tasks, verification,
341
+ review rows, and imported provenance. The source file remains unchanged.
342
+ Replacing an existing source snapshot requires confirmation. A timestamped
343
+ snapshot preserves a later import.
344
+
345
+ The skill asks you to choose a dispatch policy, records import-aware plan
346
+ review, initializes the implementation tracker, persists artifacts, and runs any
347
+ configured exit gate. A normalized single-phase plan with no parallel group can
348
+ offer lite execution. Accepting that offer preserves import provenance. A single
349
+ phase alone does not mean the work fits one sitting, so keep import mode for
350
+ longer-running work.
351
+
352
+ **What it does without asking:** With no active project, it creates one through
353
+ `oat project new --mode import` in the default scope, or activates an existing
354
+ project of that name under `projects.root`. It copies the source into
355
+ `references/`, writes the normalized `plan.md`, sets the project's workflow mode
356
+ to `import` (or `lite` if you accept the offer), creates `implementation.md` if
357
+ missing, makes the project active, and refreshes `.oat/state.md`. Plan review
358
+ runs automatically and applies unambiguous Critical and High conformance fixes.
359
+ It then commits `references/`, `plan.md`, `implementation.md`, and `state.md`;
360
+ in synced scope that is an `oat project push` to `origin`. It runs any
361
+ configured exit gate and passes an eligible result to `oat-project-review-receive`.
362
+ It asks before: proceeding with a dirty working tree, naming the project when no
363
+ project is active and `--project` is absent, picking a plan file when you gave
364
+ no path, accepting a non-`.md` extension, the lite offer, adopting a dispatch
365
+ ladder into config, choosing the dispatch policy, enabling an extra phase gate
366
+ review, and keeping or disabling configured gates for this project.
367
+
368
+ **Next step:** Use `oat-project-implement` after the import handoff completes.
369
+ Resolve missing verification detail before execution. Normalization can expose
370
+ TODO-style gaps rather than invent a proof for the external author.
371
+
372
+ ## oat-project-capture
373
+
374
+ Use capture after implementation happened outside OAT tracking. Capture records
375
+ why the work happened from the conversation and what changed from Git history.
376
+ It does not invent a retroactive execution plan.
377
+
378
+ **Invocation:** Invoke the skill in the session that knows the work's context.
379
+ You can explain the goal in the same conversation.
380
+
381
+ ```text
382
+ /oat-project-capture
383
+ Capture the retry middleware we implemented in this session as a project, ready for review.
384
+ ```
385
+
386
+ **Prerequisites:** No active project is needed; capture creates a new one in
387
+ the default scope. You need a feature branch with at least one commit beyond its
388
+ base and available conversation context. If a project already tracks the
389
+ branch, use `oat-project-reconcile` instead. With no branch commits to capture,
390
+ this skill reports that there is nothing to capture yet.
391
+
392
+ **Example scenario:** A small retry fix grew into middleware and tests during
393
+ an untracked session. The commits explain the changes, but not why one retry
394
+ policy was rejected. Capture uses that conversation to preserve the reasoning
395
+ and groups related commits into implementation records for review.
396
+
397
+ **Expected output:** A quick-mode project with `oat_workflow_origin: captured`,
398
+ populated `discovery.md`, and `implementation.md` entries tied to commit SHAs.
399
+ You confirm the proposed project name and the discovery summary, and choose
400
+ whether the work is ready for review or still in progress. The scaffold's
401
+ `plan.md` template is acceptable, but capture writes no retroactive plan tasks,
402
+ spec, design, or new implementation.
403
+
404
+ **What it does without asking:** It runs `oat project new --mode quick` in the
405
+ default scope (commit or push as described under oat-project-new), which makes
406
+ the new project active and replaces any active project. It writes `state.md`,
407
+ `discovery.md`, and `implementation.md`, commits them (an `oat project push` in
408
+ synced scope), and refreshes `.oat/state.md`. It asks before: using the proposed
409
+ project name, accepting the discovery summary, and setting the work as ready for
410
+ review or still in progress.
411
+
412
+ **Next step:** For review-ready work, use `oat-project-review-provide` before
413
+ sharing it, or `oat-project-pr-final` to open a PR directly. For work still in
414
+ progress, continue implementation and reconcile new commits into the tracked
415
+ project.
416
+
417
+ ## oat-project-split
418
+
419
+ Use split after a discovery or brainstorm has confirmed several coordinated
420
+ projects. The parent records their relationship. It does not become another
421
+ implementation project.
422
+
423
+ **Invocation:** Provide a persisted split-plan JSON file, not just child names.
424
+ The skill passes that file to the split orchestrator.
425
+
426
+ ```text
427
+ /oat-project-split --plan-file ./split-plan.json
428
+ ```
429
+
430
+ The corresponding terminal command is:
431
+
432
+ ```bash
433
+ oat project split run --plan-file ./split-plan.json
434
+ ```
435
+
436
+ **Prerequisites:** No active project is needed. You need a saved split-plan
437
+ file (a `SplitPlanDocument`) and a confirmed split trigger. An explicit
438
+ multi-project declaration, a confirmed discovery recommendation, or the
439
+ brainstorm split destination can supply the trigger. Detected recommendations in
440
+ non-interactive execution must fail fast, not silently choose a split.
441
+
442
+ A split confirmed during discovery or brainstorm does not produce this file.
443
+ Those skills hand split an in-conversation payload, and split currently accepts
444
+ only a saved file, so the file must be saved before split can run. You (or your
445
+ agent) write it as JSON with this shape:
446
+
447
+ ```json
448
+ {
449
+ "origin": "detected-convergence",
450
+ "interactive": true,
451
+ "plan": {
452
+ "parentSlug": "billing-platform",
453
+ "children": [
454
+ {
455
+ "slug": "billing-migration",
456
+ "description": "Move invoicing onto the new billing service.",
457
+ "inheritedContext": "Discovery decisions that apply to this child.",
458
+ "knownDependencies": [],
459
+ "order": 1
460
+ },
461
+ {
462
+ "slug": "reporting-redesign",
463
+ "inheritedContext": "Discovery decisions that apply to this child.",
464
+ "knownDependencies": ["billing-migration"],
465
+ "order": 2
466
+ }
467
+ ],
468
+ "initialActiveChild": "billing-migration"
469
+ }
470
+ }
471
+ ```
472
+
473
+ `origin` is one of `declared`, `detected-mid-stream`, `detected-convergence`,
474
+ or `brainstorm-picker`. `foundationChild` and `integrationSketch` are optional
475
+ fields of `plan`. Check the file before running split:
476
+
477
+ ```bash
478
+ oat project split validate-plan --plan-file ./split-plan.json
479
+ ```
480
+
481
+ **Example scenario:** Discovery identifies a billing-service migration and an
482
+ independent reporting redesign. You confirm that each needs its own project
483
+ while keeping their integration context. Discovery's split offer does not save a
484
+ plan file, so you (or your agent) write the parent, children, and ordering to
485
+ `split-plan.json` in the shape above. Check it with
486
+ `oat project split validate-plan --plan-file ./split-plan.json`, then invoke
487
+ split with that file. Split creates a coordination parent, seeds the children in
488
+ order, and activates the initial child.
489
+
490
+ **Expected output:** The parent has `oat_kind: coordination`, ordered child
491
+ links, `references/split-plan.json`, and complete decomposition status. It has
492
+ no executable spec, design, plan, or implementation artifacts. Children are
493
+ created as quick projects. They retain parent, sibling, and dependency links, but
494
+ their discovery remains in progress. Inherited context needs revalidation, and
495
+ child plans remain template placeholders rather than implementation-ready plans.
496
+
497
+ **What it does without asking:** It runs `oat project split run`, which creates
498
+ the parent and every child in the active project's scope (`shared` when no
499
+ project is active). In synced scope it pushes each project to `origin`; in
500
+ shared and local scope it does not commit. It writes the parent's `state.md`,
501
+ `discovery.md`, and `references/split-plan.json`, removes the parent's
502
+ executable phase files, seeds each child, makes the initial child active, and
503
+ refreshes `.oat/state.md`. It asks for the plan file path when you give none,
504
+ and asks before resuming a partially completed split.
505
+
506
+ **Next step:** Revalidate the active child's inherited context through its
507
+ discovery path. Children are quick projects, so resume the active child with
508
+ `oat-project-quick-start`, which picks it up at discovery. If generation stopped
509
+ partway through, rerun the orchestrator using the persisted split plan rather
510
+ than rebuilding seed data from child slugs. See [Project splitting](splitting.md)
511
+ for the full coordination contract.
@@ -134,11 +134,14 @@ This is separate from Tier 1 phase gate reviews. Tier 1 implementation always ru
134
134
 
135
135
  Auto-triggered reviews use `oat_review_invocation: auto` in the review artifact frontmatter. In auto mode, `oat-project-review-receive` auto-converts all findings to fix tasks without user prompts (Low findings that are clearly out of scope are deferred with a note).
136
136
 
137
- This feature is opt-in and disabled by default. When disabled, the manual `oat-project-review-provide` workflow applies.
137
+ This preference is unset by default: interactive implementation asks with
138
+ "no" suggested. Autonomous non-lite implementation forces it on; lite bypasses
139
+ checkpoints. When disabled, the manual `oat-project-review-provide` workflow
140
+ applies, while required per-phase and final reviews still run.
138
141
 
139
142
  ## Phase review gate
140
143
 
141
- The phase review gate is an optional, **non-pausing** external review gate that runs after a phase's standard per-phase reviewer passes and the phase bookkeeping is committed. Where the Tier 1 reviewer is an in-session self-review, the gate calls `oat gate review` against the configured cross-provider target, adding an independent perspective before implementation moves to the next phase. It is enabled per-project through `plan.md` frontmatter (`oat_phase_review_gate`; see [Project Artifacts](artifacts.md#oat_phase_review_gate) for the field shape and validation).
144
+ The phase review gate is an optional, **non-pausing** external review gate that runs after a phase's standard per-phase reviewer passes and the phase bookkeeping is committed. Where the Tier 1 reviewer is an in-session self-review, the gate calls `oat gate review` against the configured cross-provider target, adding an independent perspective before implementation moves to the next phase. It is enabled per-project through `plan.md` frontmatter (`oat_phase_review_gate`; see [Project Artifacts](../../../reference/project-artifacts.md#oat_phase_review_gate) for the field shape and validation).
142
145
 
143
146
  Plan-producing workflows run the shared setup after stable phase IDs exist and
144
147
  before the plan artifact review. A read-only probe requires an explicitly
@@ -148,7 +151,7 @@ preserved unchanged without re-prompting, including resumed and imported plans.
148
151
  Probe failure, no qualifying target, non-interactive execution, or user decline
149
152
  leaves the gate disabled.
150
153
 
151
- It is independent of [HiLL checkpoints](hill-checkpoints.md): a passing gate does not pause, and the gate never touches `oat_hill_completed`, `oat_plan_hill_phases`, or `oat_auto_review_at_hill_checkpoints`.
154
+ It is independent of [HiLL checkpoints](../planning/hill-checkpoints.md): a passing gate does not pause, and the gate never touches `oat_hill_completed`, `oat_plan_hill_phases`, or `oat_auto_review_at_hill_checkpoints`.
152
155
 
153
156
  Gate-produced review artifacts use `oat_review_invocation: gate` in frontmatter (the third invocation marker alongside `manual` and `auto`). The gate verdict — controlled by `exit_nonzero_on` (default `high`) — decides whether the **phase stops**; it does not decide whether sub-threshold findings are ignored. Before invoking `oat-project-review-receive`, the result must satisfy all three eligibility conditions: `status` is `ok` or `blocked`, `receiveEligible` is `true`, and `handoff` is non-null. A missing or contradictory field is an operational failure even when `artifactPath` is present. Once eligibility is established, the produced artifact is consumed autonomously and without user prompts, so findings never evaporate:
154
157
 
@@ -165,7 +168,7 @@ is evaluated.
165
168
 
166
169
  Gate-originated artifacts (`oat_review_invocation: gate`) are excluded from the same-scope review-cycle cap in `oat-project-review-receive`. The cap measures failed fix cycles of the standard review loop, so counting gate artifacts would trip it on artifact volume rather than real fix rounds.
167
170
 
168
- When a phase is re-gated multiple times, each round produces a distinct review artifact — filenames and `oat_generated_at` are seconds-precision, so rounds never collide and `oat review latest` resolves the newest. An orchestrator should know a gate finished from the `oat --json gate review` result envelope on process exit (`status`, `runId`, `generatedAt`), not by watching the `reviews/` directory or the provider's log; see [Gate completion signal](../../cli-utilities/workflow-gates.md#gate-completion-signal).
171
+ When a phase is re-gated multiple times, each round produces a distinct review artifact — filenames and `oat_generated_at` are seconds-precision, so rounds never collide and `oat review latest` resolves the newest. An orchestrator should know a gate finished from the `oat --json gate review` result envelope on process exit (`status`, `runId`, `generatedAt`), not by watching the `reviews/` directory or the provider's log; see [Gate completion signal](../../advanced/workflow-gates.md#gate-completion-signal).
169
172
 
170
173
  This feature is opt-in and disabled by default (missing or `enabled: false`). For a parallel phase group, selected gates run after fan-in and bookkeeping, one per merged phase in plan order.
171
174
 
@@ -211,7 +214,7 @@ Every re-review reports one resolution line naming the selected range, the reaso
211
214
 
212
215
  A narrowed artifact names the prior artifact and reviewed head it builds on. It must not restate requirements-coverage claims that the narrowed pass did not verify; it references the prior artifact's coverage or marks inherited rows as inherited so the union of passes remains auditable.
213
216
 
214
- See [Workflow preferences in the Configuration guide](../../cli-utilities/configuration.md#workflow-preferences-workflow) for config scopes and the full list of preference keys.
217
+ See [Workflow preferences in the Configuration guide](../../../reference/configuration.md#workflow-preferences-workflow) for config scopes and the full list of preference keys.
215
218
 
216
219
  ## Phase and final review
217
220
 
@@ -364,3 +367,46 @@ validation decisions, and output ownership.
364
367
  - `.agents/skills/oat-project-review-provide-remote/SKILL.md`
365
368
  - `.agents/skills/oat-project-review-receive/SKILL.md`
366
369
  - `.agents/skills/oat-project-review-receive-remote/SKILL.md`
370
+
371
+ ## Contents
372
+
373
+ - [Review Flavors](review-flavors.md) - The four review flavors and who resolves each one's target.
374
+ - [Reviewing OAT PRs](reviewing-oat-prs.md) - Read synced-project records and SHA-pinned reviewer links in a PR.
375
+
376
+ ## Choosing review controls
377
+
378
+ These settings tune the reviews described on this page. A **gate** is an extra
379
+ review by a second agent CLI that turns its findings into a pass or a fail; see
380
+ [Workflow Gates](../../advanced/workflow-gates.md). Whatever you choose here,
381
+ the code review after each implementation phase and the final review still run.
382
+
383
+ | Control | Default | Choose a different value when | What it costs |
384
+ | -------------------------------------------------------------- | ------------------------------------ | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
385
+ | Gate severity (`--exit-nonzero-on`) | `high` | Set `medium` when Medium findings should also block | More fix rounds. Findings below the threshold are still received |
386
+ | [Phase review gate](#phase-review-gate) | Off | Turn it on when you want a second model to check each phase early | One extra gate run per selected phase. It never pauses for a person |
387
+ | [Artifact review loops](#auto-artifact-review-loops) | On for plans and analyses | Turn a loop off only when something else reviews that artifact | Turning it off records the review as skipped, not verified |
388
+ | [Review at HiLL checkpoints](#auto-review-at-hill-checkpoints) | Unset: the agent asks, suggesting no | Set `true` when nobody will be around at checkpoints | An extra lifecycle review at each checkpoint |
389
+ | [Re-review scope narrowing](#re-review-scope-narrowing) | On | Set `false` when fixes might break code that was already reviewed | Narrowed re-reviews skip unchanged code. If OAT cannot verify the earlier review, it reviews everything |
390
+ | [Final review execution](#phase-and-final-review) | Unset: the agent asks | Set `subagent` when your agent tool supports subagents | `inline` keeps the review in the same conversation; `fresh-session` needs you to start the review |
391
+
392
+ An artifact review loop runs in the same agent session that wrote the artifact,
393
+ so it is not an independent review. It retries up to the project's retry limit,
394
+ which defaults to two; a limit of zero still allows the first review. Autonomous
395
+ runs turn on review at HiLL checkpoints for every project except lite projects,
396
+ which have no checkpoints.
397
+
398
+ - If you are a solo developer, or runs are unattended, and your agent tool
399
+ supports subagents, set the final review execution to `subagent`.
400
+ - If a plan or analysis will be handed to another workflow, keep its artifact
401
+ loop on. If you also want a second model family to check it, add a planning
402
+ gate and check which reviewer it actually used.
403
+ - If the change is high-risk, such as a security fix that could affect code
404
+ already reviewed, turn off re-review narrowing and set gate severity to
405
+ `medium`.
406
+ - If your team wants a second model after every phase, turn on the phase review
407
+ gate. If nobody will be present at checkpoints, set
408
+ `workflow.autoReviewAtHillCheckpoints` to `true` before the first
409
+ implementation run, because that run copies the value into `plan.md`.
410
+ - Choose `fresh-session` only when a person will start the review in a new
411
+ session, and `inline` only when a review in the same conversation is
412
+ acceptable and the skill allows it.
@@ -0,0 +1,4 @@
1
+ {
2
+ "title": "Reviews",
3
+ "pages": ["review-flavors", "reviewing-oat-prs"]
4
+ }