@alavida/agentpack 0.1.2 → 0.1.3

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.
Files changed (43) hide show
  1. package/README.md +11 -1
  2. package/bin/intent.js +20 -0
  3. package/package.json +11 -5
  4. package/skills/agentpack-cli/SKILL.md +4 -1
  5. package/skills/authoring-skillgraphs-from-knowledge/SKILL.md +148 -0
  6. package/skills/authoring-skillgraphs-from-knowledge/references/authored-metadata.md +6 -0
  7. package/skills/developing-and-testing-skills/SKILL.md +109 -0
  8. package/skills/developing-and-testing-skills/references/local-workbench.md +7 -0
  9. package/skills/getting-started-skillgraphs/SKILL.md +115 -0
  10. package/skills/getting-started-skillgraphs/references/command-routing.md +7 -0
  11. package/skills/identifying-skill-opportunities/SKILL.md +119 -0
  12. package/skills/identifying-skill-opportunities/references/capability-boundaries.md +6 -0
  13. package/skills/maintaining-skillgraph-freshness/SKILL.md +110 -0
  14. package/skills/repairing-broken-skill-or-plugin-state/SKILL.md +112 -0
  15. package/skills/repairing-broken-skill-or-plugin-state/references/diagnostic-flows.md +6 -0
  16. package/skills/shipping-production-plugins-and-packages/SKILL.md +123 -0
  17. package/skills/shipping-production-plugins-and-packages/references/plugin-delivery.md +6 -0
  18. package/src/application/skills/build-skill-workbench-model.js +194 -0
  19. package/src/application/skills/run-skill-workbench-action.js +23 -0
  20. package/src/application/skills/start-skill-dev-workbench.js +192 -0
  21. package/src/cli.js +1 -1
  22. package/src/commands/skills.js +7 -1
  23. package/src/dashboard/App.jsx +343 -0
  24. package/src/dashboard/components/Breadcrumbs.jsx +45 -0
  25. package/src/dashboard/components/ControlStrip.jsx +153 -0
  26. package/src/dashboard/components/InspectorPanel.jsx +203 -0
  27. package/src/dashboard/components/SkillGraph.jsx +567 -0
  28. package/src/dashboard/components/Tooltip.jsx +111 -0
  29. package/src/dashboard/dist/dashboard.js +26692 -0
  30. package/src/dashboard/index.html +81 -0
  31. package/src/dashboard/lib/api.js +19 -0
  32. package/src/dashboard/lib/router.js +15 -0
  33. package/src/dashboard/main.jsx +4 -0
  34. package/src/domain/plugins/load-plugin-definition.js +163 -0
  35. package/src/domain/plugins/plugin-diagnostic-error.js +18 -0
  36. package/src/domain/plugins/plugin-requirements.js +15 -0
  37. package/src/domain/skills/skill-graph.js +1 -0
  38. package/src/infrastructure/runtime/open-browser.js +20 -0
  39. package/src/infrastructure/runtime/skill-dev-workbench-server.js +96 -0
  40. package/src/infrastructure/runtime/watch-skill-workbench.js +68 -0
  41. package/src/lib/plugins.js +19 -28
  42. package/src/lib/skills.js +60 -12
  43. package/src/utils/errors.js +33 -1
package/README.md CHANGED
@@ -88,7 +88,9 @@ agentpack skills validate domains/operations/skills/agonda-prioritisation
88
88
  agentpack skills dev domains/operations/skills/agonda-prioritisation
89
89
  ```
90
90
 
91
- Use `skills dev` when you want the skill linked into `.claude/skills/` and `.agents/skills/` for local runtime testing.
91
+ Use `skills dev` when you want the skill linked into `.claude/skills/` and `.agents/skills/` for local runtime testing. It now also starts a localhost development workbench by default for one selected skill, showing immediate provenance sources, direct required skills, lifecycle state, and workbench actions such as validation and stale checks.
92
+
93
+ Pass `--no-dashboard` if you want the original CLI-only linking workflow without the local dashboard.
92
94
 
93
95
  If your agent session was already running, start a fresh session after linking so the runtime can pick up the newly materialized skill.
94
96
 
@@ -107,6 +109,8 @@ agentpack plugin validate path/to/plugin
107
109
  agentpack plugin build path/to/plugin
108
110
  ```
