@skill-map/cli 0.52.0 → 0.53.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/dist/cli/tutorial/sm-tutorial/SKILL.md +239 -1659
- package/dist/cli/tutorial/sm-tutorial/references/_core.md +332 -0
- package/dist/cli/tutorial/sm-tutorial/references/_manifest.yml +175 -0
- package/dist/cli/tutorial/sm-tutorial/references/fixtures.md +251 -0
- package/dist/cli/tutorial/{sm-master/references/tour-authoring.md → sm-tutorial/references/part-authoring.md} +14 -15
- package/dist/cli/tutorial/sm-tutorial/references/part-cli.md +267 -0
- package/dist/cli/tutorial/sm-tutorial/references/part-connect-harness.md +180 -0
- package/dist/cli/tutorial/sm-tutorial/references/part-fundamentals.md +424 -0
- package/dist/cli/tutorial/sm-tutorial/references/part-live-site.md +156 -0
- package/dist/cli/tutorial/sm-tutorial/references/part-maintain.md +286 -0
- package/dist/cli/tutorial/sm-tutorial/references/part-mcp.md +78 -0
- package/dist/cli/tutorial/{sm-master/references/tour-plugins.md → sm-tutorial/references/part-plugins.md} +11 -11
- package/dist/cli/tutorial/sm-tutorial/references/part-project-kickoff.md +186 -0
- package/dist/cli/tutorial/{sm-master/references/tour-settings.md → sm-tutorial/references/part-settings.md} +22 -24
- package/dist/cli.js +1213 -550
- package/dist/index.d.ts +1 -1
- package/dist/index.js +334 -207
- package/dist/kernel/index.d.ts +320 -15
- package/dist/kernel/index.js +334 -207
- package/dist/migrations/001_initial.sql +36 -0
- package/dist/ui/chunk-EQ72PEHT.js +1 -0
- package/dist/ui/chunk-GBKHMJ4B.js +1110 -0
- package/dist/ui/chunk-GEI6INVH.js +515 -0
- package/dist/ui/chunk-JXRIGHET.js +552 -0
- package/dist/ui/{chunk-WQMZOINB.js → chunk-K2MAVAHG.js} +1 -1
- package/dist/ui/{chunk-BV323KTK.js → chunk-KHARMPTZ.js} +1 -1
- package/dist/ui/chunk-L4NIF75A.js +2 -0
- package/dist/ui/chunk-LCOYSPKE.js +1 -0
- package/dist/ui/chunk-OFDQMBSJ.js +1 -0
- package/dist/ui/chunk-P2DAPRK7.js +2 -0
- package/dist/ui/chunk-Q2A6FWC7.js +4 -0
- package/dist/ui/{chunk-ZNDMBION.js → chunk-TXTY24G4.js} +28 -30
- package/dist/ui/chunk-UBQUCSQ4.js +1 -0
- package/dist/ui/chunk-WFLPMCK4.js +392 -0
- package/dist/ui/chunk-YQFIXHKM.js +123 -0
- package/dist/ui/index.html +2 -2
- package/dist/ui/{main-2DWVSRRX.js → main-OYITFJ7B.js} +3 -3
- package/dist/ui/{styles-QBTVKEVX.css → styles-Q4NCOJQY.css} +1 -1
- package/migrations/001_initial.sql +36 -0
- package/package.json +10 -8
- package/dist/cli/tutorial/sm-master/SKILL.md +0 -688
- package/dist/cli/tutorial/sm-master/references/fixture-templates.md +0 -212
- package/dist/ui/chunk-5MCXQKRN.js +0 -1066
- package/dist/ui/chunk-6B5EAHIM.js +0 -1110
- package/dist/ui/chunk-AEA5GIA7.js +0 -1
- package/dist/ui/chunk-AQN27TN2.js +0 -123
- package/dist/ui/chunk-CAJ7ZI44.js +0 -1
- package/dist/ui/chunk-E2XO4JVD.js +0 -1
- package/dist/ui/chunk-VJ57LHDR.js +0 -4
- package/dist/ui/chunk-WMGW2UAL.js +0 -2
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
# Part 1: The project from zero (step library, `kickoff-*` ids)
|
|
2
|
+
|
|
3
|
+
The campaign turns real here. After the abstract prologue, the tester
|
|
4
|
+
starts an actual project: a tiny personal **portfolio website**,
|
|
5
|
+
fully static, served by a ~15-line Express server, plus the
|
|
6
|
+
`.claude/` **harness** that maintains it. skill-map maps the harness
|
|
7
|
+
(the `.md` assets and how they reference each other); the site itself
|
|
8
|
+
is plain HTML the harness produces (Part 5 generates it and runs the
|
|
9
|
+
server). `pace: per-step`, `preflight: portfolio-init`. Shared
|
|
10
|
+
conventions live in `_core.md`.
|
|
11
|
+
|
|
12
|
+
The orchestrator's `portfolio-init` pre-flight (backstage, silent)
|
|
13
|
+
has already laid the bare project skeleton before the tester runs
|
|
14
|
+
`sm init`: `server.js`, `package.json`, `public/index.html` (none of
|
|
15
|
+
which are `.md`, so the scan ignores them), the portfolio
|
|
16
|
+
`.skillmapignore`, and the handbook `AGENTS.md` (the one boot node).
|
|
17
|
+
The chapters grow the harness from there.
|
|
18
|
+
|
|
19
|
+
## Chapter `kickoff` - Start the portfolio (~2 min)
|
|
20
|
+
|
|
21
|
+
**Context**: same `sm init` the tester learned in the prologue, but
|
|
22
|
+
now on a real project. The map will show the project's harness, not
|
|
23
|
+
throwaway demo nodes.
|
|
24
|
+
|
|
25
|
+
If the prologue (`fundamentals`) ran first in this directory, the
|
|
26
|
+
demo fixture (`demo-agent`, `demo-skill`, `notes/…`) is still on
|
|
27
|
+
disk. The orchestrator's `portfolio-init` already cleared it during
|
|
28
|
+
pre-flight, so the tester sees only the portfolio. If anything demo
|
|
29
|
+
lingers, mention it once and move on.
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
sm init
|
|
33
|
+
sm
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Tell the tester:
|
|
37
|
+
|
|
38
|
+
> This is a real project now: a small **portfolio website**. It's
|
|
39
|
+
> static HTML served by a tiny Express server (`server.js`), and the
|
|
40
|
+
> `.claude/` folder is the **harness** (the helpers that maintain the
|
|
41
|
+
> site). skill-map maps that harness.
|
|
42
|
+
>
|
|
43
|
+
> Open the URL `sm` printed. You'll see **one node**: `AGENTS.md`,
|
|
44
|
+
> the project's handbook (the operating manual for the site).
|
|
45
|
+
> `server.js`, `package.json` and the HTML under `public/` are not
|
|
46
|
+
> `.md`, so skill-map leaves them out, it maps the harness, not the
|
|
47
|
+
> served files.
|
|
48
|
+
>
|
|
49
|
+
> See the handbook node? Then we start building.
|
|
50
|
+
|
|
51
|
+
Wait for confirmation. Mark `kickoff`: done.
|
|
52
|
+
|
|
53
|
+
## Chapter `manual` - The handbook and CLAUDE.md (~2 min)
|
|
54
|
+
|
|
55
|
+
**Context**: the dogfood beat. Real Claude Code projects keep a
|
|
56
|
+
`CLAUDE.md` that just points at `AGENTS.md` (this very repo does).
|
|
57
|
+
That one-line pointer is a real `mentions` link, the tester's first
|
|
58
|
+
connector on the real project.
|
|
59
|
+
|
|
60
|
+
Tell the tester to create the file themselves (it is their project's
|
|
61
|
+
file, Inviolable rule #2):
|
|
62
|
+
|
|
63
|
+
> Create a file called `CLAUDE.md` at the project root with exactly
|
|
64
|
+
> this content:
|
|
65
|
+
>
|
|
66
|
+
> ```markdown
|
|
67
|
+
> @AGENTS.md
|
|
68
|
+
> ```
|
|
69
|
+
>
|
|
70
|
+
> Save it. Watch the map: a new `CLAUDE.md` node appears, with a
|
|
71
|
+
> `mentions` connector pointing at `AGENTS.md`. The `@name` token is
|
|
72
|
+
> the same mention syntax from the prologue, now doing real work: it
|
|
73
|
+
> tells anyone (and skill-map) that `CLAUDE.md` defers to the
|
|
74
|
+
> handbook. This is exactly how this tool's own repo is wired.
|
|
75
|
+
>
|
|
76
|
+
> Did the connector light up?
|
|
77
|
+
|
|
78
|
+
Wait for confirmation. Mark `manual`: done.
|
|
79
|
+
|
|
80
|
+
## Chapter `first-agent` - The first harness agent (~2 min)
|
|
81
|
+
|
|
82
|
+
**Context**: the harness's job is content creation. Its first member
|
|
83
|
+
is `content-editor`, an agent that writes the site's HTML pages. Here
|
|
84
|
+
we only create it (the cross-references come in the next part).
|
|
85
|
+
|
|
86
|
+
`Write` `.claude/agents/content-editor.md` (substitute
|
|
87
|
+
`<provider_dir>` per `_core.md`; on `agent-skills` / Antigravity,
|
|
88
|
+
which has no `agent` kind, create a `skill` instead and adjust the
|
|
89
|
+
prose):
|
|
90
|
+
|
|
91
|
+
```markdown
|
|
92
|
+
---
|
|
93
|
+
name: content-editor
|
|
94
|
+
description: |
|
|
95
|
+
Writes and edits the portfolio's pages. Reads a brief, follows the
|
|
96
|
+
style guide, and emits the HTML into public/.
|
|
97
|
+
tools: [Read, Write]
|
|
98
|
+
model: sonnet
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
# content-editor
|
|
102
|
+
|
|
103
|
+
Turns a short brief into a finished portfolio page. Follows the
|
|
104
|
+
conventions in the style guide and writes the result as static HTML
|
|
105
|
+
under public/.
|
|
106
|
+
|
|
107
|
+
Rules:
|
|
108
|
+
- One page per file under public/.
|
|
109
|
+
- Keep the markup plain; no framework, no client JS.
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Tell the tester:
|
|
113
|
+
|
|
114
|
+
> I added the first real member of your harness: an agent called
|
|
115
|
+
> `content-editor` (its job is to write the site's pages). A new
|
|
116
|
+
> `agent` node appeared on the map. Right now it stands alone; in the
|
|
117
|
+
> next part we wire it to the handbook and the style guide.
|
|
118
|
+
>
|
|
119
|
+
> See the new agent node?
|
|
120
|
+
|
|
121
|
+
Wait for confirmation. Mark `first-agent`: done.
|
|
122
|
+
|
|
123
|
+
## Chapter `real-kinds` - The real kinds in context (~2 min)
|
|
124
|
+
|
|
125
|
+
**Context**: the prologue showed the four kinds on abstract demo
|
|
126
|
+
nodes. Now name them on the real project, and add the two markdown
|
|
127
|
+
docs the harness references later (the style guide and the deploy
|
|
128
|
+
runbook), so Part 3's maintenance beats have something to point at.
|
|
129
|
+
|
|
130
|
+
`Write` two docs (markdown kind):
|
|
131
|
+
|
|
132
|
+
`docs/STYLE.md`:
|
|
133
|
+
```markdown
|
|
134
|
+
---
|
|
135
|
+
name: style-guide
|
|
136
|
+
description: |
|
|
137
|
+
Writing and markup conventions every portfolio page follows.
|
|
138
|
+
tags: [docs, portfolio]
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
# Style guide
|
|
142
|
+
|
|
143
|
+
- Short, plain sentences. No marketing fluff.
|
|
144
|
+
- One H1 per page; sections under H2.
|
|
145
|
+
- Every page links back to the home page.
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
`docs/DEPLOY.md`:
|
|
149
|
+
```markdown
|
|
150
|
+
---
|
|
151
|
+
name: deploy-runbook
|
|
152
|
+
description: |
|
|
153
|
+
How the portfolio gets published once the pages are written.
|
|
154
|
+
tags: [docs, portfolio]
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
# Deploy runbook
|
|
158
|
+
|
|
159
|
+
1. Generate the pages into public/.
|
|
160
|
+
2. Run the link check.
|
|
161
|
+
3. Start the server: `node server.js`.
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Tell the tester:
|
|
165
|
+
|
|
166
|
+
> Two more nodes joined the map, both `markdown` (the catch-all kind
|
|
167
|
+
> for `.md` files that are not an agent, skill, or command):
|
|
168
|
+
> `docs/STYLE.md` (the style guide) and `docs/DEPLOY.md` (the deploy
|
|
169
|
+
> runbook). So now you have the real four kinds in front of you:
|
|
170
|
+
>
|
|
171
|
+
> - **agent**: `content-editor` (does work on your behalf).
|
|
172
|
+
> - **markdown**: `AGENTS.md`, `CLAUDE.md`, the two docs (plain notes
|
|
173
|
+
> and manuals).
|
|
174
|
+
> - **skill** and **command**: coming in the next part, when we add
|
|
175
|
+
> the link checker and the publish command and wire everything
|
|
176
|
+
> together.
|
|
177
|
+
>
|
|
178
|
+
> Your handbook now has a real harness around it. Next we connect it:
|
|
179
|
+
> the agent reaching the style guide, the command invoking the
|
|
180
|
+
> skill, the whole graph lighting up.
|
|
181
|
+
>
|
|
182
|
+
> Ready to connect the harness?
|
|
183
|
+
|
|
184
|
+
Wait for confirmation. Mark `real-kinds`: done. This closes Part 1;
|
|
185
|
+
the orchestrator returns to the ToC menu (Part 2, "Connect the
|
|
186
|
+
harness", is next on the spine).
|
|
@@ -1,28 +1,26 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Parte 6 (a): Extender skill-map - settings (step library, `settings-*` ids)
|
|
2
2
|
|
|
3
|
-
Step bodies for
|
|
4
|
-
`
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
dispatches to `tour-authoring.md`.
|
|
3
|
+
Step bodies for the settings chapters of Part 6 (config layers, the
|
|
4
|
+
`sm config` verbs, the active provider lens), plus the shared step
|
|
5
|
+
`settings-6-contributions` that the plugin-authoring chapters reuse.
|
|
6
|
+
The SKILL.md orchestrator dispatches each `settings-*` chapter id
|
|
7
|
+
here; `authoring-*` ids it dispatches to `part-authoring.md`.
|
|
9
8
|
|
|
10
9
|
The `.sm` consent gate (companion files, `allowEditSmFiles`,
|
|
11
|
-
`sm sidecar annotate`) is covered
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
tutorial does not teach.
|
|
10
|
+
`sm sidecar annotate`) is covered elsewhere in this tutorial, so
|
|
11
|
+
these chapters do NOT repeat it; they focus on the config layer
|
|
12
|
+
system and the `sm config` verbs.
|
|
15
13
|
|
|
16
14
|
## Precondition check
|
|
17
15
|
|
|
18
|
-
Same as the authoring
|
|
19
|
-
the
|
|
20
|
-
and appended the
|
|
16
|
+
Same as the authoring chapters: `.skill-map/` must exist in the
|
|
17
|
+
cwd (the orchestrator's backstage-init pre-flight ran `sm init
|
|
18
|
+
--no-scan` and appended the tutorial's internal entries to
|
|
21
19
|
`.skillmapignore`, so this is the expected state). If
|
|
22
20
|
`.skill-map/` is missing, surface the bootstrap mismatch and
|
|
23
|
-
stop, do not try to re-init mid-
|
|
21
|
+
stop, do not try to re-init mid-chapter.
|
|
24
22
|
|
|
25
|
-
## Step `settings-1-layers`
|
|
23
|
+
## Step `settings-1-layers` - the config layers (~3 min)
|
|
26
24
|
|
|
27
25
|
**Context**: where settings live and how `sm` resolves a value
|
|
28
26
|
when more than one place sets it.
|
|
@@ -74,7 +72,7 @@ in this list too.
|
|
|
74
72
|
|
|
75
73
|
Mark `settings-1-layers: done`.
|
|
76
74
|
|
|
77
|
-
## Step `settings-2-resolve`
|
|
75
|
+
## Step `settings-2-resolve` - read, resolve, and set a value (~3 min)
|
|
78
76
|
|
|
79
77
|
**Context**: the four config verbs (`get`, `show`, `set`, `reset`)
|
|
80
78
|
and how `show --source` reveals which layer won.
|
|
@@ -123,7 +121,7 @@ catalog is closed.)
|
|
|
123
121
|
|
|
124
122
|
Mark `settings-2-resolve: done`.
|
|
125
123
|
|
|
126
|
-
## Step `settings-3-lens`
|
|
124
|
+
## Step `settings-3-lens` - the active provider lens (~4 min)
|
|
127
125
|
|
|
128
126
|
**Context**: the single most consequential setting, the lens that
|
|
129
127
|
decides which provider types the project's files. It is reversible
|
|
@@ -188,14 +186,14 @@ Back where you started, nothing lost.
|
|
|
188
186
|
|
|
189
187
|
Mark `settings-3-lens: done`.
|
|
190
188
|
|
|
191
|
-
## Step `settings-6-contributions`
|
|
189
|
+
## Step `settings-6-contributions` - watch contributions land (~2 min)
|
|
192
190
|
|
|
193
191
|
> Last step. Let's watch a contribution land on a node card live.
|
|
194
192
|
> The fixture's `master-agent` declares `tools: [Read, Bash,
|
|
195
193
|
> Edit]`, which the `core/tools-counter` extractor picks up.
|
|
196
194
|
|
|
197
195
|
If the tester does not have `sm` running, ask them to launch it
|
|
198
|
-
in their second terminal (same drill as the
|
|
196
|
+
in their second terminal (same drill as the fundamentals part:
|
|
199
197
|
`sm`, copy the link from the output, open the browser, arrange
|
|
200
198
|
the screen). If `sm` is still running, leave it.
|
|
201
199
|
|
|
@@ -214,18 +212,18 @@ Once the UI is open, ask the tester to:
|
|
|
214
212
|
> `card.footer.left`, the renderer is `NodeCounter` (same one your
|
|
215
213
|
> scaffold uses), the payload was `{ value: 3 }`.
|
|
216
214
|
|
|
217
|
-
If the `demo-highlight` plugin from the earlier authoring
|
|
218
|
-
of this
|
|
215
|
+
If the `demo-highlight` plugin from the earlier authoring chapters
|
|
216
|
+
of this part is still installed, point the tester at the
|
|
219
217
|
contribution it emits too:
|
|
220
218
|
|
|
221
|
-
> The `demo-highlight` you scaffolded earlier in this
|
|
219
|
+
> The `demo-highlight` you scaffolded earlier in this part also
|
|
222
220
|
> shows up: its chip lands on every node that has a TODO / FIXME
|
|
223
221
|
> / XXX in its body. Click `notes/ideas` to find it.
|
|
224
222
|
|
|
225
223
|
Have the tester change `master-agent`'s `tools` array (add or
|
|
226
224
|
remove one tool), save, and watch the chip refresh.
|
|
227
225
|
|
|
228
|
-
> Same flow as the
|
|
226
|
+
> Same flow as the fundamentals part's live UI: edit the markdown,
|
|
229
227
|
> watch the UI refresh. The difference is that the value flowed
|
|
230
228
|
> through a plugin (`core/tools-counter`) and landed in a specific
|
|
231
229
|
> slot (`card.footer.left`). You now know the full path from `.md`
|