@open-agent-toolkit/cli 0.2.79 → 0.3.0
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 +5 -5
- package/assets/agents/oat-reviewer.md +15 -15
- package/assets/bundle-metadata.json +1 -1
- package/assets/docs/cli-utilities/workflow-gates.md +1 -1
- package/assets/docs/workflows/projects/artifacts.md +2 -2
- package/assets/docs/workflows/projects/autonomy.md +1 -1
- package/assets/docs/workflows/projects/implementation-execution.md +4 -4
- package/assets/docs/workflows/projects/lifecycle.md +1 -1
- package/assets/docs/workflows/projects/reviews.md +11 -11
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-agent-instructions-analyze/SKILL.md +3 -3
- package/assets/skills/oat-docs-analyze/SKILL.md +3 -3
- package/assets/skills/oat-project-autonomous/SKILL.md +2 -2
- package/assets/skills/oat-project-autonomous/references/gate-inventory.md +14 -14
- package/assets/skills/oat-project-design/SKILL.md +2 -2
- package/assets/skills/oat-project-discover/SKILL.md +2 -2
- package/assets/skills/oat-project-document/SKILL.md +1 -1
- package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +14 -14
- package/assets/skills/oat-project-implement/SKILL.md +2 -2
- package/assets/skills/oat-project-implement/references/completion-and-closeout.md +1 -1
- package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +14 -14
- package/assets/skills/oat-project-implement/references/phase-execution.md +3 -3
- package/assets/skills/oat-project-implement/references/plan-and-resume.md +2 -2
- package/assets/skills/oat-project-import-plan/SKILL.md +2 -2
- package/assets/skills/oat-project-lite/SKILL.md +1 -1
- package/assets/skills/oat-project-lite/references/docs/autonomy-contract.md +14 -14
- package/assets/skills/oat-project-plan/SKILL.md +2 -2
- package/assets/skills/oat-project-plan-writing/SKILL.md +4 -4
- package/assets/skills/oat-project-pr-final/SKILL.md +1 -1
- package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +14 -14
- package/assets/skills/oat-project-quick-start/SKILL.md +2 -2
- package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +14 -14
- package/assets/skills/oat-project-review-provide/SKILL.md +14 -14
- package/assets/skills/oat-project-review-provide-remote/SKILL.md +10 -10
- package/assets/skills/oat-project-review-receive/SKILL.md +64 -45
- package/assets/skills/oat-project-review-receive-remote/SKILL.md +6 -6
- package/assets/skills/oat-project-revise/SKILL.md +2 -2
- package/assets/skills/oat-review-provide/SKILL.md +2 -2
- package/assets/skills/oat-review-provide/references/review-artifact-template.md +3 -3
- package/assets/skills/oat-review-provide-remote/SKILL.md +11 -11
- package/assets/skills/oat-review-receive/SKILL.md +18 -17
- package/assets/skills/oat-review-receive-remote/SKILL.md +13 -13
- package/assets/skills/oat-wave-execute/SKILL.md +2 -2
- package/assets/templates/plan.md +1 -1
- package/dist/commands/gate/__fixtures__/fake-runtime.mjs +4 -4
- package/dist/commands/gate/index.d.ts.map +1 -1
- package/dist/commands/gate/index.js +20 -11
- package/dist/commands/gate/review-verdict.d.ts +2 -2
- package/dist/commands/gate/review-verdict.d.ts.map +1 -1
- package/dist/commands/gate/review-verdict.js +223 -57
- package/dist/review-remote/body-builder.d.ts +3 -3
- package/dist/review-remote/body-builder.d.ts.map +1 -1
- package/dist/review-remote/body-builder.js +12 -12
- package/dist/review-remote/reviewer-dispatch.d.ts +2 -2
- package/dist/review-remote/reviewer-dispatch.d.ts.map +1 -1
- package/dist/review-remote/reviewer-dispatch.js +15 -7
- package/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-phase-implementer
|
|
3
|
-
version: 1.1.
|
|
3
|
+
version: 1.1.6
|
|
4
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
|
|
@@ -43,7 +43,7 @@ The root supplies:
|
|
|
43
43
|
Fix mode also supplies:
|
|
44
44
|
|
|
45
45
|
- `review_artifact`: authoritative root-dispatched phase review;
|
|
46
|
-
- `findings`: bounded Critical/
|
|
46
|
+
- `findings`: bounded Critical/High findings;
|
|
47
47
|
- `prior_report`: prior implementation/fix report;
|
|
48
48
|
- `original_request_id`: original phase dispatch request;
|
|
49
49
|
- `continuation_event`: resume linkage for this fix attempt.
|
|
@@ -465,7 +465,7 @@ After all task commits:
|
|
|
465
465
|
- `quick`: `plan.md` and `discovery.md`, plus design/spec when present; and
|
|
466
466
|
- `import`: `plan.md` and the imported plan, plus design/spec when present;
|
|
467
467
|
- confirm no task boundary or dependency was missed; and
|
|
468
|
-
- report Medium/
|
|
468
|
+
- report Medium/Low concerns without launching a reviewer.
|
|
469
469
|
|
|
470
470
|
The independent implementation review is root-owned and occurs after this
|
|
471
471
|
report.
|
|
@@ -711,7 +711,7 @@ Fix mode is a continuation of a successfully completed phase, not a replay.
|
|
|
711
711
|
`original_request_id`. A fresh same-target recovery must record this linkage
|
|
712
712
|
in the generic record's existing `continuation_events`; do not invent a new
|
|
713
713
|
schema or unrelated request chain.
|
|
714
|
-
3. Address only supplied Critical/
|
|
714
|
+
3. Address only supplied Critical/High findings within their declared
|
|
715
715
|
files.
|
|
716
716
|
4. Run the cited task or phase verification.
|
|
717
717
|
5. Create one append-only fix commit for this review round. Do not amend task
|
|
@@ -726,7 +726,7 @@ Fix mode is a continuation of a successfully completed phase, not a replay.
|
|
|
726
726
|
**Phase:** {phase-id}
|
|
727
727
|
**Original request ID:** {request_id}
|
|
728
728
|
**Continuation event:** {event identifier}
|
|
729
|
-
**Findings addressed:** {N} critical, {N}
|
|
729
|
+
**Findings addressed:** {N} critical, {N} high
|
|
730
730
|
**Fix commit:** {sha}
|
|
731
731
|
**Phase verification:** pass | fail
|
|
732
732
|
**Dispatch target:** {same launcher-owned target}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-reviewer
|
|
3
|
-
version: 1.2.
|
|
3
|
+
version: 1.2.7
|
|
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, Task
|
|
6
6
|
color: yellow
|
|
@@ -194,7 +194,7 @@ Strategy`, check whether the evidence matches the declared strategy, covers
|
|
|
194
194
|
|
|
195
195
|
3. **Is there extra work?**
|
|
196
196
|
- Code that doesn't map to any requirement
|
|
197
|
-
- If significant: add to
|
|
197
|
+
- If significant: add to High findings (potential scope creep)
|
|
198
198
|
|
|
199
199
|
### Step 4: Verify Artifact Quality
|
|
200
200
|
|
|
@@ -291,8 +291,8 @@ Review the analysis artifact as a fact-checking target, not as a rewrite request
|
|
|
291
291
|
- Open each cited file/location that materially supports the finding; if the cited evidence is absent, stale, or unrelated, add a finding.
|
|
292
292
|
|
|
293
293
|
2. **Severity is justified**
|
|
294
|
-
- Critical/
|
|
295
|
-
- Medium/
|
|
294
|
+
- Critical/High findings must describe concrete user-visible, workflow, correctness, security, or maintainability impact.
|
|
295
|
+
- Medium/Low findings must not be inflated solely because they are easy to fix.
|
|
296
296
|
|
|
297
297
|
3. **Recommendations are accurate**
|
|
298
298
|
- Suggested fixes must match the actual repo contracts and existing file conventions.
|
|
@@ -340,7 +340,7 @@ Group findings by severity:
|
|
|
340
340
|
- Broken functionality
|
|
341
341
|
- Missing capable evidence for critical paths
|
|
342
342
|
|
|
343
|
-
**
|
|
343
|
+
**High** (should fix before merge)
|
|
344
344
|
|
|
345
345
|
- Missing P1 requirements
|
|
346
346
|
- Missing error handling
|
|
@@ -354,7 +354,7 @@ Group findings by severity:
|
|
|
354
354
|
- Moderate maintainability or testability issues
|
|
355
355
|
- Contract gaps that can cause future regressions
|
|
356
356
|
|
|
357
|
-
**
|
|
357
|
+
**Low** (fix if time permits)
|
|
358
358
|
|
|
359
359
|
- P2 requirements
|
|
360
360
|
- Style issues
|
|
@@ -415,7 +415,7 @@ oat_invocation_source: { exec-target-config|unknown }
|
|
|
415
415
|
|
|
416
416
|
{2-3 sentence summary of findings}
|
|
417
417
|
|
|
418
|
-
Findings: {N} critical, {N}
|
|
418
|
+
Findings by severity: {N} critical, {N} high, {N} medium, {N} low
|
|
419
419
|
|
|
420
420
|
## Review Orchestration
|
|
421
421
|
|
|
@@ -439,7 +439,7 @@ worker claims, and root-inline coverage}
|
|
|
439
439
|
- Fix: {specific guidance}
|
|
440
440
|
- Requirement: {FR/NFR ID if applicable}
|
|
441
441
|
|
|
442
|
-
###
|
|
442
|
+
### High
|
|
443
443
|
|
|
444
444
|
{If none: "None"}
|
|
445
445
|
|
|
@@ -455,7 +455,7 @@ worker claims, and root-inline coverage}
|
|
|
455
455
|
- Issue: {description}
|
|
456
456
|
- Fix: {specific guidance}
|
|
457
457
|
|
|
458
|
-
###
|
|
458
|
+
### Low
|
|
459
459
|
|
|
460
460
|
{If none: "None"}
|
|
461
461
|
|
|
@@ -494,7 +494,7 @@ Run the `oat-project-review-receive` skill to convert findings into plan tasks.
|
|
|
494
494
|
|
|
495
495
|
```
|
|
496
496
|
|
|
497
|
-
Gate parsing contract: artifact-mode reviews, including reviews spawned by `oat gate review`, MUST include either the complete `Findings: {N} critical, {N}
|
|
497
|
+
Gate parsing contract: artifact-mode reviews, including reviews spawned by `oat gate review`, MUST include either the complete `Findings by severity: {N} critical, {N} high, {N} medium, {N} low` count line or the standard `## Findings` sections shown above with every severity subsection present. When more than one count source is present — the frontmatter count fields, the count line, and the sections — the counts must agree; the gate refuses an artifact whose sources contradict each other rather than picking one.
|
|
498
498
|
|
|
499
499
|
For every artifact-mode code review, `oat_review_head_sha` is required and must be the full 40-character commit SHA at the head of the authoritative review range. Resolve it with `git rev-parse <authoritative-range-head>^{commit}`. An abbreviated SHA, symbolic ref, or range string is invalid. When the review narrowed, `oat_review_range`, `oat_prior_review_artifact`, and `oat_prior_review_head_sha` are also required; the prior head must likewise be a full 40-character SHA. These code-review fields are independent of the gate-only block and do not apply to artifact, analysis, or structured-output reviews.
|
|
500
500
|
|
|
@@ -518,7 +518,7 @@ Format:
|
|
|
518
518
|
## Review Complete
|
|
519
519
|
|
|
520
520
|
**Scope:** {scope}
|
|
521
|
-
**Findings:** {N} critical, {N}
|
|
521
|
+
**Findings:** {N} critical, {N} high, {N} medium, {N} low
|
|
522
522
|
**Review artifact:** {path}
|
|
523
523
|
**Reconnaissance:** {attempted | not-attempted}
|
|
524
524
|
|
|
@@ -539,8 +539,8 @@ When the dispatch payload sets `oat_output_mode: structured`, the output sink ch
|
|
|
539
539
|
interface StructuredFindings {
|
|
540
540
|
summary: string; // 2-3 sentence review summary; include compact orchestration when reconnaissance was attempted
|
|
541
541
|
findings: Array<{
|
|
542
|
-
id: string; // C1,
|
|
543
|
-
severity: 'critical' | '
|
|
542
|
+
id: string; // C1, H1, M1, L1 — stable per dispatch (C/H/M/L prefix matches the severity model)
|
|
543
|
+
severity: 'critical' | 'high' | 'medium' | 'low';
|
|
544
544
|
title: string;
|
|
545
545
|
file: string | null; // repo-relative path
|
|
546
546
|
line: number | null; // 1-based line in the post-image (new file)
|
|
@@ -553,9 +553,9 @@ interface StructuredFindings {
|
|
|
553
553
|
|
|
554
554
|
**Rules for the structured return:**
|
|
555
555
|
|
|
556
|
-
- `severity` MUST be one of the four enum values, mapped from the same Critical/
|
|
556
|
+
- `severity` MUST be one of the four enum values, mapped from the same Critical/High/Medium/Low buckets as Step 7.
|
|
557
557
|
- `file` and `line` MUST both be set or both be `null`. A finding with a concrete location sets both; a reviewer-level finding without a specific location sets both to `null` and is conveyed via the `summary` / its own `body`, not as an inline location.
|
|
558
|
-
- `id` prefixes follow the existing convention (`C`/`
|
|
558
|
+
- `id` prefixes follow the existing convention (`C`/`H`/`M`/`L`) and are stable within a single dispatch — no renumbering.
|
|
559
559
|
- `verification_commands` carries what Step 8's "Verification Commands" section would have carried, as an array of command strings.
|
|
560
560
|
|
|
561
561
|
Default behavior is unaffected: when `oat_output_mode` is absent or set to anything other than `structured`, follow Steps 8-9 and write the artifact exactly as before. Analysis reviews MUST honor `oat_output_mode: structured` whenever supplied by an auto-review loop: return the `StructuredFindings` object and write no artifact.
|
|
@@ -469,7 +469,7 @@ oat --json gate review \
|
|
|
469
469
|
--project "$PROJECT_PATH" \
|
|
470
470
|
--review-type code \
|
|
471
471
|
--review-scope final \
|
|
472
|
-
--exit-nonzero-on
|
|
472
|
+
--exit-nonzero-on high \
|
|
473
473
|
'Use oat-project-review-provide code final for the declared project'
|
|
474
474
|
```
|
|
475
475
|
|
|
@@ -251,7 +251,7 @@ oat_phase_review_gate:
|
|
|
251
251
|
enabled: true
|
|
252
252
|
phases: [] # empty or omitted = every implementation phase
|
|
253
253
|
review_type: code
|
|
254
|
-
exit_nonzero_on:
|
|
254
|
+
exit_nonzero_on: high
|
|
255
255
|
```
|
|
256
256
|
|
|
257
257
|
**Semantics:**
|
|
@@ -259,7 +259,7 @@ oat_phase_review_gate:
|
|
|
259
259
|
- Missing, `null`, or `enabled: false` → disabled (default). `enabled: true` activates the gate.
|
|
260
260
|
- `phases` → optional. Empty or missing runs the gate after every implementation phase; a populated list restricts it to those phase IDs, each of which must exist in the plan body.
|
|
261
261
|
- `review_type` → optional, defaults to `code`. Only `code` is supported for phase gates.
|
|
262
|
-
- `exit_nonzero_on` → optional, defaults to `
|
|
262
|
+
- `exit_nonzero_on` → optional, defaults to `high`. One of `critical`, `high`, `medium`, `low`. This is the blocking threshold: findings at or above it stop the phase; sub-threshold findings are dispositioned by the judgment sweep rather than ignored.
|
|
263
263
|
|
|
264
264
|
A malformed gate stops the run before task execution rather than being silently disabled. The gate is independent of HiLL checkpoints and reuses the existing `oat gate review` target config — it does not hardcode a `--target`. See [Reviews → Phase review gate](reviews.md#phase-review-gate) for the runtime behavior and disposition rules.
|
|
265
265
|
|
|
@@ -107,7 +107,7 @@ Autonomous execution preserves independent review:
|
|
|
107
107
|
a cheaper or less independent reviewer.
|
|
108
108
|
- Eligible review artifacts are received immediately. Fix tasks use the normal
|
|
109
109
|
bounded implement-and-re-review loop.
|
|
110
|
-
- Critical findings and failed blocking reviews stop progression.
|
|
110
|
+
- Critical findings and failed blocking reviews stop progression. High
|
|
111
111
|
findings follow the configured gate policy.
|
|
112
112
|
- A normal phase or final lifecycle review cannot satisfy a configured
|
|
113
113
|
implementation exit gate. Only gate invocation provenance with the matching
|
|
@@ -237,8 +237,8 @@ already part of the next phase's base.
|
|
|
237
237
|
|
|
238
238
|
The root sends the reviewer a fresh scope containing the authoritative phase
|
|
239
239
|
commit range, task IDs and boundaries, project artifacts, and verification
|
|
240
|
-
evidence. The review passes with zero Critical and zero
|
|
241
|
-
Medium and
|
|
240
|
+
evidence. The review passes with zero Critical and zero High findings.
|
|
241
|
+
Medium and Low findings are recorded without blocking the phase.
|
|
242
242
|
|
|
243
243
|
## Final Exit-Gate Boundary
|
|
244
244
|
|
|
@@ -381,7 +381,7 @@ See [Dispatch Policy](dispatch-ceiling.md) for configuration and
|
|
|
381
381
|
|
|
382
382
|
## Fix Continuity
|
|
383
383
|
|
|
384
|
-
When review finds Critical or
|
|
384
|
+
When review finds Critical or High issues, the root resumes the original
|
|
385
385
|
phase handle in `fix` mode with:
|
|
386
386
|
|
|
387
387
|
- the review artifact and bounded findings;
|
|
@@ -404,7 +404,7 @@ sequenceDiagram
|
|
|
404
404
|
Root->>Phase: Phase Scope (request_id=A)
|
|
405
405
|
Phase-->>Root: DONE + task commits
|
|
406
406
|
Root->>Review: Review phase commit range
|
|
407
|
-
Review-->>Root: Critical /
|
|
407
|
+
Review-->>Root: Critical / High findings
|
|
408
408
|
Root->>Phase: Resume A in fix mode
|
|
409
409
|
Phase-->>Root: Fix commit + verification
|
|
410
410
|
Root->>Review: New independent review round
|
|
@@ -260,7 +260,7 @@ registers. Non-interactive completion skips this offer, so autonomous
|
|
|
260
260
|
generation occurs only through an explicitly configured post-approval `retro`
|
|
261
261
|
step.
|
|
262
262
|
|
|
263
|
-
When `workflow.autoReviewAtHillCheckpoints` is enabled or `plan.md` frontmatter sets `oat_auto_review_at_hill_checkpoints`, completing a HiLL checkpoint automatically runs the extra lifecycle review scoped to every implementation phase not already covered by a passed whole-phase code review, through the just-completed checkpoint. Mid-implementation multi-phase reviews use inclusive phase-range scopes such as `p02-p03`; the final implementation checkpoint uses `code final`. The review uses auto-disposition mode (
|
|
263
|
+
When `workflow.autoReviewAtHillCheckpoints` is enabled or `plan.md` frontmatter sets `oat_auto_review_at_hill_checkpoints`, completing a HiLL checkpoint automatically runs the extra lifecycle review scoped to every implementation phase not already covered by a passed whole-phase code review, through the just-completed checkpoint. Mid-implementation multi-phase reviews use inclusive phase-range scopes such as `p02-p03`; the final implementation checkpoint uses `code final`. The review uses auto-disposition mode (low findings auto-converted to fix tasks, no user prompts). Disabled by default. Legacy `autoReviewAtCheckpoints` and `oat_auto_review_at_checkpoints` are still read as fallbacks. This does not control Tier 1 per-phase `oat-reviewer` gates.
|
|
264
264
|
|
|
265
265
|
### Phase-review setup during planning
|
|
266
266
|
|
|
@@ -76,7 +76,7 @@ The common rule is offer-and-confirm: the model may recognize the request and pr
|
|
|
76
76
|
|
|
77
77
|
- **GitHub is the source of truth.** No local review artifact is written on the reviewing machine, and the project rail makes no `plan.md`/bookkeeping mutations there — the originating machine's `*-receive-remote` owns those. The posted PR review carries metadata markers (`oat_provide_remote`, `oat_review_head_sha`, and on the project rail `oat_project` + `oat_review_scope`) so a subsequent provide-remote pass can find the prior review for re-review narrowing.
|
|
78
78
|
- **Hybrid read strategy.** The skill checks the PR out into an ephemeral worktree for full-context review by default, and falls back to diff-only mode (`gh pr diff`, or when `--no-checkout` is set / checkout fails) with a degraded-context warning.
|
|
79
|
-
- **Single posted review.** Findings are posted as one PR review via `gh api` with inline `comments[]`; the verdict is `REQUEST_CHANGES` when any Critical/
|
|
79
|
+
- **Single posted review.** Findings are posted as one PR review via `gh api` with inline `comments[]`; the verdict is `REQUEST_CHANGES` when any Critical/High finding exists, otherwise `COMMENT` (including clean reviews — never an automatic `APPROVE`). Findings whose line is outside the PR diff are downgraded into the top-level review body rather than dropped.
|
|
80
80
|
- **Project rail is project-aware but read-only.** It resolves the project by scanning the PR diff for `.oat/projects/*/*/state.md` (with a `--project <path>` override), reads project artifacts to drive mode-aware review quality, and uses Tier 1/2/3 dispatch (`oat-reviewer` structured-output mode → fresh session → inline). The ad-hoc rail runs inline only.
|
|
81
81
|
- **Re-review narrowing** scopes a follow-up pass to commits since the prior matching review, guarded against a stale/force-pushed prior SHA (existence + ancestry checks; falls back to full scope when the prior SHA is unreachable). Project-rail narrowing matches on the `(project, scope)` tuple so a `p02` re-review never narrows against a prior `final` review.
|
|
82
82
|
|
|
@@ -111,11 +111,11 @@ the relevant scope and type.
|
|
|
111
111
|
|
|
112
112
|
## Current policy
|
|
113
113
|
|
|
114
|
-
- Critical/
|
|
114
|
+
- Critical/High: address before pass.
|
|
115
115
|
- Medium: address by default; defer only with explicit approval and recorded rationale/disposition.
|
|
116
|
-
-
|
|
117
|
-
- Deferring (or dismissing) a finding **at any severity, including
|
|
118
|
-
-
|
|
116
|
+
- Low: **default to `convert`** (fix inline). Small non-blocking findings are usually cheaper to fix than to track as backlog items, so the receive skills convert them by default rather than deferring.
|
|
117
|
+
- Deferring (or dismissing) a finding **at any severity, including low**, requires a concrete recorded rationale (duplicate, blocked dependency, explicit out-of-scope follow-up, or disproportionate churn now). This brings the manual receive path in line with the auto-review path, which already converts low findings.
|
|
118
|
+
- Low (final scope): still require explicit per-finding user disposition after a plain-language explanation, with `convert` as the recommended default.
|
|
119
119
|
|
|
120
120
|
## Auto-review at HiLL checkpoints
|
|
121
121
|
|
|
@@ -132,7 +132,7 @@ latest stamp as the producer for the whole scope.
|
|
|
132
132
|
|
|
133
133
|
This is separate from Tier 1 phase gate reviews. Tier 1 implementation always runs `oat-reviewer` after each phase; `workflow.autoReviewAtHillCheckpoints` only controls the additional lifecycle review when a HiLL checkpoint is reached. Legacy `autoReviewAtCheckpoints` and `oat_auto_review_at_checkpoints` are still read as fallbacks.
|
|
134
134
|
|
|
135
|
-
Auto-triggered reviews use `oat_review_invocation: auto` in the review artifact frontmatter. In auto mode, `oat-project-review-receive` auto-converts all findings to fix tasks without user prompts (
|
|
135
|
+
Auto-triggered reviews use `oat_review_invocation: auto` in the review artifact frontmatter. In auto mode, `oat-project-review-receive` auto-converts all findings to fix tasks without user prompts (Low findings that are clearly out of scope are deferred with a note).
|
|
136
136
|
|
|
137
137
|
This feature is opt-in and disabled by default. When disabled, the manual `oat-project-review-provide` workflow applies.
|
|
138
138
|
|
|
@@ -150,7 +150,7 @@ leaves the gate disabled.
|
|
|
150
150
|
|
|
151
151
|
It is independent of [HiLL checkpoints](hill-checkpoints.md): a passing gate does not pause, and the gate never touches `oat_hill_completed`, `oat_plan_hill_phases`, or `oat_auto_review_at_hill_checkpoints`.
|
|
152
152
|
|
|
153
|
-
Gate-produced review artifacts use `oat_review_invocation: gate` in frontmatter (the third invocation marker alongside `manual` and `auto`). The gate verdict — controlled by `exit_nonzero_on` (default `
|
|
153
|
+
Gate-produced review artifacts use `oat_review_invocation: gate` in frontmatter (the third invocation marker alongside `manual` and `auto`). The gate verdict — controlled by `exit_nonzero_on` (default `high`) — decides whether the **phase stops**; it does not decide whether sub-threshold findings are ignored. Before invoking `oat-project-review-receive`, the result must satisfy all three eligibility conditions: `status` is `ok` or `blocked`, `receiveEligible` is `true`, and `handoff` is non-null. A missing or contradictory field is an operational failure even when `artifactPath` is present. Once eligibility is established, the produced artifact is consumed autonomously and without user prompts, so findings never evaporate:
|
|
154
154
|
|
|
155
155
|
The gate prompt provides six additional frontmatter values: `oat_gate_run_id`,
|
|
156
156
|
`oat_gate_target`, `oat_gate_runtime`, `oat_invocation_model`,
|
|
@@ -160,7 +160,7 @@ separate from optional observed or self-reported producer identity. Missing or
|
|
|
160
160
|
mismatched values produce `artifact_validation_failed` before finding severity
|
|
161
161
|
is evaluated.
|
|
162
162
|
|
|
163
|
-
- **Passing gate** (no findings at or above the threshold): receive runs a non-pausing **judgment sweep**. It makes a per-finding decision for each Medium/
|
|
163
|
+
- **Passing gate** (no findings at or above the threshold): receive runs a non-pausing **judgment sweep**. It makes a per-finding decision for each Medium/Low — defer to final review (the default, recorded so [final review](#phase-and-final-review) resurfaces it), address now (only for small, contained, low-risk fixes, which do **not** re-trigger the standard reviewer or re-gate the phase), or reject with rationale — then archives the artifact. Address-now is an exception, not the norm; if such a fix reveals a Critical/High concern it escalates to the blocking path.
|
|
164
164
|
- **Blocking gate** (one or more findings at or above the threshold): receive converts findings to fix tasks and implementation re-runs the standard reviewer and the gate for the phase. These block → fix → re-gate rounds are bounded by `oat_orchestration_retry_limit` (default `2`); exhausting the bound stops a sequential run or excludes the phase in a parallel group, matching the standard fix loop's terminal handling.
|
|
165
165
|
|
|
166
166
|
Gate-originated artifacts (`oat_review_invocation: gate`) are excluded from the same-scope review-cycle cap in `oat-project-review-receive`. The cap measures failed fix cycles of the standard review loop, so counting gate artifacts would trip it on artifact volume rather than real fix rounds.
|
|
@@ -173,7 +173,7 @@ This feature is opt-in and disabled by default (missing or `enabled: false`). Fo
|
|
|
173
173
|
|
|
174
174
|
Generated planning and analysis artifacts have a separate review loop from code/phase reviews.
|
|
175
175
|
|
|
176
|
-
For plans, `oat-project-plan`, `oat-project-quick-start`, `oat-project-lite`, and `oat-project-import-plan` run a bounded `plan.md` artifact review before marking the plan ready for implementation. The loop dispatches `oat-reviewer` in structured-output artifact mode with `scope: plan`, applies unambiguous Critical and
|
|
176
|
+
For plans, `oat-project-plan`, `oat-project-quick-start`, `oat-project-lite`, and `oat-project-import-plan` run a bounded `plan.md` artifact review before marking the plan ready for implementation. The loop dispatches `oat-reviewer` in structured-output artifact mode with `scope: plan`, applies unambiguous Critical and High artifact-local fixes, offers Medium and Low fixes, and re-runs until clean or the retry bound is exhausted. A clean result records the `plan` row in the plan's `## Reviews` table as `passed`.
|
|
177
177
|
|
|
178
178
|
For analysis artifacts, `oat-docs-analyze` and `oat-agent-instructions-analyze` run a bounded accuracy review after writing their severity-rated artifacts. The reviewer checks cited evidence, severity, and recommendations before the matching apply workflow consumes the artifact. The analysis loop updates tracking metadata to mark the artifact verified.
|
|
179
179
|
|
|
@@ -219,9 +219,9 @@ Use phase-scoped review artifacts during implementation (`p01`, `p02`, etc), the
|
|
|
219
219
|
|
|
220
220
|
Final review `passed` gate requires:
|
|
221
221
|
|
|
222
|
-
- No unresolved Critical/
|
|
222
|
+
- No unresolved Critical/High/Medium findings.
|
|
223
223
|
- Deferred Medium findings resurfaced and explicitly dispositioned.
|
|
224
|
-
-
|
|
224
|
+
- Low findings explicitly dispositioned (after plain-language explanation).
|
|
225
225
|
|
|
226
226
|
## Subagent Compatibility
|
|
227
227
|
|
|
@@ -5,7 +5,7 @@ disable-model-invocation: true
|
|
|
5
5
|
user-invocable: true
|
|
6
6
|
allowed-tools: Read, Write, Bash(git:*), Glob, Grep, AskUserQuestion, Task
|
|
7
7
|
metadata:
|
|
8
|
-
version: 1.12.
|
|
8
|
+
version: 1.12.2
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# Agent Instructions Analysis
|
|
@@ -457,8 +457,8 @@ Follow the canonical loop exactly:
|
|
|
457
457
|
1. Resolve `workflow.autoArtifactReview.analysis`; missing config means enabled, and only explicit `false` skips the loop.
|
|
458
458
|
2. Resolve `oat_orchestration_retry_limit`; default to `2` if unavailable.
|
|
459
459
|
3. Dispatch `oat-reviewer` in structured mode via Tier 1 subagent when available, falling back to the same reviewer prompt inline when needed.
|
|
460
|
-
4. Apply Critical and
|
|
461
|
-
5. Offer Medium and
|
|
460
|
+
4. Apply Critical and High fixes when they are local to the analysis artifact, companion bundle, and unambiguous.
|
|
461
|
+
5. Offer Medium and Low fixes rather than applying them silently.
|
|
462
462
|
6. Rewrite `$ARTIFACT_PATH` and any affected bundle files after applied fixes, then re-dispatch while retries remain.
|
|
463
463
|
7. Stop when the reviewer is clean or the retry bound is exhausted.
|
|
464
464
|
|
|
@@ -5,7 +5,7 @@ disable-model-invocation: true
|
|
|
5
5
|
user-invocable: true
|
|
6
6
|
allowed-tools: Read, Write, Bash(git:*), Glob, Grep, AskUserQuestion, Task
|
|
7
7
|
metadata:
|
|
8
|
-
version: 1.5.
|
|
8
|
+
version: 1.5.2
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# Docs Analysis
|
|
@@ -448,8 +448,8 @@ Follow the canonical loop exactly:
|
|
|
448
448
|
1. Resolve `workflow.autoArtifactReview.analysis`; missing config means enabled, and only explicit `false` skips the loop.
|
|
449
449
|
2. Resolve `oat_orchestration_retry_limit`; default to `2` if unavailable.
|
|
450
450
|
3. Dispatch `oat-reviewer` in structured mode via Tier 1 subagent when available, falling back to the same reviewer prompt inline when needed.
|
|
451
|
-
4. Apply Critical and
|
|
452
|
-
5. Offer Medium and
|
|
451
|
+
4. Apply Critical and High fixes when they are local to the analysis artifact and unambiguous.
|
|
452
|
+
5. Offer Medium and Low fixes rather than applying them silently.
|
|
453
453
|
6. Rewrite `$ARTIFACT_PATH` after applied fixes and re-dispatch while retries remain.
|
|
454
454
|
7. Stop when the reviewer is clean or the retry bound is exhausted.
|
|
455
455
|
|
|
@@ -6,7 +6,7 @@ disable-model-invocation: true
|
|
|
6
6
|
user-invocable: true
|
|
7
7
|
allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion, Task
|
|
8
8
|
metadata:
|
|
9
|
-
version: 1.0.
|
|
9
|
+
version: 1.0.16
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
# Autonomous OAT Project
|
|
@@ -395,7 +395,7 @@ At every required artifact or code review:
|
|
|
395
395
|
Configured invocation evidence is authoritative; runtime identity is
|
|
396
396
|
separate and non-authoritative.
|
|
397
397
|
6. Fail closed for blocking reviews. Unresolved Critical findings always stop;
|
|
398
|
-
|
|
398
|
+
High findings follow the configured gate policy.
|
|
399
399
|
|
|
400
400
|
Do not reproduce provider-specific model, catalog, or launch mechanics here.
|
|
401
401
|
|