@open-agent-toolkit/cli 0.1.52 → 0.1.53

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.
@@ -0,0 +1,199 @@
1
+ # Handoff Plan Template
2
+
3
+ Every plan is written for an executor model that has **zero context**: it has not seen the advisor session, the audit, the other plans, or any prior conversation. It may be a smaller/cheaper model. Assume it is competent at following explicit instructions and weak at filling gaps, recovering from ambiguity, or knowing when to stop.
4
+
5
+ Three properties make a plan executable by a weaker model:
6
+
7
+ 1. **Self-contained context** — everything needed is in the file: paths, code excerpts, conventions, commands.
8
+ 2. **Verification gates** — every step ends with a command and its expected result. The executor never has to _judge_ whether it succeeded.
9
+ 3. **Hard boundaries and escape hatches** — explicit out-of-scope list, and "STOP and report" conditions instead of letting the model improvise when reality doesn't match the plan.
10
+
11
+ File naming: `plans/NNN-short-slug.md`, numbered in recommended execution order.
12
+
13
+ ---
14
+
15
+ ## Template
16
+
17
+ ```markdown
18
+ # Plan NNN: <Imperative title — what will be true after this plan>
19
+
20
+ > **Executor instructions**: Follow this plan step by step. Run every
21
+ > verification command and confirm the expected result before moving to the
22
+ > next step. If anything in the "STOP conditions" section occurs, stop and
23
+ > report — do not improvise. When done, update the status row for this plan
24
+ > in `plans/README.md` — unless a reviewer dispatched you and told you they
25
+ > maintain the index.
26
+ >
27
+ > **Drift check (run first)**: `git diff --stat <planned-at SHA>..HEAD -- <in-scope paths>`
28
+ > If any in-scope file changed since this plan was written, compare the
29
+ > "Current state" excerpts against the live code before proceeding; on a
30
+ > mismatch, treat it as a STOP condition.
31
+
32
+ ## Status
33
+
34
+ - **Priority**: P1 | P2 | P3
35
+ - **Effort**: S | M | L
36
+ - **Risk**: LOW | MED | HIGH
37
+ - **Depends on**: plans/NNN-\*.md (or "none")
38
+ - **Category**: bug | security | perf | tests | tech-debt | migration | dx | docs | direction
39
+ - **Planned at**: commit `<short SHA>`, <YYYY-MM-DD>
40
+ - **Issue**: <GitHub issue URL — only when published via `--issues`; omit otherwise>
41
+
42
+ ## Why this matters
43
+
44
+ 2–5 sentences. The problem, its concrete cost, and what improves when this
45
+ lands. Written so the executor (and a human reviewer) understands the intent —
46
+ intent is what lets a correct judgment call happen when a detail is off.
47
+
48
+ ## Current state
49
+
50
+ The facts the executor needs, inlined — never "as discussed" or "see audit":
51
+
52
+ - The relevant files, each with one line on its role:
53
+ - `src/orders/api.ts` — order-list endpoint; contains the N+1 (lines 130–160)
54
+ - Excerpts of the code as it exists today (short, with `file:line` markers),
55
+ enough that the executor can confirm it's looking at the right thing.
56
+ - The repo conventions that apply here, with a pointer to one exemplar file:
57
+ "Error handling follows the Result pattern — see `src/lib/result.ts` and its
58
+ use in `src/users/api.ts:40-60`. Match it."
59
+ - Any documented vocabulary or design constraints the plan must honor, inlined
60
+ from the intent/design docs found in recon: the relevant `CONTEXT.md` terms
61
+ the executor should use in names and comments, the `DESIGN.md` tokens/components
62
+ to reuse, or the ADR whose decision this work must stay consistent with. Quote
63
+ the specific lines — the executor has not read those docs.
64
+
65
+ ## Commands you will need
66
+
67
+ | Purpose | Command | Expected on success |
68
+ | --------- | ----------------------- | ------------------- |
69
+ | Install | `pnpm install` | exit 0 |
70
+ | Typecheck | `pnpm typecheck` | exit 0, no errors |
71
+ | Tests | `pnpm test -- <filter>` | all pass |
72
+ | Lint | `pnpm lint` | exit 0 |
73
+
74
+ (Exact commands from this repo — verified during recon, not guessed.)
75
+
76
+ ## Suggested executor toolkit
77
+
78
+ (Optional — include only when relevant skills/tools plausibly exist in the
79
+ executor's environment. Skip the section otherwise.)
80
+
81
+ - Skills the executor should invoke if available, and for what:
82
+ "use `vercel-react-best-practices` when writing the memoization in step 3".
83
+ - Reference docs worth reading before starting, by path or URL.
84
+
85
+ ## Scope
86
+
87
+ **In scope** (the only files you should modify):
88
+
89
+ - `src/orders/api.ts`
90
+ - `src/orders/api.test.ts` (create)
91
+
92
+ **Out of scope** (do NOT touch, even though they look related):
93
+
94
+ - `src/orders/legacy-api.ts` — deprecated path, scheduled for deletion;
95
+ changing it wastes effort and risks the v1 clients still pinned to it.
96
+ - Any change to the public response shape — clients depend on it.
97
+
98
+ ## Git workflow
99
+
100
+ (Filled from recon — match the repo's observed conventions.)
101
+
102
+ - Branch: `advisor/NNN-<slug>` (or the repo's branch-naming convention if one is evident)
103
+ - Commit per step or per logical unit; message style: <match repo, e.g. conventional commits — include an example from `git log`>
104
+ - Do NOT push or open a PR unless the operator instructed it.
105
+
106
+ ## Steps
107
+
108
+ ### Step 1: <imperative title>
109
+
110
+ What to do, precisely. Reference exact files/symbols. Include the target code
111
+ shape when it's load-bearing (the pattern to produce, not necessarily every
112
+ line).
113
+
114
+ **Verify**: `<command>` → <expected output>
115
+
116
+ ### Step 2: ...
117
+
118
+ (Each step small enough to verify independently. Order steps so the codebase
119
+ is never broken between steps when possible — e.g. add new path, switch
120
+ callers, then remove old path.)
121
+
122
+ ## Test plan
123
+
124
+ - New tests to write, in which file, covering which cases (list them:
125
+ happy path, the specific bug/regression this plan fixes, named edge cases).
126
+ - Which existing test to use as the structural pattern:
127
+ "model after `src/users/api.test.ts`".
128
+ - Verification: `<test command>` → all pass, including N new tests.
129
+
130
+ ## Done criteria
131
+
132
+ Machine-checkable. ALL must hold:
133
+
134
+ - [ ] `pnpm typecheck` exits 0
135
+ - [ ] `pnpm test` exits 0; new tests for <X> exist and pass
136
+ - [ ] `grep -rn "<old pattern>" src/` returns no matches
137
+ - [ ] No files outside the in-scope list are modified (`git status`)
138
+ - [ ] `plans/README.md` status row updated
139
+
140
+ ## STOP conditions
141
+
142
+ Stop and report back (do not improvise) if:
143
+
144
+ - The code at the locations in "Current state" doesn't match the excerpts
145
+ (the codebase has drifted since this plan was written).
146
+ - A step's verification fails twice after a reasonable fix attempt.
147
+ - The fix appears to require touching an out-of-scope file.
148
+ - You discover the assumption "<key assumption>" is false.
149
+
150
+ ## Maintenance notes
151
+
152
+ For the human/agent who owns this code after the change lands:
153
+
154
+ - What future changes will interact with this (e.g. "if pagination is added
155
+ to this endpoint, the batching in step 2 must be revisited").
156
+ - What a reviewer should scrutinize in the PR.
157
+ - Any follow-up explicitly deferred out of this plan (and why).
158
+ ```
159
+
160
+ ---
161
+
162
+ ## Index file: `plans/README.md`
163
+
164
+ Written once by the advisor after all plans, updated by executors:
165
+
166
+ ```markdown
167
+ # Implementation Plans
168
+
169
+ Generated by the oat-repo-improve skill on <date>. Execute in the order below unless
170
+ dependencies say otherwise. Each executor: read the plan fully before starting,
171
+ honor its STOP conditions, and update your row when done.
172
+
173
+ ## Execution order & status
174
+
175
+ | Plan | Title | Priority | Effort | Depends on | Status |
176
+ | ---- | ----- | -------- | ------ | ---------- | ------ |
177
+ | 001 | ... | P1 | S | — | TODO |
178
+ | 002 | ... | P1 | M | 001 | TODO |
179
+
180
+ Status values: TODO | IN PROGRESS | DONE | BLOCKED (with one-line reason) | REJECTED (with one-line rationale — finding fixed independently or approach abandoned)
181
+
182
+ ## Dependency notes
183
+
184
+ - 002 requires 001 because <reason>.
185
+
186
+ ## Findings considered and rejected
187
+
188
+ - <finding>: not worth doing because <one line>. (So nobody re-audits it.)
189
+ ```
190
+
191
+ ## Quality bar — check before finishing each plan
192
+
193
+ - Could a model that has never seen this repo execute this with only the plan file and the repo? If any step requires knowledge from the advisor session, inline that knowledge.
194
+ - Is every verification a command with an expected result, not a judgment ("make sure it works")?
195
+ - Does every step name exact files and symbols, not "the relevant module"?
196
+ - Are the STOP conditions specific to this plan's actual risks, not boilerplate?
197
+ - Would a reviewer reading only "Why this matters" + "Done criteria" understand what they're approving?
198
+ - No secret values anywhere in the file — locations and credential types only.
199
+ - "Planned at" SHA is filled in and the in-scope paths in the drift check match the Scope section.
@@ -11,7 +11,7 @@ export interface PackMetadata {
11
11
  }
