@open-agent-toolkit/cli 0.1.53 → 0.1.54

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.
@@ -11,6 +11,7 @@ Use this section when you want to choose the right OAT skill for a task. If you
11
11
 
12
12
  - [Writing Skills](../../contributing/skills.md) - Contributor guide to skill authoring, contracts, and governance.
13
13
  - [Docs Workflows](../../docs-tooling/workflows.md) - How docs CLI helpers and docs skills work together.
14
+ - [Repo Improve](repo-improve.md) - Source modes, external-plan boundaries, optional tracking, and OAT import handoff.
14
15
 
15
16
  ## Key Skills by Use Case
16
17
 
@@ -23,6 +24,7 @@ Use this section when you want to choose the right OAT skill for a task. If you
23
24
  - Run or receive reviews: `oat-project-review-provide`, `oat-project-review-receive`, or the non-project review variants
24
25
  - Capture a scoped, shippable backlog item: `oat-pjm-add-backlog-item` directly when the work is already scoped, or `oat-brainstorm` when the thought hasn't converged yet — the brainstorm dispatcher's "scoped backlog item" destination pre-fills the title / description / acceptance criteria / scope estimate / priority from the conversation and then runs `oat-pjm-add-backlog-item` with confirmed inputs
25
26
  - Manage the repo backlog and reference docs: `oat-pjm-update-repo-reference`, `oat-pjm-review-backlog`
27
+ - Turn a repo audit, maintainability review, backlog review, backlog directory, or backlog item into standalone external implementation plans: `oat-repo-improve`. Plans land under `.oat/repo/reference/external-plans/`; execute them directly or optionally pass one to `oat-project-import-plan` for tracked OAT execution.
26
28
  - Work on docs surfaces: `authoring-docs` (general documentation baseline), `oat-docs-authoring` (targeted OAT/Fumadocs authoring), `oat-docs-bootstrap` (guided bootstrap of a new docs app), `oat-docs-analyze`, `oat-docs-apply`, and `oat-project-document`
27
29
  - Generate a shipping digest or scheduled recap: `oat-wrap-up`
28
30
  - Research a topic in depth: `deep-research`
@@ -99,6 +101,7 @@ Use this section when you want to choose the right OAT skill for a task. If you
99
101
  - `oat-review-receive-remote`
100
102
  - `oat-repo-knowledge-index`
101
103
  - `oat-repo-maintainability-review`
104
+ - `oat-repo-improve`
102
105
  - `oat-pjm-add-backlog-item`
103
106
  - `oat-pjm-update-repo-reference`
104
107
  - `oat-pjm-review-backlog`