109
111
 
112
+ `plugin inspect` and `plugin validate` now emit actionable structured diagnostics when a plugin target is missing required files such as `package.json` or `.claude-plugin/plugin.json`.
113
+
110
114
  For watch mode during development:
111
115
 
112
116
  ```bash
@@ -219,6 +223,12 @@ Implemented today:
219
223
 
220
224
  Hosted docs: https://docs.alavida.ai
221
225
 
226
+ For a repo-local demo and manual testing target, initialize submodules and use [`sandbox/acme-demo/`](./sandbox/acme-demo).
227
+
228
+ ```bash
229
+ git submodule update --init --recursive
230
+ ```
231
+
222
232
  Docs source: [`docs/`](./docs)
223
233
 
224
234
  For local docs preview as a contributor:
package/bin/intent.js ADDED
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env node
2
+ // Auto-generated by @tanstack/intent setup
3
+ // Exposes the intent end-user CLI for consumers of this library.
4
+ // Commit this file, then add to your package.json:
5
+ // "bin": { "intent": "./bin/intent.js" }
6
+ try {
7
+ await import('@tanstack/intent/intent-library')
8
+ } catch (e) {
9
+ if (e?.code === 'ERR_MODULE_NOT_FOUND' || e?.code === 'MODULE_NOT_FOUND') {
10
+ console.error('@tanstack/intent is not installed.')
11
+ console.error('')
12
+ console.error('Install it as a dev dependency:')
13
+ console.error(' npm add -D @tanstack/intent')
14
+ console.error('')
15
+ console.error('Or run directly:')
16
+ console.error(' npx @tanstack/intent@latest list')
17
+ process.exit(1)
18
+ }
19
+ throw e
20
+ }
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "@alavida/agentpack",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "Package-backed skills lifecycle CLI for agent skills and plugins",
5
5
  "type": "module",
6
6
  "bin": {
7
- "agentpack": "bin/agentpack.js"
7
+ "agentpack": "bin/agentpack.js",
8
+ "intent": "./bin/intent.js"
8
9
  },
9
10
  "files": [
10
11
  "bin",
@@ -18,7 +19,8 @@
18
19
  "validate:live": "node scripts/live-validation.mjs",
19
20
  "smoke:monorepo": "node scripts/smoke-monorepo.mjs",
20
21
  "docs:dev": "cd docs && mint dev",
21
- "intent:validate": "npx @tanstack/intent validate"
22
+ "intent:validate": "npx @tanstack/intent validate",
23
+ "build:dashboard": "node scripts/build-dashboard.mjs"
22
24
  },
23
25
  "keywords": [
24
26
  "agentpack",
@@ -43,10 +45,14 @@
43
45
  "docs": "https://github.com/alavida-ai/agentpack/tree/main/docs"
44
46
  },
45
47
  "dependencies": {
46
- "commander": "^13.0.0"
48
+ "commander": "^13.0.0",
49
+ "d3": "^7.9.0",
50
+ "react": "^19.1.1",
51
+ "react-dom": "^19.1.1"
47
52
  },
48
53
  "devDependencies": {
49
- "@tanstack/intent": "^0.0.14"
54
+ "@tanstack/intent": "^0.0.14",
55
+ "esbuild": "^0.25.10"
50
56
  },
51
57
  "engines": {
52
58
  "node": ">=20.0.0"
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: agentpack-cli
3
3
  description: Use the agentpack CLI correctly when treating knowledge as a package. Apply the authored skill lifecycle, plugin lifecycle, source-backed validation, install flow, and bundled plugin artifact flow without mixing those stages together.
4
- library_version: 0.1.1
4
+ library_version: 0.1.2
5
5
  sources:
6
6
  - README.md
7
7
  - docs/introduction.mdx
@@ -56,6 +56,7 @@ Default flow:
56
56
  - `agentpack skills inspect <skill-dir>`
57
57
  - `agentpack skills validate <skill-dir>`
58
58
  - `agentpack skills dev <skill-dir>` if local runtime testing is needed
59
+ - `agentpack skills dev --no-dashboard <skill-dir>` if the user wants to skip the local workbench
59
60
 
60
61
  Key idea:
61
62
 
@@ -74,6 +75,7 @@ Persistence rule:
74
75
  Runtime notes:
75
76
 
76
77
  - after `skills dev` writes to `.claude/skills/` or `.agents/skills/`, start a fresh agent session if the current one was already running
78
+ - `skills dev` starts a localhost workbench by default for one selected skill, with provenance edges, direct required skills, and actions like validate or stale checks
77
79
  - do not reload `metadata.sources` manually once the dev-linked skill exists; trust the compiled `SKILL.md` artifact unless you are explicitly updating the skill
78
80
  - invoke the resulting skill through the runtime's skill mechanism, not by opening the file and reading it as plain text
79
81
 
@@ -106,6 +108,7 @@ Key idea:
106
108
  - plugin-local `requires` remain the dependency truth
107
109
  - packaged skills are vendored into the built artifact
108
110
  - the plugin artifact is the thing consumers run
111
+ - `plugin inspect` and `plugin validate` can return structured diagnostics with `path`, `nextSteps`, and example fixes when plugin definition files are missing or malformed
109
112
 
110
113
  Read [plugin-lifecycle.md](references/plugin-lifecycle.md) when the user needs the full artifact flow.
111
114
 
@@ -0,0 +1,148 @@
1
+ ---
2
+ name: authoring-skillgraphs-from-knowledge
3
+ description: Use when authoring packaged skills from source knowledge with valid SKILL.md metadata, package.json release fields, provenance sources, and requires edges in agentpack.
4
+ type: core
5
+ library: agentpack
6
+ library_version: "0.1.2"
7
+ sources:
8
+ - "alavida-ai/agentpack:docs/commands.mdx"
9
+ - "alavida-ai/agentpack:docs/architecture.mdx"
10
+ - "alavida-ai/agentpack:skills/agentpack-cli/SKILL.md"
11
+ ---
12
+
13
+ # Agentpack - Authoring Skillgraphs From Knowledge
14
+
15
+ ## Setup
16
+
17
+ ```yaml
18
+ ---
19
+ name: value-copywriting
20
+ description: Messaging and copywriting guidance.
21
+ metadata:
22
+ sources:
23
+ - domains/value/knowledge/selling-points.md
24
+ requires:
25
+ - @alavida-ai/methodology-gary-provost
26
+ ---
27
+ ```
28
+
29
+ ```json
30
+ {
31
+ "name": "@alavida-ai/value-copywriting",
32
+ "version": "1.0.0",
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "git+https://github.com/alavida-ai/knowledge-base.git"
36
+ },
37
+ "publishConfig": {
38
+ "registry": "https://npm.pkg.github.com"
39
+ },
40
+ "files": ["SKILL.md"],
41
+ "dependencies": {
42
+ "@alavida-ai/methodology-gary-provost": "^1.0.0"
43
+ }
44
+ }
45
+ ```
46
+
47
+ ## Core Patterns
48
+
49
+ ### Author `requires` in `SKILL.md`
50
+
51
+ ```yaml
52
+ requires:
53
+ - @alavida-ai/methodology-gary-provost
54
+ ```
55
+
56
+ ### Validate to sync and record provenance
57
+
58
+ ```bash
59
+ agentpack skills validate domains/value/skills/copywriting
60
+ ```
61
+
62
+ ### Inspect by path or package name
63
+
64
+ ```bash
65
+ agentpack skills inspect domains/value/skills/copywriting
66
+ agentpack skills inspect @alavida-ai/value-copywriting
67
+ ```
68
+
69
+ ## Common Mistakes
70
+
71
+ ### CRITICAL Editing package dependencies instead of requires
72
+
73
+ Wrong:
74
+
75
+ ```json
76
+ {
77
+ "dependencies": {
78
+ "@alavida-ai/methodology-gary-provost": "^1.0.0"
79
+ }
80
+ }
81
+ ```
82
+
83
+ Correct:
84
+
85
+ ```yaml
86
+ requires:
87
+ - @alavida-ai/methodology-gary-provost
88
+ ```
89
+
90
+ `requires` is the authored dependency truth; `package.json.dependencies` is the compiled mirror.
91
+
92
+ Source: skills/agentpack-cli/SKILL.md
93
+
94
+ ### HIGH Shipping a skill package without SKILL.md in files
95
+
96
+ Wrong:
97
+
98
+ ```json
99
+ {
100
+ "files": ["README.md"]
101
+ }
102
+ ```
103
+
104
+ Correct:
105
+
106
+ ```json
107
+ {
108
+ "files": ["SKILL.md"]
109
+ }
110
+ ```
111
+
112
+ A package that excludes `SKILL.md` is structurally invalid even if the authored source exists locally.
113
+
114
+ Source: docs/commands.mdx
115
+
116
+ ### HIGH Using missing or invalid package metadata
117
+
118
+ Wrong:
119
+
120
+ ```json
121
+ {
122
+ "name": "@alavida-ai/value-copywriting"
123
+ }
124
+ ```
125
+
126
+ Correct:
127
+
128
+ ```json
129
+ {
130
+ "name": "@alavida-ai/value-copywriting",
131
+ "version": "1.0.0",
132
+ "repository": {
133
+ "type": "git",
134
+ "url": "git+https://github.com/alavida-ai/knowledge-base.git"
135
+ },
136
+ "publishConfig": {
137
+ "registry": "https://npm.pkg.github.com"
138
+ }
139
+ }
140
+ ```
141
+
142
+ Release-readiness checks enforce package identity and distribution metadata during `skills validate`.
143
+
144
+ Source: docs/commands.mdx
145
+
146
+ ## References
147
+
148
+ - [Authored metadata](references/authored-metadata.md)
@@ -0,0 +1,6 @@
1
+ # Authored Metadata
2
+
3
+ - `SKILL.md` owns `name`, `description`, `metadata.sources`, and `requires`
4
+ - `package.json` owns distribution metadata such as package name, version, publish config, and repository
5
+ - `skills validate` syncs managed dependencies from `requires` and refreshes `.agentpack/build-state.json`
6
+
@@ -0,0 +1,109 @@
1
+ ---
2
+ name: developing-and-testing-skills
3
+ description: Use when iterating locally on a packaged skill with agentpack skills dev, the localhost workbench, repo-local materialization, and runtime testing feedback loops.
4
+ type: core
5
+ library: agentpack
6
+ library_version: "0.1.2"
7
+ sources:
8
+ - "alavida-ai/agentpack:docs/commands.mdx"
9
+ - "alavida-ai/agentpack:docs/introduction.mdx"
10
+ - "alavida-ai/agentpack:README.md"
11
+ requires:
12
+ - authoring-skillgraphs-from-knowledge
13
+ - maintaining-skillgraph-freshness
14
+ ---
15
+
16
+ # Agentpack - Developing And Testing Skills
17
+
18
+ ## Setup
19
+
20
+ ```bash
21
+ cd knowledge-base
22
+ agentpack skills dev domains/value/skills/copywriting
23
+ ```
24
+
25
+ ## Core Patterns
26
+
27
+ ### Start local dev with the workbench
28
+
29
+ ```bash
30
+ agentpack skills dev domains/value/skills/copywriting
31
+ ```
32
+
33
+ This links the selected skill into `.claude/skills/` and `.agents/skills/` and starts a localhost workbench by default.
34
+
35
+ ### Use CLI-only mode when you explicitly do not want the dashboard
36
+
37
+ ```bash
38
+ agentpack skills dev --no-dashboard domains/value/skills/copywriting
39
+ ```
40
+
41
+ ### Stop and clean up local links
42
+
43
+ ```bash
44
+ agentpack skills unlink value-copywriting
45
+ ```
46
+
47
+ ## Common Mistakes
48
+
49
+ ### HIGH Expecting the current agent session to pick up new links
50
+
51
+ Wrong:
52
+
53
+ ```bash
54
+ agentpack skills dev domains/value/skills/copywriting
55
+ ```
56
+
57
+ Correct:
58
+
59
+ ```bash
60
+ agentpack skills dev domains/value/skills/copywriting
61
+ # start a fresh agent session if one was already running
62
+ ```
63
+
64
+ Already-running agent sessions may not rescan newly materialized skills.
65
+
66
+ Source: README.md
67
+
68
+ ### MEDIUM Assuming unresolved requires block local dev links
69
+
70
+ Wrong:
71
+
72
+ ```bash
73
+ agentpack skills dev domains/value/skills/copywriting
74
+ # ignore the unresolved warning because linking succeeded
75
+ ```
76
+
77
+ Correct:
78
+
79
+ ```bash
80
+ agentpack skills dev domains/value/skills/copywriting
81
+ agentpack skills dependencies @alavida-ai/value-copywriting
82
+ agentpack skills missing
83
+ ```
84
+
85
+ `skills dev` can still link the selected skill while warning about unresolved packaged requirements.
86
+
87
+ Source: docs/commands.mdx
88
+
89
+ ### MEDIUM Using no-dashboard mode and expecting workbench actions
90
+
91
+ Wrong:
92
+
93
+ ```bash
94
+ agentpack skills dev --no-dashboard domains/value/skills/copywriting
95
+ ```
96
+
97
+ Correct:
98
+
99
+ ```bash
100
+ agentpack skills dev domains/value/skills/copywriting
101
+ ```
102
+
103
+ `--no-dashboard` suppresses the localhost workbench entirely.
104
+
105
+ Source: docs/introduction.mdx
106
+
107
+ ## References
108
+
109
+ - [Local workbench](references/local-workbench.md)
@@ -0,0 +1,7 @@
1
+ # Local Workbench
2
+
3
+ - Default `skills dev` starts a localhost workbench for one selected skill
4
+ - The workbench shows provenance sources, direct required skills, lifecycle state, and actions such as validate or stale checks
5
+ - `--no-dashboard` keeps the old CLI-only flow
6
+ - Editing `SKILL.md`, `package.json`, or tracked source files refreshes the model during the dev session
7
+
@@ -0,0 +1,115 @@
1
+ ---
2
+ name: getting-started-skillgraphs
3
+ description: Use when starting from an empty repo or empty skillgraph and needing the first correct authoring loop, lifecycle framing, repo-root routing, and inspect/validate/dev command flow in agentpack.
4
+ type: lifecycle
5
+ library: agentpack
6
+ library_version: "0.1.2"
7
+ sources:
8
+ - "alavida-ai/agentpack:docs/introduction.mdx"
9
+ - "alavida-ai/agentpack:docs/commands.mdx"
10
+ - "alavida-ai/agentpack:README.md"
11
+ ---
12
+
13
+ # Agentpack - Getting Started Skillgraphs
14
+
15
+ ## Setup
16
+
17
+ ```bash
18
+ npm install -g @alavida/agentpack
19
+ cd knowledge-base
20
+ agentpack skills inspect domains/value/skills/copywriting
21
+ agentpack skills validate domains/value/skills/copywriting
22
+ agentpack skills dev domains/value/skills/copywriting
23
+ ```
24
+
25
+ ## Core Patterns
26
+
27
+ ### Start in the authoring repo
28
+
29
+ ```bash
30
+ cd knowledge-base
31
+ agentpack skills validate domains/value/skills/copywriting
32
+ agentpack skills stale
33
+ ```
34
+
35
+ Run source-backed commands from the repo that owns the files in `metadata.sources`.
36
+
37
+ ### Use the authored workflow first
38
+
39
+ ```bash
40
+ agentpack skills inspect domains/value/skills/copywriting
41
+ agentpack skills validate domains/value/skills/copywriting
42
+ agentpack skills dev domains/value/skills/copywriting
43
+ ```
44
+
45
+ ### Switch to consumer install only after publishing
46
+
47
+ ```bash
48
+ cd consumer-repo
49
+ agentpack skills install @alavida-ai/value-copywriting
50
+ agentpack skills env
51
+ ```
52
+
53
+ ## Common Mistakes
54
+
55
+ ### CRITICAL Wrong repo root for source-backed commands
56
+
57
+ Wrong:
58
+
59
+ ```bash
60
+ cd tooling/agentpack
61
+ agentpack skills validate ../knowledge-base/domains/value/skills/copywriting
62
+ ```
63
+
64
+ Correct:
65
+
66
+ ```bash
67
+ cd knowledge-base
68
+ agentpack skills validate domains/value/skills/copywriting
69
+ ```
70
+
71
+ `metadata.sources` resolve relative to the current repo root, so validating from the wrong repo breaks provenance checks.
72
+
73
+ Source: docs/introduction.mdx
74
+
75
+ ### HIGH Starting with install instead of authoring validation
76
+
77
+ Wrong:
78
+
79
+ ```bash
80
+ agentpack skills install @alavida-ai/value-copywriting
81
+ ```
82
+
83
+ Correct:
84
+
85
+ ```bash
86
+ agentpack skills inspect domains/value/skills/copywriting
87
+ agentpack skills validate domains/value/skills/copywriting
88
+ ```
89
+
90
+ `install` is the consumer lifecycle; authored skills need inspect and validate first.
91
+
92
+ Source: skills/agentpack-cli/SKILL.md
93
+
94
+ ### MEDIUM Treating the dashboard as the authoring surface
95
+
96
+ Wrong:
97
+
98
+ ```bash
99
+ agentpack skills dev domains/value/skills/copywriting
100
+ ```
101
+
102
+ Correct:
103
+
104
+ ```bash
105
+ edit domains/value/skills/copywriting/SKILL.md
106
+ agentpack skills dev domains/value/skills/copywriting
107
+ ```
108
+
109
+ The localhost workbench is for visibility during `skills dev`, not the source of truth for authored behavior.
110
+
111
+ Source: docs/commands.mdx
112
+
113
+ ## References
114
+
115
+ - [Command routing](references/command-routing.md)
@@ -0,0 +1,7 @@
1
+ # Command Routing
2
+
3
+ - Authoring repo: `skills inspect`, `skills validate`, `skills dev`, `skills stale`
4
+ - Consumer repo: `skills install`, `skills env`, `skills status`, `skills missing`
5
+ - Plugin shell: `plugin inspect`, `plugin validate`, `plugin build`, `plugin dev`
6
+ - If sources live under `domains/.../knowledge/*.md`, run authored commands from that repo root
7
+
@@ -0,0 +1,119 @@
1
+ ---
2
+ name: identifying-skill-opportunities
3
+ description: Use when deciding what raw knowledge should become a packaged skill, a reusable capability boundary, a requires edge, or a plugin-local wrapper in an agentpack skillgraph.
4
+ type: core
5
+ library: agentpack
6
+ library_version: "0.1.2"
7
+ sources:
8
+ - "alavida-ai/agentpack:docs/architecture.mdx"
9
+ - "alavida-ai/agentpack:docs/overview.mdx"
10
+ - "alavida-ai/agentpack:skills/agentpack-cli/SKILL.md"
11
+ ---
12
+
13
+ # Agentpack - Identifying Skill Opportunities
14
+
15
+ ## Setup
16
+
17
+ ```md
18
+ Source knowledge:
19
+ - domains/design/knowledge/brand-guidelines.md
20
+ - domains/frontend/knowledge/component-heuristics.md
21
+
22
+ Reusable skills:
23
+ - domains/design/skills/brand-guidelines
24
+ - domains/frontend/skills/frontend-skill
25
+
26
+ Composed task skill:
27
+ - domains/design/skills/agonda-brand-frontend
28
+ requires:
29
+ - @scope/brand-guidelines
30
+ - @scope/frontend-skill
31
+ ```
32
+
33
+ ## Core Patterns
34
+
35
+ ### Split by reusable capability
36
+
37
+ If a knowledge area should be reused compositionally in work, give it its own packaged skill.
38
+
39
+ ### Compose task-specific skills with `requires`
40
+
41
+ Use a task skill when the work needs several reusable capabilities together.
42
+
43
+ ### Keep plugin-local skills as delivery wrappers
44
+
45
+ Use plugin-local skills to expose packaged capabilities inside a runtime shell, not to hide the capability graph.
46
+
47
+ ## Common Mistakes
48
+
49
+ ### HIGH Copying knowledge into one giant skill
50
+
51
+ Wrong:
52
+
53
+ ```md
54
+ One SKILL.md contains branding, frontend heuristics, research notes, and delivery instructions.
55
+ ```
56
+
57
+ Correct:
58
+
59
+ ```md
60
+ Create packaged skills for reusable capabilities, then compose them with requires.
61
+ ```
62
+
63
+ Flattening multiple capabilities into one skill destroys explicit dependency edges and makes maintenance coarse.
64
+
65
+ Source: maintainer interview
66
+
67
+ ### CRITICAL Using plugin boundaries as the dependency model
68
+
69
+ Wrong:
70
+
71
+ ```text
72
+ plugins/website-dev/skills/copywriting/SKILL.md
73
+ plugins/website-dev/skills/research/SKILL.md
74
+ ```
75
+
76
+ Correct:
77
+
78
+ ```text
79
+ domains/brand/skills/copywriting/SKILL.md
80
+ domains/research/skills/interview-research/SKILL.md
81
+ plugins/website-dev/skills/copywriting/SKILL.md # requires packaged skills
82
+ ```
83
+
84
+ Plugins are a delivery surface, not the architectural place to hide reusable capability boundaries.
85
+
86
+ Source: docs/architecture.mdx
87
+
88
+ ### CRITICAL Omitting provenance sources for knowledge-backed skills
89
+
90
+ Wrong:
91
+
92
+ ```yaml
93
+ ---
94
+ name: value-copywriting
95
+ description: Copy.
96
+ requires: []
97
+ ---
98
+ ```
99
+
100
+ Correct:
101
+
102
+ ```yaml
103
+ ---
104
+ name: value-copywriting
105
+ description: Copy.
106
+ metadata:
107
+ sources:
108
+ - domains/value/knowledge/tone-of-voice.md
109
+ requires: []
110
+ ---
111
+ ```
112
+
113
+ Without `metadata.sources`, the skillgraph cannot explain stale state against source truth.
114
+
115
+ Source: docs/architecture.mdx
116
+
117
+ ## References
118
+
119
+ - [Capability boundaries](references/capability-boundaries.md)
@@ -0,0 +1,6 @@
1
+ # Capability Boundaries
2
+
3
+ - Split when the knowledge should be reused as an independent capability in real work
4
+ - Compose task-specific skills with `requires` instead of flattening them
5
+ - Keep plugins for delivery concerns such as hooks, MCP tools, and grouped shipment of several skills
6
+