@open-agent-toolkit/cli 0.0.42 → 0.0.50

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 (80) hide show
  1. package/assets/agents/oat-phase-implementer.md +230 -0
  2. package/assets/agents/oat-reviewer.md +3 -3
  3. package/assets/docs/cli-utilities/configuration.md +15 -3
  4. package/assets/docs/docs-tooling/add-docs-to-a-repo.md +12 -1
  5. package/assets/docs/docs-tooling/commands.md +4 -0
  6. package/assets/docs/reference/cli-reference.md +17 -14
  7. package/assets/docs/reference/oat-directory-structure.md +17 -17
  8. package/assets/docs/workflows/projects/artifacts.md +34 -0
  9. package/assets/docs/workflows/projects/implementation-execution.md +161 -0
  10. package/assets/docs/workflows/projects/lifecycle.md +22 -29
  11. package/assets/docs/workflows/projects/reviews.md +4 -2
  12. package/assets/docs/workflows/skills/index.md +0 -1
  13. package/assets/public-package-versions.json +4 -4
  14. package/assets/skills/oat-docs-bootstrap/SKILL.md +11 -3
  15. package/assets/skills/oat-doctor/SKILL.md +3 -3
  16. package/assets/skills/oat-project-implement/SKILL.md +368 -126
  17. package/assets/skills/oat-project-import-plan/SKILL.md +2 -3
  18. package/assets/skills/oat-project-next/SKILL.md +11 -12
  19. package/assets/skills/oat-project-plan/SKILL.md +23 -5
  20. package/assets/skills/oat-project-plan-writing/SKILL.md +2 -2
  21. package/assets/skills/oat-project-progress/SKILL.md +29 -35
  22. package/assets/skills/oat-project-quick-start/SKILL.md +14 -3
  23. package/assets/skills/oat-project-review-provide/SKILL.md +24 -2
  24. package/assets/skills/oat-project-review-receive/SKILL.md +5 -1
  25. package/assets/skills/oat-worktree-bootstrap-auto/SKILL.md +2 -2
  26. package/assets/templates/docs-app-fuma/docs/index.md +2 -0
  27. package/assets/templates/implementation.md +8 -3
  28. package/assets/templates/plan.md +24 -3
  29. package/assets/templates/state.md +1 -1
  30. package/dist/commands/config/index.d.ts.map +1 -1
  31. package/dist/commands/config/index.js +17 -4
  32. package/dist/commands/docs/index-generate/index.d.ts +1 -0
  33. package/dist/commands/docs/index-generate/index.d.ts.map +1 -1
  34. package/dist/commands/docs/index-generate/index.js +8 -1
  35. package/dist/commands/docs/init/index.d.ts.map +1 -1
  36. package/dist/commands/docs/init/index.js +46 -0
  37. package/dist/commands/docs/init/resolve-options.d.ts +2 -0
  38. package/dist/commands/docs/init/resolve-options.d.ts.map +1 -1
  39. package/dist/commands/docs/init/resolve-options.js +1 -0
  40. package/dist/commands/docs/init/root-package.d.ts +23 -0
  41. package/dist/commands/docs/init/root-package.d.ts.map +1 -0
  42. package/dist/commands/docs/init/root-package.js +226 -0
  43. package/dist/commands/init/tools/index.js +1 -1
  44. package/dist/commands/init/tools/shared/skill-manifest.d.ts +2 -2
  45. package/dist/commands/init/tools/shared/skill-manifest.d.ts.map +1 -1
  46. package/dist/commands/init/tools/shared/skill-manifest.js +1 -1
  47. package/dist/commands/project/index.d.ts.map +1 -1
  48. package/dist/commands/project/index.js +3 -1
  49. package/dist/commands/project/set-mode/index.d.ts +0 -6
  50. package/dist/commands/project/set-mode/index.d.ts.map +1 -1
  51. package/dist/commands/project/set-mode/index.js +16 -96
  52. package/dist/commands/project/validate-plan/index.d.ts +3 -0
  53. package/dist/commands/project/validate-plan/index.d.ts.map +1 -0
  54. package/dist/commands/project/validate-plan/index.js +44 -0
  55. package/dist/commands/project/validate-plan/validate-plan.d.ts +20 -0
  56. package/dist/commands/project/validate-plan/validate-plan.d.ts.map +1 -0
  57. package/dist/commands/project/validate-plan/validate-plan.js +77 -0
  58. package/dist/commands/tools/update/index.d.ts +4 -0
  59. package/dist/commands/tools/update/index.d.ts.map +1 -1
  60. package/dist/commands/tools/update/index.js +17 -1
  61. package/dist/commands/tools/update/update-tools.d.ts +1 -0
  62. package/dist/commands/tools/update/update-tools.d.ts.map +1 -1
  63. package/dist/commands/tools/update/update-tools.js +80 -1
  64. package/dist/config/oat-config.d.ts +1 -0
  65. package/dist/config/oat-config.d.ts.map +1 -1
  66. package/dist/config/oat-config.js +3 -0
  67. package/dist/config/resolve.d.ts.map +1 -1
  68. package/dist/config/resolve.js +9 -0
  69. package/package.json +2 -2
  70. package/assets/skills/oat-project-subagent-implement/SKILL.md +0 -549
  71. package/assets/skills/oat-project-subagent-implement/examples/pattern-hill-checkpoint.md +0 -110
  72. package/assets/skills/oat-project-subagent-implement/examples/pattern-parallel-phases.md +0 -118
  73. package/assets/skills/oat-project-subagent-implement/scripts/dispatch.sh +0 -133
  74. package/assets/skills/oat-project-subagent-implement/scripts/reconcile.sh +0 -182
  75. package/assets/skills/oat-project-subagent-implement/scripts/review-gate.sh +0 -187
  76. package/assets/skills/oat-project-subagent-implement/tests/fixtures/sample-plan.md +0 -234
  77. package/assets/skills/oat-project-subagent-implement/tests/test-dry-run.sh +0 -126
  78. package/assets/skills/oat-project-subagent-implement/tests/test-hill-checkpoint.sh +0 -127
  79. package/assets/skills/oat-project-subagent-implement/tests/test-reconcile.sh +0 -254
  80. package/assets/skills/oat-project-subagent-implement/tests/test-review-gate.sh +0 -220
