@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
@@ -0,0 +1,83 @@
1
+ ---
2
+ title: Worktree bootstrap
3
+ description: 'Create or validate an isolated Git worktree and run the repository-specific readiness checks before implementation.'
4
+ ---
5
+
6
+ # Worktree bootstrap
7
+
8
+ Use a separate worktree when a task needs its own branch and checkout. Bootstrap
9
+ prepares that checkout. It does not approve a plan, implement code, or prove that
10
+ another worktree's tests pass here.
11
+
12
+ Examples beginning with `/` invoke an agent skill. Providers that use `$` skill
13
+ syntax use `$oat-worktree-bootstrap` instead. These are not terminal commands.
14
+ For host-managed worktrees, follow the host's conventions and validate the
15
+ existing checkout rather than creating a duplicate to normalize its path.
16
+
17
+ Terms used on this page:
18
+
19
+ - **Worktree:** a separate Git checkout of the same repository, with its own
20
+ folder and branch, created with `git worktree add`.
21
+ - **Active project:** the OAT project your checkout currently points to,
22
+ stored as `activeProject` in `.oat/config.local.json`.
23
+ - **Synced project:** a project whose artifacts live on a separate Git ref
24
+ instead of on your feature branch; `oat project pull` brings them into a
25
+ checkout.
26
+
27
+ ## oat-worktree-bootstrap
28
+
29
+ **Invocation:** Name the branch for a new worktree and optionally choose its base.
30
+ Without `--base`, a new branch starts from `origin/main`. `--path` overrides the
31
+ worktree root, not the final branch-specific directory. The skill runs only
32
+ when you invoke it by name.
33
+
34
+ ```text
35
+ /oat-worktree-bootstrap export-filter --base origin/main
36
+ ```
37
+
38
+ To prepare the current already-registered worktree instead:
39
+
40
+ ```text
41
+ /oat-worktree-bootstrap --existing
42
+ ```
43
+
44
+ **Prerequisites:** Needs an active OAT project: no, but the skill uses one if
45
+ it is set. You need a Git repository, its required toolchain, and OAT files in
46
+ `.oat/` and `.agents/`. Creation requires a branch name and a repository clean
47
+ enough for the operation. If the active-project pointer exists but is invalid,
48
+ the skill asks you to clear or open the intended project rather than rewrite
49
+ it.
50
+
51
+ **What it does without asking:** the skill creates the worktree with
52
+ `git worktree add`, which also creates the branch when it does not exist yet.
53
+ It copies `.oat/config.local.json` into the new worktree when the worktree has
54
+ none, copies configured local-only paths with `oat local sync`, and pulls an
55
+ active synced project with `oat project pull`. It then runs the repository's
56
+ setup command (for example, dependency installation) and its readiness and
57
+ baseline checks, stating each selected command before running it. Apart from
58
+ the invalid-pointer question above, it asks before continuing only when the
59
+ baseline check fails;
60
+ if you choose to proceed anyway and an active project has `implementation.md`,
61
+ it appends a timestamped baseline-failure note there.
62
+
63
+ **Example scenario:** You need to implement an export filter without mixing its
64
+ changes into a reporting branch. Bootstrap creates the feature worktree at the
65
+ chosen base, carries safe local context, and runs that repository's setup and
66
+ baseline checks. If Orca or another host already created the checkout, choose
67
+ `--existing` to validate and initialize that same worktree.
68
+
69
+ **Expected output:** The reported checkout has the intended branch and path,
70
+ bootstrap results, readiness status, and a next action. Root selection follows
71
+ the explicit `--path`, environment, configured root, then documented directory
72
+ precedence. Repository-local roots must be Git-ignored before creation.
73
+
74
+ Local config copies only when the destination is absent. Configured local paths
75
+ are synchronized, and active synced project context is pulled when present.
76
+ Setup comes from repository instructions and manifests, not an assumed package
77
+ manager. Baseline failures require a disposition. Setup failure or a dirty
78
+ post-bootstrap worktree cannot be reported as ready.
79
+
80
+ **Next step:** Review the actual readiness result, then use
81
+ `oat-project-implement` for an approved tracked plan. Without an active project,
82
+ choose a [project entry workflow](../projects/planning/starting-projects.md)
83
+ before tracked implementation.
@@ -0,0 +1,261 @@
1
+ ---
2
+ title: Approvals and Automation
3
+ description: Where a person approves in each OAT workflow mode, what runs without asking, how many agent runs a project starts, and which controls are advisory rather than enforced.
4
+ ---
5
+
6
+ # Where people approve, and what runs automatically
7
+
8
+ This page shows where a person approves work in each OAT workflow mode, what
9
+ an agent does without asking, and how many agent runs a project starts. It also
10
+ says which team settings a developer can change on their own machine, and links
11
+ to the detail.
12
+
13
+ ## At a glance
14
+
15
+ A HiLL (human-in-the-loop lifecycle) checkpoint is a point where the agent
16
+ stops and waits for a person to approve before it continues.
17
+
18
+ | Mode | A person approves before code is written | Pauses during implementation | Reviews that run automatically | At the end | Never |
19
+ | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------- | ----------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------- |
20
+ | No project | You direct each step yourself | None | None; run `oat-review-provide` when you want a review | OAT opens no pull request | Not applicable |
21
+ | Lite | Once: the requirements and the single-phase plan | None | Plan review, phase review, final review | Opens a pull request by itself; no setting removes this step | Merges a pull request |
22
+ | Quick | You confirm the requirements (or the lightweight design). No plan-approval prompt: the plan is marked ready after an automatic review | First run lists the phases and asks where to stop; suggested: after every phase | Plan review, a review after every phase, final review | Opens a pull request by itself only if `workflow.postImplementSequence` asks | Merges a pull request |
23
+ | Spec-driven | Discovery, then the requirements and design. Planning asks you in chat to confirm the task breakdown, but no plan approval is recorded; the plan is marked ready after an automatic review | Same as quick | Same as quick | Same as quick | Merges a pull request |
24
+ | Imported plan | No approval step; OAT normalizes your plan and reviews it automatically | Same as quick | Same as quick | Same as quick | Merges a pull request |
25
+ | Autonomous run | None; it answers its own questions and stops only at defined boundaries | None; it approves the final checkpoint itself after a passing final review | All of the above, plus a review at every checkpoint | Opens a pull request by default | Merges or force-pushes |
26
+
27
+ Phase reviews need no person. The final review always runs, but an interactive
28
+ run first asks how to run it unless `workflow.reviewExecutionModel` is set. If
29
+ the final phase is a checkpoint, you approve the finished work after the final
30
+ review; with `workflow.postImplementSequence` set to `pr` or `docs-pr`, the pull
31
+ request opens before that approval.
32
+
33
+ **Quick, spec-driven, and imported projects have no plan-approval prompt.**
34
+ Planning ends with an automatic plan review. That review applies Critical and
35
+ High fixes itself and offers you the Medium and Low ones, and then the skill
36
+ marks `plan.md` ready for implementation. The planning skill
37
+ (`/oat-project-quick-start`, `/oat-project-plan`, or `/oat-project-import-plan`)
38
+ then stops: it reports the phases and names `/oat-project-implement` as the
39
+ next step, and no code is written until you run that skill (or
40
+ `/oat-project-next`, which starts it without asking). That stop is your chance
41
+ to review the plan, so read `plan.md` when planning finishes and before you run
42
+ `/oat-project-implement`. Do not re-run `/oat-project-quick-start` to continue:
43
+ on a quick project whose plan is ready, it starts implementation straight away.
44
+
45
+ What does and does not give a person a say on the plan:
46
+
47
+ - **Lite:** its single approval covers the requirements and the plan, and the
48
+ decision is written into `plan.md`.
49
+ - **Spec-driven:** `/oat-project-plan` asks "Does this breakdown make sense? Any
50
+ tasks missing?" in the chat and revises until you confirm. That confirmation
51
+ is not recorded as an approval, and the automatic review that follows can
52
+ still change the plan.
53
+ - **Quick and imported:** nothing asks you to approve or confirm the plan.
54
+ Planning may still ask setup questions, such as which dispatch policy to use
55
+ or whether to add gates.
56
+ - **A `plan` checkpoint does not add a pause.** Listing `plan` in a project's
57
+ `oat_hill_checkpoints` in `state.md` does not stop the agent: the planning
58
+ skill marks that checkpoint complete itself when it finishes.
59
+ - **First implementation run:** `oat-project-implement` lists every phase and
60
+ asks where to pause before any task runs. That is a checkpoint question, not
61
+ a plan approval, but it is the last point to stop before code is written. It
62
+ is skipped when `workflow.hillCheckpointDefault` is set and in autonomous
63
+ runs. See [HiLL Checkpoints](projects/planning/hill-checkpoints.md).
64
+ - **Autonomous runs:** no person sees the plan before implementation.
65
+
66
+ ## How many agent runs does a project start?
67
+
68
+ An agent run is one model launch for one bounded job, such as implementing or
69
+ reviewing a phase. A _gate_ is an optional extra review that a skill runs as
70
+ its last step, by a separate reviewer agent, usually in a different agent tool.
71
+ No gate is configured by default.
72
+
73
+ | Step | Runs | Limit |
74
+ | ------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
75
+ | Plan review | 1, plus 1 re-review after each round of fixes | `oat_orchestration_retry_limit` in `state.md`: 2 re-reviews by default |
76
+ | Each implementation phase | 1 implementer and 1 reviewer | A Critical or High finding adds a fix and a new review, at most 2 rounds by default |
77
+ | Final review | 1 reviewer | At most 3 review cycles, then the agent stops and asks you how to proceed |
78
+ | Review at checkpoints | 1 extra review at each checkpoint before the last, when on | Off unless you answer yes to the auto-review question on the first implementation run or set `workflow.autoReviewAtHillCheckpoints`; autonomous runs always turn it on |
79
+ | Gate (optional) | 1 reviewer run per gate | `maxAttempts`, 2 runs in total by default |
80
+
81
+ OAT does not estimate prices. Cost depends on your provider's pricing and on
82
+ your _dispatch policy_: the highest model tier OAT may use for subagents.
83
+ Implementers may run below that tier, but under a capped policy (Economy,
84
+ Balanced, High, or Frontier), phase and final reviews use the last model listed
85
+ for that policy's tier. See [Dispatch Policy](advanced/dispatch-ceiling.md).
86
+
87
+ **Illustration, derived from the defaults:** a three-phase quick project, run
88
+ interactively with no gates and checkpoint reviews off, where no review finds a
89
+ Critical or High problem, uses 8 agent runs: 1 plan review, 3 implementers, 3
90
+ phase reviewers, and 1 final reviewer. Each phase review that returns a Critical
91
+ or High finding adds 2 runs, a fix and a new review, at most twice per phase, so
92
+ the phases alone can reach 18. Not counted: the summary, documentation, and pull
93
+ request steps, the project explainer and project recap, and the optional phase
94
+ gate review (one extra reviewer run per selected phase). A blocked
95
+ implementation gate also reruns the final review before the gate runs again.
96
+
97
+ ## What OAT does without asking
98
+
99
+ - **Commits** once per task, plus tracking commits at each phase and review
100
+ boundary, on your current branch. See
101
+ [Execution Skills](projects/execution/execution-skills.md#oat-project-implement).
102
+ - **Pushes project files to `origin`.** New projects default to the _synced_
103
+ scope: the project's files live on their own Git ref, which is pushed to
104
+ `origin` every time a skill saves it. To stop that, run
105
+ `oat config set projects.defaultScope shared`. This changes the team's
106
+ committed `.oat/config.json`. Project files are then committed on your branch
107
+ and reach `origin` only when the branch is pushed. Use the `local` scope to
108
+ keep them on this machine only. See
109
+ [Before your first project](projects/planning/starting-projects.md#before-your-first-project).
110
+ - **Starts subagents**, an implementer and a reviewer per phase, without asking
111
+ each time. On Codex, when launching subagents needs authorization, it asks
112
+ once per run.
113
+ - **Merges parallel phases into your branch.** When the plan declares a
114
+ parallel group, it runs each phase in its own worktree and merges the phases
115
+ that pass review into your current branch with `git merge --no-ff`.
116
+ - **Pushes your branch and opens the pull request** without confirming. The
117
+ final-PR step (`oat-project-pr-final`) runs `git push -u origin <branch>` and
118
+ `gh pr create`: always in lite, when `workflow.postImplementSequence` includes
119
+ `pr`, and in autonomous runs. `oat-project-complete` opens a pull request
120
+ without asking when `workflow.createPrOnComplete` is `true`, and it also
121
+ pushes your branch after archiving a synced project, whether or not it opens
122
+ a pull request. Autonomous runs also push the branch, without force, after
123
+ each lifecycle step such as planning and implementation. See
124
+ [Autonomous Project Execution](advanced/autonomy.md).
125
+
126
+ ## Set it up the way you want
127
+
128
+ ### A person approves the plan and the final result, and an independent model reviews the code
129
+
130
+ 1. Run `/oat-project-quick-start` and confirm the requirements when asked, or
131
+ `/oat-project-new` to also approve discovery and design.
132
+ 2. When planning finishes, the skill stops and names `/oat-project-implement`
133
+ as the next step. There is no plan-approval prompt, so read `plan.md` now
134
+ and ask the agent for any changes before you start implementation; that
135
+ reading is your plan approval, and nothing records it. Do not re-run
136
+ `/oat-project-quick-start` to continue, because on a ready plan it starts
137
+ implementation straight away.
138
+ 3. At the first implementation prompt, choose "Stop only after the final
139
+ phase". To make that your own default, run
140
+ `oat config set workflow.hillCheckpointDefault final --user`. Use `--shared`
141
+ instead only if your team has agreed that every project pauses only at the
142
+ end. Either way, a configured value is used on each project's first
143
+ implementation run without asking and replaces any checkpoint value already
144
+ in `plan.md`.
145
+ 4. Keep the pull request until you approve:
146
+ `oat config set workflow.postImplementSequence wait --shared` (a legacy
147
+ value that is still supported), then run `/oat-project-pr-final` yourself.
148
+ 5. Add a review gate on implementation and commit `.oat/config.json`:
149
+
150
+ ```bash
151
+ oat gate set oat-project-implement \
152
+ --command 'oat --json gate review --project "$PROJECT_PATH" --review-type code --review-scope final "Use oat-project-review-provide code final for the declared project"' \
153
+ --on-failure block \
154
+ --layer shared
155
+ ```
156
+
157
+ `--on-failure` is required. With `block`, the agent fixes findings and reruns
158
+ the gate (2 runs in total by default), then hands over to you. The gate runs
159
+ after the final code review and before your approval. The built-in reviewer
160
+ targets run without permission-bypass flags and can stall on the reviewing
161
+ tool's approval prompts; read
162
+ [Permissions for unattended review](#permissions-for-unattended-review)
163
+ before relying on this unattended.
164
+
165
+ > [!WARNING]
166
+ > The default independence setting falls back to the best available reviewer,
167
+ > which may be from the same model family, and only records a warning. Check
168
+ > `diversity.achieved` in the gate result: `different-family` means the review
169
+ > was independent. See
170
+ > [Workflow Gates](advanced/workflow-gates.md#how-independent-the-reviewer-must-be).
171
+
172
+ ### Maximum human control
173
+
174
+ 1. Work on a feature branch: `git switch -c my-change`.
175
+ 2. Stop OAT from pushing project files every time it saves them.
176
+ `oat config set projects.defaultScope shared` makes it commit them on your
177
+ branch instead, but this edits the team's committed `.oat/config.json`, and
178
+ the files still reach `origin` whenever that branch is pushed, for example
179
+ when the pull request opens. To keep them on this machine only, create the
180
+ project with the `local` scope (next step), or run
181
+ `export OAT_PROJECTS_DEFAULT_SCOPE=local` in your shell.
182
+ 3. Run `/oat-project-new my-change` (spec-driven; add `--scope local` for a
183
+ local project) and choose the collaborative design mode, so you approve
184
+ discovery and each design section.
185
+ 4. At the first implementation prompt, keep "Stop after each phase". Check
186
+ first with `oat config get workflow.hillCheckpointDefault`: if it prints
187
+ `final`, the prompt will not appear and the project pauses only at the end.
188
+ Unset it in the layer that sets it, or set `every` for yourself with
189
+ `oat config set workflow.hillCheckpointDefault every --user` (a shared or
190
+ local value still wins over a user value).
191
+ 5. Avoid automatic pull requests: do not use lite, run
192
+ `oat config set workflow.postImplementSequence wait --shared` (a legacy
193
+ value that is still supported), and leave `workflow.createPrOnComplete`
194
+ unset.
195
+
196
+ ### Mostly unattended, within limits
197
+
198
+ 1. Work on a feature branch; an autonomous run pushes whichever branch is
199
+ checked out.
200
+ 2. Set a dispatch policy, which autonomy never chooses:
201
+ `oat config set workflow.dispatchPolicy.policy balanced --local`. A policy in
202
+ config overrides each project's own choice.
203
+ 3. Give any gate `--on-failure block` or `warn`; a failing `prompt` gate stops
204
+ the run.
205
+ 4. Run `/oat-project-autonomous "<your goal>"`.
206
+
207
+ It still stops at a product decision, a destructive action, an unresolved
208
+ Critical finding, a protected branch or required approval, a missing
209
+ credential, or a question it has no rule for. It never merges; review the pull
210
+ request yourself.
211
+
212
+ ## Can a teammate weaken a team rule?
213
+
214
+ Yes, on their own machine. Configuration resolves local first
215
+ (`.oat/config.local.json`), then shared (the committed `.oat/config.json`),
216
+ then user (`~/.oat/config.json`). Shared beats user, but local beats shared,
217
+ and `oat init` adds `.oat/config.local.json` to `.gitignore`, so the change
218
+ never appears in a diff. A few keys, such as `projects.defaultScope`, also take
219
+ an environment variable that beats every file.
220
+
221
+ - `oat gate set oat-project-implement --disable --layer local` switches a
222
+ shared gate off for that checkout.
223
+ - Interactive planning asks whether to keep or disable each configured gate
224
+ for the new project. A **Disable** answer, or a hand edit, writes
225
+ `oat_skill_gate_overrides: { oat-project-implement: disabled }` to that
226
+ project's `state.md`, and OAT records the gate as disabled by the project.
227
+ - `oat config set workflow.autoArtifactReview.plan false --local` skips the
228
+ automatic plan review on that machine; the plan records the skip.
229
+ - A local `workflow.hillCheckpointDefault`, or an edit to
230
+ `oat_plan_hill_phases` in `plan.md`, changes where a project pauses.
231
+
232
+ These controls guide agents on a developer's machine; they are not an
233
+ enforcement boundary. Enforce team rules with branch protection, required
234
+ reviewers, and CI checks.
235
+
236
+ ## Permissions for unattended review
237
+
238
+ An _exec target_ is a saved command that starts a reviewer tool. The built-in
239
+ targets run `codex exec`, `claude -p`, and `cursor-agent -p`, and OAT adds only
240
+ a model choice and the prompt, never a permission-bypass flag. An unattended
241
+ gate can therefore be stopped by the reviewing tool's own permission checks.
242
+
243
+ - An attended review needs no bypass, but it takes the place of a gate; it does
244
+ not satisfy one. Leave the gate unset, choose the fresh-session option at the
245
+ final-review prompt (or set `workflow.reviewExecutionModel` to
246
+ `fresh-session`), and run `oat-project-review-provide code final` yourself in
247
+ another session or agent tool that has the OAT skills installed. Answer its
248
+ prompts, then run `oat-project-review-receive` in the original session.
249
+ - Some trusted-target examples in [Workflow Gates](advanced/workflow-gates.md)
250
+ add a provider's permission-bypass flag. A team may choose that for a trusted
251
+ machine; OAT does not require it.
252
+ - OAT documents no narrower permission allowlist for reviewers. If you build
253
+ one, test it on an unattended gate before you rely on it.
254
+
255
+ ## Where to go next
256
+
257
+ - [Choose a Workflow](choose-workflow.md) to pick a mode.
258
+ - [Execution Skills](projects/execution/execution-skills.md) for what
259
+ implementation does step by step.
260
+ - [Workflow Gates](advanced/workflow-gates.md) for gate setup and limits.
261
+ - [Configuration](../reference/configuration.md) for every setting named here.