@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.
- package/README.md +1 -1
- package/assets/bundle-metadata.json +1 -1
- package/assets/docs/contributing/index.md +14 -1
- package/assets/docs/contributing/skills.md +64 -2
- package/assets/docs/contributing/smoke-testing.md +3 -3
- package/assets/docs/contributing/updating-model-guidance.md +2 -2
- package/assets/docs/contributing/verifying-cursor-pins.md +1 -1
- package/assets/docs/docs-tooling/add-docs-to-a-repo.md +32 -0
- package/assets/docs/docs-tooling/agent-instructions.md +131 -0
- package/assets/docs/docs-tooling/index.md +1 -0
- package/assets/docs/docs-tooling/meta.json +1 -1
- package/assets/docs/docs-tooling/workflows.md +331 -2
- package/assets/docs/{cli-utilities → getting-started}/bootstrap.md +60 -5
- package/assets/docs/{guide → getting-started}/concepts.md +28 -10
- package/assets/docs/getting-started/index.md +68 -0
- package/assets/docs/getting-started/meta.json +4 -0
- package/assets/docs/getting-started/quickstart.md +174 -0
- package/assets/docs/{cli-utilities → getting-started}/tool-packs.md +142 -14
- package/assets/docs/index.md +47 -48
- package/assets/docs/meta.json +6 -7
- package/assets/docs/provider-sync/commands.md +25 -2
- package/assets/docs/provider-sync/config.md +60 -1
- package/assets/docs/provider-sync/index.md +31 -15
- package/assets/docs/provider-sync/instruction-sync.md +32 -1
- package/assets/docs/provider-sync/manifest-and-drift.md +85 -0
- package/assets/docs/provider-sync/meta.json +1 -0
- package/assets/docs/provider-sync/pilot-with-a-team.md +236 -0
- package/assets/docs/provider-sync/scope-and-surface.md +37 -3
- package/assets/docs/reference/cli-reference.md +33 -33
- package/assets/docs/{cli-utilities → reference}/config-and-local-state.md +25 -9
- package/assets/docs/{cli-utilities → reference}/configuration.md +151 -34
- package/assets/docs/reference/file-locations.md +4 -1
- package/assets/docs/reference/index.md +13 -1
- package/assets/docs/reference/meta.json +7 -1
- package/assets/docs/reference/oat-directory-structure.md +1 -1
- package/assets/docs/{workflows/projects/artifacts.md → reference/project-artifacts.md} +4 -4
- package/assets/docs/{workflows/projects/state-machine.md → reference/project-state-machine.md} +1 -1
- package/assets/docs/{workflows/projects/repo-analysis.md → reference/repository-pr-comments.md} +2 -2
- package/assets/docs/reference/troubleshooting.md +125 -10
- package/assets/docs/reference/what-oat-writes.md +410 -0
- package/assets/docs/skills/brainstorm.md +77 -0
- package/assets/docs/skills/diagnostics.md +56 -0
- package/assets/docs/{workflows/skills → skills}/explainer-kit.md +121 -0
- package/assets/docs/skills/index.md +416 -0
- package/assets/docs/{workflows/skills → skills}/meta.json +4 -2
- package/assets/docs/{workflows/skills → skills}/recon.md +49 -0
- package/assets/docs/skills/repo-improve.md +254 -0
- package/assets/docs/skills/research.md +237 -0
- package/assets/docs/skills/session-closeout.md +61 -0
- package/assets/docs/workflows/advanced/autonomy.md +344 -0
- package/assets/docs/workflows/{projects → advanced}/cursor-cloud.md +69 -1
- package/assets/docs/workflows/{projects → advanced}/dispatch-ceiling.md +163 -18
- package/assets/docs/workflows/{projects → advanced}/evidence-layers.md +1 -1
- package/assets/docs/workflows/advanced/index.md +19 -0
- package/assets/docs/workflows/advanced/meta.json +13 -0
- package/assets/docs/workflows/{projects → advanced}/orchestration-model.md +63 -4
- package/assets/docs/workflows/{projects → advanced}/programmatic-execution.md +4 -4
- package/assets/docs/{cli-utilities → workflows/advanced}/workflow-gates.md +162 -8
- package/assets/docs/workflows/advanced/worktree-bootstrap.md +83 -0
- package/assets/docs/workflows/approvals-and-automation.md +261 -0
- package/assets/docs/workflows/backlog-and-planning/backlog-lifecycle.md +348 -0
- package/assets/docs/workflows/backlog-and-planning/index.md +13 -0
- package/assets/docs/workflows/backlog-and-planning/meta.json +4 -0
- package/assets/docs/workflows/backlog-and-planning/remote-project-management.md +303 -0
- package/assets/docs/workflows/choose-workflow.md +114 -0
- package/assets/docs/workflows/ideas/index.md +3 -3
- package/assets/docs/workflows/ideas/lifecycle.md +218 -1
- package/assets/docs/workflows/index.md +11 -62
- package/assets/docs/workflows/meta.json +10 -2
- package/assets/docs/workflows/projects/closeout/closeout-skills.md +538 -0
- package/assets/docs/workflows/projects/closeout/index.md +14 -0
- package/assets/docs/workflows/projects/closeout/meta.json +4 -0
- package/assets/docs/workflows/projects/{pr-flow.md → closeout/pr-flow.md} +1 -1
- package/assets/docs/workflows/projects/{retro.md → closeout/retro.md} +1 -1
- package/assets/docs/workflows/projects/execution/execution-skills.md +258 -0
- package/assets/docs/workflows/projects/{implementation-execution.md → execution/implementation-execution.md} +8 -8
- package/assets/docs/workflows/projects/execution/index.md +15 -0
- package/assets/docs/workflows/projects/execution/meta.json +9 -0
- package/assets/docs/workflows/projects/execution/picking-up-projects.md +376 -0
- package/assets/docs/{cli-utilities → workflows/projects/execution}/project-log.md +1 -1
- package/assets/docs/workflows/projects/index.md +38 -49
- package/assets/docs/workflows/projects/lifecycle.md +47 -11
- package/assets/docs/workflows/projects/meta.json +2 -23
- package/assets/docs/workflows/projects/{design-modes.md → planning/design-modes.md} +29 -0
- package/assets/docs/workflows/projects/planning/hill-checkpoints.md +167 -0
- package/assets/docs/workflows/projects/planning/index.md +16 -0
- package/assets/docs/workflows/projects/planning/meta.json +10 -0
- package/assets/docs/workflows/projects/planning/planning-skills.md +381 -0
- package/assets/docs/workflows/projects/{splitting.md → planning/splitting.md} +3 -3
- package/assets/docs/workflows/projects/planning/starting-projects.md +511 -0
- package/assets/docs/workflows/projects/{reviews.md → reviews/index.md} +51 -5
- package/assets/docs/workflows/projects/reviews/meta.json +4 -0
- package/assets/docs/workflows/projects/reviews/review-flavors.md +643 -0
- package/assets/docs/workflows/projects/{reviewing-oat-prs.md → reviews/reviewing-oat-prs.md} +3 -3
- package/assets/docs/workflows/waves/index.md +12 -0
- package/assets/docs/workflows/waves/meta.json +4 -0
- package/assets/docs/workflows/waves/wave-workflows.md +206 -0
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-docs/SKILL.md +19 -19
- package/assets/skills/oat-docs-analyze/SKILL.md +1 -1
- package/assets/skills/oat-docs-apply/SKILL.md +1 -1
- package/assets/skills/oat-docs-authoring/SKILL.md +1 -1
- package/assets/skills/oat-docs-bootstrap/SKILL.md +1 -1
- package/assets/skills/oat-doctor/SKILL.md +25 -25
- package/package.json +2 -2
- package/assets/docs/cli-utilities/backlog-lifecycle.md +0 -80
- package/assets/docs/cli-utilities/index.md +0 -74
- package/assets/docs/cli-utilities/meta.json +0 -13
- package/assets/docs/cli-utilities/remote-project-management.md +0 -191
- package/assets/docs/guide/index.md +0 -31
- package/assets/docs/guide/meta.json +0 -4
- package/assets/docs/quickstart.md +0 -88
- package/assets/docs/workflows/projects/autonomy.md +0 -196
- package/assets/docs/workflows/projects/hill-checkpoints.md +0 -93
- package/assets/docs/workflows/projects/picking-up-projects.md +0 -124
- package/assets/docs/workflows/projects/review-flavors.md +0 -138
- package/assets/docs/workflows/skills/index.md +0 -184
- package/assets/docs/workflows/skills/repo-improve.md +0 -89
- package/assets/docs/workflows/wave-workflows.md +0 -77
|
@@ -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.
|