@@ -0,0 +1,161 @@
1
+ ---
2
+ title: Implementation Execution
3
+ description: 'Phase-subagent dispatch, tier detection, bounded fix loop, plan-declared parallelism, and dry-run mode in oat-project-implement v2.0.'
4
+ ---
5
+
6
+ # Implementation Execution
7
+
8
+ This page covers how `oat-project-implement` actually runs a plan: tier selection, phase-level subagent dispatch, the review + fix loop, plan-declared parallelism with worktree fan-in, and dry-run.
9
+
10
+ ## Quick Look
11
+
12
+ - **When to use:** you have a plan ready and want to understand what happens during `oat-project-implement`.
13
+ - **Unit of dispatch:** one phase at a time (not one task). A phase implementer executes all tasks in the phase, commits per task, and returns a single summary.
14
+ - **Two tiers, one lock:** capability detection picks Tier 1 (native subagents) or Tier 2 (inline) at start. The tier is locked for the whole run — no mid-run downgrades.
15
+
16
+ ## Execution model
17
+
18
+ ### Tier selection
19
+
20
+ At skill start, `oat-project-implement` detects whether the host supports native subagent dispatch for `oat-phase-implementer` and `oat-reviewer`.
21
+
22
+ - **Claude Code / Cursor:** native subagent dispatch → Tier 1.
23
+ - **Codex multi-agent:** Tier 1 if `spawn_agent` is allowed without authorization, or after an explicit single prompt at skill start if authorization is required. Codex subagent dispatch should use self-contained scope packets with fresh context; do not assume pinned OAT roles can also inherit the full parent thread.
24
+ - **Authorization declined or agents do not resolve:** Tier 2 (inline). The orchestrator reads `.agents/agents/oat-phase-implementer.md` and `.agents/agents/oat-reviewer.md` as reference and executes that process itself.
25
+
26
+ The approval decision covers both phase implementation and checkpoint review for the run. The orchestrator should not drift into a mixed mode based on conversational emphasis alone; if Tier 1 was not approved, stay inline throughout unless the user explicitly requests mixed execution.
27
+
28
+ The selected tier is reported to the user and locked for the remainder of the run:
29
+
30
+ ```
31
+ [preflight] Checking subagent availability…
32
+ → oat-phase-implementer + oat-reviewer: available
33
+ → Selected: Tier 1 — Subagents
34
+ ```
35
+
36
+ ### Per-phase loop
37
+
38
+ For each phase in the plan (whether sequential or inside a parallel group):
39
+
40
+ 1. **Dispatch `oat-phase-implementer`** with a Phase Scope block (project path, phase id, artifact paths, commit convention, workflow mode).
41
+ 2. **Receive the summary:** `DONE | DONE_WITH_CONCERNS | NEEDS_CONTEXT | BLOCKED`.
42
+ - `BLOCKED` stops the run and surfaces the blocker to the user.
43
+ 3. **Dispatch `oat-reviewer`** with a Review Scope block (phase id, commit range, optional files-changed hint). The commit range is authoritative; the file list is only orientation metadata. In Codex, pass this as a self-contained packet and keep fresh context (`fork_context: false`) so the reviewer reads git/OAT artifacts directly instead of inheriting the orchestration thread. If the reviewer does not conclude on the first wait, poll once more, then send a concise "return now with current findings" nudge before falling back inline for that phase.
44
+ 4. **Parse the verdict:** zero Critical + zero Important findings → `pass`; otherwise `fail`.
45
+ 5. **On fail, run the bounded fix loop** (see below).
46
+ 6. **Update artifacts** (`implementation.md`, `plan.md` review row, `state.md`) and make the mandatory bookkeeping commit.
47
+ 7. **HiLL checkpoint** if the phase id is listed in `oat_plan_hill_phases`.
48
+
49
+ ### Bounded fix loop
50
+
51
+ On a `fail` verdict:
52
+
53
+ - Read `oat_orchestration_retry_limit` from `state.md` frontmatter (default `2`, range `0–5`).
54
+ - For each retry: re-dispatch the implementer in `fix` mode with the review artifact and findings, then re-dispatch the reviewer.
55
+ - On `pass` → exit the loop; the phase disposition becomes `merged` (sequential) or `merged` (parallel, after fan-in).
56
+ - On retries exhausted:
57
+ - **Sequential mode:** STOP the run with phase id, unresolved findings, and review artifact path.
58
+ - **Parallel group mode:** mark the phase `excluded`, do not merge its worktree, continue the remaining phases in the group, and report it in Outstanding Items.
59
+
60
+ Tier is never silently downgraded. If a Tier 1 dispatch has a transient failure, the orchestrator retries exactly once; a second failure is treated the same as fix-loop exhaustion for that phase.
61
+
62
+ ## Plan-declared parallelism
63
+
64
+ Phases whose task file sets do not overlap may execute concurrently. Declare this in `plan.md` frontmatter:
65
+
66
+ ```yaml
67
+ oat_plan_parallel_groups: [['p02', 'p03'], ['p04', 'p05']]
68
+ ```
69
+
70
+ - Each inner array is a group of phases that run concurrently — one worktree per phase.
71
+ - Phases not listed in any group run sequentially in plan order.
72
+ - Groups themselves run sequentially — group `[p02, p03]` merges before group `[p04, p05]` starts.
73
+ - Empty or missing field → fully sequential, no worktrees created, behavior identical to today's `oat-project-implement`.
74
+
75
+ ### How a parallel group runs
76
+
77
+ 1. **Bootstrap worktrees** via `oat-worktree-bootstrap-auto`, one per phase, branch name `{project-name}/{pNN}`.
78
+ - If any bootstrap fails, cancel successful worktrees and **degrade the entire group** to sequential inline execution.
79
+ 2. **Concurrent dispatch** of `oat-phase-implementer` into each worktree (Tier 1 only — Tier 2 cannot run concurrently and also degrades to sequential).
80
+ 3. **Wait for terminal verdicts** (`pass` or `failed`) across every phase in the group.
81
+ 4. **Fan-in reconciliation in plan order:** for each passing phase, `git merge --no-ff {project-name}/{pNN}`. Integration verification (`pnpm test && pnpm lint && pnpm type-check`) runs after each merge.
82
+ 5. **Failed phases are excluded** — their worktrees are preserved and logged in `implementation.md` Outstanding Items. Passing phases still merge (partial merge-back, not atomic).
83
+ 6. **Worktree cleanup** runs for merged phases; preserved for excluded phases.
84
+ 7. **Bookkeeping commit** + HiLL checkpoint check after the group finishes.
85
+
86
+ ### Merge-conflict handling
87
+
88
+ When a merge produces a conflict:
89
+
90
+ 1. `git merge --no-ff` is aborted.
91
+ 2. `git cherry-pick` of the phase's commits is attempted.
92
+ 3. If cherry-pick also conflicts, an **inline conflict-resolution subagent** is dispatched via the Task tool. The orchestrator **never reads conflicted files itself** — that context belongs in a fresh subagent.
93
+ 4. The subagent reads conflicted files and project artifacts (`plan.md`, `design.md`, `spec.md`), applies a resolution, runs integration verification, and returns:
94
+ - `RESOLVED` → merge is committed; orchestrator proceeds.
95
+ - `UNRESOLVABLE` or `VERIFICATION_FAILED` → STOP the run with phase id, conflicting files, worktree path, and the subagent's reasoning summary.
96
+
97
+ The orchestrator does not proceed past a broken merge.
98
+
99
+ ## Validating plan metadata
100
+
101
+ Before dispatching, `oat-project-implement` invokes the validator CLI:
102
+
103
+ ```bash
104
+ oat project validate-plan --project-path "${PROJECT_PATH}"
105
+ ```
106
+
107
+ The command enforces:
108
+
109
+ - `oat_plan_parallel_groups` is either missing/empty (treated as fully sequential) or a non-empty nested array of phase ID strings.
110
+ - Every referenced phase id exists in the plan body.
111
+ - No phase id appears in more than one group.
112
+ - No singleton groups (each group must contain at least 2 phases).
113
+ - Frontmatter YAML parses cleanly — malformed frontmatter fails with exit 1.
114
+
115
+ Non-zero exit stops the run. The skill does not re-implement validation in prose — the CLI is the single source of truth.
116
+
117
+ ## Dry-run mode
118
+
119
+ Run with `--dry-run` to preview a run without dispatching anything:
120
+
121
+ ```bash
122
+ oat-project-implement --dry-run
123
+ ```
124
+
125
+ Dry-run:
126
+
127
+ - Performs tier selection and plan validation.
128
+ - Builds the execution schedule (singleton phases + parallel groups in plan order).
129
+ - Prints the planned dispatches and worktree layout.
130
+ - Exits 0 without dispatching subagents, creating worktrees, or modifying files.
131
+
132
+ Use dry-run as a sanity check after editing `oat_plan_parallel_groups` to confirm the schedule matches your intent.
133
+
134
+ ## Resumption
135
+
136
+ On re-invocation after a partial run:
137
+
138
+ 1. Read `implementation.md` for the most recent orchestration-runs entry.
139
+ 2. Compare phase counts against the plan's phase list; phases not covered by any run are the resume targets.
140
+ 3. Read `state.md` for `oat_current_task` and cross-check with git log.
141
+ 4. If a phase committed implementer output but has no review verdict recorded, the reviewer is re-dispatched for that phase's current HEAD.
142
+ 5. If un-cleaned worktrees remain from a prior parallel group, the orchestrator lists them and asks whether to resume or clean up.
143
+
144
+ First-ever invocations skip resumption detection.
145
+
146
+ ## State and artifact updates
147
+
148
+ After each phase (or parallel group) completes, `oat-project-implement` updates:
149
+
150
+ - `implementation.md` — appends a `### Run N` entry between the `<!-- orchestration-runs-start -->` markers with tier, policy, phase outcomes, parallel groups, and outstanding items.
151
+ - `plan.md` — updates the reviews table lifecycle (`pending` → `passed` or `fixes_added` → `fixes_completed` → `passed`).
152
+ - `state.md` — updates `oat_current_task`, `oat_last_commit`, `oat_project_state_updated`, and persists `oat_orchestration_retry_limit` if the user overrode the default.
153
+
154
+ Legacy `oat_execution_mode: subagent-driven` in existing projects is silently ignored and removed on the next bookkeeping write.
155
+
156
+ ## Related
157
+
158
+ - [Lifecycle](lifecycle.md) — where implementation sits in the full project flow.
159
+ - [Artifacts](artifacts.md) — `plan.md` frontmatter contract, including `oat_plan_parallel_groups`.
160
+ - [HiLL Checkpoints](hill-checkpoints.md) — orthogonal pause semantics; fires after a phase or group completes and merges.
161
+ - [CLI Reference](../../reference/cli-reference.md) — `oat project validate-plan` and other commands.
@@ -13,7 +13,7 @@ OAT lifecycle order:
13
13
  2. Spec (`oat-project-spec`)
