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 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
- Use the right AI-agent skills without managing another checklist.
3
+ Keep AI-agent skills broadly available, then route overlaps consistently.
4
4
 
5
- Ask your AI normal questions: "what skills can you use?", "which skill should
6
- write tests first?", or "can you make this reviewed skill available here?"
7
- SkillBoard runs behind the scenes so you get the benefit: the right skill, a
8
- short disclosure of what was used, and fewer setup interruptions when skills
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 is safe now.
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 conservative and previewable with `skillboard uninstall --dry-run`;
18
- `--purge` removes SkillBoard's policy footprint while preserving local skills.
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 for AI
24
- agents. Installed user skills are usable by default unless runtime, user, or
25
- local instructions disable them; SkillBoard helps agents resolve overlap,
26
- policy, and workflow priority instead of guessing from raw skill files.
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
- - "Which skill should you use to write tests first?"
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: "Which skill should you use to write tests first?"
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 safely
68
- run now.
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 `allowed`,
78
- checks policy health, and gives agents a brief they can use without guessing
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 rerun the agent-home scan, refresh managed SkillBoard
112
- guidance files, and add newly detected supported agent roots.
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
- - "Which skill should you use to write tests first?"
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 the project bridge when you are done:
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
- Uninstall preserves local skills and policy files by default, and reports what
148
- it removed or preserved.
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 policy influence entirely while keeping local skill files:
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 --dir /path/to/your/project --purge --dry-run
154
- npx --yes --package agent-skillboard skillboard uninstall --dir /path/to/your/project --purge
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
- `--purge` deletes SkillBoard config, bridge blocks, and the entire
158
- `.skillboard/` project state directory while leaving `skills/*/SKILL.md` in
159
- place.
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
- - Workflow-scoped policy instead of global "everything is active" behavior.
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 so overlapping skills cannot quietly degrade an answer.
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.
@@ -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 does not change agent configs or project files.",
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 and does not initialize projects.",
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 **non-blocking AI skill routing control plane**. It should help an AI decide which skills and workflow policies apply to the current task without turning normal work into a settings session.
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 questions like "what skills can you use here?" or
7
- "which skill should you use for this task?" The AI runs SkillBoard behind the
8
- scenes when skill choices overlap or workflow priority matters. Installed user
9
- skills are usable by default unless runtime, user, or local instructions disable
10
- them; SkillBoard should not turn every skill choice into a permission prompt.
11
- When it selects a skill, the AI should briefly say which skill it will use and
12
- which skill it used. You do not need to memorize the SkillBoard command loop.
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 the user asks which skill fits a task, the bridge tells agents to use
223
- `skillboard brief --intent <request> --json`, read `assistant_guidance.route`,
224
- and use `recommended_skill`, `fallback_skills`, `route_candidates`,
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 denied candidates and selected
228
- fallbacks are clear. If `post_use_policy_suggestion` is present, the agent
229
- should use the allowed routed skill first, then ask after completion whether to
230
- remember the suggested policy. If no skill matches, the agent should ask a
231
- clarifying question before choosing a skill.
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 the user asks which skill fits a task, run:
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, post_use_policy_suggestion, and guard_command. Inspect
267
- route_candidates when several skills match so denied candidates and selected
268
- fallbacks are clear. If post_use_policy_suggestion is present, use the allowed
269
- routed skill first, then ask after completion whether to remember the suggested
270
- policy. If no skill matches, ask a clarifying question before choosing a skill.
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 From A Project
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
- Package removal and project cleanup are intentionally separate. `npm uninstall
351
- -g agent-skillboard` removes the CLI package, but it does not edit a project.
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 behavior is conservative:
397
+ Default project uninstall is a clean removal:
361
398
 
362
- - removes only the `BEGIN SKILLBOARD` / `END SKILLBOARD` bridge block from
363
- `AGENTS.md` and `CLAUDE.md`;
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
- - deletes `.skillboard/profiles/README.md` and `.skillboard/hooks/README.md`
366
- only when they still exactly match the generated text;
367
- - removes empty generated directories;
368
- - preserves `skillboard.config.yaml`, local skill files, reports, generated guard
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 `--purge` when you want SkillBoard's influence removed from the project
373
- instead of merely disconnecting the bridge:
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 --purge --dry-run
377
- skillboard uninstall --dir /path/to/your/project --purge
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
- `--purge` removes SkillBoard config, bridge blocks, and the entire
381
- `.skillboard/` project state directory, including reports, hooks, source caches,
382
- rollout logs, variant snapshots, and profiles. It preserves local `skills/`
383
- files because skills that were created or deleted are outside the uninstall
384
- scope.
385
-
386
- Use `--remove-config` to delete `skillboard.config.yaml` only when it still
387
- matches the untouched default config. If the config contains scanned skills or
388
- user edits, uninstall preserves it and reports it under `Preserved`.
389
-
390
- Use `--reset-config` only when you intentionally want to discard the current
391
- SkillBoard policy state and run `skillboard init` again from a fresh lifecycle.
392
- This removes `skillboard.config.yaml` even when it contains imported skills or
393
- workflow edits, but it still preserves local `skills/` files, reports, and
394
- user-authored bridge content.
395
-
396
- Add `--remove-reports` when a test reset should also delete generated
397
- `.skillboard/reports/` output. This flag is explicit because reports may contain
398
- review notes or other user-authored context. Local `skills/` files are still
399
- preserved.
400
-
401
- Add `--remove-hooks` only when a reset should also delete the entire
402
- `.skillboard/hooks/` directory contents. This is explicit because hook scripts
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
 
@@ -2,7 +2,8 @@
2
2
 
3
3
  ## Problem
4
4
 
5
- AI agent skills are easy to install but hard to govern.
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 control board with a reconciler.
21
+ SkillBoard is a workflow-scoped skill routing board with a reconciler.
21
22
 
22
- It is not primarily a skill catalog. It is an operations layer that turns a
23
- skill repository into a visible, policy-checked system. Users define intent and
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 and recommend a canonical
94
- implementation.
95
+ - duplicate or overlapping skills: group by capability, keep allowed skills
96
+ available, and recommend a canonical route for the current workflow.