@open-agent-toolkit/cli 0.1.53 → 0.1.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/docs/workflows/skills/index.md +3 -0
- package/assets/docs/workflows/skills/repo-improve.md +59 -0
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-dispatch-subagents/SKILL.md +39 -7
- package/assets/skills/oat-dispatch-subagents/references/record-schema.md +10 -1
- package/assets/skills/oat-pjm-add-backlog-item/SKILL.md +6 -3
- package/assets/skills/oat-pjm-review-backlog/SKILL.md +22 -10
- package/assets/skills/oat-project-dispatch-subagents/SKILL.md +20 -4
- package/assets/skills/oat-repo-improve/SKILL.md +239 -81
- package/assets/skills/oat-repo-improve/references/audit-playbook.md +6 -0
- package/assets/skills/oat-repo-improve/references/plan-template.md +134 -133
- package/assets/skills/oat-repo-maintainability-review/SKILL.md +22 -7
- package/assets/templates/backlog-item.md +1 -0
- package/assets/templates/pjm-agents.md +8 -0
- package/assets/templates/reference-agents.md +3 -1
- package/dist/commands/docs/index-generate/index.d.ts.map +1 -1
- package/dist/commands/docs/index-generate/index.js +10 -5
- package/package.json +2 -2
- package/assets/skills/oat-repo-improve/references/closing-the-loop.md +0 -96
|
@@ -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,59 @@
|
|
|
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
|
+
## Set repo-audit boundaries
|
|
23
|
+
|
|
24
|
+
Fresh repo audits exclude agent-configuration directories from findings and plan candidates by default. The canonical default directory names are `.agents/`, `.claude/`, `.codex/`, and `.cursor/` at any depth. These locations commonly contain provider configuration, generated views, or externally sourced skills rather than the product surfaces being reviewed.
|
|
25
|
+
|
|
26
|
+
Before reconnaissance, improve shows that default and asks whether to:
|
|
27
|
+
|
|
28
|
+
- Keep all four exclusions.
|
|
29
|
+
- Include selected directory names.
|
|
30
|
+
- Include all four directory names.
|
|
31
|
+
|
|
32
|
+
It then asks whether any other repo-relative directories should be excluded and suggests other recognizable provider directories when present. The resolved scope is shown before work begins and is applied consistently to direct searches and delegated audit lanes.
|
|
33
|
+
|
|
34
|
+
These are findings exclusions, not absolute read prohibitions. Improve may read bounded instruction, convention, or intent files inside an excluded directory to understand the repository, but it does not turn those files into findings or plan candidates unless the user includes or explicitly targets that directory. A file cited by an artifact-backed source can still be verified after scope confirmation; symlinked provider views are never followed outside the repository.
|
|
35
|
+
|
|
36
|
+
## Output boundary
|
|
37
|
+
|
|
38
|
+
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.
|
|
39
|
+
|
|
40
|
+
After generation, choose either execution path:
|
|
41
|
+
|
|
42
|
+
- Execute a plan directly as a standalone handoff.
|
|
43
|
+
- Run `oat-project-import-plan <external-plan-path>` to preserve and normalize one plan for tracked OAT execution.
|
|
44
|
+
|
|
45
|
+
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.
|
|
46
|
+
|
|
47
|
+
## Optional tracking
|
|
48
|
+
|
|
49
|
+
Plans are always the primary output. Tracking is optional and source-aware:
|
|
50
|
+
|
|
51
|
+
- `--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.
|
|
52
|
+
- `--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.
|
|
53
|
+
- Request both modifiers explicitly to create both forms. Neither implies the other.
|
|
54
|
+
|
|
55
|
+
Failure to publish a backlog item or issue does not invalidate a successfully written plan; the skill reports partial tracking results precisely.
|
|
56
|
+
|
|
57
|
+
## Orchestration
|
|
58
|
+
|
|
59
|
+
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
2
|
name: oat-dispatch-subagents
|
|
3
|
-
version: 1.
|
|
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,
|
|
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.
|
|
162
|
-
|
|
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
|
|
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:
|
|
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.
|
|
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
|
-
|
|
102
|
-
|
|
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
|
-
description: Use when prioritizing the file-backed repo backlog or evaluating roadmap alignment. Produces value-effort ratings, dependency mapping, and
|
|
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/
|
|
52
|
-
- `[2/
|
|
53
|
-
- `[3/
|
|
54
|
-
- `[4/
|
|
55
|
-
- `[5/
|
|
56
|
-
- `[6/
|
|
57
|
-
- `[7/
|
|
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,
|
|
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.
|
|
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.
|
|
123
|
-
|
|
124
|
-
|
|
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:
|