12
12
  export declare const PACK_METADATA: Record<string, PackMetadata>;
13
13
  export declare function resolvePackDefaultScope(packName: string): 'user' | 'project';
14
- export declare const WORKFLOW_SKILLS: readonly ["oat-project-capture", "oat-project-clear-active", "oat-project-complete", "oat-project-design", "oat-project-discover", "oat-project-document", "oat-project-implement", "oat-project-import-plan", "oat-project-new", "oat-project-next", "oat-project-open", "oat-project-plan", "oat-project-plan-writing", "oat-project-pr-final", "oat-project-pr-progress", "oat-project-progress", "oat-project-promote-spec-driven", "oat-project-quick-start", "oat-project-reconcile", "oat-project-revise", "oat-project-review-provide", "oat-project-review-provide-remote", "oat-project-review-receive", "oat-project-review-receive-remote", "oat-project-spec", "oat-project-split", "oat-project-summary", "oat-repo-knowledge-index", "oat-worktree-bootstrap", "oat-worktree-bootstrap-auto", "oat-wrap-up"];
14
+ export declare const WORKFLOW_SKILLS: readonly ["oat-project-capture", "oat-project-clear-active", "oat-project-complete", "oat-project-design", "oat-project-dispatch-subagents", "oat-project-discover", "oat-project-document", "oat-project-implement", "oat-project-import-plan", "oat-project-new", "oat-project-next", "oat-project-open", "oat-project-plan", "oat-project-plan-writing", "oat-project-pr-final", "oat-project-pr-progress", "oat-project-progress", "oat-project-promote-spec-driven", "oat-project-quick-start", "oat-project-reconcile", "oat-project-revise", "oat-project-review-provide", "oat-project-review-provide-remote", "oat-project-review-receive", "oat-project-review-receive-remote", "oat-project-spec", "oat-project-split", "oat-project-summary", "oat-repo-knowledge-index", "oat-worktree-bootstrap", "oat-worktree-bootstrap-auto", "oat-wrap-up"];
15
15
  export declare const WORKFLOW_AGENTS: readonly ["oat-codebase-mapper.md", "oat-phase-implementer.md", "oat-reviewer.md"];