14
14
  3. Design (`oat-project-design`)
15
15
  4. Plan (`oat-project-plan`)
16
- 5. Implement (`oat-project-implement` or `oat-project-subagent-implement`)
16
+ 5. Implement (`oat-project-implement`)
17
17
  6. Review loop (`oat-project-review-provide` / `oat-project-review-receive`)
18
18
  7. Summary (`oat-project-summary`) — generates `summary.md` as institutional memory; `oat-project-pr-final` and `oat-project-complete` auto-refresh it when missing or stale
19
19
  8. PR (`oat-project-pr-progress` / `oat-project-pr-final`) — sets `pr_open` status
@@ -34,12 +34,8 @@ OAT lifecycle order:
34
34
  ```mermaid
35
35
  flowchart LR
36
36
  D["Discovery"] --> S["Spec"] --> G["Design"] --> P["Plan"]
37
- P --> M{"Implementation mode"}
38
- M --> I1["Sequential"]
39
- M --> I2["Subagent-driven"]
40
- I1 --> R["Review loop"]
41
- I2 --> R
42
- R --> PR["PR flow"]
37
+ P --> I["Implement (oat-project-implement)"]
38
+ I --> R["Review loop"] --> PR["PR flow"]
43
39
  PR --> DOC["Docs sync (optional)"]
44
40
  DOC --> C["Complete"]
45
41
  ```
