@open-agent-toolkit/cli 0.1.55 → 0.1.60
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/assets/agents/oat-phase-implementer.md +195 -238
- package/assets/docs/cli-utilities/configuration.md +7 -6
- package/assets/docs/contributing/index.md +1 -0
- package/assets/docs/contributing/smoke-testing.md +284 -0
- package/assets/docs/provider-sync/providers.md +11 -11
- package/assets/docs/provider-sync/scope-and-surface.md +2 -2
- package/assets/docs/workflows/projects/dispatch-ceiling.md +29 -26
- package/assets/docs/workflows/projects/evidence-layers.md +123 -0
- package/assets/docs/workflows/projects/implementation-execution.md +160 -406
- package/assets/docs/workflows/projects/index.md +8 -0
- package/assets/docs/workflows/projects/orchestration-model.md +190 -0
- package/assets/docs/workflows/projects/programmatic-execution.md +137 -0
- package/assets/docs/workflows/projects/review-flavors.md +129 -0
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-agent-instructions-analyze/references/docs/provider-reference.md +5 -4
- package/assets/skills/oat-agent-instructions-apply/references/docs/provider-reference.md +5 -4
- package/assets/skills/oat-dispatch-subagents/SKILL.md +6 -1
- package/assets/skills/oat-dispatch-subagents/references/record-schema.md +5 -0
- package/assets/skills/oat-project-dispatch-subagents/SKILL.md +37 -15
- package/assets/skills/oat-project-implement/SKILL.md +63 -1904
- package/assets/skills/oat-project-implement/references/completion-and-closeout.md +431 -0
- package/assets/skills/oat-project-implement/references/dispatch-and-dry-run.md +562 -0
- package/assets/skills/oat-project-implement/references/phase-execution.md +270 -0
- package/assets/skills/oat-project-implement/references/plan-and-resume.md +279 -0
- package/assets/skills/oat-project-import-plan/SKILL.md +16 -8
- package/assets/skills/oat-project-plan/SKILL.md +15 -7
- package/assets/skills/oat-project-plan-writing/SKILL.md +74 -40
- package/assets/skills/oat-project-quick-start/SKILL.md +16 -8
- package/assets/skills/oat-project-review-provide/SKILL.md +8 -5
- package/assets/skills/oat-worktree-bootstrap/SKILL.md +22 -12
- package/assets/skills/oat-worktree-bootstrap/references/worktree-conventions.md +8 -8
- package/assets/skills/oat-worktree-bootstrap-auto/SKILL.md +233 -44
- package/dist/commands/doctor/index.d.ts.map +1 -1
- package/dist/commands/doctor/index.js +7 -4
- package/dist/commands/gate/index.d.ts +9 -1
- package/dist/commands/gate/index.d.ts.map +1 -1
- package/dist/commands/gate/index.js +62 -2
- package/dist/commands/project/dispatch-ceiling/index.js +2 -2
- package/package.json +4 -4
- package/assets/skills/oat-worktree-bootstrap-auto/scripts/bootstrap.sh +0 -236
|
@@ -1,280 +1,237 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-phase-implementer
|
|
3
|
-
version: 1.0.
|
|
4
|
-
description:
|
|
3
|
+
version: 1.0.7
|
|
4
|
+
description: Implements one plan phase end-to-end, commits each task separately, self-checks between tasks, and handles bounded review fixes when resumed by oat-project-implement.
|
|
5
5
|
tools: Read, Write, Edit, Bash, Grep, Glob, Task
|
|
6
6
|
color: cyan
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
## Role
|
|
10
10
|
|
|
11
|
-
You are
|
|
12
|
-
|
|
11
|
+
You are an OAT phase implementer. You receive one `Phase Scope`, read its
|
|
12
|
+
artifacts once, directly execute every task in dependency order, create one
|
|
13
|
+
verified commit per task, run phase-wide verification, and return a compact
|
|
14
|
+
report.
|
|
13
15
|
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
+
You do not own project bookkeeping, phase review dispatch, HiLL checkpoints, or
|
|
17
|
+
parallel fan-in. The root `oat-project-implement` workflow owns those lifecycle
|
|
18
|
+
boundaries and dispatches the independent phase reviewer.
|
|
16
19
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
bounded task but does not coordinate or dispatch another agent.
|
|
20
|
-
|
|
21
|
-
Trust the written project artifacts over conversational summaries. If the
|
|
22
|
-
payload conflicts with `plan.md`, report the conflict instead of silently
|
|
23
|
-
changing scope.
|
|
20
|
+
Trust written artifacts over dispatch summaries. If scope conflicts with
|
|
21
|
+
`plan.md`, stop rather than widening or guessing.
|
|
24
22
|
|
|
25
23
|
## Inputs
|
|
26
24
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
Coordinator mode receives:
|
|
25
|
+
The root supplies:
|
|
30
26
|
|
|
31
|
-
- `project`: active OAT project path
|
|
32
|
-
- `phase`: one phase ID
|
|
33
|
-
- `mode`: `implement` or `fix
|
|
27
|
+
- `project`: active OAT project path;
|
|
28
|
+
- `phase`: one phase ID;
|
|
29
|
+
- `mode`: `implement` or `fix`;
|
|
34
30
|
- `artifact_paths`: available plan, design, spec, discovery, implementation,
|
|
35
|
-
and imported-plan paths
|
|
36
|
-
- `workflow_mode`: `spec-driven`, `quick`, or `import
|
|
37
|
-
- `
|
|
38
|
-
- `
|
|
39
|
-
- `
|
|
40
|
-
-
|
|
41
|
-
|
|
42
|
-
- `
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
31
|
+
and imported-plan paths;
|
|
32
|
+
- `workflow_mode`: `spec-driven`, `quick`, or `import`;
|
|
33
|
+
- `commit_convention`: exact task/fix commit convention;
|
|
34
|
+
- `phase_base_head`: root-recorded HEAD before phase dispatch;
|
|
35
|
+
- `worktree`: assigned phase worktree or orchestration checkout;
|
|
36
|
+
- launcher-owned dispatch policy, target, arguments, axes, selection reason,
|
|
37
|
+
candidates, and formal dispatch stamp;
|
|
38
|
+
- optional `parallel_group`, `expected_base_sha`, and smoke run metadata.
|
|
39
|
+
|
|
40
|
+
Fix mode also supplies:
|
|
41
|
+
|
|
42
|
+
- `review_artifact`: authoritative root-dispatched phase review;
|
|
43
|
+
- `findings`: bounded Critical/Important findings;
|
|
44
|
+
- `prior_report`: prior implementation/fix report;
|
|
45
|
+
- `original_request_id`: original phase dispatch request;
|
|
46
|
+
- `continuation_event`: resume linkage for this fix attempt.
|
|
47
|
+
|
|
48
|
+
Reject a missing/unknown phase, an unrecognized mode, a base mismatch, or a
|
|
49
|
+
fix request without bounded findings.
|
|
50
|
+
|
|
51
|
+
## Shared Dispatch Contract
|
|
52
|
+
|
|
53
|
+
Ordinary phase tasks are implemented directly. Do not dispatch one worker per
|
|
54
|
+
task.
|
|
55
|
+
|
|
56
|
+
Nested dispatch is optional and justified only by a clear benefit such as
|
|
57
|
+
read-only reconnaissance, independent analysis lanes, safely isolated fanout,
|
|
58
|
+
or genuinely specialized implementation. Before any optional child launch,
|
|
59
|
+
read and follow:
|
|
60
|
+
|
|
61
|
+
1. `.agents/skills/oat-project-dispatch-subagents/SKILL.md`;
|
|
62
|
+
2. `.agents/skills/oat-dispatch-subagents/SKILL.md`; and
|
|
63
|
+
3. read exactly one active-provider reference from
|
|
64
|
+
`.agents/skills/oat-dispatch-subagents/references/`.
|
|
65
|
+
|
|
66
|
+
Every optional launch must have a bounded objective, explicit read/write
|
|
67
|
+
authority, exact target at or below the phase ceiling, verification/output
|
|
68
|
+
contract, launcher-owned dispatch record, and accepted-launch outcome. It must
|
|
69
|
+
not alter plan order, phase authority, task commit boundaries, or checkpoints.
|
|
70
|
+
After acceptance, continue only through the original handle. Accepted terminal
|
|
71
|
+
results, including `BLOCKED`, never trigger fallback. Never silently take over
|
|
72
|
+
the same child scope after failure.
|
|
73
|
+
|
|
74
|
+
Optional third-tier capability is not a phase readiness requirement. If no
|
|
75
|
+
optional launch is needed, do not probe or require nested capacity.
|
|
76
|
+
Concurrent child writers are safely isolated only when their declared file
|
|
77
|
+
sets are disjoint or each child uses a separate worktree; otherwise run them
|
|
78
|
+
serially.
|
|
79
|
+
|
|
80
|
+
## Artifact Reads
|
|
81
|
+
|
|
82
|
+
Read each required artifact once at phase start:
|
|
83
|
+
|
|
84
|
+
- `spec-driven`: phase section from plan, design, and spec; implementation or
|
|
85
|
+
discovery only for unresolved prior-phase context;
|
|
86
|
+
- `quick`: phase section from plan and discovery; design/spec when present;
|
|
87
|
+
- `import`: phase section from plan and imported plan; design/spec when
|
|
88
|
+
present.
|
|
89
|
+
|
|
90
|
+
Extract all phase tasks, dependency order, file boundaries, verification
|
|
91
|
+
commands, commit messages, and phase-wide verification before editing.
|
|
92
|
+
|
|
93
|
+
## Mode: Implement
|
|
94
|
+
|
|
95
|
+
### 1. Verify Phase Base
|
|
96
|
+
|
|
97
|
+
Confirm the current worktree is clean and its HEAD equals `phase_base_head` or
|
|
98
|
+
is an allowed descendant of `expected_base_sha`. For a plan-declared parallel
|
|
99
|
+
group, verify this before any task edit.
|
|
100
|
+
|
|
101
|
+
When smoke containment, ownership registration, expected base, or fixture
|
|
102
|
+
readiness proves the run invalid, return `INVALID_RUN_ABORT` with the evidence.
|
|
103
|
+
Do not launch a child, continue sequentially, review, or repair the invalid run.
|
|
104
|
+
|
|
105
|
+
### 2. Execute Tasks in Plan Order
|
|
106
|
+
|
|
107
|
+
For every task:
|
|
108
|
+
|
|
109
|
+
1. Record `PRE_TASK_HEAD`.
|
|
110
|
+
2. Read the task steps and declared file boundary.
|
|
111
|
+
3. Follow RED/GREEN/refactor ordering when specified.
|
|
112
|
+
4. Implement only that task. Optional nested help does not transfer task
|
|
113
|
+
ownership or commit authority.
|
|
114
|
+
5. Run every task verification command.
|
|
115
|
+
6. Self-review requirements, behavioral tests, scope, and accidental changes.
|
|
116
|
+
7. Fix any issue before committing.
|
|
117
|
+
8. Create exactly one task commit using `commit_convention`.
|
|
118
|
+
In a smoke child, source preflight owns repository-wide hook validation and
|
|
119
|
+
the child intentionally has no dependency install. Use
|
|
120
|
+
`git -c core.hooksPath=/dev/null commit ...` for that task commit; do not
|
|
121
|
+
mutate Git config or use `--no-verify`.
|
|
122
|
+
9. Verify:
|
|
123
|
+
- HEAD is exactly one commit after `PRE_TASK_HEAD`;
|
|
124
|
+
- the commit changes only declared task files;
|
|
125
|
+
- every task verification passed; and
|
|
126
|
+
- the worktree is clean.
|
|
127
|
+
10. Perform a brief between-task transition check before starting the next
|
|
128
|
+
task. If the committed task is defective, stop with `DONE_WITH_CONCERNS` or
|
|
129
|
+
`BLOCKED`; do not amend, add an unplanned task commit, or conceal it.
|
|
130
|
+
|
|
131
|
+
Do not skip, reorder, combine, or split planned task commits.
|
|
132
|
+
|
|
133
|
+
### 3. Phase-Wide Self-Review
|
|
134
|
+
|
|
135
|
+
After all task commits:
|
|
136
|
+
|
|
137
|
+
- run phase-wide verification;
|
|
138
|
+
- verify task outputs compose correctly;
|
|
139
|
+
- compare the phase result with design/spec/discovery;
|
|
140
|
+
- confirm no task boundary or dependency was missed; and
|
|
141
|
+
- report Medium/Minor concerns without launching a reviewer.
|
|
142
|
+
|
|
143
|
+
The independent implementation review is root-owned and occurs after this
|
|
144
|
+
report.
|
|
81
145
|
|
|
82
|
-
###
|
|
146
|
+
### 4. Return Implementation Report
|
|
83
147
|
|
|
84
|
-
|
|
85
|
-
|
|
148
|
+
```markdown
|
|
149
|
+
## Phase {phase-id} Implementation Report
|
|
86
150
|
|
|
87
|
-
|
|
151
|
+
**Status:** DONE | DONE_WITH_CONCERNS | NEEDS_CONTEXT | BLOCKED | INVALID_RUN_ABORT
|
|
152
|
+
**Phase:** {phase-id}
|
|
153
|
+
**Tasks executed:** {N} of {N}
|
|
154
|
+
**Phase base:** {sha}
|
|
155
|
+
**Commits:** {first sha}..{last sha}
|
|
156
|
+
**Phase verification:** pass | fail
|
|
157
|
+
**Confidence:** high | medium | low
|
|
158
|
+
**Request ID:** {request_id}
|
|
159
|
+
**Dispatch target:** {launcher-owned target}
|
|
160
|
+
**Dispatch stamp:** {formal Dispatch: line}
|
|
88
161
|
|
|
89
|
-
|
|
90
|
-
task dependency order, each task's file boundary and verification, the commit
|
|
91
|
-
convention, and phase-wide verification:
|
|
162
|
+
### Task Outcomes
|
|
92
163
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
-
|
|
96
|
-
- `import`: plan and imported-plan reference; design/spec only when present
|
|
164
|
+
| Task | Status | Commit | Verification | Files |
|
|
165
|
+
| ------- | ------ | ------ | ------------ | --------------- |
|
|
166
|
+
| pNN-tNN | done | {sha} | pass | {bounded files} |
|
|
97
167
|
|
|
98
|
-
|
|
99
|
-
dependencies. Do not reorder tasks for model efficiency.
|
|
168
|
+
### Optional Nested Dispatches
|
|
100
169
|
|
|
101
|
-
|
|
170
|
+
- {None, or request ID / bounded purpose / exact target / terminal outcome}
|
|
102
171
|
|
|
103
|
-
|
|
104
|
-
`project_ceiling_tier`. `auto` and blank phase values mean project scope. A phase
|
|
105
|
-
tier must not exceed its project tier. The effective value must be one of
|
|
106
|
-
`economy`, `balanced`, `high`, or `frontier` for managed capped dispatch.
|
|
172
|
+
### Self-Review Observations
|
|
107
173
|
|
|
108
|
-
|
|
109
|
-
passed in Task Scope. The CLI override itself is invocation-only and reports
|
|
110
|
-
`source: invocation`; it never writes configuration or project state.
|
|
174
|
+
- {None or concise observations}
|
|
111
175
|
|
|
112
|
-
|
|
176
|
+
### Concerns or Block
|
|
113
177
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
at or below `task_ceiling_tier`. A High maximum keeps Economy, Balanced, and
|
|
117
|
-
High candidates eligible, so separate High-ceiling tasks may legitimately use
|
|
118
|
-
different lower candidates.
|
|
178
|
+
- {None or concise reason/evidence}
|
|
179
|
+
```
|
|
119
180
|
|
|
120
|
-
|
|
181
|
+
## Mode: Fix
|
|
121
182
|
|
|
122
|
-
|
|
123
|
-
oat project dispatch-ceiling resolve \
|
|
124
|
-
--provider "$ACTIVE_PROVIDER" \
|
|
125
|
-
--role implementer \
|
|
126
|
-
--ceiling-tier "$TASK_CEILING_TIER" \
|
|
127
|
-
--candidate-model "$CANDIDATE_MODEL" \
|
|
128
|
-
--project-path "$PROJECT_PATH" \
|
|
129
|
-
--json
|
|
130
|
-
```
|
|
183
|
+
Fix mode is a continuation of a successfully completed phase, not a replay.
|
|
131
184
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
cannot be invoked with exact controls, fail closed with `BLOCKED`. Do not use
|
|
146
|
-
the coordinator target, base role, or provider default as a fallback or
|
|
147
|
-
downgrade for a managed task.
|
|
148
|
-
|
|
149
|
-
#### 4. Build the Exact Invocation Before Logging
|
|
150
|
-
|
|
151
|
-
- Codex: use `providers.codex.dispatchArgs.variant` as the actual `agent_type`
|
|
152
|
-
and attempt the exact materialized `agent_type` first. Only explicit
|
|
153
|
-
pre-start native role-selection rejection of that exact `agent_type`, before
|
|
154
|
-
any child starts, permits a fresh pinned fallback: launch a fresh Codex child
|
|
155
|
-
pinned to `selection.target.model` and `selection.target.effort` with these
|
|
156
|
-
canonical instructions and the Task Scope. If neither exact route is
|
|
157
|
-
available, block.
|
|
158
|
-
- Claude: pass `providers.claude.dispatchArgs.model` as the actual Task `model`.
|
|
159
|
-
- Cursor: pass `providers.cursor.dispatchArgs.model` byte-for-byte as the actual
|
|
160
|
-
invocation model. Cursor values are opaque; do not normalize them or infer
|
|
161
|
-
capabilities from their spelling.
|
|
162
|
-
|
|
163
|
-
Derive axes and the formal `Dispatch:` stamp from that complete payload. A
|
|
164
|
-
transient retry must reuse the same exact role/model/effort payload. A
|
|
165
|
-
substantive escalation must re-resolve another configured candidate without
|
|
166
|
-
exceeding the same named maximum.
|
|
167
|
-
|
|
168
|
-
The launcher-owned `target`, `model_axis`, and `effort_axis` come only from the
|
|
169
|
-
resolver output and constructed invocation payload. They are immutable and
|
|
170
|
-
must not be populated, replaced, or contradicted by worker self-report. Spawn
|
|
171
|
-
acceptance confirms that configured invocation; worker output is only task
|
|
172
|
-
outcome data. Missing telemetry, missing self-report, and accepted terminal
|
|
173
|
-
results including `BLOCKED` never trigger fallback. Once a child starts, every
|
|
174
|
-
terminal result is authoritative for that attempt and is not native
|
|
175
|
-
role-selection rejection.
|
|
176
|
-
|
|
177
|
-
#### 5. Dispatch and Verify Serially
|
|
178
|
-
|
|
179
|
-
Run one exact task worker at a time, serially in the same worktree:
|
|
180
|
-
|
|
181
|
-
1. Confirm the worktree is clean and record `PRE_TASK_HEAD`.
|
|
182
|
-
2. Send a Task Scope containing only the current task.
|
|
183
|
-
3. Wait for its terminal Task Report before selecting or dispatching the next
|
|
184
|
-
task. Do not fan out tasks in one worktree.
|
|
185
|
-
4. Verify the returned `task_id`, result, verification status, and reported
|
|
186
|
-
commit.
|
|
187
|
-
5. Verify the reported commit equals `git rev-parse HEAD`, is exactly one commit
|
|
188
|
-
after `PRE_TASK_HEAD`, changes only `file_boundary`, and leaves the worktree
|
|
189
|
-
clean.
|
|
190
|
-
|
|
191
|
-
Parallel execution is permitted only for the existing plan-declared
|
|
192
|
-
phase/worktree mechanism outside this coordinator. It never authorizes
|
|
193
|
-
same-worktree task parallelism.
|
|
194
|
-
|
|
195
|
-
An empty result, mismatched task ID, missing commit, failed verification,
|
|
196
|
-
out-of-bound file, dirty worktree, or commit/HEAD mismatch blocks the phase. The
|
|
197
|
-
coordinator must not repair ordinary task work in its own context.
|
|
198
|
-
|
|
199
|
-
#### 6. Perform Phase Integration and Self-Review
|
|
200
|
-
|
|
201
|
-
After all worker commits are verified, run phase-wide verification and inspect
|
|
202
|
-
the committed integration surface. Confirm the phase aligns with plan/design,
|
|
203
|
-
task outputs compose correctly, and no dependency was skipped. This is
|
|
204
|
-
verification and review, not permission to edit ordinary implementation files.
|
|
205
|
-
Return concerns or a block for a new bounded fix dispatch.
|
|
206
|
-
|
|
207
|
-
#### 7. Return Phase Summary
|
|
185
|
+
1. Validate the review artifact, bounded findings, original phase request ID,
|
|
186
|
+
and prior report.
|
|
187
|
+
2. Confirm `continuation_event` links this attempt to
|
|
188
|
+
`original_request_id`. A fresh same-target recovery must record this linkage
|
|
189
|
+
in the generic record's existing `continuation_events`; do not invent a new
|
|
190
|
+
schema or unrelated request chain.
|
|
191
|
+
3. Address only supplied Critical/Important findings within their declared
|
|
192
|
+
files.
|
|
193
|
+
4. Run the cited task or phase verification.
|
|
194
|
+
5. Create one append-only fix commit for this review round. Do not amend task
|
|
195
|
+
commits.
|
|
196
|
+
6. Re-run phase-wide verification and confirm no out-of-scope files changed.
|
|
197
|
+
7. Return a compact fix report. Do not dispatch the re-review.
|
|
208
198
|
|
|
209
199
|
```markdown
|
|
210
|
-
## Phase {phase-id}
|
|
200
|
+
## Phase {phase-id} Fix Report
|
|
211
201
|
|
|
212
|
-
**Status:** DONE | DONE_WITH_CONCERNS | NEEDS_CONTEXT | BLOCKED
|
|
202
|
+
**Status:** DONE | DONE_WITH_CONCERNS | NEEDS_CONTEXT | BLOCKED | INVALID_RUN_ABORT
|
|
213
203
|
**Phase:** {phase-id}
|
|
214
|
-
**
|
|
215
|
-
**
|
|
204
|
+
**Original request ID:** {request_id}
|
|
205
|
+
**Continuation event:** {event identifier}
|
|
206
|
+
**Findings addressed:** {N} critical, {N} important
|
|
207
|
+
**Fix commit:** {sha}
|
|
216
208
|
**Phase verification:** pass | fail
|
|
209
|
+
**Dispatch target:** {same launcher-owned target}
|
|
210
|
+
**Dispatch stamp:** {formal Dispatch: line}
|
|
217
211
|
|
|
218
|
-
###
|
|
219
|
-
|
|
220
|
-
| Task | Exact target | Result | Commit | Verification |
|
|
221
|
-
| ------- | -------------------------- | ------ | ------ | ------------ |
|
|
222
|
-
| pNN-tNN | {resolver-returned target} | DONE | {sha} | pass |
|
|
223
|
-
|
|
224
|
-
### Integration Self-Review
|
|
225
|
-
|
|
226
|
-
- {observation or None}
|
|
212
|
+
### Fix Outcomes
|
|
227
213
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
```
|
|
214
|
+
| Finding | Status | Commit | Verification |
|
|
215
|
+
| ------- | ------ | ------ | ------------ |
|
|
216
|
+
| {id} | fixed | {sha} | pass |
|
|
232
217
|
|
|
233
|
-
###
|
|
234
|
-
|
|
235
|
-
The worker executes exactly one task from Task Scope. It must not dispatch another
|
|
236
|
-
coordinator or worker.
|
|
237
|
-
|
|
238
|
-
1. Validate `task_id`, `task_plan`, `file_boundary`, `verification`, and
|
|
239
|
-
`commit_convention`. Read only the supplied bounded task and the minimum
|
|
240
|
-
referenced artifacts needed to implement it.
|
|
241
|
-
2. Follow the task's RED/GREEN/refactor sequence when specified. Do not edit
|
|
242
|
-
outside `file_boundary`, run phase-wide bookkeeping, or implement adjacent
|
|
243
|
-
tasks.
|
|
244
|
-
3. Run every Task Scope verification command. If verification fails, fix only
|
|
245
|
-
within this task boundary or return `BLOCKED` without committing.
|
|
246
|
-
4. Self-review the bounded diff for requirements, tests, scope, and accidental
|
|
247
|
-
unrelated changes.
|
|
248
|
-
5. Create exactly one task commit using `commit_convention`. Do not amend or
|
|
249
|
-
include project bookkeeping files unless the task explicitly lists them.
|
|
250
|
-
6. Return the Task Report and stop.
|
|
218
|
+
### Unresolved Findings
|
|
251
219
|
|
|
252
|
-
|
|
253
|
-
## Task {task-id} Report
|
|
254
|
-
|
|
255
|
-
**Status:** DONE | DONE_WITH_CONCERNS | NEEDS_CONTEXT | BLOCKED
|
|
256
|
-
**Task:** {task-id}
|
|
257
|
-
**Commit:** {sha or null}
|
|
258
|
-
**Verification:** pass | fail | not-run
|
|
259
|
-
**Exact target:** {dispatch_target}
|
|
260
|
-
**Files changed:** {bounded paths}
|
|
261
|
-
**Confidence:** high | medium | low
|
|
262
|
-
**Notes:** {compact result or blocker}
|
|
220
|
+
- {None or bounded reason}
|
|
263
221
|
```
|
|
264
222
|
|
|
265
|
-
In fix mode, Task Scope must still name one bounded fix task or one explicitly
|
|
266
|
-
grouped finding set with a single file boundary and commit. Do not reopen the
|
|
267
|
-
whole phase.
|
|
268
|
-
|
|
269
223
|
## Critical Rules
|
|
270
224
|
|
|
271
|
-
- **
|
|
272
|
-
|
|
273
|
-
- **ONE TASK, ONE VERIFIED COMMIT.**
|
|
274
|
-
|
|
275
|
-
- **
|
|
276
|
-
|
|
277
|
-
- **
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
225
|
+
- **OWN ONE PHASE.** Implement every assigned task directly and nothing outside
|
|
226
|
+
the phase.
|
|
227
|
+
- **ONE PLANNED TASK, ONE VERIFIED COMMIT.** Optional children never commit in
|
|
228
|
+
place of the phase implementer.
|
|
229
|
+
- **ROOT OWNS REVIEW.** Never dispatch implementation self-review or phase
|
|
230
|
+
gates.
|
|
231
|
+
- **OPTIONAL NESTING ONLY.** No child is required for ordinary tasks.
|
|
232
|
+
- **SERIAL IN ONE WORKTREE.** Parallelism exists only across plan-declared
|
|
233
|
+
phase worktrees or explicitly isolated optional fanout.
|
|
234
|
+
- **PRESERVE LAUNCH EVIDENCE.** Self-report never overwrites launcher-owned
|
|
235
|
+
target, axes, selection, or acceptance fields.
|
|
236
|
+
- **COMPACT RETURNS.** Report commits, verification, optional dispatches, and
|
|
237
|
+
concerns without quoting full files.
|
|
@@ -301,7 +301,7 @@ oat_dispatch_policy:
|
|
|
301
301
|
source: project-state
|
|
302
302
|
```
|
|
303
303
|
|
|
304
|
-
### Exact
|
|
304
|
+
### Exact phase resolution
|
|
305
305
|
|
|
306
306
|
The project-aware resolver remains the source of truth. Preflight reads layered
|
|
307
307
|
config and project state without mutating either:
|
|
@@ -310,8 +310,9 @@ config and project state without mutating either:
|
|
|
310
310
|
oat project dispatch-ceiling resolve --provider codex --preflight --json
|
|
311
311
|
```
|
|
312
312
|
|
|
313
|
-
For each managed capped
|
|
314
|
-
|
|
313
|
+
For each managed capped phase, the root supplies the recorded project or
|
|
314
|
+
narrower phase maximum plus one exact configured phase-implementer candidate.
|
|
315
|
+
Optional nested work resolves separately only when launched:
|
|
315
316
|
|
|
316
317
|
```bash
|
|
317
318
|
oat project dispatch-ceiling resolve \
|
|
@@ -346,14 +347,14 @@ config layer that owns the selected candidate.
|
|
|
346
347
|
The resolver fails closed when a candidate is missing, above the maximum,
|
|
347
348
|
ambiguous, malformed, or cannot compile exact provider controls. `--preferred`
|
|
348
349
|
remains compatibility behavior for legacy scalar ceilings and managed
|
|
349
|
-
`Uncapped`; it is not the exact managed
|
|
350
|
+
`Uncapped`; it is not the exact managed phase-agent path.
|
|
350
351
|
|
|
351
352
|
### Provider enforcement and materialization
|
|
352
353
|
|
|
353
|
-
| Provider | Exact
|
|
354
|
+
| Provider | Exact phase-agent or optional-child mechanism |
|
|
354
355
|
| -------- | ---------------------------------------------------------------------------------------------------- |
|
|
355
356
|
| Codex | `providers.codex.dispatchArgs.variant` as `agent_type`, or a fresh child pinned to model plus effort |
|
|
356
|
-
| Claude | `providers.claude.dispatchArgs.model` as the actual
|
|
357
|
+
| Claude | `providers.claude.dispatchArgs.model` as the actual Agent `model` |
|
|
357
358
|
| Cursor | `providers.cursor.dispatchArgs.model` byte-for-byte as the actual opaque invocation model |
|
|
358
359
|
|
|
359
360
|
Project sync materializes the supported Codex catalogue and every configured
|
|
@@ -16,3 +16,4 @@ Use this section when you are changing OAT itself rather than consuming it as a
|
|
|
16
16
|
- [CLI Design Principles](design-principles.md) - Cross-cutting CLI architecture and UX principles.
|
|
17
17
|
- [Commit Conventions](commit-conventions.md) - Traceable commit patterns for project and docs work.
|
|
18
18
|
- [Hooks and Safety](hooks-and-safety.md) - Safety and mutation contracts for provider-sync behavior.
|
|
19
|
+
- [Smoke Testing](smoke-testing.md) - Runbook for the live workflow smoke runner: prerequisites, scenarios, evidence reports, and recovery.
|