agent-skillboard 0.2.17 → 0.3.0
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/CHANGELOG.md +62 -0
- package/README.md +128 -260
- package/bin/postinstall.mjs +2 -2
- package/docs/adapters.md +37 -113
- package/docs/ai-skill-routing-goal.md +35 -109
- package/docs/capabilities.md +17 -104
- package/docs/install.md +39 -493
- package/docs/policy-model.md +50 -280
- package/docs/positioning.md +19 -86
- package/docs/profiles.md +21 -153
- package/docs/reference.md +117 -356
- package/docs/rollout-runbook.md +23 -25
- package/docs/routing.md +23 -90
- package/docs/user-flow.md +60 -292
- package/docs/value-proof.md +23 -181
- package/docs/variant-lifecycle.md +47 -67
- package/docs/versioning.md +31 -264
- package/examples/v2-multi-source.config.yaml +35 -0
- package/examples/v2-policy-error.config.yaml +6 -0
- package/package.json +1 -1
- package/src/advisor/actions.mjs +102 -6
- package/src/advisor/application-commands.mjs +10 -9
- package/src/advisor/apply-action.mjs +74 -1
- package/src/advisor/guidance.mjs +24 -16
- package/src/advisor/schema.mjs +17 -6
- package/src/advisor/skills.mjs +18 -5
- package/src/advisor.mjs +27 -9
- package/src/agent-integration-cli.mjs +13 -4
- package/src/agent-integration-content.mjs +22 -12
- package/src/agent-integration-files.mjs +1 -1
- package/src/agent-inventory-platforms.mjs +10 -0
- package/src/agent-inventory.mjs +23 -1
- package/src/agent-skill-import.mjs +2 -2
- package/src/audit-paths.mjs +42 -0
- package/src/brief-cli.mjs +3 -2
- package/src/brief-renderer.mjs +1 -0
- package/src/cli.mjs +398 -127
- package/src/compatibility.mjs +24 -0
- package/src/control/can-use-guard.mjs +21 -1
- package/src/control/config-write.mjs +32 -2
- package/src/control/skill-crud.mjs +5 -0
- package/src/control/v2-guard.mjs +175 -0
- package/src/control/v2-skill-crud.mjs +32 -0
- package/src/control/v2-skill-forget.mjs +38 -0
- package/src/control/variant-status.mjs +47 -1
- package/src/control.mjs +55 -0
- package/src/doctor.mjs +65 -6
- package/src/domain/v2-policy.mjs +111 -0
- package/src/hook-plan.mjs +33 -3
- package/src/impact.mjs +52 -29
- package/src/index.mjs +25 -1
- package/src/init.mjs +50 -34
- package/src/inventory-install-units.mjs +63 -0
- package/src/inventory-json.mjs +279 -0
- package/src/inventory-refresh.mjs +163 -18
- package/src/lifecycle-cli.mjs +40 -12
- package/src/lifecycle-content.mjs +52 -67
- package/src/migration/v1-to-v2.mjs +212 -0
- package/src/migration/v2-files.mjs +211 -0
- package/src/migration/v2-journal.mjs +169 -0
- package/src/migration/v2-projection.mjs +108 -0
- package/src/migration/v2-transaction.mjs +205 -0
- package/src/policy.mjs +3 -0
- package/src/reconcile.mjs +139 -111
- package/src/report.mjs +168 -148
- package/src/review.mjs +2 -0
- package/src/route-advisory.mjs +47 -2
- package/src/route-selection.mjs +38 -2
- package/src/route.mjs +62 -2
- package/src/shared-skill.mjs +301 -0
- package/src/source-digest.mjs +42 -0
- package/src/source-profiles.mjs +27 -0
- package/src/source-verification.mjs +32 -48
- package/src/uninstall.mjs +22 -0
- package/src/user-state-paths.mjs +19 -0
- package/src/user-uninstall.mjs +146 -0
- package/src/workspace.mjs +41 -1
package/docs/install.md
CHANGED
|
@@ -1,531 +1,77 @@
|
|
|
1
|
-
# Install
|
|
1
|
+
# Install and Setup
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
bundles, and local skill repositories.
|
|
5
|
-
|
|
6
|
-
After install, ask your AI normal work requests such as "write tests before
|
|
7
|
-
implementation", "review this plan and point out weak assumptions", or "help me
|
|
8
|
-
refine this UX flow." The AI runs SkillBoard behind the scenes only when skill
|
|
9
|
-
choices overlap, workflow priority matters, or you explicitly ask for a
|
|
10
|
-
SkillBoard or skill decision. Installed user skills are usable by default unless
|
|
11
|
-
runtime, user, or local instructions disable them; SkillBoard should not turn
|
|
12
|
-
every skill choice into a permission prompt. When it selects a skill, the AI
|
|
13
|
-
should briefly say which skill it will use and which skill it used. You do not
|
|
14
|
-
need to memorize the SkillBoard command loop.
|
|
15
|
-
|
|
16
|
-
## Install From npm
|
|
17
|
-
|
|
18
|
-
Global install auto-runs agent integration. Installing the package makes the
|
|
19
|
-
CLI available and the postinstall step runs agent-layer setup for detected
|
|
20
|
-
Codex, Claude, OpenCode, and Hermes user skill roots. The setup is best-effort:
|
|
21
|
-
it never fails the package install, does not edit agent config files, and does
|
|
22
|
-
not create project policy files. It does not run `skillboard init`; run `init`
|
|
23
|
-
only inside a workspace where you want local SkillBoard policy, bridge guidance,
|
|
24
|
-
and reports.
|
|
25
|
-
|
|
26
|
-
The published CLI supports Node.js 14.21 or newer. Node 12 and older are not
|
|
27
|
-
supported without a transpiled bundle because the source uses modern ESM and
|
|
28
|
-
syntax such as nullish coalescing.
|
|
29
|
-
|
|
30
|
-
AI/automation/operator details:
|
|
3
|
+
## Install from npm
|
|
31
4
|
|
|
32
5
|
```bash
|
|
33
6
|
npm install -g agent-skillboard
|
|
7
|
+
skillboard --version
|
|
34
8
|
```
|
|
35
9
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
```
|
|
10
|
+
Postinstall detects supported agent homes, installs managed guidance, creates
|
|
11
|
+
`~/skillboard.config.yaml`, and refreshes `~/.skillboard/inventory.json`. No
|
|
12
|
+
separate setup command is required after a normal global install or update, and
|
|
13
|
+
no project init is needed.
|
|
41
14
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
still decided by the npm command you run, so use the same npm/Node environment
|
|
45
|
-
you expect to provide `skillboard` on `PATH`. Managed guidance files and
|
|
46
|
-
directories written under the user's home are restored to the invoking user's
|
|
47
|
-
`SUDO_UID:SUDO_GID` ownership.
|
|
48
|
-
|
|
49
|
-
The install-time setup writes a user-level SkillBoard guidance skill under
|
|
50
|
-
detected agent homes such as `CODEX_HOME`, `AGENTS_HOME`, `CLAUDE_HOME`,
|
|
51
|
-
`OPENCODE_HOME`, and `HERMES_HOME`. Codex detection also checks
|
|
52
|
-
`~/.agents/skills` and `~/.codex/skills`.
|
|
53
|
-
If `~/.agents` exists but `~/.agents/skills` does not, setup creates the
|
|
54
|
-
`skills` directory and installs the guidance skill there so Codex profiles that
|
|
55
|
-
read the shared agent skill tree can see SkillBoard after restart.
|
|
56
|
-
No separate setup command is required after a normal global install or update.
|
|
57
|
-
When npm runs lifecycle scripts, package updates rerun the agent-home scan,
|
|
58
|
-
refresh managed SkillBoard guidance files, and add newly detected supported
|
|
59
|
-
agent roots.
|
|
60
|
-
|
|
61
|
-
Run `skillboard setup` later when you add another supported agent, enable a new
|
|
62
|
-
agent home, intentionally skipped lifecycle scripts, or need to repair the
|
|
63
|
-
agent-layer guidance install:
|
|
15
|
+
Run setup later only when lifecycle scripts were skipped or another agent was
|
|
16
|
+
added:
|
|
64
17
|
|
|
65
18
|
```bash
|
|
66
|
-
skillboard setup
|
|
67
19
|
skillboard setup --agent codex,claude,opencode,hermes --yes
|
|
68
20
|
```
|
|
69
21
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
skillboard import-skill --from codex --to opencode --skill <skill> --json
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
If the source skill can be used as-is, the agent installs it with `--yes`. If
|
|
77
|
-
SkillBoard reports `needs-adaptation`, the agent explains why, asks before
|
|
78
|
-
changing the skill body for the target runtime, then installs the approved
|
|
79
|
-
adapted file with `--adapted-file <path> --yes`.
|
|
80
|
-
|
|
81
|
-
Use no-prompt npx package execution only when you intentionally want to create
|
|
82
|
-
or inspect local workspace policy files without keeping a global SkillBoard
|
|
83
|
-
binary installed:
|
|
84
|
-
|
|
85
|
-
```bash
|
|
86
|
-
npx --yes --package agent-skillboard skillboard init
|
|
87
|
-
npx --yes --package agent-skillboard skillboard doctor --summary
|
|
88
|
-
npx --yes --package agent-skillboard skillboard brief --workflow <workflow-from-init>
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
Local workspace policy files can be stricter than the first agent-layer setup.
|
|
92
|
-
When you intentionally run `init`, it imports trusted local skills as
|
|
93
|
-
manual-only and keeps runtime/plugin skills quarantined until their source is
|
|
94
|
-
reviewed. The brief presents unreviewed runtime sources as one-time review
|
|
95
|
-
decisions rather than default block recommendations; after review, individual
|
|
96
|
-
quarantined skills can be activated as manual-only workflow skills. When `init`
|
|
97
|
-
creates or discovers workflows, use one of the workflow names it prints for the
|
|
98
|
-
first brief. If `init` does not print a workflow, run the unscoped `brief`
|
|
99
|
-
command it prints instead. The explicit package/binary spelling avoids an extra
|
|
100
|
-
npx install prompt and keeps the executable name clear.
|
|
101
|
-
|
|
102
|
-
The equivalent `npm exec` spelling is also no-prompt and works well in scripts:
|
|
103
|
-
|
|
104
|
-
```bash
|
|
105
|
-
npm exec --yes --package agent-skillboard -- skillboard init
|
|
106
|
-
npm exec --yes --package agent-skillboard -- skillboard doctor --summary
|
|
107
|
-
npm exec --yes --package agent-skillboard -- skillboard brief --workflow <workflow-from-init>
|
|
108
|
-
```
|
|
22
|
+
System npm may require `sudo npm install -g agent-skillboard`. SkillBoard uses
|
|
23
|
+
`SUDO_USER` for user-level state and restores managed files to that user.
|
|
109
24
|
|
|
110
|
-
|
|
25
|
+
## Default behavior
|
|
111
26
|
|
|
112
|
-
|
|
27
|
+
A valid installed skill defaults to enabled and agent-local. Sharing is opt-in
|
|
28
|
+
per skill:
|
|
113
29
|
|
|
114
30
|
```bash
|
|
115
|
-
|
|
116
|
-
skillboard
|
|
31
|
+
skillboard skill share <skill-id>
|
|
32
|
+
skillboard skill unshare <skill-id>
|
|
117
33
|
```
|
|
118
34
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
## Run Unreleased Builds From GitHub
|
|
123
|
-
|
|
124
|
-
Use GitHub npx only when you intentionally want the current repository state
|
|
125
|
-
before the next npm release:
|
|
35
|
+
Sharing preserves agent-owned originals. Source and provenance are optional
|
|
36
|
+
audit metadata and never determine availability. Runtime and action
|
|
37
|
+
authorization are outside SkillBoard's scope.
|
|
126
38
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
```bash
|
|
130
|
-
npx --yes --package github:NyXXiR/skillboard skillboard init
|
|
131
|
-
npx --yes --package github:NyXXiR/skillboard skillboard doctor --summary
|
|
132
|
-
npx --yes --package github:NyXXiR/skillboard skillboard brief --workflow <workflow-from-init>
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
The equivalent `npm exec` spelling is explicit about the package and binary:
|
|
136
|
-
|
|
137
|
-
```bash
|
|
138
|
-
npm exec --yes --package github:NyXXiR/skillboard -- skillboard init
|
|
139
|
-
npm exec --yes --package github:NyXXiR/skillboard -- skillboard doctor --summary
|
|
140
|
-
npm exec --yes --package github:NyXXiR/skillboard -- skillboard brief --workflow <workflow-from-init>
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
## Install From A Clone
|
|
144
|
-
|
|
145
|
-
Use a clone when developing SkillBoard itself or testing unreleased changes:
|
|
146
|
-
|
|
147
|
-
AI/automation/operator details:
|
|
39
|
+
## From GitHub or a clone
|
|
148
40
|
|
|
149
41
|
```bash
|
|
42
|
+
npx --yes --package github:NyXXiR/skillboard skillboard --version
|
|
43
|
+
npm exec --yes --package github:NyXXiR/skillboard -- skillboard help
|
|
150
44
|
git clone https://github.com/NyXXiR/skillboard.git
|
|
151
45
|
cd skillboard
|
|
152
46
|
npm install
|
|
153
|
-
node bin/skillboard.mjs
|
|
154
|
-
node bin/skillboard.mjs doctor --dir /path/to/your/project --summary
|
|
155
|
-
node bin/skillboard.mjs brief --dir /path/to/your/project --workflow <workflow-from-init>
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
## What init Does
|
|
159
|
-
|
|
160
|
-
`skillboard init` is the optional local policy-file generation step. npm
|
|
161
|
-
installation and `skillboard setup` do not modify a project, but init creates
|
|
162
|
-
local files for teams that intentionally keep workflow policy in a workspace.
|
|
163
|
-
|
|
164
|
-
Created project files:
|
|
165
|
-
|
|
166
|
-
- `skillboard.config.yaml`: desired state for workflows, capabilities, skills,
|
|
167
|
-
harnesses, and install units.
|
|
168
|
-
- `skills/`: local skill root.
|
|
169
|
-
- `.skillboard/reports/`: generated dashboard and reconcile output location.
|
|
170
|
-
- `.skillboard/profiles/`: project-specific source profile location.
|
|
171
|
-
- `AGENTS.md`: Codex-style project instruction bridge.
|
|
172
|
-
- `CLAUDE.md`: Claude Code project instruction bridge.
|
|
173
|
-
|
|
174
|
-
The bridge block is marked with `BEGIN SKILLBOARD` / `END SKILLBOARD` and is
|
|
175
|
-
idempotent. Running init again does not duplicate it.
|
|
176
|
-
|
|
177
|
-
By default, init scans known local agent skill roots such as Codex user skills,
|
|
178
|
-
Codex system skills, Codex plugin-cache manifests, Claude user skills, Hermes
|
|
179
|
-
user skills, and Hermes profile skills under `.hermes/profiles/*/skills`.
|
|
180
|
-
Trusted user-local skills are written as `status: active` with `invocation:
|
|
181
|
-
manual-only` and attached to a generated local manual workflow when the project
|
|
182
|
-
has no workflow metadata yet. That lets a first-time user keep their existing
|
|
183
|
-
manual skills usable through `skillboard can-use` and guard checks without
|
|
184
|
-
granting automatic model invocation or creating legacy-state warning noise.
|
|
185
|
-
System, plugin, and other runtime-supplied skills are written with `status:
|
|
186
|
-
quarantined` and `invocation: blocked`. Plugin hooks, MCP servers, commands, and
|
|
187
|
-
modified config files are recorded on the owning install unit when manifest
|
|
188
|
-
metadata exposes them, which lets policy checks flag high-risk runtime
|
|
189
|
-
extensions without flattening them into loose skills. After the owning source is
|
|
190
|
-
reviewed, action cards can activate a quarantined runtime skill into a workflow
|
|
191
|
-
as `manual-only`; automatic preference should still be remembered later through
|
|
192
|
-
the normal ask-after-use policy loop. Use `--no-scan-installed` for a
|
|
193
|
-
scaffold-only bootstrap, or `--scan-root <dir>[,<dir>]` to add server-specific
|
|
194
|
-
skill roots during bootstrap.
|
|
195
|
-
|
|
196
|
-
After init, run:
|
|
197
|
-
|
|
198
|
-
```bash
|
|
199
|
-
skillboard doctor --dir /path/to/your/project
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
Doctor is read-only. It reports config validity, bridge block status, managed
|
|
203
|
-
skills and install units, policy/source audit health, high-risk runtime
|
|
204
|
-
extensions, and the default uninstall dry-run plan. The default exit code stays
|
|
205
|
-
zero when the project is usable but has review-needed safe-mode warnings, such as
|
|
206
|
-
an unreviewed runtime extension. Add `--strict` when those warnings should fail a
|
|
207
|
-
CI or automation gate. Use `--json` for an agent-readable health payload, or
|
|
208
|
-
`--verify` when local source/cache digests should be checked as part of the
|
|
209
|
-
report. `skillboard status` is the same report under a shorter command name.
|
|
210
|
-
|
|
211
|
-
For AI-mediated use, the generated bridge tells agents to answer availability
|
|
212
|
-
questions by reading the current brief with `skillboard brief --json`, not from
|
|
213
|
-
memory or from raw `SKILL.md` bodies. The brief is read-only and organizes the
|
|
214
|
-
response around "What your AI can use now", decisions the user can make once,
|
|
215
|
-
hard safety blocks, inactive installed skills, and suggested action cards. Text
|
|
216
|
-
briefs show action cards by default; JSON keeps them opt-in with
|
|
217
|
-
`--include-actions`. The default text brief is compact for large skill sets: it
|
|
218
|
-
keeps counts, top categories, the next safe action, short section previews, and
|
|
219
|
-
short action summaries. Use `skillboard brief --verbose` when an operator needs
|
|
220
|
-
the full list or full copyable command details. Agents should still run
|
|
221
|
-
`skillboard guard use ...` immediately before an actual skill invocation. A
|
|
222
|
-
passing guard is not a user prompt; the agent should disclose the selected skill
|
|
223
|
-
at the start and completion, and ask only if the guard denies use or a
|
|
224
|
-
policy-changing action is needed.
|
|
225
|
-
|
|
226
|
-
When a normal request leaves skill choice ambiguous, several skills overlap,
|
|
227
|
-
workflow priority matters, or the user asks for a SkillBoard or skill decision,
|
|
228
|
-
the bridge tells agents to use `skillboard brief --intent <request> --json`,
|
|
229
|
-
read `assistant_guidance.route`, and use `recommended_skill`, `fallback_skills`,
|
|
230
|
-
`route_candidates`, `overlap_resolution`, `policy_memory`,
|
|
231
|
-
`post_use_policy_suggestion`, and `guard_command` instead of guessing from raw
|
|
232
|
-
skill text. Inspect
|
|
233
|
-
`overlap_resolution` and `route_candidates` when several skills match so
|
|
234
|
-
allowed overlap, denied candidates, and selected fallbacks are clear. If
|
|
235
|
-
`policy_memory` is present, the agent should mention after completion that
|
|
236
|
-
remembered or configured policy selected this skill even though other allowed
|
|
237
|
-
skills were available. If
|
|
238
|
-
`post_use_policy_suggestion` is present, the agent should use the allowed
|
|
239
|
-
routed skill first, then ask after completion whether to remember the suggested
|
|
240
|
-
policy. If no skill matches, the agent should ask a clarifying question before
|
|
241
|
-
choosing a skill. If the user explicitly requests a specific already-allowed
|
|
242
|
-
skill, the agent should honor that request after guard use instead of rerouting
|
|
243
|
-
away solely because another skill also matches.
|
|
244
|
-
|
|
245
|
-
Action cards are change suggestions. Before an agent applies one that changes
|
|
246
|
-
policy, trust, hooks, reset state, or skill references, it should request user
|
|
247
|
-
confirmation for one current action id from the brief. After confirmation, it should run
|
|
248
|
-
`skillboard apply-action <action-id> --config skillboard.config.yaml --skills skills --yes --json`
|
|
249
|
-
with `--workflow <name>` when a workflow is selected. It should then read the
|
|
250
|
-
returned post-apply brief before answering another availability question or
|
|
251
|
-
applying another action card. `apply-action` re-resolves current action cards,
|
|
252
|
-
so stale action ids and cached action-card shell text are not replayed.
|
|
253
|
-
For hook action cards specifically, keep `apply-action` as the action-card
|
|
254
|
-
primary flow. Raw `skillboard hook install ... --dry-run --json` previews and
|
|
255
|
-
the matching non-dry-run command are underlying manual detail for operators who
|
|
256
|
-
need to inspect or materialize an executable guard hook directly. Generated hooks
|
|
257
|
-
pin the install-time SkillBoard command, config, skills root, and workflow; set
|
|
258
|
-
those values with hook install options such as `--skillboard-bin`, not with
|
|
259
|
-
runtime environment overrides.
|
|
260
|
-
|
|
261
|
-
## Hermes System Prompt Bridge
|
|
262
|
-
|
|
263
|
-
Hermes does not automatically read `AGENTS.md` or `CLAUDE.md`. If you want a
|
|
264
|
-
Hermes profile to follow SkillBoard policy, add this bridge to the profile or
|
|
265
|
-
system prompt for the managed project:
|
|
266
|
-
|
|
267
|
-
```text
|
|
268
|
-
Use SkillBoard as the source of truth for agent skill availability.
|
|
269
|
-
Use the workflow generated by init, such as `hermes-codex-local-manual`, or a
|
|
270
|
-
workflow you explicitly created for that Hermes profile.
|
|
271
|
-
|
|
272
|
-
Before answering what skills can be used in that workflow, run:
|
|
273
|
-
skillboard brief --workflow <workflow-name> --json --include-actions --dir /path/to/your/project
|
|
274
|
-
|
|
275
|
-
When a normal request leaves skill choice ambiguous, several skills overlap,
|
|
276
|
-
workflow priority matters, or the user asks for a SkillBoard or skill decision,
|
|
277
|
-
run:
|
|
278
|
-
skillboard brief --workflow <workflow-name> --intent <request> --json --dir /path/to/your/project
|
|
279
|
-
Read assistant_guidance.route. Use recommended_skill, fallback_skills,
|
|
280
|
-
route_candidates, overlap_resolution, policy_memory,
|
|
281
|
-
post_use_policy_suggestion, and guard_command. Inspect overlap_resolution and
|
|
282
|
-
route_candidates when several skills match so allowed overlap, denied
|
|
283
|
-
candidates, and selected fallbacks are clear. If policy_memory is present,
|
|
284
|
-
mention after completion that remembered or configured policy selected this
|
|
285
|
-
skill even though other allowed skills were available. If
|
|
286
|
-
post_use_policy_suggestion is present, use the allowed routed skill first, then
|
|
287
|
-
ask after completion whether to remember the suggested policy. If no skill
|
|
288
|
-
matches, ask a clarifying question before choosing a skill.
|
|
289
|
-
|
|
290
|
-
If the user explicitly requests a specific already-allowed skill, honor that
|
|
291
|
-
request after guard use instead of rerouting away solely because another skill
|
|
292
|
-
also matches.
|
|
293
|
-
|
|
294
|
-
Do not infer availability from installed SKILL.md files. Immediately before
|
|
295
|
-
invoking a skill, run:
|
|
296
|
-
skillboard guard use <skill-id> --workflow <workflow-name> --dir /path/to/your/project
|
|
297
|
-
|
|
298
|
-
If the guard allows an already-approved skill, do not ask the user for another
|
|
299
|
-
approval. Say at the start: "I will use <skill-id> for this request." Say at
|
|
300
|
-
completion: "I used <skill-id> for this request." Treat that disclosure as an
|
|
301
|
-
audit trace, not a permission prompt.
|
|
302
|
-
|
|
303
|
-
For suggested policy changes, ask the user to approve one current action id from
|
|
304
|
-
the `--include-actions` brief, then run:
|
|
305
|
-
skillboard apply-action <action-id> --workflow <workflow-name> --dir /path/to/your/project --yes --json
|
|
47
|
+
node bin/skillboard.mjs help
|
|
306
48
|
```
|
|
307
49
|
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
```bash
|
|
312
|
-
skillboard inventory refresh --dir /path/to/your/project --dry-run
|
|
313
|
-
skillboard inventory refresh --dir /path/to/your/project
|
|
314
|
-
```
|
|
50
|
+
For source-tree commands, replace `skillboard ` with
|
|
51
|
+
`node bin/skillboard.mjs `.
|
|
315
52
|
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
already exist, those skills are imported as manual-only candidates with a review
|
|
319
|
-
note instead of being attached to an arbitrary workflow. Runtime components
|
|
320
|
-
remain attached to the owning install unit for review, and non-user runtime
|
|
321
|
-
skills stay out of automatic use until a source/workflow decision is recorded.
|
|
322
|
-
Dry-run output includes a capped YAML semantic change list, while broken
|
|
323
|
-
detector entries or malformed `SKILL.md` files are surfaced as scan warnings
|
|
324
|
-
instead of aborting the whole refresh.
|
|
53
|
+
Hermes should read only explicitly shared or Hermes-installed skills, not the
|
|
54
|
+
entire Codex skill tree.
|
|
325
55
|
|
|
326
|
-
|
|
56
|
+
## Version 1 projects
|
|
327
57
|
|
|
328
58
|
```bash
|
|
329
|
-
skillboard
|
|
330
|
-
skillboard
|
|
331
|
-
|
|
332
|
-
--skill user.helper \
|
|
333
|
-
--config skillboard.config.yaml \
|
|
334
|
-
--skills skills
|
|
59
|
+
skillboard migrate v2 --config <path> --json
|
|
60
|
+
skillboard migrate v2 --config <path> --yes --json
|
|
61
|
+
skillboard migrate v2 --config <path> --rollback <backup> --json
|
|
335
62
|
```
|
|
336
63
|
|
|
337
|
-
|
|
338
|
-
the mutated config files into the owning install unit before enabling anything:
|
|
339
|
-
|
|
340
|
-
```bash
|
|
341
|
-
skillboard inventory detect \
|
|
342
|
-
--unit acme.runtime \
|
|
343
|
-
--config /path/to/your/project/skillboard.config.yaml \
|
|
344
|
-
--install-output /path/to/install.log \
|
|
345
|
-
--config-file ~/.codex/config.toml \
|
|
346
|
-
--dry-run
|
|
347
|
-
```
|
|
348
|
-
|
|
349
|
-
The detector records discovered commands, hooks, MCP servers, and modified
|
|
350
|
-
config files under `install_units.<id>`, then updates `permission_risk` from the
|
|
351
|
-
detected runtime surface.
|
|
352
|
-
|
|
353
|
-
For fetchable Git sources, refresh the project cache and digest pin before
|
|
354
|
-
writing a lockfile:
|
|
355
|
-
|
|
356
|
-
```bash
|
|
357
|
-
skillboard sources refresh --dir /path/to/your/project --unit github.mattpocock.skills --dry-run
|
|
358
|
-
skillboard sources refresh --dir /path/to/your/project --unit github.mattpocock.skills
|
|
359
|
-
skillboard audit sources \
|
|
360
|
-
--config /path/to/your/project/skillboard.config.yaml \
|
|
361
|
-
--skills /path/to/your/project/skills \
|
|
362
|
-
--verify
|
|
363
|
-
```
|
|
364
|
-
|
|
365
|
-
`sources refresh` supports direct Git URLs, `git clone <url>` command strings,
|
|
366
|
-
GitHub `org/repo` shorthands, and `file://` Git remotes. It writes the refreshed
|
|
367
|
-
checkout under `.skillboard/sources/<install-unit-id>`, updates `cache_path`,
|
|
368
|
-
`source_digest`, and `verified_at`, and leaves the config untouched on dry-run.
|
|
369
|
-
|
|
370
|
-
## Uninstall Agent Guidance Or Project State
|
|
64
|
+
Version 1 is read-only during v0.3.x. v0.4.0 removes the v1 reader.
|
|
371
65
|
|
|
372
|
-
|
|
373
|
-
separate. `npm uninstall -g agent-skillboard` removes the CLI package, but npm
|
|
374
|
-
uninstall should not be relied on to edit agent homes or projects. If you want
|
|
375
|
-
the postinstall-created user-agent guidance removed, run the agent-layer cleanup
|
|
376
|
-
while the `skillboard` binary is still available:
|
|
66
|
+
## Uninstall
|
|
377
67
|
|
|
378
68
|
```bash
|
|
379
|
-
skillboard uninstall --
|
|
380
|
-
skillboard uninstall --
|
|
69
|
+
skillboard uninstall --user --dry-run
|
|
70
|
+
skillboard uninstall --user --yes
|
|
381
71
|
npm uninstall -g agent-skillboard
|
|
382
72
|
```
|
|
383
73
|
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
Use the project cleanup command when you want to remove SkillBoard from a
|
|
390
|
-
project:
|
|
391
|
-
|
|
392
|
-
```bash
|
|
393
|
-
skillboard uninstall --dir /path/to/your/project --dry-run
|
|
394
|
-
skillboard uninstall --dir /path/to/your/project
|
|
395
|
-
```
|
|
396
|
-
|
|
397
|
-
Default project uninstall is a clean removal:
|
|
398
|
-
|
|
399
|
-
- removes SkillBoard config, bridge blocks, and the entire `.skillboard/`
|
|
400
|
-
project state directory;
|
|
401
|
-
- deletes a bridge file only when it has no user content left;
|
|
402
|
-
- preserves user-authored non-SkillBoard content in `AGENTS.md` and
|
|
403
|
-
`CLAUDE.md`;
|
|
404
|
-
- preserves local `skills/*/SKILL.md` files because skill creation and deletion
|
|
405
|
-
are outside the uninstall scope.
|
|
406
|
-
|
|
407
|
-
Use `--keep-settings` only when you want to keep project SkillBoard policy and
|
|
408
|
-
bridge guidance in place:
|
|
409
|
-
|
|
410
|
-
```bash
|
|
411
|
-
skillboard uninstall --dir /path/to/your/project --keep-settings --dry-run
|
|
412
|
-
skillboard uninstall --dir /path/to/your/project --keep-settings
|
|
413
|
-
```
|
|
414
|
-
|
|
415
|
-
`--keep-settings` preserves `skillboard.config.yaml`, project bridge guidance,
|
|
416
|
-
reports, generated guard hooks, and modified project state. It is the explicit
|
|
417
|
-
opt-in when project policy and guidance should survive package cleanup.
|
|
418
|
-
|
|
419
|
-
`--purge` is still accepted as an explicit spelling for the default clean
|
|
420
|
-
project removal. Default removal and `--purge` both remove `.skillboard/`,
|
|
421
|
-
including reports, hooks, source caches, rollout logs, variant snapshots, and
|
|
422
|
-
profiles.
|
|
423
|
-
|
|
424
|
-
The older granular flags are still supported for scripts that assembled cleanup
|
|
425
|
-
piecemeal. Passing `--remove-config`, `--reset-config`, `--remove-reports`, or
|
|
426
|
-
`--remove-hooks` without `--purge` runs a partial cleanup instead of the default
|
|
427
|
-
clean project removal:
|
|
428
|
-
|
|
429
|
-
- `--remove-config` deletes `skillboard.config.yaml` only when it still matches
|
|
430
|
-
the generated default;
|
|
431
|
-
- `--reset-config` deletes `skillboard.config.yaml` even when it contains policy
|
|
432
|
-
choices;
|
|
433
|
-
- `--remove-reports` deletes `.skillboard/reports/`;
|
|
434
|
-
- `--remove-hooks` deletes `.skillboard/hooks/`.
|
|
435
|
-
|
|
436
|
-
For ordinary users, the default project uninstall is already the clean reset that
|
|
437
|
-
removes SkillBoard-owned lifecycle scaffolding while preserving local `skills/`.
|
|
438
|
-
|
|
439
|
-
## Upper-Layer Control
|
|
440
|
-
|
|
441
|
-
After installing skill packs or harness bundles, represent them as install
|
|
442
|
-
units:
|
|
443
|
-
|
|
444
|
-
```bash
|
|
445
|
-
skillboard import \
|
|
446
|
-
--profile github.mattpocock.skills \
|
|
447
|
-
--source-root /path/to/mattpocock-skills \
|
|
448
|
-
--out .skillboard/reports/mattpocock-import.yaml
|
|
449
|
-
```
|
|
450
|
-
|
|
451
|
-
The import output is a reviewable YAML fragment. Merge the accepted `skills` and
|
|
452
|
-
`install_units` into `skillboard.config.yaml`; imported skills stay inactive
|
|
453
|
-
until workflows and policies explicitly use them.
|
|
454
|
-
|
|
455
|
-
For a direct but still safe apply path:
|
|
456
|
-
|
|
457
|
-
```bash
|
|
458
|
-
skillboard import \
|
|
459
|
-
--profile github.mattpocock.skills \
|
|
460
|
-
--source-root /path/to/mattpocock-skills \
|
|
461
|
-
--config skillboard.config.yaml \
|
|
462
|
-
--merge \
|
|
463
|
-
--dry-run
|
|
464
|
-
```
|
|
465
|
-
|
|
466
|
-
`--merge` refuses to overwrite existing `skills` or `install_units`. Add
|
|
467
|
-
`--replace` only when you intentionally want the imported source profile to
|
|
468
|
-
replace those entries. The merge uses a structured YAML writer that keeps normal
|
|
469
|
-
comments and ordering where possible, but review the diff before committing
|
|
470
|
-
hand-edited formatting. Drop `--dry-run` only after the reported text and YAML
|
|
471
|
-
semantic change plan is acceptable.
|
|
472
|
-
|
|
473
|
-
After reviewing source ownership, expected components, and risk, record the
|
|
474
|
-
install-unit trust decision without editing YAML by hand:
|
|
475
|
-
|
|
476
|
-
```bash
|
|
477
|
-
skillboard review install-unit github.mattpocock.skills \
|
|
478
|
-
--trust-level reviewed \
|
|
479
|
-
--config skillboard.config.yaml \
|
|
480
|
-
--skills skills
|
|
481
|
-
```
|
|
482
|
-
|
|
483
|
-
Automatic invocation remains blocked for unreviewed non-user sources. The user
|
|
484
|
-
experience should still be a one-time decision queue: review, trust, or block
|
|
485
|
-
the install unit once, activate only the needed quarantined skills as
|
|
486
|
-
manual-only, then revisit only when the source, skill, or workflow changes.
|
|
487
|
-
|
|
488
|
-
```yaml
|
|
489
|
-
install_units:
|
|
490
|
-
github.mattpocock.skills:
|
|
491
|
-
kind: marketplace
|
|
492
|
-
source: npx skills@latest add mattpocock/skills
|
|
493
|
-
scope: user-global
|
|
494
|
-
provided_components:
|
|
495
|
-
- skills
|
|
496
|
-
components:
|
|
497
|
-
skills:
|
|
498
|
-
- matt.tdd
|
|
499
|
-
```
|
|
500
|
-
|
|
501
|
-
Then link each governed skill back to its owner:
|
|
502
|
-
|
|
503
|
-
```yaml
|
|
504
|
-
skills:
|
|
505
|
-
matt.tdd:
|
|
506
|
-
path: matt/tdd
|
|
507
|
-
status: active
|
|
508
|
-
invocation: workflow-auto
|
|
509
|
-
exposure: exported
|
|
510
|
-
owner_install_unit: github.mattpocock.skills
|
|
511
|
-
```
|
|
512
|
-
|
|
513
|
-
Run:
|
|
514
|
-
|
|
515
|
-
```bash
|
|
516
|
-
skillboard check --config skillboard.config.yaml --skills skills
|
|
517
|
-
skillboard dashboard --config skillboard.config.yaml --skills skills --out .skillboard/reports/skill-map.md
|
|
518
|
-
```
|
|
519
|
-
|
|
520
|
-
This keeps multiple installed repositories visible as managed units instead of
|
|
521
|
-
turning every skill into a global invocation candidate.
|
|
522
|
-
|
|
523
|
-
## Adapter Direction
|
|
524
|
-
|
|
525
|
-
Import support should be profile-driven, not hardcoded. A popular source such as
|
|
526
|
-
`mattpocock/skills` or `oh-my-openagent` may ship with a built-in source profile,
|
|
527
|
-
but that profile should be data that maps repository layout and defaults into the
|
|
528
|
-
same install-unit model. Source-specific code should be limited to detector
|
|
529
|
-
plugins for layouts that cannot be described declaratively.
|
|
530
|
-
|
|
531
|
-
See [adapters.md](adapters.md).
|
|
74
|
+
User-level cleanup removes marker-owned shared copies, managed SkillBoard
|
|
75
|
+
guidance, `~/skillboard.config.yaml`, and `~/.skillboard`. It preserves
|
|
76
|
+
agent-owned and unmanaged skills. Apply requires `--yes`; legacy project cleanup
|
|
77
|
+
and guidance-only `--agent-layer` cleanup remain explicit and previewable.
|