@@ -0,0 +1,45 @@
1
+ ---
2
+ title: Repo Improve
3
+ description: 'Turn repository audits, maintainability reviews, and backlog sources into standalone external implementation plans.'
4
+ ---
5
+
6
+ # Repo Improve
7
+
8
+ Use `oat-repo-improve` when the desired output is an executable implementation plan rather than another analysis report. Every successful run writes one or more standalone plans under `.oat/repo/reference/external-plans/`.
9
+
10
+ ## Choose a source
11
+
12
+ | Source | Use it when |
13
+ | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
14
+ | Repo audit | You need fresh repository reconnaissance and vetted improvement findings. |
15
+ | Maintainability review | A file-backed `oat-repo-maintainability-review` already identifies candidates. Improve verifies selected evidence without repeating the broad audit. |
16
+ | Backlog review | A living backlog review and optional priority alignment already establish value, dependencies, and sequencing. |
17
+ | Backlog directory | You want to start from active items. Substantive backlogs should pass through backlog review and alignment before plan generation. |
18
+ | Backlog item | One existing item needs enough repository investigation to become executable. |
19
+
20
+ With no source argument, the skill probes for available review and backlog artifacts, annotates all five options, and asks which source to use.
21
+
22
+ ## Output boundary
23
+
24
+ External plans are not canonical OAT project `plan.md` files. They contain self-contained context, scope, steps, verification, done criteria, and STOP conditions, but no OAT phase/task IDs or lifecycle bookkeeping.
25
+
26
+ After generation, choose either execution path:
27
+
28
+ - Execute a plan directly as a standalone handoff.
29
+ - Run `oat-project-import-plan <external-plan-path>` to preserve and normalize one plan for tracked OAT execution.
30
+
31
+ Project-sized candidates are split when possible. If inseparable work needs multiple design decisions or lacks one coherent verification boundary, improve recommends an OAT project workflow instead of emitting a mega-plan.
32
+
33
+ ## Optional tracking
34
+
35
+ Plans are always the primary output. Tracking is optional and source-aware:
36
+
37
+ - `--backlog-items` creates missing PJM items for repo-audit or maintainability-review plans. Backlog-backed sources reuse their existing items and add `external_plans` reverse links.
38
+ - `--issues` previews one GitHub issue per plan, checks repository visibility and sensitive content, and requires explicit confirmation before publication. It is useful as a fallback when PJM is not installed.
39
+ - Request both modifiers explicitly to create both forms. Neither implies the other.
40
+
41
+ Failure to publish a backlog item or issue does not invalidate a successfully written plan; the skill reports partial tracking results precisely.
42
+
43
+ ## Orchestration
44
+
45
+ Full repository audits use `oat-dispatch-subagents` for bounded read-only reconnaissance while the root agent retains vetting, prioritization, and plan writing. Dispatch is native-first. Configured project/workflow policy may authorize required CLI or cross-runtime routes; an agent-improvised alternate route requires explicit current-run approval.
@@ -1,6 +1,6 @@
1
1
  {
2
- "cli": "0.1.53",
3
- "docs-config": "0.1.53",
4
- "docs-theme": "0.1.53",
5
- "docs-transforms": "0.1.53"
2
+ "cli": "0.1.54",
3
+ "docs-config": "0.1.54",
4
+ "docs-theme": "0.1.54",
5
+ "docs-transforms": "0.1.54"
6
6
  }
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-dispatch-subagents
3
- version: 1.0.0
3
+ version: 1.1.0
4
4
  description: Use when an OAT skill or workflow needs provider-neutral selection, launch, recovery, or evidence for bounded subagent work without project lifecycle policy.
5
5
  disable-model-invocation: true
6
6
  user-invocable: false
@@ -73,6 +73,7 @@ Require the caller to provide:
73
73
  - expected output and verification evidence;
74
74
  - authority, deadline, escalation conditions, and retry limit;
75
75
  - fallback policy and authorization scope;
76
+ - route-selection source for any non-native route;
76
77
  - optional resolved dispatch policy or named ceiling.
77
78
 
78
79
  Reject an over-broad request before selection. Every nontrivial request must
@@ -98,12 +99,42 @@ or run expensive work inline merely because one approval question is needed.
98
99
  The caller owns the user interaction; this skill returns the question and
99
100
  required scope.
100
101
 
102
+ ## Native-First Route Selection
103
+
104
+ Use these route tiers:
105
+
106
+ 1. **Native same-runtime:** Always the preferred default when it can satisfy
107
+ the resolved role, model, effort, authority, and isolation requirements. It
108
+ needs no additional authorization.
109
+ 2. **Policy-resolved CLI/programmatic or cross-runtime:** Permitted without a
110
+ per-run prompt when configured dispatch policy selected the route. Project
111
+ policy resolved by `oat-project-dispatch-subagents` and configured
112
+ cross-family gates are standing, scope-bound authorization. Some harnesses
113
+ require this tier—for example Cursor task subagents when native model
114
+ availability cannot satisfy the resolved project target.
115
+ 3. **Agent-improvised CLI/programmatic or cross-runtime:** Prohibited unless
116
+ the user explicitly approves the named target and scope for the current
117
+ run. Approval from a prior run, task, branch reset, or materially different
118
+ scope does not carry forward.
119
+
120
+ Availability of a provider CLI, SDK, API, or other programmatic surface is
121
+ capability evidence, not route authorization. The engine must distinguish a
122
+ policy-resolved alternate route from one proposed by the agent. If neither
123
+ configured policy nor current explicit approval authorizes the alternate
124
+ route, use an eligible native route or block.
125
+
126
+ Do not re-prompt for each task or gate when the caller provides a complete
127
+ policy-resolved route and scope. Record `selection_source: policy-resolved`
128
+ with the owning configuration evidence. Use
129
+ `selection_source: explicit-user` for a current-run operator grant and
130
+ `selection_source: native-default` for the preferred native route.
131
+
101
132
  ## Dispatch Axes
