@open-agent-toolkit/cli 0.1.34 → 0.1.36
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-reviewer.md +22 -2
- package/assets/docs/cli-utilities/config-and-local-state.md +11 -5
- package/assets/docs/cli-utilities/tool-packs.md +1 -1
- package/assets/docs/cli-utilities/workflow-gates.md +103 -19
- package/assets/docs/contributing/design-principles.md +1 -1
- package/assets/docs/reference/cli-reference.md +4 -3
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-project-implement/SKILL.md +7 -3
- package/assets/skills/oat-project-import-plan/SKILL.md +53 -9
- package/assets/skills/oat-project-plan/SKILL.md +7 -3
- package/assets/skills/oat-project-quick-start/SKILL.md +37 -9
- package/assets/skills/oat-project-review-provide/SKILL.md +12 -4
- package/assets/skills/oat-project-review-receive/SKILL.md +3 -1
- package/dist/app/create-program.d.ts.map +1 -1
- package/dist/app/create-program.js +3 -6
- package/dist/app/help-config.d.ts +12 -0
- package/dist/app/help-config.d.ts.map +1 -0
- package/dist/app/help-config.js +15 -0
- package/dist/commands/doctor/index.d.ts.map +1 -1
- package/dist/commands/doctor/index.js +2 -1
- package/dist/commands/gate/index.d.ts.map +1 -1
- package/dist/commands/gate/index.js +352 -16
- package/dist/commands/gate/review-verdict.d.ts +15 -0
- package/dist/commands/gate/review-verdict.d.ts.map +1 -0
- package/dist/commands/gate/review-verdict.js +180 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +4 -0
- package/dist/commands/init/index.d.ts.map +1 -1
- package/dist/commands/init/index.js +2 -1
- package/dist/commands/init/tools/brainstorm/index.d.ts.map +1 -1
- package/dist/commands/init/tools/brainstorm/index.js +2 -1
- package/dist/commands/init/tools/core/index.d.ts.map +1 -1
- package/dist/commands/init/tools/core/index.js +18 -0
- package/dist/commands/init/tools/docs/index.d.ts.map +1 -1
- package/dist/commands/init/tools/docs/index.js +2 -1
- package/dist/commands/init/tools/ideas/index.d.ts.map +1 -1
- package/dist/commands/init/tools/ideas/index.js +2 -1
- package/dist/commands/init/tools/project-management/index.d.ts.map +1 -1
- package/dist/commands/init/tools/project-management/index.js +19 -0
- package/dist/commands/init/tools/research/index.d.ts.map +1 -1
- package/dist/commands/init/tools/research/index.js +2 -1
- package/dist/commands/init/tools/utility/index.d.ts.map +1 -1
- package/dist/commands/init/tools/utility/index.js +2 -1
- package/dist/commands/init/tools/workflows/index.d.ts.map +1 -1
- package/dist/commands/init/tools/workflows/index.js +2 -1
- package/dist/commands/project/split/evaluate-signals.d.ts.map +1 -1
- package/dist/commands/project/split/evaluate-signals.js +11 -1
- package/dist/commands/project/split/run.d.ts.map +1 -1
- package/dist/commands/project/split/run.js +14 -0
- package/dist/commands/project/split/validate-plan.d.ts.map +1 -1
- package/dist/commands/project/split/validate-plan.js +30 -6
- package/dist/commands/project/validate-plan/index.d.ts +6 -1
- package/dist/commands/project/validate-plan/index.d.ts.map +1 -1
- package/dist/commands/project/validate-plan/index.js +36 -9
- package/dist/commands/providers/inspect/inspect.d.ts.map +1 -1
- package/dist/commands/providers/inspect/inspect.js +2 -1
- package/dist/commands/providers/list/list.d.ts.map +1 -1
- package/dist/commands/providers/list/list.js +2 -1
- package/dist/commands/providers/set/index.d.ts.map +1 -1
- package/dist/commands/providers/set/index.js +6 -2
- package/dist/commands/remove/skill/remove-skill.d.ts.map +1 -1
- package/dist/commands/remove/skill/remove-skill.js +2 -1
- package/dist/commands/remove/skills/remove-skills.d.ts.map +1 -1
- package/dist/commands/remove/skills/remove-skills.js +2 -1
- package/dist/commands/repo/pr-comments/triage-collection/triage-comments.d.ts +1 -0
- package/dist/commands/repo/pr-comments/triage-collection/triage-comments.d.ts.map +1 -1
- package/dist/commands/repo/pr-comments/triage-collection/triage-comments.js +25 -13
- package/dist/commands/shared/scope-option.d.ts +21 -0
- package/dist/commands/shared/scope-option.d.ts.map +1 -0
- package/dist/commands/shared/scope-option.js +24 -0
- package/dist/commands/status/index.d.ts.map +1 -1
- package/dist/commands/status/index.js +2 -1
- package/dist/commands/sync/index.d.ts.map +1 -1
- package/dist/commands/sync/index.js +2 -1
- package/dist/commands/tools/info/index.d.ts.map +1 -1
- package/dist/commands/tools/info/index.js +2 -1
- package/dist/commands/tools/install/index.d.ts.map +1 -1
- package/dist/commands/tools/install/index.js +2 -0
- package/dist/commands/tools/list/index.d.ts.map +1 -1
- package/dist/commands/tools/list/index.js +2 -1
- package/dist/commands/tools/outdated/index.d.ts.map +1 -1
- package/dist/commands/tools/outdated/index.js +2 -1
- package/dist/commands/tools/remove/index.d.ts.map +1 -1
- package/dist/commands/tools/remove/index.js +2 -1
- package/dist/commands/tools/update/index.d.ts.map +1 -1
- package/dist/commands/tools/update/index.js +6 -2
- package/dist/config/oat-config.js +1 -1
- package/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-reviewer
|
|
3
|
-
version: 1.1.
|
|
3
|
+
version: 1.1.3
|
|
4
4
|
description: Unified reviewer for OAT projects - mode-aware verification of requirements/design alignment and code quality. Writes a review artifact to disk by default, or returns structured findings in-memory when dispatched in structured-output mode.
|
|
5
5
|
tools: Read, Bash, Grep, Glob, Write
|
|
6
6
|
color: yellow
|
|
@@ -54,6 +54,7 @@ You will be given a "Review Scope" block including:
|
|
|
54
54
|
- **artifact_paths**: Paths to available artifacts (spec/design/plan/implementation/discovery/import reference)
|
|
55
55
|
- **tasks_in_scope**: Task IDs being reviewed (if task/phase scope)
|
|
56
56
|
- **oat_output_mode**: Optional output-sink selector. Absent (or any value other than `structured`) means **artifact mode** — write the review artifact to disk per Step 8. `structured` means **structured-output mode** — return a `StructuredFindings` object in-memory and write NO artifact file (see **Structured-Output Mode**). This key parallels the existing `oat_review_invocation` dispatch-payload naming.
|
|
57
|
+
- **oat_review_invocation**: Optional provenance selector for artifact-mode reviews. Use `manual`, `auto`, or `gate`; default to `manual` when absent.
|
|
57
58
|
- **model_axis**: Optional model dispatch state selected by the orchestrator (`selected:<value>`, `inherited`, `not-applicable`, or `host-auto`)
|
|
58
59
|
- **effort_axis**: Optional effort dispatch state selected by the orchestrator (`selected:<value>`, `provider-default`, `inherited`, `not-applicable`, or `host-auto`)
|
|
59
60
|
- **dispatch_ceiling**: Optional resolved provider ceiling that capped/selected this review dispatch
|
|
@@ -264,6 +265,12 @@ Group findings by severity:
|
|
|
264
265
|
- Missing tests for important paths
|
|
265
266
|
- Stale spec/design/plan artifact that conflicts with a defensible implementation and should be aligned before closeout
|
|
266
267
|
|
|
268
|
+
**Medium** (default fix before pass)
|
|
269
|
+
|
|
270
|
+
- P2 requirements with meaningful behavior or quality impact
|
|
271
|
+
- Moderate maintainability or testability issues
|
|
272
|
+
- Contract gaps that can cause future regressions
|
|
273
|
+
|
|
267
274
|
**Minor** (fix if time permits)
|
|
268
275
|
|
|
269
276
|
- P2 requirements
|
|
@@ -295,6 +302,7 @@ oat_generated: true
|
|
|
295
302
|
oat_generated_at: YYYY-MM-DD
|
|
296
303
|
oat_review_scope: { scope }
|
|
297
304
|
oat_review_type: { code|artifact|analysis }
|
|
305
|
+
oat_review_invocation: { manual|auto|gate }
|
|
298
306
|
oat_project: { project-path }
|
|
299
307
|
---
|
|
300
308
|
|
|
@@ -309,6 +317,8 @@ oat_project: { project-path }
|
|
|
309
317
|
|
|
310
318
|
{2-3 sentence summary of findings}
|
|
311
319
|
|
|
320
|
+
Findings: {N} critical, {N} important, {N} medium, {N} minor
|
|
321
|
+
|
|
312
322
|
## Findings
|
|
313
323
|
|
|
314
324
|
### Critical
|
|
@@ -324,6 +334,14 @@ oat_project: { project-path }
|
|
|
324
334
|
|
|
325
335
|
{If none: "None"}
|
|
326
336
|
|
|
337
|
+
- **{Finding title}** (`{file}:{line}`)
|
|
338
|
+
- Issue: {description}
|
|
339
|
+
- Fix: {specific guidance}
|
|
340
|
+
|
|
341
|
+
### Medium
|
|
342
|
+
|
|
343
|
+
{If none: "None"}
|
|
344
|
+
|
|
327
345
|
- **{Finding title}** (`{file}:{line}`)
|
|
328
346
|
- Issue: {description}
|
|
329
347
|
- Fix: {specific guidance}
|
|
@@ -367,6 +385,8 @@ Run the `oat-project-review-receive` skill to convert findings into plan tasks.
|
|
|
367
385
|
|
|
368
386
|
```
|
|
369
387
|
|
|
388
|
+
Gate parsing contract: artifact-mode reviews, including reviews spawned by `oat gate review`, MUST include either the complete `Findings: {N} critical, {N} important, {N} medium, {N} minor` count line or the standard `## Findings` sections shown above with every severity subsection present.
|
|
389
|
+
|
|
370
390
|
|
|
371
391
|
### Step 9: Return Confirmation
|
|
372
392
|
|
|
@@ -380,7 +400,7 @@ Format:
|
|
|
380
400
|
## Review Complete
|
|
381
401
|
|
|
382
402
|
**Scope:** {scope}
|
|
383
|
-
**Findings:** {N} critical, {N} important, {N} minor
|
|
403
|
+
**Findings:** {N} critical, {N} important, {N} medium, {N} minor
|
|
384
404
|
**Review artifact:** {path}
|
|
385
405
|
|
|
386
406
|
Return to your main session and run the `oat-project-review-receive` skill.
|
|
@@ -113,13 +113,19 @@ Available commands:
|
|
|
113
113
|
- `oat gate resolve <skill>` - inspect the resolved gate config for one skill
|
|
114
114
|
- `oat gate set <skill>` / `oat gate unset <skill>` - write or clear a skill gate
|
|
115
115
|
- `oat gate target set <id>` / `oat gate target unset <id>` - write or clear an exec target
|
|
116
|
+
- `oat gate review <prompt...>` - run a review-specific gate and map blocking review findings to exit status
|
|
116
117
|
- `oat gate cross-provider-exec <prompt...>` - select an available exec target and run the prompt there
|
|
117
118
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
119
|
+
Use `oat gate review` for OAT review gates. It keeps the normal stateful
|
|
120
|
+
review-provider workflow: the review artifact, Reviews row update, and review
|
|
121
|
+
bookkeeping commits are expected, and the produced review must be received with
|
|
122
|
+
`oat-project-review-receive` before the host treats it as dispositioned.
|
|
123
|
+
|
|
124
|
+
Use `oat gate cross-provider-exec` for generic cross-runtime execution. It
|
|
125
|
+
avoids the current runtime by default, chooses a fresh Codex, Claude, or Cursor
|
|
126
|
+
target when available, and exits with the child process status. Target commands
|
|
127
|
+
are stored as JSON argv arrays, so configure them with
|
|
128
|
+
`oat gate target set --base-command-json ...` rather than `oat config set`.
|
|
123
129
|
|
|
124
130
|
For schema, examples, and current V1 limits, see [Workflow Gates](workflow-gates.md).
|
|
125
131
|
|
|
@@ -171,7 +171,7 @@ The `core` pack contains foundational diagnostic and documentation skills:
|
|
|
171
171
|
|
|
172
172
|
Key behavior:
|
|
173
173
|
|
|
174
|
-
- Core pack always installs at **user scope** (`~/.agents/skills/`),
|
|
174
|
+
- Core pack always installs at **user scope** (`~/.agents/skills/`). It does not honor a different scope, and passing a conflicting explicit `--scope` (e.g. `oat init tools core --scope project`) is rejected with an error rather than silently ignored; omit `--scope` or pass `--scope user`. This ensures core skills are available in any directory.
|
|
175
175
|
- Core is checked by default in the `oat init tools` guided setup.
|
|
176
176
|
- Installation also bundles OAT documentation to `~/.oat/docs/` for the oat-docs skill.
|
|
177
177
|
- `oat tools update --pack core` refreshes both skills and `~/.oat/docs/` documentation.
|
|
@@ -7,11 +7,14 @@ description: Configure per-skill final commands and cross-runtime review dispatc
|
|
|
7
7
|
|
|
8
8
|
Workflow gates let a gate-aware skill run a configured final command before it
|
|
9
9
|
is considered done. The common use is independent review: one runtime performs
|
|
10
|
-
the work, then `oat gate
|
|
11
|
-
runtime such as Codex or Claude
|
|
10
|
+
the work, then `oat gate review` dispatches a normal OAT review to another
|
|
11
|
+
runtime such as Codex or Claude and maps blocking review findings to the gate
|
|
12
|
+
exit status.
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
the
|
|
14
|
+
`oat gate cross-provider-exec` remains the generic child-status executor. It
|
|
15
|
+
selects an exec target, runs the prompt, and exits with the child process
|
|
16
|
+
status. Use `oat gate review` when the command is specifically an OAT review
|
|
17
|
+
gate that should inspect the produced review artifact.
|
|
15
18
|
|
|
16
19
|
## Gate config
|
|
17
20
|
|
|
@@ -23,7 +26,7 @@ Gate config lives under `workflow.gates.skills` and is keyed by skill name.
|
|
|
23
26
|
"gates": {
|
|
24
27
|
"skills": {
|
|
25
28
|
"oat-project-implement": {
|
|
26
|
-
"command": "oat gate
|
|
29
|
+
"command": "oat gate review \"Use oat-project-review-provide code final to review the current project\"",
|
|
27
30
|
"description": "Run a fresh-runtime final review before implementation is considered done.",
|
|
28
31
|
"onFailure": "block",
|
|
29
32
|
"maxAttempts": 2
|
|
@@ -41,11 +44,33 @@ Fields:
|
|
|
41
44
|
- `description` - optional context for the agent running the gate.
|
|
42
45
|
- `maxAttempts` - retry bound for `block`; defaults to `2`.
|
|
43
46
|
|
|
44
|
-
`oat-project-plan
|
|
45
|
-
|
|
47
|
+
`oat-project-plan`, `oat-project-implement`, `oat-project-quick-start`, and
|
|
48
|
+
`oat-project-import-plan` are currently gate-aware. Gate awareness is declared
|
|
49
|
+
in skill frontmatter with `oat_gateable: true`, and
|
|
46
50
|
`oat internal validate-oat-skills` warns when config targets a missing or
|
|
47
51
|
non-gateable skill.
|
|
48
52
|
|
|
53
|
+
## Review gates
|
|
54
|
+
|
|
55
|
+
`oat gate review` is intentionally stateful. It is equivalent to running
|
|
56
|
+
`oat-project-review-provide` in another terminal or provider, so the normal
|
|
57
|
+
review side effects are expected:
|
|
58
|
+
|
|
59
|
+
- a review artifact is written under the project reviews directory
|
|
60
|
+
- the plan Reviews row is updated
|
|
61
|
+
- review bookkeeping commits are expected when the review workflow changes
|
|
62
|
+
tracked state
|
|
63
|
+
|
|
64
|
+
Gate-produced review artifacts use `oat_review_invocation: gate` in
|
|
65
|
+
frontmatter. After a gate review reports a produced artifact, the host must run
|
|
66
|
+
or hand off to `oat-project-review-receive` before treating the review as
|
|
67
|
+
dispositioned. Until receive runs, the artifact is only produced, not consumed.
|
|
68
|
+
|
|
69
|
+
`oat gate review` parses the produced artifact and returns a blocking exit
|
|
70
|
+
status when the configured threshold is met. `cross-provider-exec` does not do
|
|
71
|
+
that interpretation; for generic prompts it still returns only the child process
|
|
72
|
+
status.
|
|
73
|
+
|
|
49
74
|
## Exec targets
|
|
50
75
|
|
|
51
76
|
`oat gate cross-provider-exec` chooses from `workflow.gates.execTargets`.
|
|
@@ -55,11 +80,16 @@ id.
|
|
|
55
80
|
|
|
56
81
|
Built-in targets:
|
|
57
82
|
|
|
58
|
-
| Target id | Runtime | Base command
|
|
59
|
-
| ---------------- | -------- |
|
|
60
|
-
| `codex-default` | `codex` | `["codex", "exec"]`
|
|
61
|
-
| `claude-default` | `claude` | `["claude", "-p"]`
|
|
62
|
-
| `cursor-default` | `cursor` | `["cursor-agent", "-p"
|
|
83
|
+
| Target id | Runtime | Base command | Current-host detector |
|
|
84
|
+
| ---------------- | -------- | ------------------------ | --------------------------------------- |
|
|
85
|
+
| `codex-default` | `codex` | `["codex", "exec"]` | `CODEX_THREAD_ID` or `CODEX_SESSION_ID` |
|
|
86
|
+
| `claude-default` | `claude` | `["claude", "-p"]` | `CLAUDECODE` |
|
|
87
|
+
| `cursor-default` | `cursor` | `["cursor-agent", "-p"]` | `CURSOR_AGENT` |
|
|
88
|
+
|
|
89
|
+
Built-in targets are conservative defaults. Trusted noninteractive gates that
|
|
90
|
+
need to run tools without hanging on provider approval prompts should be
|
|
91
|
+
configured deliberately in `workflow.gates.execTargets`; OAT should not bake
|
|
92
|
+
dangerous provider permission flags into built-ins.
|
|
63
93
|
|
|
64
94
|
Config layers can partially override a target or disable it with `null`. Use the
|
|
65
95
|
dedicated target writer instead of `oat config set` because target commands are
|
|
@@ -71,12 +101,54 @@ oat gate target set claude-opus \
|
|
|
71
101
|
--base-command-json '["claude","-p","--model","opus"]' \
|
|
72
102
|
--availability-json '["claude","--version"]' \
|
|
73
103
|
--priority 90 \
|
|
74
|
-
--user
|
|
104
|
+
--layer user
|
|
75
105
|
```
|
|
76
106
|
|
|
77
107
|
JSON argv is intentional: provider commands often contain flags such as `-p` or
|
|
78
108
|
`--model`, which would be ambiguous as variadic CLI options.
|
|
79
109
|
|
|
110
|
+
### Trusted target examples
|
|
111
|
+
|
|
112
|
+
Use these examples only in trusted environments where the provider process may
|
|
113
|
+
read files, run tools, and write review bookkeeping without an interactive
|
|
114
|
+
approval prompt. They are user-level target configuration, not built-in OAT
|
|
115
|
+
defaults.
|
|
116
|
+
|
|
117
|
+
Claude's default permission mode can block on
|
|
118
|
+
`Skill(oat-project-review-provide)`, `oat`, `pnpm`, and shell or tool calls. A
|
|
119
|
+
trusted user can opt into `--dangerously-skip-permissions` or the equivalent
|
|
120
|
+
`--permission-mode bypassPermissions` behavior in their target command.
|
|
121
|
+
|
|
122
|
+
Codex trusted gate automation should make sandbox and approval bypass explicit
|
|
123
|
+
with `--dangerously-bypass-approvals-and-sandbox`, even when the user's current
|
|
124
|
+
default profile already permits the needed commands.
|
|
125
|
+
|
|
126
|
+
Cursor trusted automation should use `--force`; `--yolo` is the documented alias
|
|
127
|
+
for the same behavior.
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
oat gate target set codex-5.5-xhigh \
|
|
131
|
+
--runtime codex \
|
|
132
|
+
--base-command-json '["codex","exec","--model","gpt-5.5","-c","model_reasoning_effort=\"xhigh\"","--dangerously-bypass-approvals-and-sandbox"]' \
|
|
133
|
+
--availability-json '["codex","--version"]' \
|
|
134
|
+
--priority 120 \
|
|
135
|
+
--layer user
|
|
136
|
+
|
|
137
|
+
oat gate target set claude-opus-skip-permissions \
|
|
138
|
+
--runtime claude \
|
|
139
|
+
--base-command-json '["claude","-p","--model","opus","--dangerously-skip-permissions"]' \
|
|
140
|
+
--availability-json '["claude","--version"]' \
|
|
141
|
+
--priority 115 \
|
|
142
|
+
--layer user
|
|
143
|
+
|
|
144
|
+
oat gate target set cursor-force \
|
|
145
|
+
--runtime cursor \
|
|
146
|
+
--base-command-json '["cursor-agent","-p","--force"]' \
|
|
147
|
+
--availability-json '["cursor-agent","--version"]' \
|
|
148
|
+
--priority 90 \
|
|
149
|
+
--layer user
|
|
150
|
+
```
|
|
151
|
+
|
|
80
152
|
## Command surface
|
|
81
153
|
|
|
82
154
|
Inspect a skill gate:
|
|
@@ -89,13 +161,13 @@ Set or clear a skill gate:
|
|
|
89
161
|
|
|
90
162
|
```bash
|
|
91
163
|
oat gate set oat-project-implement \
|
|
92
|
-
--command 'oat gate
|
|
164
|
+
--command 'oat gate review --target codex-5.5-xhigh --review-type code --review-scope final "Use oat-project-review-provide code final to review the current project"' \
|
|
93
165
|
--description "Run final review in another runtime" \
|
|
94
166
|
--on-failure block \
|
|
95
167
|
--max-attempts 2 \
|
|
96
|
-
--user
|
|
168
|
+
--layer user
|
|
97
169
|
|
|
98
|
-
oat gate unset oat-project-implement --user
|
|
170
|
+
oat gate unset oat-project-implement --layer user
|
|
99
171
|
```
|
|
100
172
|
|
|
101
173
|
Set or clear an exec target:
|
|
@@ -106,12 +178,24 @@ oat gate target set codex-high \
|
|
|
106
178
|
--base-command-json '["codex","exec","--model","gpt-5.5"]' \
|
|
107
179
|
--availability-json '["codex","--version"]' \
|
|
108
180
|
--priority 90 \
|
|
109
|
-
--user
|
|
181
|
+
--layer user
|
|
182
|
+
|
|
183
|
+
oat gate target unset codex-high --layer user
|
|
184
|
+
```
|
|
110
185
|
|
|
111
|
-
|
|
186
|
+
Dispatch a review through the target registry:
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
oat gate review --target codex-5.5-xhigh \
|
|
190
|
+
--review-type code \
|
|
191
|
+
--review-scope final \
|
|
192
|
+
"Use oat-project-review-provide code final to review the current project"
|
|
112
193
|
```
|
|
113
194
|
|
|
114
|
-
|
|
195
|
+
Leaving `--target` unset lets target priority choose the highest-priority
|
|
196
|
+
available non-host runtime.
|
|
197
|
+
|
|
198
|
+
Dispatch a generic prompt through the target registry:
|
|
115
199
|
|
|
116
200
|
```bash
|
|
117
201
|
oat gate cross-provider-exec "Use oat-project-review-provide to review the current project"
|
|
@@ -71,7 +71,7 @@ packages/cli/src/
|
|
|
71
71
|
## Runtime Bootstrap and Flags
|
|
72
72
|
|
|
73
73
|
- Startup order: load runtime config -> validate env/input -> build command context -> register commands.
|
|
74
|
-
- Register global flags early and consistently (`--json`, `--verbose`, `--scope
|
|
74
|
+
- Register global flags early and consistently (`--json`, `--verbose`, `--cwd`). Scope-aware commands take `--scope` as a per-command option (via the shared `withScopeOption` helper), not a global flag, so it appears in `--help` only on the commands that actually consume it.
|
|
75
75
|
|
|
76
76
|
## UX and Output Principles
|
|
77
77
|
|
|
@@ -14,7 +14,7 @@ The CLI is also a standalone value path. You can use `oat init`, `oat sync`, `oa
|
|
|
14
14
|
- [CLI Bootstrap](../cli-utilities/bootstrap.md) - Bootstrap a repo with `oat init`, guided setup, and initial provider adoption.
|
|
15
15
|
- [Tool Packs](../cli-utilities/tool-packs.md) - Install, update, inspect, and remove bundled OAT skills and agents.
|
|
16
16
|
- [Config and Local State](../cli-utilities/config-and-local-state.md) - Config, backlog, local paths, diagnostics, and related utility commands.
|
|
17
|
-
- [Workflow Gates](../cli-utilities/workflow-gates.md) - Per-skill final commands and cross-runtime
|
|
17
|
+
- [Workflow Gates](../cli-utilities/workflow-gates.md) - Per-skill final commands, review gates, and cross-runtime prompt dispatch.
|
|
18
18
|
- [Docs Tooling Commands](../docs-tooling/commands.md) - Docs app scaffolding, migration, index generation, and nav sync.
|
|
19
19
|
- [Provider Sync](../provider-sync/index.md) - Sync behavior, provider capabilities, config, and drift management.
|
|
20
20
|
- [Agentic Workflows](../workflows/index.md) - Tracked project execution, skills, ideas, and workflow routing.
|
|
@@ -46,7 +46,7 @@ The first practical expansion path is to keep improving the existing owners: [Do
|
|
|
46
46
|
| `oat decision ...` | Create, index, and migrate file-per-record repo decisions under `reference/decisions/` (`init`, `new`, `regenerate-index`, `migrate`). | [Config and Local State](../cli-utilities/config-and-local-state.md#oat-decision-) |
|
|
47
47
|
| `oat backlog ...` / `oat local ...` | File-backed backlog helpers, local path sync, and local-only operational support. | [Config and Local State](../cli-utilities/config-and-local-state.md) |
|
|
48
48
|
| `oat config ...` / `oat instructions ...` | Config discovery, source-aware config dumps, supported mutations, and instruction-integrity helpers. | [Config and Local State](../cli-utilities/config-and-local-state.md) |
|
|
49
|
-
| `oat gate ...` | Per-skill final gate config, exec-target registry writes, and cross-runtime prompt dispatch.
|
|
49
|
+
| `oat gate ...` | Per-skill final gate config, review-specific gate execution, exec-target registry writes, and cross-runtime prompt dispatch. | [Workflow Gates](../cli-utilities/workflow-gates.md) |
|
|
50
50
|
| `oat state ...` / `oat index ...` / `internal` | Repo dashboard refresh, repo indexing, validation helpers, and diagnostics. | [Config and Local State](../cli-utilities/config-and-local-state.md) |
|
|
51
51
|
| `oat docs ...` | Docs app bootstrap, migration, index generation, nav sync, and docs workflow entrypoints. | [Docs Tooling Commands](../docs-tooling/commands.md) |
|
|
52
52
|
| `oat status` / `oat sync` / `oat providers ...` | Provider sync, drift inspection, provider configuration, and adoption behavior. | [Provider Sync](../provider-sync/index.md) |
|
|
@@ -68,7 +68,8 @@ Notable commands introduced in the current CLI surface:
|
|
|
68
68
|
- `oat repo archive sync [project-name]` - hydrate archived project snapshots from the configured repo-scoped S3 archive into `.oat/projects/archived/`. The old `oat project archive sync` path remains as a deprecated shim.
|
|
69
69
|
- `oat project validate-plan --project-path <path>` - validates `oat_plan_parallel_groups` metadata in `plan.md`; exits non-zero on invalid. See [Implementation Execution](../workflows/projects/implementation-execution.md#validating-plan-metadata).
|
|
70
70
|
- `oat project set-mode` — deprecated no-op. Execution mode is no longer user-selectable; emits a deprecation warning and preserves the `--json` contract.
|
|
71
|
-
- `oat gate
|
|
71
|
+
- `oat gate review <prompt...>` - run a stateful OAT review through the target registry, parse the produced review artifact, and exit nonzero for configured blocking findings; produced gate reviews use `oat_review_invocation: gate` and still require `oat-project-review-receive` handoff before they are dispositioned.
|
|
72
|
+
- `oat gate cross-provider-exec <prompt...>` - choose an available exec target while avoiding the current runtime by default, then run the prompt with the chosen target's configured base command and exit with the child status.
|
|
72
73
|
|
|
73
74
|
## `oat config` surface flags
|
|
74
75
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-project-implement
|
|
3
|
-
version: 2.0.
|
|
3
|
+
version: 2.0.22
|
|
4
4
|
description: Use when plan.md is ready for execution. Dispatches phase-level subagents with bounded fix loops; supports plan-declared parallel phase groups with worktree-isolated execution and ordered fan-in.
|
|
5
5
|
oat_gateable: true
|
|
6
6
|
argument-hint: '[--retry-limit <N>] [--dry-run]'
|
|
@@ -1434,12 +1434,16 @@ Before reporting this skill as complete, run the configured gate as the final st
|
|
|
1434
1434
|
|
|
1435
1435
|
2. If a gate config is returned, run its `command` exactly as configured. Capture stdout, stderr, and the exit code. A zero exit code means the gate passed and the skill is complete.
|
|
1436
1436
|
|
|
1437
|
-
3.
|
|
1437
|
+
3. Review-artifact handoff:
|
|
1438
|
+
- If the gate reports a produced review artifact, the host must run `oat-project-review-receive` to receive and disposition that artifact before treating the review as consumed.
|
|
1439
|
+
- This applies to `oat gate review ...` outputs regardless of whether the gate ultimately exits zero or nonzero; the command output owns the exact artifact path, and receive-review owns disposition and archival.
|
|
1440
|
+
|
|
1441
|
+
4. If the command exits nonzero, use `description` to orient the next steps and handle `onFailure`:
|
|
1438
1442
|
- `block`: read gate feedback, remediate, and re-run the gate up to `maxAttempts` attempts (default `2`). If attempts are exhausted, escalate to the human with accumulated feedback and append that feedback to `implementation.md`. Treat a launch failure, missing CLI, or no eligible runtime as escalation-biased and do not spend it as a remediation attempt.
|
|
1439
1443
|
- `prompt`: surface the gate failure and ask the human how to proceed.
|
|
1440
1444
|
- `warn`: record the gate failure and continue.
|
|
1441
1445
|
|
|
1442
|
-
|
|
1446
|
+
5. Runtime selection note (V1): the step runs the gate `command` as-is and reads no env var. By default, `oat gate cross-provider-exec` resolves the current host from built-in `hostDetectionCommand`s and avoids the same runtime with zero per-prompt input. It does not read or stamp `OAT_CURRENT_RUNTIME` or `OAT_GATE_EXEC_TARGET`. To pin a specific reviewer for this skill, set `--target <id>` once in that skill's gate `command`; this is the optional precision path and does not require per-prompt input.
|
|
1443
1447
|
|
|
1444
1448
|
## Success Criteria
|
|
1445
1449
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-project-import-plan
|
|
3
|
-
version: 1.4.
|
|
3
|
+
version: 1.4.1
|
|
4
4
|
description: Use when you have an external markdown plan to execute with OAT. Preserves the source plan and normalizes it into canonical plan.md format.
|
|
5
5
|
argument-hint: '<path-to-plan.md> [--provider codex|cursor|claude] [--project <name>]'
|
|
6
|
+
oat_gateable: true
|
|
6
7
|
disable-model-invocation: true
|
|
7
8
|
user-invocable: true
|
|
8
9
|
allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion
|
|
@@ -56,14 +57,15 @@ When executing this skill, provide lightweight progress feedback so the user can
|
|
|
56
57
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
57
58
|
|
|
58
59
|
- Before multi-step work, print step indicators, e.g.:
|
|
59
|
-
- `[0/
|
|
60
|
-
- `[1/
|
|
61
|
-
- `[2/
|
|
62
|
-
- `[3/
|
|
63
|
-
- `[4/
|
|
64
|
-
- `[5/
|
|
65
|
-
- `[6/
|
|
66
|
-
- `[7/
|
|
60
|
+
- `[0/8] Checking inherited git state...`
|
|
61
|
+
- `[1/8] Resolving project + source plan…`
|
|
62
|
+
- `[2/8] Preserving imported source…`
|
|
63
|
+
- `[3/8] Normalizing plan to OAT task structure…`
|
|
64
|
+
- `[4/8] Updating plan metadata…`
|
|
65
|
+
- `[5/8] Running import-aware plan review…`
|
|
66
|
+
- `[6/8] Updating project state + dashboard…`
|
|
67
|
+
- `[7/8] Ensuring implementation tracker + committing…`
|
|
68
|
+
- `[8/8] Running configured gate…`
|
|
67
69
|
|
|
68
70
|
## Process
|
|
69
71
|
|
|
@@ -255,6 +257,46 @@ If missing, scaffold from template:
|
|
|
255
257
|
|
|
256
258
|
Initialize pointer to first plan task ID.
|
|
257
259
|
|
|
260
|
+
### Step 6.5: Commit Import Artifacts
|
|
261
|
+
|
|
262
|
+
After the import-aware plan artifact review, project state sync, dashboard refresh, and implementation tracker setup, stage and commit the changed import artifacts before handing off to implementation or stopping.
|
|
263
|
+
|
|
264
|
+
```bash
|
|
265
|
+
git add "$PROJECT_PATH/references/"
|
|
266
|
+
for path in \
|
|
267
|
+
"$PROJECT_PATH/plan.md" \
|
|
268
|
+
"$PROJECT_PATH/implementation.md" \
|
|
269
|
+
"$PROJECT_PATH/state.md"; do
|
|
270
|
+
[ -e "$path" ] && git add "$path"
|
|
271
|
+
done
|
|
272
|
+
git diff --cached --quiet || git commit -m "chore(oat): update imported plan artifacts for {project-name}"
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### Gate Execution
|
|
276
|
+
|
|
277
|
+
Before reporting this skill as complete, run the configured gate as the final step after artifact review, state sync, dashboard refresh, and the import artifact commit:
|
|
278
|
+
|
|
279
|
+
1. Resolve the gate for this skill:
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
oat gate resolve <this-skill> --json
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
If the command returns JSON `null`, no gate is configured; the skill is complete.
|
|
286
|
+
|
|
287
|
+
2. If a gate config is returned, run its `command` exactly as configured. Capture stdout, stderr, and the exit code. A zero exit code means the gate passed and the skill is complete.
|
|
288
|
+
|
|
289
|
+
3. Review-artifact handoff:
|
|
290
|
+
- If the gate reports a produced review artifact, the host must run `oat-project-review-receive` to receive and disposition that artifact before treating the review as consumed.
|
|
291
|
+
- This applies to `oat gate review ...` outputs regardless of whether the gate ultimately exits zero or nonzero; the command output owns the exact artifact path, and receive-review owns disposition and archival.
|
|
292
|
+
|
|
293
|
+
4. If the command exits nonzero, use `description` to orient the next steps and handle `onFailure`:
|
|
294
|
+
- `block`: read gate feedback, remediate, and re-run the gate up to `maxAttempts` attempts (default `2`). If attempts are exhausted, escalate to the human with accumulated feedback and append that feedback to `implementation.md`. Treat a launch failure, missing CLI, or no eligible runtime as escalation-biased and do not spend it as a remediation attempt.
|
|
295
|
+
- `prompt`: surface the gate failure and ask the human how to proceed.
|
|
296
|
+
- `warn`: record the gate failure and continue.
|
|
297
|
+
|
|
298
|
+
5. Runtime selection note (V1): the step runs the gate `command` as-is and reads no env var. By default, `oat gate cross-provider-exec` resolves the current host from built-in `hostDetectionCommand`s and avoids the same runtime with zero per-prompt input. It does not read or stamp `OAT_CURRENT_RUNTIME` or `OAT_GATE_EXEC_TARGET`. To pin a specific reviewer for this skill, set `--target <id>` once in that skill's gate `command`; this is the optional precision path and does not require per-prompt input.
|
|
299
|
+
|
|
258
300
|
### Step 7: Output Next Action
|
|
259
301
|
|
|
260
302
|
Report:
|
|
@@ -280,3 +322,5 @@ Report:
|
|
|
280
322
|
- ✅ `## Planning Checklist` items left unchecked (HiLL configuration deferred to implementation).
|
|
281
323
|
- ✅ `activeProject` in `.oat/config.local.json` points to the imported project.
|
|
282
324
|
- ✅ `.oat/state.md` has been refreshed locally after pointer update; it is not staged or committed.
|
|
325
|
+
- ✅ Changed import artifacts are committed before handoff or pause.
|
|
326
|
+
- ✅ Configured gate has run, and any produced review artifact has been handed off to `oat-project-review-receive` before it is treated as consumed.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-project-plan
|
|
3
|
-
version: 1.3.
|
|
3
|
+
version: 1.3.7
|
|
4
4
|
description: Use when design.md is complete and executable implementation tasks are needed. Breaks design into bite-sized TDD tasks in canonical plan.md format.
|
|
5
5
|
oat_gateable: true
|
|
6
6
|
disable-model-invocation: true
|
|
@@ -516,12 +516,16 @@ Before reporting this skill as complete, run the configured gate as the final st
|
|
|
516
516
|
|
|
517
517
|
2. If a gate config is returned, run its `command` exactly as configured. Capture stdout, stderr, and the exit code. A zero exit code means the gate passed and the skill is complete.
|
|
518
518
|
|
|
519
|
-
3.
|
|
519
|
+
3. Review-artifact handoff:
|
|
520
|
+
- If the gate reports a produced review artifact, the host must run `oat-project-review-receive` to receive and disposition that artifact before treating the review as consumed.
|
|
521
|
+
- This applies to `oat gate review ...` outputs regardless of whether the gate ultimately exits zero or nonzero; the command output owns the exact artifact path, and receive-review owns disposition and archival.
|
|
522
|
+
|
|
523
|
+
4. If the command exits nonzero, use `description` to orient the next steps and handle `onFailure`:
|
|
520
524
|
- `block`: read gate feedback, remediate, and re-run the gate up to `maxAttempts` attempts (default `2`). If attempts are exhausted, escalate to the human with accumulated feedback and append that feedback to `implementation.md`. Treat a launch failure, missing CLI, or no eligible runtime as escalation-biased and do not spend it as a remediation attempt.
|
|
521
525
|
- `prompt`: surface the gate failure and ask the human how to proceed.
|
|
522
526
|
- `warn`: record the gate failure and continue.
|
|
523
527
|
|
|
524
|
-
|
|
528
|
+
5. Runtime selection note (V1): the step runs the gate `command` as-is and reads no env var. By default, `oat gate cross-provider-exec` resolves the current host from built-in `hostDetectionCommand`s and avoids the same runtime with zero per-prompt input. It does not read or stamp `OAT_CURRENT_RUNTIME` or `OAT_GATE_EXEC_TARGET`. To pin a specific reviewer for this skill, set `--target <id>` once in that skill's gate `command`; this is the optional precision path and does not require per-prompt input.
|
|
525
529
|
|
|
526
530
|
## Success Criteria
|
|
527
531
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-project-quick-start
|
|
3
|
-
version: 2.1.
|
|
3
|
+
version: 2.1.7
|
|
4
4
|
description: Use when a task is small enough for quick mode or rapid iteration is preferred. Scaffolds a lightweight OAT project from discovery directly to a runnable plan, with optional brainstorming and lightweight design.
|
|
5
5
|
argument-hint: '<project-name> ["project description"]'
|
|
6
|
+
oat_gateable: true
|
|
6
7
|
disable-model-invocation: true
|
|
7
8
|
user-invocable: true
|
|
8
9
|
allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion
|
|
@@ -57,14 +58,15 @@ When executing this skill, provide lightweight progress feedback so the user can
|
|
|
57
58
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
58
59
|
|
|
59
60
|
- Before multi-step work, print step indicators, e.g.:
|
|
60
|
-
- `[0/
|
|
61
|
-
- `[1/
|
|
62
|
-
- `[2/
|
|
63
|
-
- `[3/
|
|
64
|
-
- `[4/
|
|
65
|
-
- `[5/
|
|
66
|
-
- `[6/
|
|
67
|
-
- `[7/
|
|
61
|
+
- `[0/8] Checking inherited git state...`
|
|
62
|
+
- `[1/8] Scaffolding quick-mode project…`
|
|
63
|
+
- `[2/8] Exploring solution space + capturing discovery…`
|
|
64
|
+
- `[3/8] Decision point: design depth…`
|
|
65
|
+
- `[4/8] Generating execution plan…`
|
|
66
|
+
- `[5/8] Running plan artifact review…`
|
|
67
|
+
- `[6/8] Initializing implementation tracker…`
|
|
68
|
+
- `[7/8] Refreshing dashboard + committing…`
|
|
69
|
+
- `[8/8] Running configured gate…`
|
|
68
70
|
- _(If lightweight design is chosen, insert design steps between 3 and 4)_
|
|
69
71
|
|
|
70
72
|
## Artifact Persistence (Required)
|
|
@@ -590,6 +592,31 @@ done
|
|
|
590
592
|
git diff --cached --quiet || git commit -m "chore(oat): update quick-start artifacts for {project-name}"
|
|
591
593
|
```
|
|
592
594
|
|
|
595
|
+
### Gate Execution
|
|
596
|
+
|
|
597
|
+
Before reporting this skill as complete, run the configured gate as the final step after artifact review, state sync, dashboard refresh, and the quick-start artifact commit:
|
|
598
|
+
|
|
599
|
+
1. Resolve the gate for this skill:
|
|
600
|
+
|
|
601
|
+
```bash
|
|
602
|
+
oat gate resolve <this-skill> --json
|
|
603
|
+
```
|
|
604
|
+
|
|
605
|
+
If the command returns JSON `null`, no gate is configured; the skill is complete.
|
|
606
|
+
|
|
607
|
+
2. If a gate config is returned, run its `command` exactly as configured. Capture stdout, stderr, and the exit code. A zero exit code means the gate passed and the skill is complete.
|
|
608
|
+
|
|
609
|
+
3. Review-artifact handoff:
|
|
610
|
+
- If the gate reports a produced review artifact, the host must run `oat-project-review-receive` to receive and disposition that artifact before treating the review as consumed.
|
|
611
|
+
- This applies to `oat gate review ...` outputs regardless of whether the gate ultimately exits zero or nonzero; the command output owns the exact artifact path, and receive-review owns disposition and archival.
|
|
612
|
+
|
|
613
|
+
4. If the command exits nonzero, use `description` to orient the next steps and handle `onFailure`:
|
|
614
|
+
- `block`: read gate feedback, remediate, and re-run the gate up to `maxAttempts` attempts (default `2`). If attempts are exhausted, escalate to the human with accumulated feedback and append that feedback to `implementation.md`. Treat a launch failure, missing CLI, or no eligible runtime as escalation-biased and do not spend it as a remediation attempt.
|
|
615
|
+
- `prompt`: surface the gate failure and ask the human how to proceed.
|
|
616
|
+
- `warn`: record the gate failure and continue.
|
|
617
|
+
|
|
618
|
+
5. Runtime selection note (V1): the step runs the gate `command` as-is and reads no env var. By default, `oat gate cross-provider-exec` resolves the current host from built-in `hostDetectionCommand`s and avoids the same runtime with zero per-prompt input. It does not read or stamp `OAT_CURRENT_RUNTIME` or `OAT_GATE_EXEC_TARGET`. To pin a specific reviewer for this skill, set `--target <id>` once in that skill's gate `command`; this is the optional precision path and does not require per-prompt input.
|
|
619
|
+
|
|
593
620
|
### Step 7: Output Next Action
|
|
594
621
|
|
|
595
622
|
Report:
|
|
@@ -611,3 +638,4 @@ Report:
|
|
|
611
638
|
- ✅ `plan.md` records the plan artifact review row unless `workflow.autoArtifactReview.plan` was explicitly disabled.
|
|
612
639
|
- ✅ `implementation.md` is initialized for resumable execution.
|
|
613
640
|
- ✅ Changed quick-start artifacts are committed before handoff or pause; `.oat/state.md` is refreshed locally when available.
|
|
641
|
+
- ✅ Configured gate has run, and any produced review artifact has been handed off to `oat-project-review-receive` before it is treated as consumed.
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-project-review-provide
|
|
3
|
-
version: 1.3.
|
|
3
|
+
version: 1.3.8
|
|
4
4
|
description: Use when the user explicitly asks to review an OAT project — e.g. "review project", "review the project", "run project review", or confirms a previously offered review. Do NOT auto-invoke on completed work alone. Resolves a project review scope and offers before running.
|
|
5
5
|
disable-model-invocation: false
|
|
6
6
|
user-invocable: true
|
|
7
|
-
allowed-tools: Read, Glob, Grep, Bash(git:*), AskUserQuestion
|
|
7
|
+
allowed-tools: Read, Glob, Grep, Write, Edit, Bash(git:*), Bash(oat:*), Bash(pnpm:*), Bash(mkdir:*), Bash(date:*), Bash(realpath:*), Bash(awk:*), AskUserQuestion
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Request Review
|
|
@@ -639,7 +639,7 @@ oat_generated: true
|
|
|
639
639
|
oat_generated_at: { today }
|
|
640
640
|
oat_review_scope: { scope }
|
|
641
641
|
oat_review_type: { code|artifact }
|
|
642
|
-
oat_review_invocation: { manual|auto }
|
|
642
|
+
oat_review_invocation: { manual|auto|gate }
|
|
643
643
|
oat_project: { PROJECT_PATH }
|
|
644
644
|
---
|
|
645
645
|
|
|
@@ -655,13 +655,21 @@ oat_project: { PROJECT_PATH }
|
|
|
655
655
|
|
|
656
656
|
- `manual` (default): Review was manually triggered by the user. `oat-project-review-receive` uses standard disposition behavior (user prompts for triage, minors auto-deferred for non-final scopes).
|
|
657
657
|
- `auto`: Review was spawned by the auto-review checkpoint trigger in `oat-project-implement`. `oat-project-review-receive` uses relaxed disposition: minors are auto-converted to fix tasks (not deferred), no user prompts for disposition decisions.
|
|
658
|
+
- `gate`: Review was spawned by `oat gate review`. Gate-originated reviews use normal stateful review-provide behavior: write the review artifact, update the `## Reviews` row, and commit review bookkeeping. `oat-project-review-receive` treats gate reviews with the same standard disposition behavior as manual reviews unless a future implementation explicitly designs autonomous receive.
|
|
658
659
|
|
|
659
|
-
When `oat-project-implement` spawns this skill for auto-review at checkpoints, it passes context indicating auto invocation. Set `oat_review_invocation: auto` in the artifact frontmatter. For all other invocations (user-triggered, fresh session), use `manual`.
|
|
660
|
+
When `oat-project-implement` spawns this skill for auto-review at checkpoints, it passes context indicating auto invocation. Set `oat_review_invocation: auto` in the artifact frontmatter. When `oat gate review` spawns this skill, set `oat_review_invocation: gate`. For all other invocations (user-triggered, fresh session), use `manual`.
|
|
661
|
+
|
|
662
|
+
Gate parsing contract:
|
|
663
|
+
|
|
664
|
+
- Include either the `Findings: {N} critical, {N} important, {N} medium, {N} minor` summary line or the standard `## Findings` section with `### Critical`, `### Important`, `### Medium`, and `### Minor` subsections populated with findings or `None`.
|
|
665
|
+
- Do not omit severity headings merely because a severity has zero findings; `oat gate review` depends on counts or standard Findings sections to determine whether the review blocks.
|
|
660
666
|
|
|
661
667
|
## Summary
|
|
662
668
|
|
|
663
669
|
{2-3 sentence summary}
|
|
664
670
|
|
|
671
|
+
Findings: {N} critical, {N} important, {N} medium, {N} minor
|
|
672
|
+
|
|
665
673
|
## Findings
|
|
666
674
|
|
|
667
675
|
### Critical
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-project-review-receive
|
|
3
|
-
version: 1.5.
|
|
3
|
+
version: 1.5.4
|
|
4
4
|
description: Use when the user explicitly asks to receive review findings for an OAT project — e.g. "receive review", "process review", "process the project review", or confirms a previously offered review-receive step. Do NOT auto-invoke merely because a review file exists. Resolves the latest review and offers before acting.
|
|
5
5
|
disable-model-invocation: false
|
|
6
6
|
user-invocable: true
|
|
@@ -274,6 +274,8 @@ Read `oat_review_type` and `oat_review_invocation` from review artifact frontmat
|
|
|
274
274
|
- **No user prompts for disposition decisions.** The auto-review path runs fully autonomously.
|
|
275
275
|
- Genuinely ambiguous findings (e.g., a medium the agent disagrees with) are deferred with a note explaining why, rather than pausing for interactive resolution.
|
|
276
276
|
- Follow the task-conversion flow in Steps 3-10 with these adjusted defaults.
|
|
277
|
+
- If `oat_review_type == code` AND `oat_review_invocation == gate`:
|
|
278
|
+
- **Gate review mode.** This review was spawned by `oat gate review`, but receive remains standard disposition behavior. Treat `gate` the same as manual for prompts, finding conversion, artifact archival, and bookkeeping unless a future implementation explicitly designs an autonomous receive path.
|
|
277
279
|
- If `oat_review_type == code` (manual or `oat_review_invocation` absent):
|
|
278
280
|
- Follow the existing task-conversion flow in Steps 3-10 with standard disposition behavior.
|
|
279
281
|
|