agent-skillboard 0.2.14 → 0.2.16
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 +29 -0
- package/README.md +64 -35
- package/bin/postinstall.mjs +5 -3
- package/docs/ai-skill-routing-goal.md +15 -3
- package/docs/install.md +98 -68
- package/docs/positioning.md +8 -6
- package/docs/reference.md +22 -10
- package/docs/routing.md +15 -0
- package/docs/user-flow.md +61 -32
- package/docs/value-proof.md +6 -3
- package/package.json +3 -2
- package/src/advisor/guidance.mjs +23 -3
- package/src/agent-integration-cli.mjs +184 -0
- package/src/agent-integration-content.mjs +48 -0
- package/src/agent-integration-files.mjs +202 -0
- package/src/agent-integration-home.mjs +185 -0
- package/src/agent-skill-roots.mjs +1 -0
- package/src/brief-renderer.mjs +36 -57
- package/src/cli.mjs +168 -169
- package/src/control/can-use-guard.mjs +12 -0
- package/src/doctor.mjs +4 -1
- package/src/lifecycle-cli.mjs +23 -302
- package/src/lifecycle-content.mjs +4 -2
- package/src/route-advisory.mjs +214 -0
- package/src/route-renderer.mjs +146 -0
- package/src/route-selection.mjs +220 -0
- package/src/route-tokens.mjs +68 -0
- package/src/route.mjs +48 -413
- package/src/source-profiles.mjs +151 -150
- package/src/uninstall.mjs +56 -9
- package/src/workspace.mjs +79 -79
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,35 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.2.16 — 2026-07-06
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Reframed SkillBoard as a permissive overlap-routing layer so agents continue
|
|
10
|
+
working with already-allowed skills instead of interrupting users for
|
|
11
|
+
pre-task settings.
|
|
12
|
+
- Split routing and agent-integration internals into smaller modules while
|
|
13
|
+
preserving the existing CLI surface.
|
|
14
|
+
- Setup guidance now clarifies that postinstall performs agent-layer setup only;
|
|
15
|
+
project initialization remains an explicit `skillboard init` step.
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- Hardened setup and uninstall lifecycle cleanup around symlinked managed
|
|
20
|
+
guidance paths and project state directories.
|
|
21
|
+
- Preserved Node.js 14.21 runtime compatibility by avoiding newer
|
|
22
|
+
`replaceAll`/`.at()` APIs in shipped runtime paths.
|
|
23
|
+
- Avoided macOS false positives when agent homes live below symlinked system
|
|
24
|
+
ancestors such as `/var`.
|
|
25
|
+
|
|
26
|
+
## 0.2.15 — 2026-07-03
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
|
|
30
|
+
- Sudo setup now restores ownership for content-identical managed guidance
|
|
31
|
+
files reported as `Unchanged`, repairing existing root-owned guidance on
|
|
32
|
+
reinstall or explicit `skillboard setup --yes`.
|
|
33
|
+
|
|
5
34
|
## 0.2.14 — 2026-07-03
|
|
6
35
|
|
|
7
36
|
### Fixed
|
package/README.md
CHANGED
|
@@ -1,34 +1,42 @@
|
|
|
1
1
|
# SkillBoard
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Keep AI-agent skills broadly available, then route overlaps consistently.
|
|
4
4
|
|
|
5
|
-
Ask your AI normal
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
overlap
|
|
5
|
+
Ask your AI normal work requests: "write tests before implementation",
|
|
6
|
+
"review this plan and point out weak assumptions", "help me refine this UX
|
|
7
|
+
flow", or explicit control requests like "use the Codex test-first skill in
|
|
8
|
+
OpenCode too." SkillBoard runs behind the scenes only when skill choices
|
|
9
|
+
overlap, workflow priority matters, or you explicitly ask for a skill/control
|
|
10
|
+
decision, so you get the benefit: broadly available skills, one routed skill
|
|
11
|
+
when similar skills overlap, and a short disclosure of what was used.
|
|
10
12
|
|
|
11
13
|
The burden stays low:
|
|
12
14
|
|
|
13
15
|
- No global install is required; use `npx --yes --package agent-skillboard`.
|
|
14
16
|
- Most use is read-only: `brief`, `route`, `doctor`, and `guard use` answer
|
|
15
|
-
what
|
|
17
|
+
what can run now and which route fits the request.
|
|
16
18
|
- Nothing changes until you approve a policy action.
|
|
17
|
-
- Project cleanup is
|
|
18
|
-
|
|
19
|
+
- Project cleanup is previewable with `skillboard uninstall --dry-run`; default
|
|
20
|
+
uninstall removes SkillBoard settings and generated project state while
|
|
21
|
+
preserving local skills. Add `--keep-settings` only when you want to keep
|
|
22
|
+
project policy and bridge guidance.
|
|
19
23
|
|
|
20
24
|
Status: public alpha. The current config schema is config schema v1; breaking
|
|
21
25
|
changes may still happen before `1.0.0` and are documented in release notes.
|
|
22
26
|
|
|
23
|
-
Under the hood, SkillBoard is workflow-scoped skill priority and routing
|
|
24
|
-
agents. Installed user skills are usable by default unless runtime, user,
|
|
25
|
-
local instructions disable them; SkillBoard helps
|
|
26
|
-
|
|
27
|
+
Under the hood, SkillBoard is workflow-scoped skill priority and overlap routing
|
|
28
|
+
for AI agents. Installed user skills are usable by default unless runtime, user,
|
|
29
|
+
or local instructions disable them; SkillBoard helps Codex, OpenCode, Claude,
|
|
30
|
+
and Hermes resolve overlapping skills and workflow priority instead of guessing
|
|
31
|
+
from raw skill files.
|
|
27
32
|
|
|
28
33
|
Start with normal requests:
|
|
29
34
|
|
|
30
35
|
- "What skills can you use in this project?"
|
|
31
|
-
- "
|
|
36
|
+
- "Write tests before implementation."
|
|
37
|
+
- "Review this plan and point out weak assumptions."
|
|
38
|
+
- "Help me refine this UX flow."
|
|
39
|
+
- "Use the Codex test-first skill in OpenCode too."
|
|
32
40
|
- "Can you make `anthropic.docx` available for this workflow?"
|
|
33
41
|
- "Why is this skill blocked?"
|
|
34
42
|
|
|
@@ -41,7 +49,7 @@ not need to memorize the SkillBoard command loop.
|
|
|
41
49
|
|
|
42
50
|
A normal allowed-skill turn can look like this:
|
|
43
51
|
|
|
44
|
-
- You: "
|
|
52
|
+
- You: "Write tests before implementation."
|
|
45
53
|
- AI: "I will use matt.tdd for this request."
|
|
46
54
|
- AI: "I used matt.tdd for this request."
|
|
47
55
|
|
|
@@ -64,8 +72,8 @@ after → remember policy` loop that development should preserve.
|
|
|
64
72
|
|
|
65
73
|
## Why Not Just List `/skills`?
|
|
66
74
|
|
|
67
|
-
A raw skill list answers what is declared. SkillBoard answers what can
|
|
68
|
-
|
|
75
|
+
A raw skill list answers what is declared. SkillBoard answers what can run now
|
|
76
|
+
and how overlapping matches should route.
|
|
69
77
|
|
|
70
78
|
Same fixture, different answer:
|
|
71
79
|
|
|
@@ -73,12 +81,15 @@ Same fixture, different answer:
|
|
|
73
81
|
| --- | --- |
|
|
74
82
|
| `matt.tdd active workflow-auto` | `AI can use now: 0` |
|
|
75
83
|
| no policy health | `Blocked for safety: 8`, `Policy errors: 2` |
|
|
84
|
+
| several review skills look relevant | `Overlap: Multiple allowed skills match... routes ...` |
|
|
76
85
|
|
|
77
|
-
That gap is the product. SkillBoard separates `installed` from `
|
|
78
|
-
checks policy health, and gives agents a
|
|
86
|
+
That gap is the product. SkillBoard separates `installed` from `available`,
|
|
87
|
+
checks policy health, and gives agents a route they can use without guessing
|
|
79
88
|
from raw `SKILL.md` files. The same proof also routes "write tests before
|
|
80
89
|
implementation" to `matt.tdd`, returns `private.tdd-work-continuity` as the
|
|
81
|
-
fallback, and gives the AI exact start and finish disclosure text.
|
|
90
|
+
fallback, and gives the AI exact start and finish disclosure text. Targeted
|
|
91
|
+
tests also cover `grill-me`-style review overlap across Codex and OpenCode
|
|
92
|
+
workflows.
|
|
82
93
|
|
|
83
94
|
See [Tested Value Proof](#tested-value-proof) for the executable proof.
|
|
84
95
|
|
|
@@ -108,15 +119,18 @@ the shared Codex-visible skill tree in LazyCodex-style environments.
|
|
|
108
119
|
It does not create `skillboard.config.yaml`,
|
|
109
120
|
`.skillboard/`, `AGENTS.md`, or `CLAUDE.md` in projects.
|
|
110
121
|
No separate setup command is required after a normal global install or update:
|
|
111
|
-
npm lifecycle scripts
|
|
112
|
-
guidance files, and add newly detected
|
|
122
|
+
npm lifecycle scripts run agent-layer setup automatically, rerun the agent-home
|
|
123
|
+
scan, refresh managed SkillBoard guidance files, and add newly detected
|
|
124
|
+
supported agent roots. This setup does not run `skillboard init`; use `init`
|
|
125
|
+
only inside a workspace where you want project-local policy files.
|
|
113
126
|
|
|
114
127
|
Run `skillboard setup --agent codex,claude,opencode,hermes --yes` later only
|
|
115
128
|
after adding another supported agent, enabling a new agent home, or installing
|
|
116
129
|
with lifecycle scripts disabled. Restart or refresh agents that cache user
|
|
117
130
|
skills, then ask normal questions:
|
|
118
131
|
|
|
119
|
-
- "
|
|
132
|
+
- "Write tests before implementation."
|
|
133
|
+
- "Review this plan and point out weak assumptions."
|
|
120
134
|
- "What skills can you use here?"
|
|
121
135
|
- "Use the Codex test-first skill in OpenCode too."
|
|
122
136
|
- "When two skills overlap, which one should take priority?"
|
|
@@ -129,7 +143,8 @@ before creating an adapted target-agent `SKILL.md` and installs that file with
|
|
|
129
143
|
provenance.
|
|
130
144
|
|
|
131
145
|
If you intentionally maintain local workspace policy files, use the explicit
|
|
132
|
-
operator commands for that layer
|
|
146
|
+
operator commands for that layer. `skillboard init` is needed only for a
|
|
147
|
+
workspace where you want project-local policy, bridge guidance, and reports:
|
|
133
148
|
|
|
134
149
|
```bash
|
|
135
150
|
npx --yes --package agent-skillboard skillboard init
|
|
@@ -137,26 +152,39 @@ npx --yes --package agent-skillboard skillboard doctor --summary
|
|
|
137
152
|
npx --yes --package agent-skillboard skillboard brief --workflow <workflow-from-init>
|
|
138
153
|
```
|
|
139
154
|
|
|
140
|
-
Remove
|
|
155
|
+
Remove SkillBoard from a project when you are done:
|
|
141
156
|
|
|
142
157
|
```bash
|
|
143
158
|
npx --yes --package agent-skillboard skillboard uninstall --dir /path/to/your/project --dry-run
|
|
144
159
|
npx --yes --package agent-skillboard skillboard uninstall --dir /path/to/your/project
|
|
145
160
|
```
|
|
146
161
|
|
|
147
|
-
|
|
148
|
-
|
|
162
|
+
Default project uninstall removes SkillBoard config, bridge guidance, and
|
|
163
|
+
`.skillboard/` project state while preserving local `skills/*/SKILL.md` files.
|
|
164
|
+
It reports what it removed or preserved.
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
npx --yes --package agent-skillboard skillboard uninstall --dir /path/to/your/project --keep-settings --dry-run
|
|
168
|
+
npx --yes --package agent-skillboard skillboard uninstall --dir /path/to/your/project --keep-settings
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Use `--keep-settings` only when you want to keep project SkillBoard policy and
|
|
172
|
+
bridge guidance in place, for example while cleaning generated helper files.
|
|
173
|
+
`--purge` remains accepted as an explicit spelling for the default clean
|
|
174
|
+
project removal.
|
|
149
175
|
|
|
150
|
-
Remove SkillBoard's
|
|
176
|
+
Remove SkillBoard's managed agent-layer guidance before package removal when
|
|
177
|
+
you want agent homes back to their pre-SkillBoard guidance state:
|
|
151
178
|
|
|
152
179
|
```bash
|
|
153
|
-
npx --yes --package agent-skillboard skillboard uninstall --
|
|
154
|
-
npx --yes --package agent-skillboard skillboard uninstall --
|
|
180
|
+
npx --yes --package agent-skillboard skillboard uninstall --agent-layer --dry-run
|
|
181
|
+
npx --yes --package agent-skillboard skillboard uninstall --agent-layer
|
|
182
|
+
npm uninstall -g agent-skillboard
|
|
155
183
|
```
|
|
156
184
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
185
|
+
Agent-layer uninstall removes only managed `skillboard/SKILL.md` guidance files
|
|
186
|
+
that contain SkillBoard's integration marker. It preserves other agent skills
|
|
187
|
+
and user-authored `skillboard` skills.
|
|
160
188
|
|
|
161
189
|
See [docs/install.md](docs/install.md) for global installs, `--dir`, GitHub
|
|
162
190
|
builds, clone-based development, Hermes bridge setup, refresh, and uninstall.
|
|
@@ -164,10 +192,11 @@ builds, clone-based development, Hermes bridge setup, refresh, and uninstall.
|
|
|
164
192
|
## What SkillBoard Gives You
|
|
165
193
|
|
|
166
194
|
- Inventory that separates installed skills from callable skills.
|
|
167
|
-
-
|
|
195
|
+
- Broad default availability with workflow-scoped overlap routing.
|
|
168
196
|
- `brief`, `route`, `can-use`, and `guard use` surfaces for AI-mediated selection and availability.
|
|
169
197
|
- `import-skill` for agent-layer skill reuse across Codex, Claude, OpenCode, and Hermes.
|
|
170
|
-
- Workflow conflict checks
|
|
198
|
+
- Workflow conflict checks and overlap summaries so similar skills stay
|
|
199
|
+
available without quietly degrading an answer.
|
|
171
200
|
- Action cards that apply one approved policy change, then re-resolve state.
|
|
172
201
|
- Source and install-unit review for plugins, hooks, MCP servers, harnesses,
|
|
173
202
|
commands, LSPs, and package-manager dependencies.
|
package/bin/postinstall.mjs
CHANGED
|
@@ -8,7 +8,8 @@ if (isTruthy(process.env.SKILLBOARD_SKIP_POSTINSTALL)) {
|
|
|
8
8
|
|
|
9
9
|
process.stderr.write(`${[
|
|
10
10
|
"SkillBoard installed or updated.",
|
|
11
|
-
"It
|
|
11
|
+
"It can refresh user-agent guidance on global installs, but it does not initialize projects.",
|
|
12
|
+
"Run skillboard init only inside a workspace where you want project-local policy files.",
|
|
12
13
|
""
|
|
13
14
|
].join("\n")}\n`);
|
|
14
15
|
|
|
@@ -18,7 +19,8 @@ if (!shouldAutoSetup(process.env)) {
|
|
|
18
19
|
"Run skillboard setup later after adding another supported agent:",
|
|
19
20
|
" skillboard setup",
|
|
20
21
|
"",
|
|
21
|
-
"Setup only writes user agent skill files
|
|
22
|
+
"Setup only writes user agent skill files. It does not create skillboard.config.yaml or .skillboard/.",
|
|
23
|
+
"Run skillboard init later only for a project that needs local SkillBoard policy.",
|
|
22
24
|
""
|
|
23
25
|
].join("\n")}`);
|
|
24
26
|
process.exit(0);
|
|
@@ -40,7 +42,7 @@ try {
|
|
|
40
42
|
packageSpec: "agent-skillboard"
|
|
41
43
|
});
|
|
42
44
|
if (exitCode === 0) {
|
|
43
|
-
process.stderr.write("Agent setup complete. Package updates rerun this setup automatically; run skillboard setup later after adding another supported agent.\n");
|
|
45
|
+
process.stderr.write("Agent setup complete. Package updates rerun this setup automatically; run skillboard setup later after adding another supported agent. No project init was run.\n");
|
|
44
46
|
} else {
|
|
45
47
|
process.stderr.write("Agent setup did not find supported agent homes. Run skillboard setup after installing or enabling a supported agent.\n");
|
|
46
48
|
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
# AI Skill Routing Goal
|
|
2
2
|
|
|
3
|
-
SkillBoard's product goal is to be a **
|
|
3
|
+
SkillBoard's product goal is to be a **permissive AI skill routing layer**. It keeps installed skills broadly available by default, then gives the AI a deterministic route when multiple skills could steer the same task. It should help an AI decide which skills and workflow policies apply to the current task without turning normal work into a settings session.
|
|
4
4
|
|
|
5
5
|
This document is the goal reference for product work, routing changes, AI-facing brief changes, bridge updates, policy UX, and workflow UX.
|
|
6
6
|
|
|
7
7
|
## Core principle
|
|
8
8
|
|
|
9
|
-
SkillBoard should keep the user's work moving by default.
|
|
9
|
+
SkillBoard should keep the user's work moving by default. Broadly available
|
|
10
|
+
skills are normal; deterministic overlap resolution is the value.
|
|
10
11
|
|
|
11
12
|
The preferred loop is:
|
|
12
13
|
|
|
@@ -17,7 +18,7 @@ observe → route → work → explain briefly → ask after → remember policy
|
|
|
17
18
|
That means:
|
|
18
19
|
|
|
19
20
|
1. **Observe** the user's request and current workflow context.
|
|
20
|
-
2. **Route** to the most appropriate allowed skill or workflow policy without asking first when the risk is low.
|
|
21
|
+
2. **Route** to the most appropriate allowed skill or workflow policy without asking first when the risk is low, especially when several similar skills match.
|
|
21
22
|
3. **Work** normally so SkillBoard does not become a pre-task settings checklist.
|
|
22
23
|
4. **Explain briefly** which skill was used or skipped, only at the level needed for trust.
|
|
23
24
|
5. **Ask after** the task when the routing choice was ambiguous, recurring, or likely to become a useful preference.
|
|
@@ -33,9 +34,18 @@ SkillBoard should not:
|
|
|
33
34
|
- require users to memorize the SkillBoard command loop;
|
|
34
35
|
- infer permission from raw installed `SKILL.md` files;
|
|
35
36
|
- silently let overlapping skills contaminate an answer;
|
|
37
|
+
- make the default model feel deny-first when the user's skill set is already allowed;
|
|
36
38
|
- mutate skill body content when a usage policy would solve the problem;
|
|
37
39
|
- turn every allowed skill invocation into a permission prompt.
|
|
38
40
|
|
|
41
|
+
## Simplification rule
|
|
42
|
+
|
|
43
|
+
Do not simplify by deleting concepts blindly. Keep a concept only when it
|
|
44
|
+
justifies itself against SkillBoard's routing identity: routing, overlap
|
|
45
|
+
resolution, policy memory, or a less interruptive user flow. Concepts that do
|
|
46
|
+
not pass that test should be removed, merged, or renamed into the smaller
|
|
47
|
+
surface that does.
|
|
48
|
+
|
|
39
49
|
## What SkillBoard controls
|
|
40
50
|
|
|
41
51
|
SkillBoard controls **when and how a skill may influence an AI workflow**.
|
|
@@ -47,6 +57,7 @@ The control object is a usage policy, not the skill body itself:
|
|
|
47
57
|
- user, project, or team scope;
|
|
48
58
|
- preferred and fallback skills;
|
|
49
59
|
- exclusion rules;
|
|
60
|
+
- overlap resolution summaries;
|
|
50
61
|
- confidence or ambiguity thresholds;
|
|
51
62
|
- disclosure and guard behavior;
|
|
52
63
|
- pending policy suggestions to review later.
|
|
@@ -105,6 +116,7 @@ A change moves SkillBoard toward this goal when:
|
|
|
105
116
|
|
|
106
117
|
- ordinary allowed-skill work proceeds without a pre-task skill-selection prompt;
|
|
107
118
|
- ambiguous but low-risk choices can be handled with ask-after-use policy suggestions;
|
|
119
|
+
- multiple allowed matching skills stay available while the routed skill is deterministic;
|
|
108
120
|
- risky or policy-changing actions still require explicit confirmation before apply;
|
|
109
121
|
- `brief --json` gives AI integrations a stable way to discover the goal document and routing guidance;
|
|
110
122
|
- text output stays compact by default and reserves verbose detail for explicit requests;
|
package/docs/install.md
CHANGED
|
@@ -3,13 +3,15 @@
|
|
|
3
3
|
SkillBoard sits one layer above skill installers, plugin marketplaces, harness
|
|
4
4
|
bundles, and local skill repositories.
|
|
5
5
|
|
|
6
|
-
After install, ask your AI
|
|
7
|
-
"
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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.
|
|
13
15
|
|
|
14
16
|
## Install From npm
|
|
15
17
|
|
|
@@ -17,7 +19,9 @@ Global install auto-runs agent integration. Installing the package makes the
|
|
|
17
19
|
CLI available and the postinstall step runs agent-layer setup for detected
|
|
18
20
|
Codex, Claude, OpenCode, and Hermes user skill roots. The setup is best-effort:
|
|
19
21
|
it never fails the package install, does not edit agent config files, and does
|
|
20
|
-
not create project policy files.
|
|
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.
|
|
21
25
|
|
|
22
26
|
The published CLI supports Node.js 14.21 or newer. Node 12 and older are not
|
|
23
27
|
supported without a transpiled bundle because the source uses modern ESM and
|
|
@@ -219,16 +223,24 @@ passing guard is not a user prompt; the agent should disclose the selected skill
|
|
|
219
223
|
at the start and completion, and ask only if the guard denies use or a
|
|
220
224
|
policy-changing action is needed.
|
|
221
225
|
|
|
222
|
-
When
|
|
223
|
-
|
|
224
|
-
|
|
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`,
|
|
225
231
|
`post_use_policy_suggestion`, and `guard_command` instead of guessing from raw
|
|
226
232
|
skill text. Inspect
|
|
227
|
-
`route_candidates` when several skills match so
|
|
228
|
-
fallbacks are clear. If
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
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.
|
|
232
244
|
|
|
233
245
|
Action cards are change suggestions. Before an agent applies one that changes
|
|
234
246
|
policy, trust, hooks, reset state, or skill references, it should request user
|
|
@@ -260,14 +272,24 @@ workflow you explicitly created for that Hermes profile.
|
|
|
260
272
|
Before answering what skills can be used in that workflow, run:
|
|
261
273
|
skillboard brief --workflow <workflow-name> --json --include-actions --dir /path/to/your/project
|
|
262
274
|
|
|
263
|
-
When
|
|
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:
|
|
264
278
|
skillboard brief --workflow <workflow-name> --intent <request> --json --dir /path/to/your/project
|
|
265
279
|
Read assistant_guidance.route. Use recommended_skill, fallback_skills,
|
|
266
|
-
route_candidates,
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
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.
|
|
271
293
|
|
|
272
294
|
Do not infer availability from installed SKILL.md files. Immediately before
|
|
273
295
|
invoking a skill, run:
|
|
@@ -345,66 +367,74 @@ GitHub `org/repo` shorthands, and `file://` Git remotes. It writes the refreshed
|
|
|
345
367
|
checkout under `.skillboard/sources/<install-unit-id>`, updates `cache_path`,
|
|
346
368
|
`source_digest`, and `verified_at`, and leaves the config untouched on dry-run.
|
|
347
369
|
|
|
348
|
-
## Uninstall
|
|
370
|
+
## Uninstall Agent Guidance Or Project State
|
|
371
|
+
|
|
372
|
+
Package removal, agent guidance cleanup, and project cleanup are intentionally
|
|
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:
|
|
377
|
+
|
|
378
|
+
```bash
|
|
379
|
+
skillboard uninstall --agent-layer --dry-run
|
|
380
|
+
skillboard uninstall --agent-layer
|
|
381
|
+
npm uninstall -g agent-skillboard
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
Agent-layer uninstall removes only managed `skillboard/SKILL.md` guidance files
|
|
385
|
+
that contain SkillBoard's agent integration marker. It preserves other agent
|
|
386
|
+
skills and user-authored `skillboard` skills that do not contain that marker.
|
|
387
|
+
Use `--agent codex,claude,opencode,hermes` to target specific supported agents.
|
|
349
388
|
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
Use the project cleanup command when you want to remove the bridge files created
|
|
353
|
-
by init:
|
|
389
|
+
Use the project cleanup command when you want to remove SkillBoard from a
|
|
390
|
+
project:
|
|
354
391
|
|
|
355
392
|
```bash
|
|
356
393
|
skillboard uninstall --dir /path/to/your/project --dry-run
|
|
357
394
|
skillboard uninstall --dir /path/to/your/project
|
|
358
395
|
```
|
|
359
396
|
|
|
360
|
-
Default uninstall
|
|
397
|
+
Default project uninstall is a clean removal:
|
|
361
398
|
|
|
362
|
-
- removes
|
|
363
|
-
|
|
399
|
+
- removes SkillBoard config, bridge blocks, and the entire `.skillboard/`
|
|
400
|
+
project state directory;
|
|
364
401
|
- deletes a bridge file only when it has no user content left;
|
|
365
|
-
-
|
|
366
|
-
|
|
367
|
-
-
|
|
368
|
-
|
|
369
|
-
hooks, and modified files by default. Empty generated directories can be
|
|
370
|
-
removed.
|
|
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.
|
|
371
406
|
|
|
372
|
-
Use `--
|
|
373
|
-
|
|
407
|
+
Use `--keep-settings` only when you want to keep project SkillBoard policy and
|
|
408
|
+
bridge guidance in place:
|
|
374
409
|
|
|
375
410
|
```bash
|
|
376
|
-
skillboard uninstall --dir /path/to/your/project --
|
|
377
|
-
skillboard uninstall --dir /path/to/your/project --
|
|
411
|
+
skillboard uninstall --dir /path/to/your/project --keep-settings --dry-run
|
|
412
|
+
skillboard uninstall --dir /path/to/your/project --keep-settings
|
|
378
413
|
```
|
|
379
414
|
|
|
380
|
-
`--
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
may be wired into local agent/runtime configuration. Combine `--reset-config`,
|
|
404
|
-
`--remove-reports`, and `--remove-hooks` for a clean test reset that removes
|
|
405
|
-
the most common SkillBoard-owned lifecycle scaffolding while preserving local
|
|
406
|
-
`skills/`. Use `--purge` instead when no `.skillboard/` project state should
|
|
407
|
-
remain at all.
|
|
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/`.
|
|
408
438
|
|
|
409
439
|
## Upper-Layer Control
|
|
410
440
|
|
package/docs/positioning.md
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
## Problem
|
|
4
4
|
|
|
5
|
-
AI agent skills are easy to install but hard to
|
|
5
|
+
AI agent skills are easy to install but hard to route consistently once several
|
|
6
|
+
similar skills are broadly available.
|
|
6
7
|
|
|
7
8
|
Users lose confidence when they cannot tell:
|
|
8
9
|
|
|
@@ -17,10 +18,11 @@ Users lose confidence when they cannot tell:
|
|
|
17
18
|
|
|
18
19
|
## Product Definition
|
|
19
20
|
|
|
20
|
-
SkillBoard is a workflow-scoped skill
|
|
21
|
+
SkillBoard is a workflow-scoped skill routing board with a reconciler.
|
|
21
22
|
|
|
22
|
-
It is not primarily a skill catalog
|
|
23
|
-
|
|
23
|
+
It is not primarily a skill catalog or a deny-first permission wall. It is an
|
|
24
|
+
operations layer that keeps skills broadly usable, turns overlap into a visible
|
|
25
|
+
route, and still checks policy before invocation. Users define intent and
|
|
24
26
|
policy; SkillBoard interprets drift between desired state and actual state.
|
|
25
27
|
|
|
26
28
|
## Adjacent Tools
|
|
@@ -90,5 +92,5 @@ obvious safe defaults and only ask for important decisions:
|
|
|
90
92
|
- removed skills: show affected workflows and fallback capabilities;
|
|
91
93
|
- changed harnesses: show missing commands and migration hints;
|
|
92
94
|
- new harnesses: disable by default until explicitly assigned;
|
|
93
|
-
- duplicate skills: group by capability
|
|
94
|
-
|
|
95
|
+
- duplicate or overlapping skills: group by capability, keep allowed skills
|
|
96
|
+
available, and recommend a canonical route for the current workflow.
|