@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.
Files changed (73) hide show
  1. package/assets/agents/oat-phase-implementer.md +5 -5
  2. package/assets/agents/oat-reviewer.md +15 -15
  3. package/assets/agents/recon-worker.md +12 -12
  4. package/assets/bundle-metadata.json +1 -1
  5. package/assets/docs/cli-utilities/workflow-gates.md +1 -1
  6. package/assets/docs/workflows/projects/artifacts.md +2 -2
  7. package/assets/docs/workflows/projects/autonomy.md +1 -1
  8. package/assets/docs/workflows/projects/implementation-execution.md +4 -4
  9. package/assets/docs/workflows/projects/lifecycle.md +1 -1
  10. package/assets/docs/workflows/projects/reviews.md +11 -11
  11. package/assets/docs/workflows/skills/recon.md +53 -27
  12. package/assets/public-package-versions.json +4 -4
  13. package/assets/skills/oat-agent-instructions-analyze/SKILL.md +3 -3
  14. package/assets/skills/oat-docs-analyze/SKILL.md +3 -3
  15. package/assets/skills/oat-project-autonomous/SKILL.md +2 -2
  16. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +14 -14
  17. package/assets/skills/oat-project-design/SKILL.md +2 -2
  18. package/assets/skills/oat-project-discover/SKILL.md +2 -2
  19. package/assets/skills/oat-project-document/SKILL.md +1 -1
  20. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +14 -14
  21. package/assets/skills/oat-project-implement/SKILL.md +2 -2
  22. package/assets/skills/oat-project-implement/references/completion-and-closeout.md +1 -1
  23. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +14 -14
  24. package/assets/skills/oat-project-implement/references/phase-execution.md +3 -3
  25. package/assets/skills/oat-project-implement/references/plan-and-resume.md +2 -2
  26. package/assets/skills/oat-project-import-plan/SKILL.md +2 -2
  27. package/assets/skills/oat-project-lite/SKILL.md +1 -1
  28. package/assets/skills/oat-project-lite/references/docs/autonomy-contract.md +14 -14
  29. package/assets/skills/oat-project-plan/SKILL.md +2 -2
  30. package/assets/skills/oat-project-plan-writing/SKILL.md +4 -4
  31. package/assets/skills/oat-project-pr-final/SKILL.md +1 -1
  32. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +14 -14
  33. package/assets/skills/oat-project-quick-start/SKILL.md +2 -2
  34. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +14 -14
  35. package/assets/skills/oat-project-review-provide/SKILL.md +14 -14
  36. package/assets/skills/oat-project-review-provide-remote/SKILL.md +10 -10
  37. package/assets/skills/oat-project-review-receive/SKILL.md +64 -45
  38. package/assets/skills/oat-project-review-receive-remote/SKILL.md +6 -6
  39. package/assets/skills/oat-project-revise/SKILL.md +2 -2
  40. package/assets/skills/oat-review-provide/SKILL.md +2 -2
  41. package/assets/skills/oat-review-provide/references/review-artifact-template.md +3 -3
  42. package/assets/skills/oat-review-provide-remote/SKILL.md +11 -11
  43. package/assets/skills/oat-review-receive/SKILL.md +18 -17
  44. package/assets/skills/oat-review-receive-remote/SKILL.md +13 -13
  45. package/assets/skills/oat-wave-execute/SKILL.md +2 -2
  46. package/assets/skills/recon/SKILL.md +37 -19
  47. package/assets/skills/recon/references/packet-contract.md +33 -30
  48. package/assets/skills/recon/references/profiles.md +18 -15
  49. package/assets/skills/recon/references/worker-contract.md +87 -7
  50. package/assets/skills/recon/scripts/create-review-brief.mjs +2 -25
  51. package/assets/skills/recon/scripts/lib/cli-entry.mjs +21 -0
  52. package/assets/skills/recon/scripts/lib/contracts.mjs +144 -38
  53. package/assets/skills/recon/scripts/lib/routing.mjs +2 -5
  54. package/assets/skills/recon/scripts/lib/validated-run.mjs +1 -1
  55. package/assets/skills/recon/scripts/prepare-routing.mjs +2 -26
  56. package/assets/skills/recon/scripts/reconcile-ledger.mjs +269 -2
  57. package/assets/skills/recon/scripts/render-packet.mjs +2 -25
  58. package/assets/skills/recon/scripts/validate-artifact.mjs +2 -25
  59. package/assets/skills/recon/scripts/validate-packet.mjs +73 -43
  60. package/assets/templates/plan.md +1 -1
  61. package/dist/commands/gate/__fixtures__/fake-runtime.mjs +4 -4
  62. package/dist/commands/gate/index.d.ts.map +1 -1
  63. package/dist/commands/gate/index.js +20 -11
  64. package/dist/commands/gate/review-verdict.d.ts +2 -2
  65. package/dist/commands/gate/review-verdict.d.ts.map +1 -1
  66. package/dist/commands/gate/review-verdict.js +223 -57
  67. package/dist/review-remote/body-builder.d.ts +3 -3
  68. package/dist/review-remote/body-builder.d.ts.map +1 -1
  69. package/dist/review-remote/body-builder.js +12 -12
  70. package/dist/review-remote/reviewer-dispatch.d.ts +2 -2
  71. package/dist/review-remote/reviewer-dispatch.d.ts.map +1 -1
  72. package/dist/review-remote/reviewer-dispatch.js +15 -7
  73. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-phase-implementer
