@open-agent-toolkit/cli 0.2.14 → 0.2.15
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/cli-utilities/config-and-local-state.md +14 -1
- package/assets/docs/cli-utilities/configuration.md +23 -2
- package/assets/docs/cli-utilities/tool-packs.md +43 -17
- package/assets/docs/provider-sync/providers.md +26 -0
- package/assets/docs/reference/troubleshooting.md +42 -0
- package/assets/docs/workflows/projects/lifecycle.md +2 -2
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-agent-instructions-analyze/SKILL.md +2 -2
- package/assets/skills/oat-brainstorm/SKILL.md +8 -8
- package/assets/skills/oat-brainstorm/references/destinations.md +3 -3
- package/assets/skills/oat-project-autonomous/references/gate-inventory.md +2 -2
- package/assets/skills/oat-project-document/SKILL.md +4 -4
- package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +2 -2
- package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +2 -2
- package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +2 -2
- package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +2 -2
- package/assets/skills/oat-project-summary/SKILL.md +9 -9
- package/dist/commands/init/tools/brainstorm/index.d.ts +0 -3
- package/dist/commands/init/tools/brainstorm/index.d.ts.map +1 -1
- package/dist/commands/init/tools/brainstorm/index.js +0 -12
- package/dist/commands/init/tools/index.d.ts.map +1 -1
- package/dist/commands/init/tools/index.js +46 -25
- package/dist/commands/tools/has/has-pack.d.ts +18 -0
- package/dist/commands/tools/has/has-pack.d.ts.map +1 -0
- package/dist/commands/tools/has/has-pack.js +33 -0
- package/dist/commands/tools/has/index.d.ts +4 -0
- package/dist/commands/tools/has/index.d.ts.map +1 -0
- package/dist/commands/tools/has/index.js +57 -0
- package/dist/commands/tools/index.d.ts.map +1 -1
- package/dist/commands/tools/index.js +2 -0
- package/dist/commands/tools/remove/index.d.ts.map +1 -1
- package/dist/commands/tools/remove/index.js +10 -20
- package/dist/commands/tools/shared/project-tools-config.d.ts +16 -0
- package/dist/commands/tools/shared/project-tools-config.d.ts.map +1 -0
- package/dist/commands/tools/shared/project-tools-config.js +59 -0
- package/dist/commands/tools/update/index.d.ts.map +1 -1
- package/dist/commands/tools/update/index.js +11 -22
- package/dist/engine/compute-plan.d.ts.map +1 -1
- package/dist/engine/compute-plan.js +8 -2
- package/dist/engine/execute-plan.d.ts +5 -1
- package/dist/engine/execute-plan.d.ts.map +1 -1
- package/dist/engine/execute-plan.js +23 -1
- package/dist/engine/index.d.ts +1 -0
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +1 -0
- package/dist/engine/provider-path-safety.d.ts +2 -0
- package/dist/engine/provider-path-safety.d.ts.map +1 -0
- package/dist/engine/provider-path-safety.js +54 -0
- package/package.json +2 -2
|
@@ -166,6 +166,7 @@ Archive lifecycle settings live here as shared repo config:
|
|
|
166
166
|
Tool-pack installation state also lives here as shared repo config:
|
|
167
167
|
|
|
168
168
|
- `tools.core`
|
|
169
|
+
- `tools.brainstorm`
|
|
169
170
|
- `tools.docs`
|
|
170
171
|
- `tools.ideas`
|
|
171
172
|
- `tools.project-management`
|
|
@@ -173,7 +174,19 @@ Tool-pack installation state also lives here as shared repo config:
|
|
|
173
174
|
- `tools.utility`
|
|
174
175
|
- `tools.workflows`
|
|
175
176
|
|
|
176
|
-
|
|
177
|
+
This complete eight-pack map is the shared project installation snapshot.
|
|
178
|
+
Lifecycle reconciliation derives it only from project-scoped canonical assets;
|
|
179
|
+
user-only packs do not set these keys. Use `oat config get tools.<pack>` to
|
|
180
|
+
inspect repository installation state.
|
|
181
|
+
|
|
182
|
+
For workflow routing or troubleshooting that needs current effective
|
|
183
|
+
availability, run `oat tools has <pack>`. It checks project plus user scope by
|
|
184
|
+
default; use `--scope project` or `--scope user` to isolate one scope. The
|
|
185
|
+
global `--json` flag returns the matching scopes with the boolean result.
|
|
186
|
+
|
|
187
|
+
PJM diagnostics intentionally use project configuration where repository setup
|
|
188
|
+
is the question. Disabled or unset repos report PJM as skipped instead of
|
|
189
|
+
treating absent `.oat/repo/pjm/` files as drift.
|
|
177
190
|
|
|
178
191
|
Workflow automation preferences are also visible through `oat config` and can be set at local, shared, or user scope. Notable review-loop keys:
|
|
179
192
|
|
|
@@ -87,7 +87,7 @@ Common keys in `.oat/config.json`:
|
|
|
87
87
|
- `archive.wrapUpExportPath` — optional tracked destination for `oat-wrap-up` reports; when unset, the skill falls back to `.oat/repo/reference/wrap-ups`
|
|
88
88
|
- `archive.awsProfile` — optional AWS named profile forwarded as `AWS_PROFILE` to every `aws` invocation in archive flows
|
|
89
89
|
- `archive.awsRegion` — optional AWS region forwarded as `AWS_REGION` to every `aws` invocation in archive flows
|
|
90
|
-
- `tools.<pack>` —
|
|
90
|
+
- `tools.<pack>` — project-scoped installation state for a bundled tool pack after lifecycle reconciliation
|
|
91
91
|
- `workflow.gates.skills` / `workflow.gates.execTargets` — per-skill gates and cross-runtime exec targets; manage with `oat gate`
|
|
92
92
|
- `workflow.gateTimeouts.code` / `workflow.gateTimeouts.artifact` — default review budgets in milliseconds
|
|
93
93
|
|
|
@@ -98,7 +98,28 @@ oat config get tools.project-management
|
|
|
98
98
|
oat config set tools.project-management true
|
|
99
99
|
```
|
|
100
100
|
|
|
101
|
-
The `tools.*`
|
|
101
|
+
The `tools.*` group is a shared project installation snapshot, not an
|
|
102
|
+
effective project-plus-user capability signal. `oat tools install`, `oat tools
|
|
103
|
+
update`, and `oat tools remove` reconcile it from project-scoped canonical
|
|
104
|
+
assets only. When project state is non-empty, reconciliation writes the complete
|
|
105
|
+
eight-pack boolean map. When no project packs remain, it removes the group while
|
|
106
|
+
preserving unrelated shared keys. User-only assets are ignored.
|
|
107
|
+
|
|
108
|
+
Use `oat config get tools.<pack>` to inspect project installation state.
|
|
109
|
+
`oat config set tools.<pack> ...` remains available as a shared override, but a
|
|
110
|
+
later lifecycle reconciliation may replace the manual value with the canonical
|
|
111
|
+
project snapshot.
|
|
112
|
+
|
|
113
|
+
Use `oat tools has <pack>` for current effective availability. It checks project
|
|
114
|
+
and user scopes by default; add `--scope project` or `--scope user` to isolate a
|
|
115
|
+
scope, and use the global `--json` flag for the `{ pack, available, scopes }`
|
|
116
|
+
result:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
oat tools has project-management
|
|
120
|
+
oat tools has project-management --scope user
|
|
121
|
+
oat --json tools has project-management
|
|
122
|
+
```
|
|
102
123
|
|
|
103
124
|
### Explainer configuration
|
|
104
125
|
|
|
@@ -11,7 +11,7 @@ This page covers CLI commands that manage bundled OAT tool packs and installed O
|
|
|
11
11
|
|
|
12
12
|
- What it does: explains how bundled OAT packs are installed, updated, inspected, and removed.
|
|
13
13
|
- When to use it: when you need to add capabilities to a repo, update installed skills, or understand which packs own which tools.
|
|
14
|
-
- Primary commands: `oat tools list`, `oat tools install`, `oat tools update`, `oat tools remove`
|
|
14
|
+
- Primary commands: `oat tools list`, `oat tools has`, `oat tools install`, `oat tools update`, `oat tools remove`
|
|
15
15
|
|
|
16
16
|
## Bundled packs at a glance
|
|
17
17
|
|
|
@@ -187,6 +187,28 @@ Key behavior:
|
|
|
187
187
|
- Reports whether the tool is invocable (for skills) and whether an update is available
|
|
188
188
|
- Returns exit code 1 if the tool is not found in any scope
|
|
189
189
|
|
|
190
|
+
### `oat tools has <pack>`
|
|
191
|
+
|
|
192
|
+
Purpose:
|
|
193
|
+
|
|
194
|
+
- Check current availability of one bundled pack without treating shared config as a runtime capability cache
|
|
195
|
+
|
|
196
|
+
Key behavior:
|
|
197
|
+
|
|
198
|
+
- Defaults to effective availability across project and user scopes
|
|
199
|
+
- Accepts `--scope project`, `--scope user`, or `--scope all`
|
|
200
|
+
- Prints `true` or `false` in plain mode
|
|
201
|
+
- With the global `--json` flag, emits `{ "pack": "<pack>", "available": <boolean>, "scopes": ["project", "user"] }`; `scopes` contains only locations where the pack is currently found
|
|
202
|
+
- Exits `0` for every valid query, including an unavailable pack, `1` for an invalid pack or other actionable input error, and `2` for an unexpected scan or runtime failure
|
|
203
|
+
|
|
204
|
+
Examples:
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
oat tools has project-management
|
|
208
|
+
oat tools has brainstorm --scope user
|
|
209
|
+
oat --json tools has workflows
|
|
210
|
+
```
|
|
211
|
+
|
|
190
212
|
### `oat tools install`
|
|
191
213
|
|
|
192
214
|
Purpose:
|
|
@@ -205,7 +227,7 @@ Key behavior:
|
|
|
205
227
|
- Removing a pack from a scope happens only when you explicitly choose a narrower end-state in the interactive flow (e.g. a pack at `both` set to `project` only). All staged removals are shown in a single change summary and applied only after one batch confirmation — declining makes no changes
|
|
206
228
|
- Non-interactive installs (including `--scope project`, `--scope user`, and the default pack set) are strictly additive and never remove a pack from a scope. Removal is interactive-only
|
|
207
229
|
- Tracks installed vs bundled skill versions and reports outdated skills
|
|
208
|
-
-
|
|
230
|
+
- Reconciles shared repo config from project-scoped canonical assets only; a user-only install does not set `tools.<pack>: true`
|
|
209
231
|
- Refreshes the managed `OAT tools` section in the repository-root `AGENTS.md`.
|
|
210
232
|
- Installing the `project-management` pack—through either the aggregate picker or `oat tools install project-management`—also upserts a managed `OAT project-management` section. It points agents to `.oat/repo/AGENTS.md` for active PJM and durable-reference routing, summarizes when to consult it, and gives decision-specific guidance for reviewing and creating durable records without hand-editing the generated index.
|
|
211
233
|
- Interactive runs can prompt to update selected outdated skills
|
|
@@ -226,7 +248,7 @@ Key behavior:
|
|
|
226
248
|
- Compares installed versions against bundled versions and copies updated assets
|
|
227
249
|
- For `--pack <pack>` and `--all`, an already-installed pack is reconciled to include newly added bundled skills or agents in that same scope
|
|
228
250
|
- Pack-targeted updates intentionally rewrite bundled template and script companions in place, even when the pack's installed skills are already current
|
|
229
|
-
- For `--pack <pack>` and `--all`, shared repo config is also reconciled from
|
|
251
|
+
- For `--pack <pack>` and `--all`, shared repo config is also reconciled from a project-scoped installed-pack scan so `tools.*` reflects repository installation state and stale `true` flags are cleared
|
|
230
252
|
- Dry-run mode with `--dry-run`; auto-sync after mutations by default
|
|
231
253
|
- Use `--no-sync` to skip auto-sync
|
|
232
254
|
- Reports tools that are already current, newer than bundled, or not bundled (custom)
|
|
@@ -241,19 +263,21 @@ Key behavior:
|
|
|
241
263
|
|
|
242
264
|
- Accepts a tool name, `--pack <pack>`, or `--all` (mutually exclusive)
|
|
243
265
|
- Removes skill directories and agent `.md` files from canonical locations
|
|
244
|
-
- For `--pack <pack>` and `--all`, shared repo config is
|
|
266
|
+
- For `--pack <pack>` and `--all`, shared repo config is reconciled from a post-removal project scan; removing the last project copy clears project state even when a user copy remains
|
|
245
267
|
- Dry-run mode with `--dry-run`; auto-sync after mutations by default
|
|
246
268
|
- Use `--no-sync` to skip auto-sync
|
|
247
269
|
|
|
248
270
|
## Shared config signal: `tools.*`
|
|
249
271
|
|
|
250
|
-
Tool-pack lifecycle commands
|
|
272
|
+
Tool-pack lifecycle commands maintain a project installation snapshot in shared repo config under `.oat/config.json`.
|
|
273
|
+
|
|
274
|
+
- Install, update, and remove reconcile the snapshot from project-scoped canonical assets only. User-only operations never set a shared `true` flag.
|
|
275
|
+
- When at least one project pack is installed, reconciliation writes the complete eight-pack boolean map: `core`, `ideas`, `docs`, `workflows`, `utility`, `project-management`, `research`, and `brainstorm`.
|
|
276
|
+
- When no project packs remain, reconciliation removes the entire `tools` map. It preserves unrelated shared keys, avoids creating a default-only config file, and skips unchanged writes.
|
|
251
277
|
|
|
252
|
-
|
|
253
|
-
- `oat tools update --pack <pack>` and `oat tools update --all` rebuild the full `tools` map from installed-pack scans
|
|
254
|
-
- `oat tools remove --pack <pack>` and `oat tools remove --all` rebuild the same map after removals
|
|
278
|
+
Use `oat config get tools.<pack>` to inspect this project snapshot. A manual `oat config set tools.<pack> ...` value is a shared override that the next lifecycle reconciliation may replace.
|
|
255
279
|
|
|
256
|
-
|
|
280
|
+
Use `oat tools has <pack>` when a workflow needs current effective availability from project or user scope. For example, `oat-project-document` checks `oat tools has project-management` before auto-running repo-reference refresh work.
|
|
257
281
|
|
|
258
282
|
## Workflows pack
|
|
259
283
|
|
|
@@ -378,20 +402,22 @@ Key behavior:
|
|
|
378
402
|
and can surface it later if the conversation turns visual. Persistence paths
|
|
379
403
|
use OAT-managed prefixes (`.oat/brainstorm/<session-id>/` repo-scope or
|
|
380
404
|
`~/.oat/brainstorm/<session-id>/` user-scope).
|
|
381
|
-
- **Terminal-state picker filtered by
|
|
382
|
-
converges on a destination, the skill
|
|
383
|
-
|
|
384
|
-
terminal states. Pack-gated outcomes (capture-as-idea, scoped
|
|
385
|
-
project promotion, active-project fold-back)
|
|
386
|
-
corresponding pack is
|
|
405
|
+
- **Terminal-state picker filtered by effective pack availability.** When the
|
|
406
|
+
user converges on a destination, the skill runs `oat tools has ideas`, `oat
|
|
407
|
+
tools has project-management`, and `oat tools has workflows` to filter the
|
|
408
|
+
available terminal states. Pack-gated outcomes (capture-as-idea, scoped
|
|
409
|
+
backlog item, project promotion, active-project fold-back) appear when the
|
|
410
|
+
corresponding pack is available at project or user scope. The separate `oat
|
|
411
|
+
config get activeProject` lookup resolves active project state.
|
|
387
412
|
- **Destinations playbook.** The full set of terminal-state stanzas — trigger
|
|
388
413
|
phrases, required template fields, confirmation patterns, handoff targets —
|
|
389
414
|
lives at `.agents/skills/oat-brainstorm/references/destinations.md` and is
|
|
390
415
|
consulted by the skill at destination-identification time.
|
|
391
416
|
- **Pack lifecycle.** `oat tools install brainstorm`, `oat tools update --pack
|
|
392
417
|
brainstorm`, and `oat tools remove --pack brainstorm` manage the skill plus
|
|
393
|
-
visual-companion bundle as a unit.
|
|
394
|
-
|
|
418
|
+
visual-companion bundle as a unit. Project installs participate in the shared
|
|
419
|
+
project snapshot; user-only installs remain available through `oat tools has
|
|
420
|
+
brainstorm` without setting `tools.brainstorm` in shared config.
|
|
395
421
|
|
|
396
422
|
### Auto-sync behavior
|
|
397
423
|
|
|
@@ -116,6 +116,32 @@ than falling back to the root target or a base role.
|
|
|
116
116
|
- Rule adoption normalizes provider filenames back to canonical `.agents/rules/*.md` entries before cross-provider fanout.
|
|
117
117
|
- Cross-provider fanout is explicit via `oat sync --scope all`.
|
|
118
118
|
|
|
119
|
+
## Provider mutation safety
|
|
120
|
+
|
|
121
|
+
The generic sync engine validates provider destinations for every operation that
|
|
122
|
+
creates or updates a symlink, creates or updates a copy, or removes a managed
|
|
123
|
+
provider path. The same guard applies across provider adapters; it is not
|
|
124
|
+
Claude-specific.
|
|
125
|
+
|
|
126
|
+
Validation runs at three boundaries:
|
|
127
|
+
|
|
128
|
+
1. During planning, before a provider operation is classified.
|
|
129
|
+
2. Across the complete mutating plan before apply starts, so an already-unsafe
|
|
130
|
+
later entry cannot allow earlier provider or manifest mutations.
|
|
131
|
+
3. Immediately before each entry's first filesystem mutation, so ancestry that
|
|
132
|
+
changes after preflight fails closed.
|
|
133
|
+
|
|
134
|
+
A mutation is refused when its destination escapes the sync scope, equals the
|
|
135
|
+
scope root, or has any existing parent that is a symbolic link or not a
|
|
136
|
+
directory. The final managed destination is excluded from the ancestry walk, so
|
|
137
|
+
an existing managed symlink can still be updated or removed normally.
|
|
138
|
+
|
|
139
|
+
Whole-plan preflight refusal leaves provider paths, canonical content, external
|
|
140
|
+
symlink targets, and manifest state unchanged. If ancestry changes after
|
|
141
|
+
preflight, the affected entry fails before its first removal or write and does
|
|
142
|
+
not gain manifest ownership. OAT does not traverse, unlink, or rewrite the
|
|
143
|
+
unsafe parent.
|
|
144
|
+
|
|
119
145
|
## Reference artifacts
|
|
120
146
|
|
|
121
147
|
- `.oat/projects/<scope>/<project>/spec.md` (FR5)
|
|
@@ -61,6 +61,48 @@ Use [Instruction Sync](../provider-sync/instruction-sync.md) for the full strate
|
|
|
61
61
|
- In TTY mode, select which outdated skills to update when prompted.
|
|
62
62
|
- In non-interactive mode, rerun the relevant pack subcommand with `--force` if you want to overwrite outdated installed skills.
|
|
63
63
|
|
|
64
|
+
## `sync` reports an unsafe provider parent
|
|
65
|
+
|
|
66
|
+
Errors containing `Unsafe provider parent`, `symbolic links are not allowed in
|
|
67
|
+
provider ancestry`, or `provider ancestry is not a directory` mean an existing
|
|
68
|
+
parent of a managed provider destination is a symlink or a non-directory entry.
|
|
69
|
+
OAT refuses to traverse, unlink, or rewrite that parent because it may be
|
|
70
|
+
user-managed or externally owned. Canonical content and external symlink targets
|
|
71
|
+
remain untouched.
|
|
72
|
+
|
|
73
|
+
Recover explicitly:
|
|
74
|
+
|
|
75
|
+
1. Inspect the reported parent and preserve or migrate any user-managed content.
|
|
76
|
+
2. Replace that provider parent with a real directory under the intended project
|
|
77
|
+
or user sync scope.
|
|
78
|
+
3. Rerun sync with the matching scope:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
oat sync --scope project
|
|
82
|
+
oat sync --scope user
|
|
83
|
+
oat sync --scope all
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Do not replace the parent until you understand who owns its existing target.
|
|
87
|
+
OAT intentionally does not automate this recovery.
|
|
88
|
+
|
|
89
|
+
## A user-installed pack is missing from shared `tools.*`
|
|
90
|
+
|
|
91
|
+
This is expected. `.oat/config.json#tools` records project installation state,
|
|
92
|
+
so a user-only install does not set `tools.<pack>` in shared repo config.
|
|
93
|
+
|
|
94
|
+
Check effective project-plus-user availability with:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
oat tools has <pack>
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
To confirm specifically that the user copy is present, run:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
oat tools has <pack> --scope user
|
|
104
|
+
```
|
|
105
|
+
|
|
64
106
|
## Manifest not found or invalid
|
|
65
107
|
|
|
66
108
|
- Missing manifest: run `sync` or `init`
|
|
@@ -18,7 +18,7 @@ OAT lifecycle order:
|
|
|
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
|
|
20
20
|
9. Revision loop (`oat-project-revise`) — optional; accepts post-PR feedback
|
|
21
|
-
10. Documentation sync (`oat-project-document`) — optional; reads project artifacts and code evidence to identify docs needing updates, checks for missing coverage of newly shipped capability areas, checks `tools
|
|
21
|
+
10. Documentation sync (`oat-project-document`) — optional; reads project artifacts and code evidence to identify docs needing updates, checks for missing coverage of newly shipped capability areas, checks effective project-management availability with `oat tools has project-management`, and auto-runs `oat-pjm-update-repo-reference` before scanning docs when the pack is available
|
|
22
22
|
11. Complete (`oat-project-complete`)
|
|
23
23
|
|
|
24
24
|
**Shortcut:** `oat-project-next` reads project state and invokes the correct next skill automatically — use it instead of remembering which skill comes next. Complements `oat-project-progress` (which is read-only diagnostic).
|
|
@@ -63,7 +63,7 @@ from missing state.
|
|
|
63
63
|
After implementation closeout finishes:
|
|
64
64
|
|
|
65
65
|
1. **Summary** (`oat-project-summary`) — generates `summary.md` as institutional memory from project artifacts; PR-final and completion will auto-refresh it if you have not already run it or if it is stale
|
|
66
|
-
2. **Documentation** (`oat-project-document`) — optional sync of project docs;
|
|
66
|
+
2. **Documentation** (`oat-project-document`) — optional sync of project docs; checks effective project-management availability with `oat tools has project-management` to decide whether repo-reference refresh should run before docs analysis, and should recommend new docs pages/directories when the shipped work introduces a capability area that the docs app does not already cover
|
|
67
67
|
3. **PR** (`oat-project-pr-final`) — creates PR description (auto-refreshes `summary.md` first when needed, then uses it as source), sets `oat_phase_status: pr_open`, and tracks actual PR existence with `oat_pr_status` / `oat_pr_url`
|
|
68
68
|
4. **Revision loop** (`oat-project-revise`) — accepts post-PR feedback:
|
|
69
69
|
- Inline feedback creates `p-revN` revision phases with `prevN-tNN` task IDs
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-agent-instructions-analyze
|
|
3
|
-
version: 1.11.
|
|
3
|
+
version: 1.11.2
|
|
4
4
|
description: Run when you need to evaluate agent instruction file coverage, quality, and drift. Produces a severity-rated analysis artifact. Run before oat-agent-instructions-apply to identify what needs improvement.
|
|
5
5
|
disable-model-invocation: true
|
|
6
6
|
user-invocable: true
|
|
@@ -107,7 +107,7 @@ Delta mode scoping:
|
|
|
107
107
|
git diff --name-only "$STORED_HASH"..HEAD
|
|
108
108
|
```
|
|
109
109
|
|
|
110
|
-
Use the changed file list to limit coverage gap assessment (Step
|
|
110
|
+
Use the changed file list to limit coverage gap assessment (Step 4) and drift detection (Step 6) to affected directories. Quality evaluation (Step 3) always runs on ALL instruction files regardless of mode.
|
|
111
111
|
|
|
112
112
|
### Step 1: Discover Instruction Files
|
|
113
113
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-brainstorm
|
|
3
|
-
version: 1.1.
|
|
3
|
+
version: 1.1.1
|
|
4
4
|
description: Use when the user explicitly invokes the `brainstorm` verb, including `/oat-brainstorm`, "let's brainstorm", "brainstorm this", "can we brainstorm X", or "help me brainstorm X". For ambiguous exploratory phrasing ("I've been thinking", "what if", "help me think through"), do NOT auto-enter; respond conversationally and offer mode only after ≥2 sustained exploratory turns. Do NOT use for review, debug, PR, status, implementation, or active-workflow questions.
|
|
5
5
|
disable-model-invocation: false
|
|
6
6
|
user-invocable: true
|
|
@@ -97,7 +97,7 @@ These messages get a direct response, not a workflow takeover. If the model has
|
|
|
97
97
|
|
|
98
98
|
- Free-form exploratory conversation, one question at a time, multiple-choice when possible, 2-3 distinct approaches with a recommendation.
|
|
99
99
|
- Per-question visual-companion routing (browser for visual content, terminal for text).
|
|
100
|
-
- Pack and active-project detection at convergence time (`oat
|
|
100
|
+
- Pack and active-project detection at convergence time (`oat tools has <pack>` / `oat config get activeProject`).
|
|
101
101
|
- Reading downstream skill files (`oat-idea-*`, `oat-pjm-add-backlog-item`, `oat-project-*`) and following their process inline using the synthesized payload as pre-filled answers.
|
|
102
102
|
- Rendering the doc-to-path artifact from `templates/brainstorm-doc.md`.
|
|
103
103
|
- Active-project fold-back: appending synthesis to the chosen upstream artifact and committing — only after the safety contract (preflight, scoped staging, conditional handoff print) is satisfied.
|
|
@@ -135,7 +135,7 @@ These indicators apply only on Hard Activation (see `## Activation Contract`). O
|
|
|
135
135
|
- `Activating brainstorm mode…`
|
|
136
136
|
- `Asserting mode (blocked / allowed)…`
|
|
137
137
|
- `Assessing visual need…`
|
|
138
|
-
- `Detecting
|
|
138
|
+
- `Detecting available packs and active project…`
|
|
139
139
|
- `Free brainstorming (Superpowers cadence)…`
|
|
140
140
|
- `Watching for destination signals…`
|
|
141
141
|
- `Satisfaction check…`
|
|
@@ -156,7 +156,7 @@ Apply the **Activation Contract**. The full Process flow (Steps 2-9) only runs o
|
|
|
156
156
|
|
|
157
157
|
When Hard Activation triggers, the user has not already named a destination skill or artifact type. Do not route those blank-slate brainstorms to `oat-idea-ideate` merely because they may later become an idea, backlog item, project, or document.
|
|
158
158
|
|
|
159
|
-
There are no preconditions to check at activation — pack detection and active-project detection happen at step 4, after visual-need assessment, so this skill works in any repo regardless of which OAT packs are
|
|
159
|
+
There are no preconditions to check at activation — pack detection and active-project detection happen at step 4, after visual-need assessment, so this skill works in any repo regardless of which OAT packs are available.
|
|
160
160
|
|
|
161
161
|
**Soft Exploratory Path** (per Activation Contract): respond conversationally with brainstorm-quality structure (options, tradeoffs, open questions, no premature implementation, no destination guess). Do not print the banner, assert mode, run pack detection, or offer the visual companion. Track an exploratory-turn counter for the thread; on the 2nd+ consecutive exploratory turn with no concrete action requested, append the soft offer once: "If you want, I can switch into structured brainstorm mode for this." If the user accepts, transition to Hard Activation and re-enter Step 2.
|
|
162
162
|
|
|
@@ -216,9 +216,9 @@ The `active`, `declined`, and `unavailable` decisions apply for the rest of the
|
|
|
216
216
|
Run pack-detection and active-project resolution **once** per session, before the conversation starts. Mirrors the convention used by `oat-project-document`.
|
|
217
217
|
|
|
218
218
|
```bash
|
|
219
|
-
IDEAS_INSTALLED=$(oat
|
|
220
|
-
PJM_INSTALLED=$(oat
|
|
221
|
-
WORKFLOWS_INSTALLED=$(oat
|
|
219
|
+
IDEAS_INSTALLED=$(oat tools has ideas 2>/dev/null || echo "false")
|
|
220
|
+
PJM_INSTALLED=$(oat tools has project-management 2>/dev/null || echo "false")
|
|
221
|
+
WORKFLOWS_INSTALLED=$(oat tools has workflows 2>/dev/null || echo "false")
|
|
222
222
|
ACTIVE_PROJECT=$(oat config get activeProject 2>/dev/null || echo "")
|
|
223
223
|
|
|
224
224
|
ACTIVE_PROJECT_VALID="false"
|
|
@@ -626,7 +626,7 @@ End mode assertion when the split handoff completes or reports its own blocker.
|
|
|
626
626
|
- ✅ Phase banner `OAT ▸ BRAINSTORM` is printed exactly once at activation; mode assertion follows immediately.
|
|
627
627
|
- ✅ Visual-companion offer is conditional on visual need, not Node availability alone. Text-likely brainstorms set `VISUAL_COMPANION = "deferred"` and continue without mentioning the companion.
|
|
628
628
|
- ✅ When a visual-companion offer is made, it is its own message with no other content. The offer is suppressed entirely (no message printed) when `node` is not on PATH.
|
|
629
|
-
- ✅ Pack and active-project detection (`oat
|
|
629
|
+
- ✅ Pack and active-project detection (`oat tools has <pack>` and `oat config get activeProject`) runs once per session at step 4, before the conversation starts.
|
|
630
630
|
- ✅ Conversation cadence holds the Superpowers contract: one question at a time, multiple-choice preferred, 2-3 distinct approaches with a recommendation, per-question visual-companion routing.
|
|
631
631
|
- ✅ Destination is identified via either trigger-phrase opportunistic surfacing (loose substring + paraphrase tolerance, not regex; ambiguity → ask) or convergence cue (pack-filtered terminal-state picker).
|
|
632
632
|
- ✅ The terminal-state picker conditionally includes `Promote to N projects` only when `oat project split evaluate-signals` reports `triggered: true`; small-scope convergence keeps the option hidden.
|
|
@@ -47,7 +47,7 @@ Always honor an explicit user-supplied path over the suggestion. Brainstorm docs
|
|
|
47
47
|
|
|
48
48
|
### Destination: Capture as new idea
|
|
49
49
|
|
|
50
|
-
**Pack required:** `ideas` (i.e., `oat
|
|
50
|
+
**Pack required:** `ideas` (i.e., `oat tools has ideas` returns `true`)
|
|
51
51
|
**Trigger phrases:** "capture as an idea", "this is an idea worth keeping", "let's track this as an idea", "save this as an idea", "make a new idea for this".
|
|
52
52
|
**Required template fields:** `title` (slug-friendly), `summary`, `motivation` (Why Is It Interesting?), `vision` (What Would It Look Like?), `transcriptSessionNote`. Template: `.oat/templates/ideas/idea-discovery.md` (consumed via `oat-idea-new`).
|
|
53
53
|
**Optional template fields:** `approachesConsidered`, `chosenDirection`, `openQuestions`, `nextSteps`.
|
|
@@ -83,7 +83,7 @@ Always honor an explicit user-supplied path over the suggestion. Brainstorm docs
|
|
|
83
83
|
|
|
84
84
|
### Destination: Scoped backlog item
|
|
85
85
|
|
|
86
|
-
**Pack required:** `project-management` (i.e., `oat
|
|
86
|
+
**Pack required:** `project-management` (i.e., `oat tools has project-management` returns `true`)
|
|
87
87
|
**Trigger phrases:** "track this as a backlog item", "make a ticket", "log this", "open a backlog entry", "add this to the backlog", "create a backlog item for this".
|
|
88
88
|
**Required template fields:** `title` (1-line summary), `description` (problem + proposed approach), `acceptance criteria` (bullet list), `scope` (xs / s / m / l / xl), `priority` (p0 / p1 / p2 / p3). Template: `.oat/templates/backlog-item.md` (consumed via `oat-pjm-add-backlog-item`).
|
|
89
89
|
**Optional template fields:** related items, target release, owner.
|
|
@@ -112,7 +112,7 @@ Confirm to write this to a new backlog item file, or tell me what to change.
|
|
|
112
112
|
|
|
113
113
|
### Destination: Promote to new OAT project
|
|
114
114
|
|
|
115
|
-
**Pack required:** `workflows` (i.e., `oat
|
|
115
|
+
**Pack required:** `workflows` (i.e., `oat tools has workflows` returns `true`)
|
|
116
116
|
**Trigger phrases:** "let's make this a project", "promote this to a project", "scaffold a project for this", "this is project-sized — let's start one".
|
|
117
117
|
**Required template fields:** `title`, `summary` (Initial Request), `approachesConsidered` (Solution Space), `chosenDirection` (Chosen Direction), key decisions, `openQuestions`. Template: `.oat/templates/discovery.md` (consumed via `oat project new`).
|
|
118
118
|
**Optional template fields:** `motivation`, `vision`, `nextSteps`.
|
|
@@ -239,9 +239,9 @@ remains immutable baseline evidence for the original p01-t01 verification.
|
|
|
239
239
|
| `oat-project-implement/references/docs/autonomy-contract.md` | `* -> NG` |
|
|
240
240
|
| `oat-project-implement/references/phase-execution.md` | `27737e814790 -> NG`; `6dda2b8e62e2 -> IMPLEMENT-10`; `b3197086bb1e -> IMPLEMENT-10` |
|
|
241
241
|
| `oat-project-implement/references/plan-and-resume.md` | `413829d31e32 -> IMPLEMENT-02`; `c7706cd8ad09 -> IMPLEMENT-03`; `a80a948df658 -> IMPLEMENT-03`; `b7ea139780ec -> IMPLEMENT-03+IMPLEMENT-04`; `8d438f2180ba -> IMPLEMENT-03`; `9e72e0518cda -> IMPLEMENT-03`; `3e177a1021e6 -> IMPLEMENT-03+IMPLEMENT-04`; `b59fc9eb9ce3 -> IMPLEMENT-03`; `a2b1d6855283 -> IMPLEMENT-03`; `44351a32e52a -> IMPLEMENT-03`; `b98b022f5523 -> IMPLEMENT-03`; `e9f5b949e214 -> IMPLEMENT-03`; `316fb6d9e980 -> IMPLEMENT-03`; `8b25a2c5c548 -> IMPLEMENT-03`; `1a59b1c0e705 -> IMPLEMENT-03`; `466cd562fc52 -> IMPLEMENT-03`; `083d896978d5 -> IMPLEMENT-03`; `f4ab11c13ae9 -> IMPLEMENT-03`; `7dc17ffcc1c4 -> IMPLEMENT-03`; `f731a90adabd -> IMPLEMENT-04`; `886ac01e7aa9 -> IMPLEMENT-04`; `b715db67df0c -> IMPLEMENT-04`; `2d9f26a539f3 -> IMPLEMENT-10`; `28384dee114f -> IMPLEMENT-05`; `f2591a4978b4 -> NG`; `8290823080b5 -> IMPLEMENT-06`; `f75789bf6c8e -> IMPLEMENT-07` |
|
|
242
|
-
| `oat-project-document/SKILL.md` | `4fc2d8618208 -> NG`; `
|
|
242
|
+
| `oat-project-document/SKILL.md` | `4fc2d8618208 -> NG`; `3f9b0273ba77 -> NG`; `40f8be47affa -> NG`; `3a3c390528f3 -> DOCUMENT-03`; `2a7ba093b315 -> DOCUMENT-02`; `252aabe44db2 -> DOCUMENT-02`; `3751172de299 -> DOCUMENT-02`; `b987a0697ba9 -> DOCUMENT-01`; `a06ff3ca7926 -> NG`; `0d04714ca9fc -> NG`; `f79af01d94c6 -> DOCUMENT-02`; `71634113c348 -> DOCUMENT-02`; `cdb707f5081e -> NG` |
|
|
243
243
|
| `oat-project-document/references/docs/autonomy-contract.md` | `* -> NG` |
|
|
244
|
-
| `oat-project-summary/SKILL.md` | `68c197c44c18 -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> SUMMARY-01`; `
|
|
244
|
+
| `oat-project-summary/SKILL.md` | `68c197c44c18 -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> SUMMARY-01`; `8ff515033147 -> NG`; `ac36f854dd6b -> NG`; `f3e49b727752 -> NG`; `5f315ab87cb1 -> NG`; `e73bd88837ea -> NG`; `83257ff6cb68 -> NG`; `c8fced47ef8e -> NG`; `d7ea1e2a4f5f -> NG` |
|
|
245
245
|
| `oat-project-pr-final/SKILL.md` | `601ac2b890f2 -> NG`; `5eb3949f32e1 -> NG`; `9efcbcee42ea -> NG`; `655d61df0a8f -> NG`; `cf317c17c586 -> PRFINAL-01`; `2de348a391c0 -> PRFINAL-03` |
|
|
246
246
|
| `oat-project-pr-final/references/docs/autonomy-contract.md` | `* -> NG` |
|
|
247
247
|
| `oat-project-complete/SKILL.md` | `6ed459f9e462 -> NG`; `a167d03559fa -> NG`; `79c2eeed668c -> COMPLETE-01`; `2c1514b9d9af -> COMPLETE-01`; `31c750b4fea7 -> COMPLETE-01`; `cfba413b1293 -> COMPLETE-01`; `ffcdc9d576c0 -> COMPLETE-01`; `7fcfce0423ac -> COMPLETE-01`; `9497d9f94eed -> COMPLETE-01`; `7b59c728d3fb -> COMPLETE-01`; `48e10a9636fe -> COMPLETE-01`; `c0dad37fc166 -> COMPLETE-01`; `aa9a36243ec1 -> COMPLETE-01`; `7bcbf58b54e9 -> NG`; `4c7f88a7f942 -> COMPLETE-02`; `6a1a95acc8cc -> COMPLETE-02`; `3b559956b3eb -> COMPLETE-03`; `14d161cdf99b -> COMPLETE-03`; `12f7c30a54c8 -> NG`; `fffe5eea5ebd -> NG` |
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-project-document
|
|
3
|
-
version: 1.6.
|
|
3
|
+
version: 1.6.2
|
|
4
4
|
description: Use when the user requests or confirms documenting an active OAT project — e.g. "document the project", "update the docs", "run oat-project-document", or confirms a previously offered documentation run. Do NOT auto-invoke when implementation completes. Analyzes project artifacts, presents a documentation delta plan, and applies approved changes.
|
|
5
5
|
argument-hint: '[project-path] [--auto]'
|
|
6
6
|
disable-model-invocation: false
|
|
7
7
|
user-invocable: true
|
|
8
|
-
allowed-tools: Read, Write, Edit, Bash(git:*), Glob, Grep, AskUserQuestion, Skill
|
|
8
|
+
allowed-tools: Read, Write, Edit, Bash(git:*), Bash(oat tools:*), Glob, Grep, AskUserQuestion, Skill
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# Project Documentation Sync
|
|
@@ -159,10 +159,10 @@ Store resolved values for use in later steps. Do not write auto-detected values
|
|
|
159
159
|
|
|
160
160
|
### Step 1: Check for PJM Infrastructure
|
|
161
161
|
|
|
162
|
-
Check whether the project-management tool pack is
|
|
162
|
+
Check whether the project-management tool pack is effectively available:
|
|
163
163
|
|
|
164
164
|
```bash
|
|
165
|
-
PJM_INSTALLED=$(oat
|
|
165
|
+
PJM_INSTALLED=$(oat tools has project-management 2>/dev/null || echo "false")
|
|
166
166
|
```
|
|
167
167
|
|
|
168
168
|
**If `PJM_INSTALLED` is `true`:**
|
|
@@ -239,9 +239,9 @@ remains immutable baseline evidence for the original p01-t01 verification.
|
|
|
239
239
|
| `oat-project-implement/references/docs/autonomy-contract.md` | `* -> NG` |
|
|
240
240
|
| `oat-project-implement/references/phase-execution.md` | `27737e814790 -> NG`; `6dda2b8e62e2 -> IMPLEMENT-10`; `b3197086bb1e -> IMPLEMENT-10` |
|
|
241
241
|
| `oat-project-implement/references/plan-and-resume.md` | `413829d31e32 -> IMPLEMENT-02`; `c7706cd8ad09 -> IMPLEMENT-03`; `a80a948df658 -> IMPLEMENT-03`; `b7ea139780ec -> IMPLEMENT-03+IMPLEMENT-04`; `8d438f2180ba -> IMPLEMENT-03`; `9e72e0518cda -> IMPLEMENT-03`; `3e177a1021e6 -> IMPLEMENT-03+IMPLEMENT-04`; `b59fc9eb9ce3 -> IMPLEMENT-03`; `a2b1d6855283 -> IMPLEMENT-03`; `44351a32e52a -> IMPLEMENT-03`; `b98b022f5523 -> IMPLEMENT-03`; `e9f5b949e214 -> IMPLEMENT-03`; `316fb6d9e980 -> IMPLEMENT-03`; `8b25a2c5c548 -> IMPLEMENT-03`; `1a59b1c0e705 -> IMPLEMENT-03`; `466cd562fc52 -> IMPLEMENT-03`; `083d896978d5 -> IMPLEMENT-03`; `f4ab11c13ae9 -> IMPLEMENT-03`; `7dc17ffcc1c4 -> IMPLEMENT-03`; `f731a90adabd -> IMPLEMENT-04`; `886ac01e7aa9 -> IMPLEMENT-04`; `b715db67df0c -> IMPLEMENT-04`; `2d9f26a539f3 -> IMPLEMENT-10`; `28384dee114f -> IMPLEMENT-05`; `f2591a4978b4 -> NG`; `8290823080b5 -> IMPLEMENT-06`; `f75789bf6c8e -> IMPLEMENT-07` |
|
|
242
|
-
| `oat-project-document/SKILL.md` | `4fc2d8618208 -> NG`; `
|
|
242
|
+
| `oat-project-document/SKILL.md` | `4fc2d8618208 -> NG`; `3f9b0273ba77 -> NG`; `40f8be47affa -> NG`; `3a3c390528f3 -> DOCUMENT-03`; `2a7ba093b315 -> DOCUMENT-02`; `252aabe44db2 -> DOCUMENT-02`; `3751172de299 -> DOCUMENT-02`; `b987a0697ba9 -> DOCUMENT-01`; `a06ff3ca7926 -> NG`; `0d04714ca9fc -> NG`; `f79af01d94c6 -> DOCUMENT-02`; `71634113c348 -> DOCUMENT-02`; `cdb707f5081e -> NG` |
|
|
243
243
|
| `oat-project-document/references/docs/autonomy-contract.md` | `* -> NG` |
|
|
244
|
-
| `oat-project-summary/SKILL.md` | `68c197c44c18 -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> SUMMARY-01`; `
|
|
244
|
+
| `oat-project-summary/SKILL.md` | `68c197c44c18 -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> SUMMARY-01`; `8ff515033147 -> NG`; `ac36f854dd6b -> NG`; `f3e49b727752 -> NG`; `5f315ab87cb1 -> NG`; `e73bd88837ea -> NG`; `83257ff6cb68 -> NG`; `c8fced47ef8e -> NG`; `d7ea1e2a4f5f -> NG` |
|
|
245
245
|
| `oat-project-pr-final/SKILL.md` | `601ac2b890f2 -> NG`; `5eb3949f32e1 -> NG`; `9efcbcee42ea -> NG`; `655d61df0a8f -> NG`; `cf317c17c586 -> PRFINAL-01`; `2de348a391c0 -> PRFINAL-03` |
|
|
246
246
|
| `oat-project-pr-final/references/docs/autonomy-contract.md` | `* -> NG` |
|
|
247
247
|
| `oat-project-complete/SKILL.md` | `6ed459f9e462 -> NG`; `a167d03559fa -> NG`; `79c2eeed668c -> COMPLETE-01`; `2c1514b9d9af -> COMPLETE-01`; `31c750b4fea7 -> COMPLETE-01`; `cfba413b1293 -> COMPLETE-01`; `ffcdc9d576c0 -> COMPLETE-01`; `7fcfce0423ac -> COMPLETE-01`; `9497d9f94eed -> COMPLETE-01`; `7b59c728d3fb -> COMPLETE-01`; `48e10a9636fe -> COMPLETE-01`; `c0dad37fc166 -> COMPLETE-01`; `aa9a36243ec1 -> COMPLETE-01`; `7bcbf58b54e9 -> NG`; `4c7f88a7f942 -> COMPLETE-02`; `6a1a95acc8cc -> COMPLETE-02`; `3b559956b3eb -> COMPLETE-03`; `14d161cdf99b -> COMPLETE-03`; `12f7c30a54c8 -> NG`; `fffe5eea5ebd -> NG` |
|