102
133
 
103
134
  Keep these controls independent in selection and evidence:
104
135
 
105
- - dispatch context: root native, nested native, provider CLI, workflow, gate,
106
- or blocked;
136
+ - dispatch context: root native, nested native, provider CLI/programmatic,
137
+ workflow, gate, or blocked;
107
138
  - role or agent definition;
108
139
  - model selector and selector granularity;
109
140
  - effort or reasoning selector, when exposed;
@@ -158,11 +189,12 @@ For every dispatch:
158
189
  2. Resolve provider, context, role class, policy, ceiling, and candidates.
159
190
  3. Observe the launching dispatcher's relevant catalogs.
160
191
  4. Compute the exact native intersection.
161
- 5. Select one native, inherited, provider-CLI, workflow, gate, or blocked route
162
- before launch.
192
+ 5. Prefer an eligible native route. Otherwise select one policy-resolved or
193
+ explicitly authorized inherited, provider-CLI/programmatic, workflow, gate,
194
+ or blocked route before launch.
163
195
  6. Build the complete redacted payload.
164
- 7. Record route, selection reason, candidates, catalog source, authority, and
165
- deadline.
196
+ 7. Record route, selection source, selection reason, candidates, catalog
197
+ source, authority, and deadline.
166
198
  8. Launch once.
167
199
  9. Record launch acceptance separately from child outcome and runtime identity.
168
200
 
@@ -25,6 +25,7 @@ verification_evidence: file-line-references
25
25
  deadline_seconds: 300
26
26
  retry_limit: 1
27
27
  authorization_scope: this-audit-run
28
+ selection_source: native-default
28
29
  fallback:
29
30
  mode: explicit-downgrade
30
31
  target: reduced-quick-audit
@@ -59,7 +60,7 @@ role_selector: oat-recon-worker
59
60
  model_selector: opaque-provider-selector
60
61
  model_selector_granularity: opaque
61
62
  effort_selector: economical
62
- selection_source: explicit-call
63
+ selection_source: native-default
63
64
  candidates_considered:
64
65
  - opaque-provider-selector
65
66
  selection_reason: native-catalog
@@ -78,6 +79,14 @@ continuation_events: []
78
79
  `role_selector` is the exact provider or harness agent-type selector, when that
79
80
  surface exists. Preserve opaque selectors byte-for-byte.
80
81
 
82
+ Use `selection_source: native-default` for the preferred same-runtime native
83
+ route, `policy-resolved` for a CLI/programmatic or cross-runtime route selected
84
+ by configured project/workflow/gate policy, and `explicit-user` for an
85
+ otherwise agent-proposed alternate route approved for the current run. For
86
+ `policy-resolved`, include the owning configuration in
87
+ `configured_invocation_evidence`. CLI or SDK availability alone is never a
88
+ selection source.
89
+
81
90
  ## Recon Wave
82
91
 
83
92
  ```yaml
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-pjm-add-backlog-item
3
- version: 1.2.0
3
+ version: 1.3.0
4
4
  description: Use when the user requests or confirms adding a new repo backlog item — e.g. "add a backlog item for X", "capture that as backlog", "track that follow-up", "file a backlog ticket", or confirms a previously offered backlog capture. Do NOT auto-invoke when a follow-up is mentioned. Creates the item file in the file-per-item backlog structure, regenerates the index, and prompts for curated overview updates.
5
5
  disable-model-invocation: false
6
6
  user-invocable: true
@@ -98,8 +98,10 @@ ITEM_PATH=".oat/repo/pjm/backlog/items/{id}.md"
98
98
  - `labels`
99
99
  - `assignee`
100
100
  - `associated_issues`
101
- 3. The agent should propose an initial `scope_estimate` based on the described work, then ask the user to confirm or adjust it.
102
- 4. Write the item body with:
101
+ - `external_plans` (initialize to `[]`; `oat-repo-improve` owns later reverse-link additions)
102
+ 3. Keep `external_plans` as a YAML string array of repo-relative paths under `.oat/repo/reference/external-plans/`. Do not pre-populate it from discussion or anticipated work.
103
+ 4. The agent should propose an initial `scope_estimate` based on the described work, then ask the user to confirm or adjust it.
104
+ 5. Write the item body with:
103
105
  - `## Description`