@@ -83,16 +79,23 @@ Actual PR existence is tracked separately from `oat_phase_status`:
83
79
 
84
80
  This distinction matters during completion: `oat-project-complete` can skip the "Open a PR?" prompt when `oat_pr_status: open` is already present.
85
81
 
86
- ### Auto-review at checkpoints
82
+ ### Auto-review at HiLL checkpoints
87
83
 
88
- When `autoReviewAtCheckpoints` is enabled (via `.oat/config.json` or `plan.md` frontmatter `oat_auto_review_at_checkpoints`), completing a plan phase checkpoint automatically spawns a subagent code 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.
84
+ 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.
89
85
 
90
86
  ## Implementation modes
91
87
 
92
- - **Sequential (default):** `oat-project-implement`
93
- - **Parallel/subagent-driven:** `oat-project-subagent-implement`
94
- - Use `oat project set-mode <single-thread|subagent-driven>` to persist mode in project state.
95
- - `oat-project-implement` remains the canonical consumer and redirects when mode is `subagent-driven`.
88
+ `oat-project-implement` v2.0 dispatches one subagent per phase (not per task). Capability detection at skill start selects a tier, locked for the run:
89
+
90
+ - **Tier 1 (subagents):** native subagent dispatch via Claude Code, Cursor, or Codex with spawn authorization.
91
+ - **Tier 2 (inline):** orchestrator reads the agent files and executes the process itself when subagents are unavailable or authorization is declined.
92
+
93
+ Within either tier, parallelism is expressed as plan metadata:
94
+
95
+ - **Sequential (default):** plans with no `oat_plan_parallel_groups` field, or with an empty array. Phases run in plan order on the orchestration branch.
96
+ - **Parallel groups:** phases listed together in `oat_plan_parallel_groups` run concurrently in worktrees (Tier 1 only) and merge back to the orchestration branch in plan order. Groups themselves execute sequentially.
97
+
98
+ See [Implementation Execution](implementation-execution.md) for the full execution model — tier detection, bounded fix loop, fan-in, merge-conflict handling, dry-run, and resumption.
96
99
 