3
- version: 1.1.5
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/Important findings;
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/Minor concerns without launching a reviewer.
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/Important findings within their declared
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} important
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.5
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 Important findings (potential scope creep)
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/Important findings must describe concrete user-visible, workflow, correctness, security, or maintainability impact.
295
- - Medium/Minor findings must not be inflated solely because they are easy to fix.
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
- **Important** (should fix before merge)
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
- **Minor** (fix if time permits)
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} important, {N} medium, {N} minor
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
- ### Important
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
- ### Minor
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} important, {N} medium, {N} minor` count line or the standard `## Findings` sections shown above with every severity subsection present.
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} important, {N} medium, {N} minor
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, I1, M1, m1 — stable per dispatch (C/I/M/m prefix matches the severity model)
543
- severity: 'critical' | 'important' | 'medium' | 'minor';
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/Important/Medium/Minor buckets as Step 7.
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`/`I`/`M`/`m`) and are stable within a single dispatch — no renumbering.
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.1
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`, `coverage`,
13
- or `reconcile`. No other mode is valid.
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
 
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "oatVersion": "0.2.77"
3
+ "oatVersion": "0.3.0"
4
4
  }
@@ -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 important \
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: important
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 `important`. One of `critical`, `important`, `medium`, `minor`. 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.
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. Important
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 Important findings.
241
- Medium and Minor findings are recorded without blocking the phase.
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 Important issues, the root resumes the original
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 / Important findings
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 (minors 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.
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/Important 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.
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/Important: address before pass.
114
+ - Critical/High: address before pass.
115
115
  - Medium: address by default; defer only with explicit approval and recorded rationale/disposition.
116
- - Minor: **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 minor**, 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 minors.
118
- - Minor (final scope): still require explicit per-finding user disposition after a plain-language explanation, with `convert` as the recommended default.
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 (Minor findings that are clearly out of scope are deferred with a note).
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 `important`) — 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:
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/Minor — 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/Important concern it escalates to the blocking path.
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 Important artifact-local fixes, offers Medium and Minor 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`.
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/Important/Medium findings.
222
+ - No unresolved Critical/High/Medium findings.
223
223
  - Deferred Medium findings resurfaced and explicitly dispositioned.
224
- - Minor findings explicitly dispositioned (after plain-language explanation).
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. A wave that genuinely requires interpretation or
73
- reconciliation judgment can use a stronger approved target without raising the
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 reconcile | `verified` |
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. If it cannot, the run
97
- stays at `awaiting-approval` with a provider/dispatch diagnostic and nothing is
98
- launched. Deadlines are approved execution limits chosen for the task class,
99
- not short watchdogs; an accepted lane is never interrupted by hand because a
100
- displayed deadline elapsed.
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. They
121
- do not launch a worker, rank model names, attest actual runtime identity, or
122
- measure cost.
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 finite conditional
127
- `contradiction-resolution` evidence waves. A completed predecessor can trigger
128
- one such wave to seek discriminating evidence; accepted failure, cancellation,
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 single mandatory terminal reconciliation.
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 stronger reconciliation judgment is foreseeable, select that one
139
- terminal target before approval. If it appears only after approval, recon
140
- preserves completed evidence and returns an unresolved, out-of-envelope gap for
141
- renewed approval or a new run. It never mutates the target, silently retries,
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 evidence.
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, the reconciler
232
- transitions it to `unsupported` rather than deleting it. This preserves the
233
- claim statement, cited evidence, and transition history in `claims.json`, and
234
- renders the finding under Contradictions and Qualifications.
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
@@ -1,6 +1,6 @@
1
1
  {
2
- "cli": "0.2.77",
3
- "docs-config": "0.2.77",
4
- "docs-theme": "0.2.77",
5
- "docs-transforms": "0.2.77"
2
+ "cli": "0.3.0",
3
+ "docs-config": "0.3.0",
4
+ "docs-theme": "0.3.0",
5
+ "docs-transforms": "0.3.0"
6
6
  }
@@ -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.1
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 Important fixes when they are local to the analysis artifact, companion bundle, and unambiguous.
461
- 5. Offer Medium and Minor fixes rather than applying them silently.
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.1
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 Important fixes when they are local to the analysis artifact and unambiguous.
452
- 5. Offer Medium and Minor fixes rather than applying them silently.
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.15
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
- Important findings follow the configured gate policy.
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