@open-agent-toolkit/cli 0.2.77 → 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/agents/recon-worker.md +12 -12
- 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/docs/workflows/skills/recon.md +53 -27
- 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/skills/recon/SKILL.md +37 -19
- package/assets/skills/recon/references/packet-contract.md +33 -30
- package/assets/skills/recon/references/profiles.md +18 -15
- package/assets/skills/recon/references/worker-contract.md +87 -7
- package/assets/skills/recon/scripts/create-review-brief.mjs +2 -25
- package/assets/skills/recon/scripts/lib/cli-entry.mjs +21 -0
- package/assets/skills/recon/scripts/lib/contracts.mjs +144 -38
- package/assets/skills/recon/scripts/lib/routing.mjs +2 -5
- package/assets/skills/recon/scripts/lib/validated-run.mjs +1 -1
- package/assets/skills/recon/scripts/prepare-routing.mjs +2 -26
- package/assets/skills/recon/scripts/reconcile-ledger.mjs +269 -2
- package/assets/skills/recon/scripts/render-packet.mjs +2 -25
- package/assets/skills/recon/scripts/validate-artifact.mjs +2 -25
- package/assets/skills/recon/scripts/validate-packet.mjs +73 -43
- 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.
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: recon-worker
|
|
3
|
-
version: 1.0.
|
|
3
|
+
version: 1.0.2
|
|
4
4
|
description: Executes one bounded recon packet assignment as a non-interactive leaf worker and writes exactly one declared artifact.
|
|
5
5
|
tools: Read, Bash, Grep, Glob, Write, WebSearch, WebFetch
|
|
6
6
|
color: cyan
|
|
7
|
+
is_background: true
|
|
7
8
|
---
|
|
8
9
|
|
|
9
10
|
## Role
|
|
10
11
|
|
|
11
12
|
You are a non-interactive recon leaf worker. Execute exactly one assignment in
|
|
12
|
-
one declared mode: `map`, `gather`, `compile`, `verify`, `adversary`,
|
|
13
|
-
|
|
13
|
+
one declared mode: `map`, `gather`, `compile`, `verify`, `adversary`, or
|
|
14
|
+
`coverage`. No other mode is valid.
|
|
14
15
|
|
|
15
16
|
The controller maps approved manifest waves to this closed vocabulary:
|
|
16
17
|
|
|
@@ -22,7 +23,6 @@ The controller maps approved manifest waves to this closed vocabulary:
|
|
|
22
23
|
| `semantic-verification` | `verify` |
|
|
23
24
|
| `adversarial` | `adversary` |
|
|
24
25
|
| `coverage` | `coverage` |
|
|
25
|
-
| `reconciliation` | `reconcile` |
|
|
26
26
|
| `redundant-gather` | `gather` |
|
|
27
27
|
| `redundant-verification` | `verify` |
|
|
28
28
|
| `contradiction-resolution` | `adversary` |
|
|
@@ -75,7 +75,9 @@ canonical claim status.
|
|
|
75
75
|
|
|
76
76
|
Consume only the designated dossiers. Deduplicate their findings into a
|
|
77
77
|
provisional claim-ledger candidate and cite direct input artifacts. Do not
|
|
78
|
-
reopen excluded sources or invent evidence.
|
|
78
|
+
reopen excluded sources or invent evidence. Every persisted display excerpt
|
|
79
|
+
must be an exact contiguous substring of the cited source, except for the
|
|
80
|
+
declared `redacted-exact` representation.
|
|
79
81
|
|
|
80
82
|
### `verify`
|
|
81
83
|
|
|
@@ -99,13 +101,6 @@ Compare the declared scope and questions with the permitted ledger projection.
|
|
|
99
101
|
Emit covered items, missing areas, and material gaps. Do not read gatherer
|
|
100
102
|
reasoning.
|
|
101
103
|
|
|
102
|
-
### `reconcile`
|
|
103
|
-
|
|
104
|
-
Apply permitted review dispositions and contradiction outcomes to a new ledger
|
|
105
|
-
candidate. Preserve the prior revision, legal state transitions, evidence
|
|
106
|
-
links, qualifications, and unresolved issues. Never invent evidence or update
|
|
107
|
-
the existing ledger in place.
|
|
108
|
-
|
|
109
104
|
## Output
|
|
110
105
|
|
|
111
106
|
Write one JSON artifact using only the supplied closed schema's fields. A
|
|
@@ -121,6 +116,11 @@ Do not add a second mode field or any other unknown field. The controller
|
|
|
121
116
|
validates `waveId` and `mode`, or `reviewerLane` and `reviewKind`, against the
|
|
122
117
|
approved manifest wave before promoting the artifact.
|
|
123
118
|
|
|
119
|
+
Before returning, run the supplied deterministic validator against the sole
|
|
120
|
+
unpromoted `writePath`. Correct an invalid candidate within this same accepted
|
|
121
|
+
task and validate it again. If it remains invalid, return terminal
|
|
122
|
+
`PASS_FAILED`; the controller must not retry or replace the worker.
|
|
123
|
+
|
|
124
124
|
Return only the artifact path and compact outcome. Do not return source bodies,
|
|
125
125
|
worker reasoning, or dossier contents to the controller.
|
|
126
126
|
|
|
@@ -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
|
|
|
@@ -69,19 +69,21 @@ context source, output directory, or strict authority:
|
|
|
69
69
|
The default profile is `standard`. Each homogeneous wave has an independently
|
|
70
70
|
selected and approved exact target. Bounded mapping, extraction, citation
|
|
71
71
|
reopening, counterexample search, and mechanical dossier compilation start with
|
|
72
|
-
economical qualified routes.
|
|
73
|
-
|
|
74
|
-
cost of unrelated evidence waves.
|
|
72
|
+
economical qualified routes. Reconciliation is deterministic controller work
|
|
73
|
+
rather than a separately approved worker target.
|
|
75
74
|
|
|
76
75
|
| Profile | Use it for | Required assurance work | Claim ceiling |
|
|
77
76
|
| ---------- | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | ------------- |
|
|
78
77
|
| `quick` | Bounded orientation | Mapping, gathering, compilation, schema validation, and locator validation; no independent semantic pass by design | `supported` |
|
|
79
|
-
| `standard` | Load-bearing evidence | Quick work plus blind semantic verification, adversarial review, coverage, and
|
|
78
|
+
| `standard` | Load-bearing evidence | Quick work plus blind semantic verification, adversarial review, coverage, and deterministic reconciliation | `verified` |
|
|
80
79
|
| `thorough` | Expensive failure or correlated blind spots | Standard work plus required redundant gathering and redundant verification | `verified` |
|
|
81
80
|
|
|
82
81
|
A thorough run may additionally predeclare an optional, condition-bound
|
|
83
82
|
`contradiction-resolution` evidence wave. It runs only when its approved
|
|
84
83
|
predicate triggers and is not required when that branch is not triggered.
|
|
84
|
+
Gather and redundant-gather waves may partition source work across lanes. Each
|
|
85
|
+
typed review wave uses exactly one lane so deterministic reconciliation has one
|
|
86
|
+
result per review kind, at the fixed path bound by the approved manifest.
|
|
85
87
|
|
|
86
88
|
The approval manifest shows each wave's exact target, task class, class floor,
|
|
87
89
|
selection rationale, adaptive lane count, conditional rule, concurrency,
|
|
@@ -93,11 +95,16 @@ change requires renewed approval; there is no silent substitution after
|
|
|
93
95
|
approval.
|
|
94
96
|
|
|
95
97
|
Before any worker launches, recon confirms that the live launch surface can run
|
|
96
|
-
the approved role, model, effort, and authority level.
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
98
|
+
the approved role, model, effort, and authority level. A materialized Cursor
|
|
99
|
+
role file is configuration, not evidence that the current Task catalog exposes
|
|
100
|
+
that role; the live catalog controls eligibility, with the approved generic
|
|
101
|
+
fallback used when needed. If the launch surface cannot run the selected
|
|
102
|
+
target, the run stays at `awaiting-approval` with a provider/dispatch diagnostic
|
|
103
|
+
and nothing is launched. Every Cursor leaf runs in the background so later
|
|
104
|
+
parent-chat messages cannot interrupt multi-minute evidence work. Deadlines are
|
|
105
|
+
approved execution limits chosen for the task class, not short watchdogs; an
|
|
106
|
+
accepted lane is never interrupted by hand because a displayed deadline
|
|
107
|
+
elapsed.
|
|
101
108
|
|
|
102
109
|
### Preview and Check Routing
|
|
103
110
|
|
|
@@ -117,29 +124,30 @@ compare the constructed target with that wave's approved exact target:
|
|
|
117
124
|
node .agents/skills/recon/scripts/prepare-routing.mjs --manifest manifest.json --wave gather-1 --check-target candidate-target.json
|
|
118
125
|
```
|
|
119
126
|
|
|
120
|
-
These commands validate structure, approval integrity, and exact identity.
|
|
121
|
-
|
|
122
|
-
|
|
127
|
+
These commands validate structure, approval integrity, and exact identity. Like
|
|
128
|
+
the other recon command-line helpers, they use a shared realpath-aware entry
|
|
129
|
+
check, so direct and symlinked invocations execute identically. They do not
|
|
130
|
+
launch a worker, rank model names, attest actual runtime identity, or measure
|
|
131
|
+
cost.
|
|
123
132
|
|
|
124
133
|
### Bounded Conditional Evidence
|
|
125
134
|
|
|
126
|
-
Standard and thorough may predeclare
|
|
127
|
-
`contradiction-resolution` evidence
|
|
128
|
-
|
|
135
|
+
Standard and thorough may each predeclare at most one conditional
|
|
136
|
+
`contradiction-resolution` evidence wave. A completed predecessor can trigger
|
|
137
|
+
that wave to seek discriminating evidence; accepted failure, cancellation,
|
|
129
138
|
timeout, or missing output cannot trigger a replacement. Triggered,
|
|
130
139
|
not-triggered, and unresolved dispositions remain visible. Both branches feed
|
|
131
|
-
the same
|
|
140
|
+
the same deterministic controller reconciliation.
|
|
132
141
|
|
|
133
142
|
A triggered condition must cite complete, digest-bound evidence from an approved
|
|
134
143
|
predecessor in the same run. Evidence copied from another run cannot activate
|
|
135
144
|
the destination wave and fails packet validation with
|
|
136
145
|
`CONDITION_EVIDENCE_RUN_MISMATCH`.
|
|
137
146
|
|
|
138
|
-
If a need for
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
or launches a second reconciliation.
|
|
147
|
+
If reconciliation exposes a need for new semantic judgment, recon preserves
|
|
148
|
+
completed evidence and returns an unresolved, out-of-envelope gap for renewed
|
|
149
|
+
approval or a new run. It never converts deterministic reconciliation into a
|
|
150
|
+
worker wave or silently retries an accepted worker.
|
|
143
151
|
|
|
144
152
|
## Destination Precedence
|
|
145
153
|
|
|
@@ -173,8 +181,8 @@ non-publishable candidate generation withdraws any existing `packet.md`:
|
|
|
173
181
|
- `claims.json` is the canonical claim ledger.
|
|
174
182
|
- `manifest.json` records request, source, approved execution envelope, and
|
|
175
183
|
gap provenance.
|
|
176
|
-
- `reviews/` contains compact semantic, adversarial, coverage, and
|
|
177
|
-
reconciliation
|
|
184
|
+
- `reviews/` contains compact semantic, adversarial, coverage, and the
|
|
185
|
+
controller-produced reconciliation record.
|
|
178
186
|
- `raw/` contains worker dossiers, candidate artifacts, and safe failure
|
|
179
187
|
diagnostics. It is not normal consumer input.
|
|
180
188
|
|
|
@@ -198,6 +206,20 @@ ledger must reference every completed primary and redundant gather dossier by
|
|
|
198
206
|
exact path and digest before review briefs are created. Missing provenance fails
|
|
199
207
|
with `MISSING_THOROUGH_GATHER_LEDGER_INPUT`.
|
|
200
208
|
|
|
209
|
+
Compile workers copy each evidence excerpt as one contiguous exact substring of
|
|
210
|
+
the reopened source. A source-required redaction may replace only the sensitive
|
|
211
|
+
span while preserving the surrounding bytes and recording the redaction. Recon
|
|
212
|
+
does not repair stale locators after compilation. Each accepted worker validates
|
|
213
|
+
its own closed artifact schema once, within the same accepted task, before
|
|
214
|
+
returning. An invalid accepted artifact is terminal; the controller neither
|
|
215
|
+
retries the schema nor substitutes another worker.
|
|
216
|
+
|
|
217
|
+
When an accepted lane has already written a schema-valid, lane-matching artifact
|
|
218
|
+
at its approved path, that durable artifact remains the result even if the
|
|
219
|
+
provider stream later closes with an error. Recon records the stream failure as
|
|
220
|
+
a provider diagnostic and does not relaunch the lane. A missing or invalid
|
|
221
|
+
artifact remains a failed pass.
|
|
222
|
+
|
|
201
223
|
The ledger compiler and packet validator enforce categorical referential
|
|
202
224
|
integrity on `synthesis.keyClaimIds` and `synthesis.unresolvedQuestionIds`. Any
|
|
203
225
|
reference to an unknown claim or question ID fails validation with
|
|
@@ -228,10 +250,14 @@ the caller assesses sufficiency and conclusions. Stronger profiles can promote
|
|
|
228
250
|
claims only when their required independent review artifacts validate and were
|
|
229
251
|
written by approved lanes.
|
|
230
252
|
|
|
231
|
-
When an independent semantic review rejects a proposed claim,
|
|
232
|
-
transitions it to `unsupported` rather than deleting
|
|
233
|
-
|
|
234
|
-
|
|
253
|
+
When an independent semantic review rejects a proposed claim, deterministic
|
|
254
|
+
controller reconciliation transitions it to `unsupported` rather than deleting
|
|
255
|
+
it. The controller validates the digest-bound input ledger and required review
|
|
256
|
+
set, writes `raw/drafts/claims-v2.json` and
|
|
257
|
+
`reviews/reconciliation.json`, validates both, then atomically promotes the
|
|
258
|
+
candidate ledger to `claims.json`. This preserves the claim statement, cited
|
|
259
|
+
evidence, and transition history and renders the finding under Contradictions
|
|
260
|
+
and Qualifications.
|
|
235
261
|
|
|
236
262
|
An adversarial challenge transitions a claim to `contested`. A run with
|
|
237
263
|
contested claims may publish as `complete` when all declared questions and
|
|
@@ -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
|
|