97
100
  ## Review receive behavior
98
101
 
@@ -106,18 +109,14 @@ When `autoReviewAtCheckpoints` is enabled (via `.oat/config.json` or `plan.md` f
106
109
 
107
110
  1. `oat-project-quick-start` (adaptive discovery — provide a project name and optional description; if only the name is provided, quick-start asks for the missing description before discovery. Well-understood requests synthesize quickly, exploratory requests invest in solution space exploration)
108
111
  2. Decision point: straight to plan, optional lightweight `design.md`, or promote to spec-driven
109
- 3. Implement:
110
- - `oat-project-implement` (sequential)
111
- - `oat-project-subagent-implement` (parallel/subagent-driven)
112
+ 3. Implement: `oat-project-implement` (sequential by default; parallel when `oat_plan_parallel_groups` is declared)
112
113
  4. `oat-project-review-provide` / `oat-project-pr-final`
113
114
  5. Optional `oat-project-promote-spec-driven` to backfill spec-driven lifecycle artifacts in-place
114
115
 
115
116
  ### Import lane diagram
116
117
 
117
118
  1. `oat-project-import-plan`
118
- 2. Implement:
119
- - `oat-project-implement` (sequential)
120
- - `oat-project-subagent-implement` (parallel/subagent-driven)
119
+ 2. Implement: `oat-project-implement` (sequential by default; parallel when `oat_plan_parallel_groups` is declared)
121
120
  3. `oat-project-review-provide` / `oat-project-pr-final`
122
121
  4. Optional `oat-project-promote-spec-driven` to switch project mode to spec-driven lifecycle
123
122
 
@@ -128,10 +127,8 @@ When `autoReviewAtCheckpoints` is enabled (via `.oat/config.json` or `plan.md` f
128
127
  ```mermaid
129
128
  flowchart LR
130
129
  D["Discover"] --> S["Spec"] --> G["Design"] --> P["Plan"]
131
- P --> I1["Implement (oat-project-implement)"]
132
- P --> I2["Implement (oat-project-subagent-implement)"]
133
- I1 --> R["Review"] --> PR["PR"] --> Doc["Docs (optional)"] --> C["Complete"]
134
- I2 --> R
130
+ P --> I["Implement (oat-project-implement)"]
131
+ I --> R["Review"] --> PR["PR"] --> Doc["Docs (optional)"] --> C["Complete"]
135
132
  ```
136
133
 
137
134
  ### Quick lane
@@ -142,10 +139,8 @@ flowchart LR
142
139
  D -->|Straight to plan| P["Plan"]
143
140
  D -->|Lightweight design| LD["Design (quick)"] --> P
144
141
  D -->|Promote| SD["→ Spec-Driven lane"]
145
- P --> QI1["Implement (oat-project-implement)"]
146
- P --> QI2["Implement (oat-project-subagent-implement)"]
147
- QI1 --> QR["Review / PR"]
148
- QI2 --> QR
142
+ P --> QI["Implement (oat-project-implement)"]
143
+ QI --> QR["Review / PR"]
149
144
  ```
150
145
 
151
146
  ### Import lane
@@ -153,9 +148,7 @@ flowchart LR
153
148
  ```mermaid
154
149
  flowchart LR
155
150
  I["Import Plan"] --> II1["Implement (oat-project-implement)"]
156
- I --> II2["Implement (oat-project-subagent-implement)"]
157
151
  II1 --> IR["Review / PR"]
158
- II2 --> IR
159
152
  ```
160
153
 
161
154
  ### Capture lane
@@ -56,9 +56,11 @@ Status progression in `plan.md` Reviews table:
56
56
  - Minor (non-final scopes): do not auto-defer by default. Convert when likely future cleanup or when the fix is trivial; defer only with recorded rationale.
57
57
  - Minor (final scope): not auto-deferred; require explicit user disposition (defer vs convert), and recommend convert when likely future cleanup or trivial to fix.
58
58
 
59
- ## Auto-review at checkpoints
59
+ ## Auto-review at HiLL checkpoints
60
60
 
61
- When `autoReviewAtCheckpoints` is enabled (via `oat config set autoReviewAtCheckpoints true` or per-project in `plan.md` frontmatter), completing a plan phase checkpoint automatically spawns a subagent review. The review scope covers every implementation phase not already covered by a passed whole-phase code review, through the just-completed checkpoint. Mid-implementation multi-phase checkpoint reviews use inclusive phase-range scopes such as `p02-p03`. The final phase checkpoint triggers a `code final` review.
61
+ When `workflow.autoReviewAtHillCheckpoints` is enabled (for example, `oat config set workflow.autoReviewAtHillCheckpoints true --user`) or per-project `plan.md` frontmatter sets `oat_auto_review_at_hill_checkpoints`, completing a HiLL checkpoint automatically runs the extra lifecycle review. The review scope covers every implementation phase not already covered by a passed whole-phase code review, through the just-completed checkpoint. Mid-implementation multi-phase checkpoint reviews use inclusive phase-range scopes such as `p02-p03`. The final phase checkpoint triggers a `code final` review.
62
+
63
+ 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.
62
64
 
63
65
  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).
64
66
 
@@ -52,7 +52,6 @@ Use this section when you want to choose the right OAT skill for a task. If you
52
52
  - `oat-project-plan`
53
53
  - `oat-project-plan-writing`
54
54
  - `oat-project-implement`
55
- - `oat-project-subagent-implement`
56
55
  - `oat-project-progress`
57
56
  - `oat-project-next`
58
57
  - `oat-project-capture`
@@ -1,6 +1,6 @@
1
1
  {
2
- "cli": "0.0.42",
3
- "docs-config": "0.0.42",
4
- "docs-theme": "0.0.42",
5
- "docs-transforms": "0.0.42"
2
+ "cli": "0.0.50",
3
+ "docs-config": "0.0.50",
4
+ "docs-theme": "0.0.50",
5
+ "docs-transforms": "0.0.50"
6
6
  }
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-docs-bootstrap
3
- version: 1.0.0
3
+ version: 1.0.1
4
4
  description: Use when bootstrapping a new OAT docs app in a repo. Guides the user through preflight detection, richer input gathering than the raw CLI, `oat docs init` invocation with labeled post-patches for open CLI gaps, build verification, post-scaffold config inspection, and an educational walkthrough. Supports Fumadocs (full path) and MkDocs (lean path with defined minimum contract).
5
5
  argument-hint: '<optional-target-dir>'
6
6
  disable-model-invocation: true
@@ -473,6 +473,7 @@ Capture both stdout and stderr. **Do not** stream output directly to the user; t
473
473
  createdFiles: string[] // paths relative to appRoot
474
474
  capabilities: { siteNameFlag: boolean, ... } // from Capability Detection (3b)
475
475
  cliLogs: { stdout: string, stderr: string } // retained for Walkthrough
476
+ rootBuildPatch: { status, reason?, diff?, manualSnippet? } | null // parsed from CLI output when available
476
477
  patchesApplied: [] // populated by 3c/3d site-identity + scaffold-integrity sub-procedures
477
478
  ```
478
479
 
@@ -655,7 +656,7 @@ Four sub-findings, each with its own gate, target, and idempotency check. All su
655
656
  - **D.2 — Generated `index.md` header comment.** The header to prepend:
656
657
 
657
658
  ```markdown
658
- <!-- generated by oat docs generate-index; do not hand-edit. Source: docs/index.md -->
659
+ <!-- AUTOGENERATED by `oat docs generate-index`. Do not hand-edit; changes are clobbered on every `predev` / `prebuild`. -->
659
660
  ```
660
661
 
661
662
  **Two-pass strategy. Both passes MUST run — do not treat the second as optional.**
@@ -931,6 +932,13 @@ Narrate each field actually present in their config (skip fields that are absent
931
932
  - **`documentation.config`** (MkDocs only) — path to `mkdocs.yml`. Present for MkDocs because its chrome/nav is YAML-configured; absent for Fumadocs because chrome is code.
932
933
  - **`documentation.requireForProjectCompletion`** — the opt-in collected in Step 5e. If `true`, `oat-project-complete` will block project completion until `oat-docs-analyze` reports no open recommendations. Explain whichever value is set on this project.
933
934
 
935
+ If `Scaffold Result.rootBuildPatch` is present, narrate it here before moving on:
936
+
937
+ - **When `status` is `applied`, `dry-run`, or `already-configured`:** explain why the root `package.json` changed. The point is not cosmetics; it's to keep repo-root `pnpm build` from pulling the new docs app into the consumer's default Turbo build, where React / Next type collisions can break CI. Show the exact script diff from `rootBuildPatch.diff` when available; if the diff was not retained, at minimum quote the before/after values for `scripts.build` and `scripts["build:docs"]`.
938
+ - Make the behavior concrete: `build` now excludes `{appName}` from the default Turbo build graph, and `build:docs` is the explicit root-level command that builds only the docs app.
939
+ - Document the adjustment/revert path explicitly: "If you want different scope behavior, edit the root `package.json` `scripts.build` and `scripts["build:docs"]` entries together. Removing the extra `--filter='!{appName}'` restores the old all-packages build; changing `build:docs` changes the docs-only target."
940
+ - **When `status` is `skipped`:** surface the skip reason in plain language, then print `rootBuildPatch.manualSnippet` verbatim as the recommended manual Turbo snippet to add. Explain that OAT intentionally left the root scripts alone because it could not prove the existing root build was a Turbo build it was safe to rewrite.
941
+
934
942
  End with: "This config is how every OAT docs tool finds your docs. Editing it by hand is supported — but changes to `root` or `config` paths need to match reality on disk."
935
943
 
936
944
  #### Section B (both frameworks) — The two `index.md` files
@@ -941,7 +949,7 @@ Narrate:
941
949
 
942
950
  - **The authored source** at `<appRoot>/docs/index.md`. This is the file the user edits. It has frontmatter (`title`, `description`) and a `## Contents` section listing direct children of the docs root. It is the top of a fractal: every directory has its own `index.md`, each with its own `## Contents`.
943
951
  - **The generated map** at `<appRoot>/index.md` (when Fumadocs — the path differs for MkDocs; use the `documentation.index` path resolved by the Inspector if it differs). Regenerated on every `predev` / `prebuild` by the `oat docs generate-index` command. Machine-shaped: rolls up every `## Contents` section in the tree into a single searchable map that tools consume. **Hand-edits are silently clobbered.**
944
- - **How to tell them apart when opening a file.** If the file sits inside `docs/`, it's authored. If it sits at `<appRoot>/index.md` (outside `docs/`), it's generated — and if Scaffold-integrity FP-13/D.2 patched it, the first line is a `<!-- generated -->` banner confirming so.
952
+ - **How to tell them apart when opening a file.** If the file sits inside `docs/`, it's authored. If it sits at `<appRoot>/index.md` (outside `docs/`), it's generated — and when the CLI or Scaffold-integrity FP-13/D.2 wrote the warning correctly, the first line is `<!-- AUTOGENERATED by \`oat docs generate-index\`... -->`.
945
953
 
946
954
  End with: "Always edit `docs/index.md` and the `## Contents` sections. Never edit the root-level `index.md` — your edits will disappear next build."
947
955
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-doctor
3
- version: 1.0.0
3
+ version: 1.0.2
4
4
  description: Use when you need to diagnose your OAT setup, check for outdated skills, identify misconfigurations, or get a summary of installed tools and config. Runs health checks and recommends corrective actions.
5
5
  argument-hint: '[--summary]'
6
6
  disable-model-invocation: true
@@ -160,7 +160,7 @@ Workflow pack skills:
160
160
  - oat-project-promote-spec-driven, oat-project-quick-start
161
161
  - oat-project-reconcile, oat-project-revise, oat-project-review-provide
162
162
  - oat-project-review-receive, oat-project-review-receive-remote
163
- - oat-project-spec, oat-project-subagent-implement, oat-project-summary
163
+ - oat-project-spec, oat-project-summary
164
164
  - oat-repo-knowledge-index, oat-worktree-bootstrap, oat-worktree-bootstrap-auto
165
165
 
166
166
  Ideas pack skills:
@@ -263,7 +263,7 @@ Read config key descriptions from `~/.oat/docs/reference/file-locations.md` and
263
263
  - **documentation.config:** Path to docs config file (e.g., mkdocs.yml).
264
264
  - **documentation.tooling:** Docs tooling in use (e.g., mkdocs, fumadocs).
265
265
  - **documentation.requireForProjectCompletion:** Whether docs update is required before project completion.
266
- - **autoReviewAtCheckpoints:** When true, completing a plan phase checkpoint auto-triggers a subagent code review. Default false. Can be overridden per-project via `oat_auto_review_at_checkpoints` in plan.md frontmatter.
266
+ - **workflow.autoReviewAtHillCheckpoints:** When true, completing a HiLL checkpoint auto-triggers the lifecycle review. Default unset. This does not control Tier 1 per-phase `oat-reviewer` gates. Can be overridden per-project via `oat_auto_review_at_hill_checkpoints` in plan.md frontmatter. Legacy `autoReviewAtCheckpoints` and `oat_auto_review_at_checkpoints` are still read as fallbacks.
267
267
  - **worktrees.root:** Base directory for git worktrees. Used by worktree-bootstrap skills.
268
268
 
269
269
  ## Sync Status