16
16
  export declare const WORKFLOW_TEMPLATES: readonly ["state.md", "discovery.md", "spec.md", "design.md", "plan.md", "implementation.md", "summary.md"];
17
17
  export declare const WORKFLOW_SCRIPTS: readonly ["generate-oat-state.sh", "generate-thin-index.sh", "resolve-tracking.sh"];
@@ -19,7 +19,7 @@ export declare const IDEA_SKILLS: readonly ["oat-idea-new", "oat-idea-ideate", "
19
19
  export declare const CORE_SKILLS: readonly ["oat-docs", "oat-doctor"];
20
20
  export declare const DOCS_SKILLS: readonly ["authoring-docs", "oat-agent-instructions-analyze", "oat-agent-instructions-apply", "oat-docs-analyze", "oat-docs-apply", "oat-docs-authoring", "oat-docs-bootstrap"];
21
21
  export declare const DOCS_SCRIPTS: readonly ["resolve-tracking.sh"];
22
- export declare const UTILITY_SKILLS: readonly ["create-agnostic-skill", "oat-repo-maintainability-review", "oat-review-provide", "oat-review-provide-remote", "oat-review-receive", "oat-review-receive-remote"];
22
+ export declare const UTILITY_SKILLS: readonly ["create-agnostic-skill", "oat-dispatch-subagents", "oat-repo-improve", "oat-repo-maintainability-review", "oat-review-provide", "oat-review-provide-remote", "oat-review-receive", "oat-review-receive-remote"];
23
23
  export declare const PROJECT_MANAGEMENT_SKILLS: readonly ["oat-pjm-add-backlog-item", "oat-pjm-decision", "oat-pjm-update-repo-reference", "oat-pjm-review-backlog"];
24
24
  export declare const PROJECT_MANAGEMENT_TEMPLATES: readonly ["backlog-item.md", "roadmap.md", "current-state.md", "decision.md", "repo-agents.md", "pjm-agents.md", "reference-agents.md"];
25
25
  export declare const PROJECT_MANAGEMENT_SCRIPTS: readonly [];
@@ -1 +1 @@
1
- {"version":3,"file":"skill-manifest.d.ts","sourceRoot":"","sources":["../../../../../src/commands/init/tools/shared/skill-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAKtD,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE5E;AAID,eAAO,MAAM,eAAe,6xBAgClB,CAAC;AAEX,eAAO,MAAM,eAAe,oFAIlB,CAAC;AAEX,eAAO,MAAM,kBAAkB,6GAQrB,CAAC;AAEX,eAAO,MAAM,gBAAgB,qFAInB,CAAC;AAIX,eAAO,MAAM,WAAW,2FAKd,CAAC;AAIX,eAAO,MAAM,WAAW,qCAAsC,CAAC;AAI/D,eAAO,MAAM,WAAW,iLAQd,CAAC;AAEX,eAAO,MAAM,YAAY,kCAAmC,CAAC;AAI7D,eAAO,MAAM,cAAc,6KAOjB,CAAC;AAIX,eAAO,MAAM,yBAAyB,sHAK5B,CAAC;AAEX,eAAO,MAAM,4BAA4B,yIAQ/B,CAAC;AAEX,eAAO,MAAM,0BAA0B,aAAc,CAAC;AAItD,eAAO,MAAM,iBAAiB,6BAA8B,CAAC;AAI7D,eAAO,MAAM,eAAe,2EAMlB,CAAC;AAEX,eAAO,MAAM,eAAe,qCAAsC,CAAC"}
1
+ {"version":3,"file":"skill-manifest.d.ts","sourceRoot":"","sources":["../../../../../src/commands/init/tools/shared/skill-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAKtD,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE5E;AAID,eAAO,MAAM,eAAe,+zBAiClB,CAAC;AAEX,eAAO,MAAM,eAAe,oFAIlB,CAAC;AAEX,eAAO,MAAM,kBAAkB,6GAQrB,CAAC;AAEX,eAAO,MAAM,gBAAgB,qFAInB,CAAC;AAIX,eAAO,MAAM,WAAW,2FAKd,CAAC;AAIX,eAAO,MAAM,WAAW,qCAAsC,CAAC;AAI/D,eAAO,MAAM,WAAW,iLAQd,CAAC;AAEX,eAAO,MAAM,YAAY,kCAAmC,CAAC;AAI7D,eAAO,MAAM,cAAc,2NASjB,CAAC;AAIX,eAAO,MAAM,yBAAyB,sHAK5B,CAAC;AAEX,eAAO,MAAM,4BAA4B,yIAQ/B,CAAC;AAEX,eAAO,MAAM,0BAA0B,aAAc,CAAC;AAItD,eAAO,MAAM,iBAAiB,6BAA8B,CAAC;AAI7D,eAAO,MAAM,eAAe,2EAMlB,CAAC;AAEX,eAAO,MAAM,eAAe,qCAAsC,CAAC"}
@@ -20,6 +20,7 @@ export const WORKFLOW_SKILLS = [
20
20
  'oat-project-clear-active',
21
21
  'oat-project-complete',
22
22
  'oat-project-design',
23
+ 'oat-project-dispatch-subagents',
23
24
  'oat-project-discover',
24
25
  'oat-project-document',
25
26
  'oat-project-implement',
@@ -90,6 +91,8 @@ export const DOCS_SCRIPTS = ['resolve-tracking.sh'];
90
91
  // ── Utility pack ───────────────────────────────────────────────────
91
92
  export const UTILITY_SKILLS = [
92
93
  'create-agnostic-skill',
94
+ 'oat-dispatch-subagents',
95
+ 'oat-repo-improve',
93
96
  'oat-repo-maintainability-review',
94
97
  'oat-review-provide',
95
98
  'oat-review-provide-remote',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-agent-toolkit/cli",
3
- "version": "0.1.52",
3
+ "version": "0.1.53",
4
4
  "private": false,
5
5
  "description": "Open Agent Toolkit CLI",
6
6
  "homepage": "https://github.com/voxmedia/open-agent-toolkit/tree/main/packages/cli",
@@ -34,7 +34,7 @@
34
34
  "ora": "^9.0.0",
35
35
  "yaml": "2.8.2",
36
36
  "zod": "^3.25.76",
37
- "@open-agent-toolkit/control-plane": "0.1.52"
37
+ "@open-agent-toolkit/control-plane": "0.1.53"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/node": "^22.10.0",