104
106
  - `## Acceptance Criteria`
105
107
 
@@ -147,6 +149,7 @@ Report:
147
149
 
148
150
  - New item file exists under `.oat/repo/pjm/backlog/items/` with a `BL-YYMMDD-slug` filename matching its `id`
149
151
  - Item includes populated frontmatter and both required body sections
152
+ - Item initializes `external_plans: []` for future reverse links
150
153
  - `scope_estimate` was proposed and confirmed
151
154
  - `oat backlog regenerate-index` ran successfully
152
155
  - `.oat/repo/pjm/backlog/index.md` remains valid, with managed section untouched except by regeneration
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: oat-pjm-review-backlog
3
- version: 1.4.0
4
- description: Use when prioritizing the file-backed repo backlog or evaluating roadmap alignment. Produces value-effort ratings, dependency mapping, and execution recommendations.
3
+ version: 1.5.0
4
+ description: Use when prioritizing the file-backed repo backlog or evaluating roadmap alignment. Produces value-effort ratings, dependency mapping, execution recommendations, and an optional external-plan handoff.
5
5
  argument-hint: '[backlog-root] [--roadmap=<path>] [--output=<path>]'
6
6
  disable-model-invocation: true
7
7
  allowed-tools: Read, Write, Glob, Grep, Bash(git:*), AskUserQuestion, Task
@@ -48,13 +48,14 @@ When executing this skill, provide lightweight progress feedback so the user can
48
48
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
49
49
 
50
50
  - Before multi-step work, print short step indicators, e.g.:
51
- - `[1/7] Resolving backlog inputs…`
52
- - `[2/7] Cataloging backlog items…`
53
- - `[3/7] Reading codebase context…`
54
- - `[4/7] Writing review document…`
55
- - `[5/7] Summarizing recommendations…`
56
- - `[6/7] (Optional) Priority-alignment walkthrough…` — only print after the operator accepts the offer in Step 9
57
- - `[7/7] (Optional) Refreshing project kickoff handoffs…` — only print after the operator agrees a kickoff stack in Step 10
51
+ - `[1/8] Resolving backlog inputs…`
52
+ - `[2/8] Cataloging backlog items…`
53
+ - `[3/8] Reading codebase context…`
54
+ - `[4/8] Writing review document…`
55
+ - `[5/8] Summarizing recommendations…`
56
+ - `[6/8] (Optional) Priority-alignment walkthrough…` — only print after the operator accepts the offer in Step 9
57
+ - `[7/8] (Optional) Refreshing project kickoff handoffs…` — only print after the operator agrees a kickoff stack in Step 10
58
+ - `[8/8] (Optional) Handing selected items to repo improve…` — only print after the operator accepts the offer in Step 11
58
59
 
59
60
  ## Arguments
60
61
 
@@ -207,7 +208,7 @@ After the summary, ask the operator:
207
208
 
208
209
  If `.oat/repo/pjm/backlog/reviews/priority-alignment.md` already exists, frame it as an **update** to the existing document rather than a fresh create. Read the existing file first so the walkthrough builds on it.
209
210
 
210
- If the operator declines, stop after the summary. Do not silently write or modify `priority-alignment.md`.
211
+ If the operator declines, skip Steps 9–10 and continue to the Step 11 external-plan offer. Do not silently write or modify `priority-alignment.md`.
211
212
 
212
213
  **If the operator accepts, run the walkthrough:**
213
214
 
@@ -246,6 +247,16 @@ This step mirrors the **Project Kickoff Handoffs** section of the pjm instructio
246
247
 
247
248
  Every backlog item reference in a handoff — like every reference in review output and alignment docs — pairs the ID with its human-readable title per the **Reference Format Convention**. No bare IDs.
248
249
 
250
+ ### Step 11: Offer External Plan Generation (Optional)
251
+
252
+ After the review flow concludes, offer:
253
+
254
+ > Want to turn selected items from this backlog review into self-contained external implementation plans with `oat-repo-improve`?
255
+
256
+ If the operator accepts, invoke `oat-repo-improve` in `backlog-review` mode with the living review path. Also pass `backlog/reviews/priority-alignment.md` when it exists and was confirmed or refreshed during this run. The improve skill owns candidate selection, bounded live verification, plan generation under `.oat/repo/reference/external-plans/`, and backlog-item reverse links.
257
+
258
+ Do not generate external plans inside this skill. Do not assume the kickoff stack must become plans; present it as the recommended selection and let the operator adjust it. A generated external plan remains optional input to `oat-project-import-plan`, not a canonical OAT project plan.
259
+
249
260
  ## Success Criteria
250
261
 
251
262
  - Every active backlog item file has a value-effort rating with rationale
@@ -256,4 +267,5 @@ Every backlog item reference in a handoff — like every reference in review out
256
267
  - Living review is written to `.oat/repo/pjm/backlog/reviews/backlog-and-roadmap-review.md` (unless `--output` is explicitly overridden); dated snapshots, when emitted, live in the same `backlog/reviews/` directory and never under `.oat/repo/reviews/`
257
268
  - The operator is offered (but never forced into) a collaborative walkthrough that produces or updates `backlog/reviews/priority-alignment.md`; if the operator accepts, the file is written using the priority-alignment template and includes a Changelog entry for this pass; if the operator declines, no file is created or modified
258
269
  - When a priority-alignment pass produces an agreed kickoff stack, one handoff per kickoff-stack item is written or refreshed under `.oat/repo/pjm/handoffs/` (with item reference, recommended mode, input pointers, repo conventions/gates, and a close-out requiring the Backlog Lifecycle executed and the handoff deleted in the same shipping PR); handoffs for reprioritized-out items are deleted in the same pass; kickoff-stack membership, lane count, and ordering remain human decisions the skill presents rather than chooses
270
+ - The operator is offered an optional `oat-repo-improve backlog-review <review>` handoff; this skill never writes external plans itself
259
271
  - Every user-facing reference to a backlog item pairs the ID with a human-readable title (per the Reference Format Convention)
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-dispatch-subagents
3
- version: 1.0.0
3
+ version: 1.1.0
4
4
  description: Use when an OAT project lifecycle skill needs to translate project state, phase or task scope, gates, and write authority into a provider-neutral subagent dispatch.
5
5
  disable-model-invocation: true
6
6
  user-invocable: false
@@ -90,6 +90,20 @@ Project policy may cap or select a target. Translate the resolved policy and
90
90
  ceiling into the generic request; do not ask the general engine to read
91
91
  `state.md` or infer project configuration.
92
92
 
93
+ Configured project policy is standing, scope-bound route authorization. When
94
+ the resolver selects a CLI/programmatic or cross-runtime route, pass it to the
95
+ general engine with `selection_source: policy-resolved` and evidence of the
96
+ owning project, phase/task, provider, lifecycle role, policy/ceiling, and exact
97
+ route. Do not ask the user to re-authorize that route for each task.
98
+
99
+ Prefer native dispatch when it satisfies the resolved contract, but do not
100
+ replace a required policy-resolved route merely because a weaker native surface
101
+ exists. Cursor task subagents are a representative case: project policy may
102
+ route through the Cursor CLI/programmatic surface when native model
103
+ availability cannot satisfy the selected target. Configured cross-family gates
104
+ use the same policy-resolved tier. Ambient CLI availability and stale
105
+ conversational approval are never project policy.
106
+
93
107
  ## Lifecycle Roles
94
108
 
95
109
  Map each lifecycle role to a generic baseline class and add project policy:
@@ -119,9 +133,11 @@ For every lifecycle dispatch:
119
133
  limit, and fallback.
120
134
  4. Map the lifecycle role to a generic class.
121
135
  5. Add project metadata without replacing neutral request fields.
122
- 6. Invoke `oat-dispatch-subagents` with the complete request.
123
- 7. Preserve its generic dispatch record unchanged.
124
- 8. Add lifecycle outcome metadata and let the calling workflow perform state,
136
+ 6. Add `selection_source: policy-resolved` plus owning configuration evidence
137
+ for every configured non-native route.
138
+ 7. Invoke `oat-dispatch-subagents` with the complete request.
139
+ 8. Preserve its generic dispatch record unchanged.
140
+ 9. Add lifecycle outcome metadata and let the calling workflow perform state,
125
141
  plan, implementation-log, commit, or review-table writes.
126
142
 
127
143
  Example adapter input: