@skill-map/cli 0.68.0 → 0.68.1
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 +14 -15
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/manifest.json +0 -3
- package/dist/cli/tutorial/sm-tutorial/references/_core.md +1 -1
- package/dist/cli/tutorial/sm-tutorial/references/_manifest.json +30 -56
- package/dist/cli/tutorial/sm-tutorial/references/_manifest.yml +11 -35
- package/dist/cli/tutorial/sm-tutorial/references/fixtures.md +6 -7
- package/dist/cli/tutorial/sm-tutorial/references/part-authoring.md +2 -2
- package/dist/cli/tutorial/sm-tutorial/references/part-basic-daily.md +25 -51
- package/dist/cli/tutorial/sm-tutorial/references/part-basic-fundamentals.md +20 -19
- package/dist/cli/tutorial/sm-tutorial/references/part-basic-kickoff.md +150 -5
- package/dist/cli/tutorial/sm-tutorial/references/part-cli.md +1 -1
- package/dist/cli/tutorial/sm-tutorial/references/part-daily-loop.md +41 -73
- package/dist/cli/tutorial/sm-tutorial/references/part-fundamentals.md +25 -29
- package/dist/cli/tutorial/sm-tutorial/references/part-plugins.md +1 -1
- package/dist/cli/tutorial/sm-tutorial/references/part-project-kickoff.md +170 -13
- package/dist/cli/tutorial/sm-tutorial/references/part-settings.md +2 -2
- package/dist/cli/tutorial/sm-tutorial/scripts/state.js +4 -4
- package/dist/cli.js +12 -11
- package/dist/index.js +3 -3
- package/dist/kernel/index.js +3 -3
- package/dist/ui/{chunk-4F53HBGG.js → chunk-22EQLC23.js} +1 -1
- package/dist/ui/chunk-TLMV4LOQ.js +3 -0
- package/dist/ui/index.html +1 -1
- package/dist/ui/{main-ZYRIR6DB.js → main-R7BIU4HU.js} +3 -3
- package/package.json +2 -2
- package/dist/cli/tutorial/sm-tutorial/references/part-basic-connect.md +0 -166
- package/dist/cli/tutorial/sm-tutorial/references/part-connect-harness.md +0 -175
- package/dist/ui/chunk-BJUBDHJR.js +0 -3
- /package/dist/ui/{chunk-3GDWM5VM.js → chunk-K3ZRQNN5.js} +0 -0
|
@@ -44,7 +44,7 @@ prefix when a part spans several files: `settings-*` →
|
|
|
44
44
|
> For the tester this is a single guided session, never a course
|
|
45
45
|
> catalogue. Refer to a chapter by its tester-facing `section.chapter`
|
|
46
46
|
> number plus its friendly title (`_core.md` §Numbering); never expose
|
|
47
|
-
> the internal `order` index ("Part
|
|
47
|
+
> the internal `order` index ("Part 3", off by one from the menu), a
|
|
48
48
|
> raw "chapter id", or tour jargon ("the settings tour").
|
|
49
49
|
|
|
50
50
|
## Pre-flight (run once, silent on success)
|
|
@@ -214,9 +214,10 @@ for the data layout and the verb surface.
|
|
|
214
214
|
|
|
215
215
|
- **Fixture sets** (laid by `fixtures.js lay <set>` / `seed <snap>`):
|
|
216
216
|
`universal` (the two files above), `prologue` (the Part 0 demo),
|
|
217
|
-
`portfolio` (Part 1 boot + harness members), `harness` (the
|
|
218
|
-
|
|
219
|
-
reference-paths). The script resolves the
|
|
217
|
+
`portfolio` (Part 1 boot + harness members), `harness` (the connect
|
|
218
|
+
chapters, now folded into Part 1), `master` (Part 3 Extend),
|
|
219
|
+
`cli-external` (Part 4 reference-paths). The script resolves the
|
|
220
|
+
`__PROVIDER__` token,
|
|
220
221
|
skips kinds the provider does not claim, and reports `nodeCount` +
|
|
221
222
|
`skipped` for you to narrate.
|
|
222
223
|
- **Footprints** (the on-disk reach of each fixture, including files a
|
|
@@ -277,7 +278,7 @@ the `__PROVIDER__` token and skip kinds the provider does not claim.
|
|
|
277
278
|
parts use `preflight: seed`; `portfolio-init` is Part 1's flavour,
|
|
278
279
|
handling the Part 0 to Part 1 transition.)
|
|
279
280
|
|
|
280
|
-
- **`backstage-init`** (Part
|
|
281
|
+
- **`backstage-init`** (Part 3 `extend`): teaches plugins on its own
|
|
281
282
|
**master fixture**. On entry, silently:
|
|
282
283
|
1. Clear whatever prior fixture is present (each a no-op when absent),
|
|
283
284
|
then drop the DB: `fixtures.js clear prologue --provider <provider>`,
|
|
@@ -285,10 +286,10 @@ the `__PROVIDER__` token and skip kinds the provider does not claim.
|
|
|
285
286
|
2. `sm init --no-scan` (the pre-flight `.skillmapignore` stays).
|
|
286
287
|
3. `fixtures.js lay master --provider <provider> --lang <lang>`.
|
|
287
288
|
|
|
288
|
-
On a Part
|
|
289
|
+
On a Part 3 re-entry where the master fixture is already in place the
|
|
289
290
|
clears + lay are idempotent; just `sm scan`.
|
|
290
291
|
|
|
291
|
-
- **`seed: prologue-built`** (Part
|
|
292
|
+
- **`seed: prologue-built`** (Part 4 `cli`): reads the Part 0 demo
|
|
292
293
|
fixture, NOT the portfolio. On entry:
|
|
293
294
|
1. If the portfolio is present, clear it + drop the DB:
|
|
294
295
|
`fixtures.js clear portfolio --provider <provider>`, `rm -rf .skill-map`.
|
|
@@ -301,15 +302,13 @@ the `__PROVIDER__` token and skip kinds the provider does not claim.
|
|
|
301
302
|
3. `sm init` (single `.claude/` marker, no lens prompt), then `sm scan`.
|
|
302
303
|
If `.skill-map/` already exists, skip the init and just `sm scan`.
|
|
303
304
|
|
|
304
|
-
- **`seed`** (campaign
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
**fast-forward, silently**:
|
|
305
|
+
- **`seed`** (campaign part `daily-loop`): builds on the accumulating
|
|
306
|
+
portfolio, but the tester may have jumped here. Run `state.js status`;
|
|
307
|
+
if every predecessor up the `prereq` chain is `done`, the harness is
|
|
308
|
+
already on disk, just `sm scan`. Otherwise **fast-forward, silently**:
|
|
309
309
|
1. If the prologue ran first here, `fixtures.js clear prologue --provider <provider>`.
|
|
310
|
-
2. Seed: `fixtures.js seed
|
|
311
|
-
(
|
|
312
|
-
`daily-loop`).
|
|
310
|
+
2. Seed: `fixtures.js seed harness-connected --provider <provider> --lang <lang>`
|
|
311
|
+
(the wired harness that `daily-loop` builds on).
|
|
313
312
|
3. Provision the lens: the seeded portfolio carries the scaffold
|
|
314
313
|
marker (`.claude/` on the rich track, `.agents/` on the basic
|
|
315
314
|
track), so a plain `sm init` resolves the matching lens with no
|
|
@@ -20,7 +20,7 @@ Two numbering systems coexist; keep them apart:
|
|
|
20
20
|
|
|
21
21
|
- **Internal (authoring only)**: the `order` field in `_manifest.yml`
|
|
22
22
|
and the `# Part N` file headers, 0-based (Part 0 the prologue …
|
|
23
|
-
Part
|
|
23
|
+
Part 4 the CLI deep-dive; `mcp` at Part 5 is parked / hidden). Use it
|
|
24
24
|
in `**Context**:` blocks and author
|
|
25
25
|
notes; NEVER say it to the tester, it is off by one from what they
|
|
26
26
|
see.
|
|
@@ -136,6 +136,26 @@
|
|
|
136
136
|
"id": "real-kinds",
|
|
137
137
|
"title": "The real kinds in context",
|
|
138
138
|
"est_min": 2
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"id": "check-links",
|
|
142
|
+
"title": "The check-links skill",
|
|
143
|
+
"est_min": 2
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"id": "publish",
|
|
147
|
+
"title": "The /publish command invokes the skill",
|
|
148
|
+
"est_min": 3
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"id": "links",
|
|
152
|
+
"title": "Mentions (@) and references between assets",
|
|
153
|
+
"est_min": 3
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"id": "confidence",
|
|
157
|
+
"title": "Connector confidence (opacity = certainty)",
|
|
158
|
+
"est_min": 2
|
|
139
159
|
}
|
|
140
160
|
]
|
|
141
161
|
},
|
|
@@ -169,53 +189,7 @@
|
|
|
169
189
|
"id": "real-kinds",
|
|
170
190
|
"title": "The kinds in context",
|
|
171
191
|
"est_min": 2
|
|
172
|
-
}
|
|
173
|
-
]
|
|
174
|
-
},
|
|
175
|
-
{
|
|
176
|
-
"id": "connect-harness",
|
|
177
|
-
"order": 2,
|
|
178
|
-
"title": "Connect the harness",
|
|
179
|
-
"status": "active",
|
|
180
|
-
"preflight": "seed",
|
|
181
|
-
"seed": "harness-built",
|
|
182
|
-
"prereq": "project-kickoff",
|
|
183
|
-
"pace": "auto-advance",
|
|
184
|
-
"track": "rich",
|
|
185
|
-
"chapters": [
|
|
186
|
-
{
|
|
187
|
-
"id": "check-links",
|
|
188
|
-
"title": "The check-links skill",
|
|
189
|
-
"est_min": 2
|
|
190
|
-
},
|
|
191
|
-
{
|
|
192
|
-
"id": "publish",
|
|
193
|
-
"title": "The /publish command invokes the skill",
|
|
194
|
-
"est_min": 3
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
"id": "links",
|
|
198
|
-
"title": "Mentions (@) and references between assets",
|
|
199
|
-
"est_min": 3
|
|
200
192
|
},
|
|
201
|
-
{
|
|
202
|
-
"id": "confidence",
|
|
203
|
-
"title": "Connector confidence (opacity = certainty)",
|
|
204
|
-
"est_min": 2
|
|
205
|
-
}
|
|
206
|
-
]
|
|
207
|
-
},
|
|
208
|
-
{
|
|
209
|
-
"id": "basic-connect",
|
|
210
|
-
"order": 2,
|
|
211
|
-
"title": "Connect the harness",
|
|
212
|
-
"status": "active",
|
|
213
|
-
"preflight": "seed",
|
|
214
|
-
"seed": "harness-built",
|
|
215
|
-
"prereq": "basic-kickoff",
|
|
216
|
-
"pace": "auto-advance",
|
|
217
|
-
"track": "basic",
|
|
218
|
-
"chapters": [
|
|
219
193
|
{
|
|
220
194
|
"id": "check-links",
|
|
221
195
|
"title": "The link checker",
|
|
@@ -240,12 +214,12 @@
|
|
|
240
214
|
},
|
|
241
215
|
{
|
|
242
216
|
"id": "daily-loop",
|
|
243
|
-
"order":
|
|
217
|
+
"order": 2,
|
|
244
218
|
"title": "The daily loop (add, improve, publish)",
|
|
245
219
|
"status": "active",
|
|
246
220
|
"preflight": "seed",
|
|
247
221
|
"seed": "harness-connected",
|
|
248
|
-
"prereq": "
|
|
222
|
+
"prereq": "project-kickoff",
|
|
249
223
|
"pace": "auto-advance",
|
|
250
224
|
"track": "rich",
|
|
251
225
|
"chapters": [
|
|
@@ -281,19 +255,19 @@
|
|
|
281
255
|
},
|
|
282
256
|
{
|
|
283
257
|
"id": "golive",
|
|
284
|
-
"title": "Your
|
|
258
|
+
"title": "Your website, live next to the graph",
|
|
285
259
|
"est_min": 3
|
|
286
260
|
}
|
|
287
261
|
]
|
|
288
262
|
},
|
|
289
263
|
{
|
|
290
264
|
"id": "basic-daily",
|
|
291
|
-
"order":
|
|
265
|
+
"order": 2,
|
|
292
266
|
"title": "The daily loop (add, improve, publish)",
|
|
293
267
|
"status": "active",
|
|
294
268
|
"preflight": "seed",
|
|
295
269
|
"seed": "harness-connected",
|
|
296
|
-
"prereq": "basic-
|
|
270
|
+
"prereq": "basic-kickoff",
|
|
297
271
|
"pace": "auto-advance",
|
|
298
272
|
"track": "basic",
|
|
299
273
|
"chapters": [
|
|
@@ -329,14 +303,14 @@
|
|
|
329
303
|
},
|
|
330
304
|
{
|
|
331
305
|
"id": "golive",
|
|
332
|
-
"title": "Your
|
|
306
|
+
"title": "Your website, live next to the graph",
|
|
333
307
|
"est_min": 3
|
|
334
308
|
}
|
|
335
309
|
]
|
|
336
310
|
},
|
|
337
311
|
{
|
|
338
312
|
"id": "extend",
|
|
339
|
-
"order":
|
|
313
|
+
"order": 3,
|
|
340
314
|
"title": "Extend skill-map for the site",
|
|
341
315
|
"status": "active",
|
|
342
316
|
"preflight": "backstage-init",
|
|
@@ -404,7 +378,7 @@
|
|
|
404
378
|
},
|
|
405
379
|
{
|
|
406
380
|
"id": "cli",
|
|
407
|
-
"order":
|
|
381
|
+
"order": 4,
|
|
408
382
|
"title": "The CLI in depth",
|
|
409
383
|
"status": "active",
|
|
410
384
|
"preflight": "seed",
|
|
@@ -442,12 +416,12 @@
|
|
|
442
416
|
},
|
|
443
417
|
{
|
|
444
418
|
"id": "mcp",
|
|
445
|
-
"order":
|
|
419
|
+
"order": 5,
|
|
446
420
|
"title": "MCP",
|
|
447
421
|
"status": "planned",
|
|
448
422
|
"preflight": "seed",
|
|
449
423
|
"seed": "harness-connected",
|
|
450
|
-
"prereq": "
|
|
424
|
+
"prereq": "project-kickoff",
|
|
451
425
|
"pace": "auto-advance",
|
|
452
426
|
"track": "rich",
|
|
453
427
|
"chapters": [
|
|
@@ -79,7 +79,7 @@ parts:
|
|
|
79
79
|
- id: ignore ; title: "Silence a file via .skillmapignore" ; est_min: 2
|
|
80
80
|
|
|
81
81
|
- id: extend
|
|
82
|
-
order:
|
|
82
|
+
order: 3
|
|
83
83
|
title: "Extend skill-map for the site"
|
|
84
84
|
# Spans three chapter libraries; dispatch by chapter-id prefix:
|
|
85
85
|
# settings-* -> part-settings.md
|
|
@@ -108,7 +108,7 @@ parts:
|
|
|
108
108
|
- id: authoring-5-doctor-author ; title: "Catch a manifest mistake with `sm plugins doctor`" ; est_min: 2
|
|
109
109
|
|
|
110
110
|
- id: cli
|
|
111
|
-
order:
|
|
111
|
+
order: 4
|
|
112
112
|
title: "The CLI in depth"
|
|
113
113
|
step_file: part-cli.md
|
|
114
114
|
pace: auto-advance
|
|
@@ -145,31 +145,19 @@ parts:
|
|
|
145
145
|
- id: manual ; title: "The handbook (AGENTS.md) and CLAUDE.md" ; est_min: 2
|
|
146
146
|
- id: first-agent ; title: "The first harness agent (content-editor)" ; est_min: 2
|
|
147
147
|
- id: real-kinds ; title: "The real kinds in context" ; est_min: 2
|
|
148
|
-
|
|
149
|
-
- id: connect-harness
|
|
150
|
-
order: 2
|
|
151
|
-
title: "Connect the harness"
|
|
152
|
-
step_file: part-connect-harness.md
|
|
153
|
-
pace: auto-advance
|
|
154
|
-
preflight: seed
|
|
155
|
-
seed: harness-built # fast-forward to here if project-kickoff is not done
|
|
156
|
-
prereq: project-kickoff
|
|
157
|
-
track: rich # /publish command + @mentions; basic track connects via references
|
|
158
|
-
status: active
|
|
159
|
-
chapters:
|
|
160
148
|
- id: check-links ; title: "The check-links skill" ; est_min: 2
|
|
161
149
|
- id: publish ; title: "The /publish command invokes the skill" ; est_min: 3
|
|
162
150
|
- id: links ; title: "Mentions (@) and references between assets" ; est_min: 3
|
|
163
151
|
- id: confidence ; title: "Connector confidence (opacity = certainty)" ; est_min: 2
|
|
164
152
|
|
|
165
153
|
- id: daily-loop
|
|
166
|
-
order:
|
|
154
|
+
order: 2
|
|
167
155
|
title: "The daily loop (add, improve, publish)" # the campaign finale
|
|
168
156
|
step_file: part-daily-loop.md
|
|
169
157
|
pace: auto-advance
|
|
170
158
|
preflight: seed
|
|
171
|
-
seed: harness-connected # fast-forward to here if
|
|
172
|
-
prereq:
|
|
159
|
+
seed: harness-connected # fast-forward to here if project-kickoff is not done
|
|
160
|
+
prereq: project-kickoff
|
|
173
161
|
fixture: portfolio # reuses the wired harness; lays the pretty site (style.css + pages) as taught steps
|
|
174
162
|
track: rich # agent-driven page add + reserved command; basic track has its own counterpart
|
|
175
163
|
status: active
|
|
@@ -180,7 +168,7 @@ parts:
|
|
|
180
168
|
- id: reserved ; title: "A reserved name collides" ; est_min: 2
|
|
181
169
|
- id: publish ; title: "Ship it: run /publish for real" ; est_min: 4
|
|
182
170
|
- id: stability ; title: "Set a node's stability (and the `.sm` sidecar)" ; est_min: 3
|
|
183
|
-
- id: golive ; title: "Your
|
|
171
|
+
- id: golive ; title: "Your website, live next to the graph" ; est_min: 3
|
|
184
172
|
|
|
185
173
|
# ----- the basic-track campaign (open-standard family: agent-skills / antigravity) -----
|
|
186
174
|
# Mirrors the rich campaign arc with skill + markdown only, connected by
|
|
@@ -201,31 +189,19 @@ parts:
|
|
|
201
189
|
- id: manual ; title: "The handbook (AGENTS.md) and an entry pointer" ; est_min: 2
|
|
202
190
|
- id: first-skill ; title: "The first harness skill (content-editor)" ; est_min: 2
|
|
203
191
|
- id: real-kinds ; title: "The kinds in context" ; est_min: 2
|
|
204
|
-
|
|
205
|
-
- id: basic-connect
|
|
206
|
-
order: 2
|
|
207
|
-
title: "Connect the harness"
|
|
208
|
-
step_file: part-basic-connect.md
|
|
209
|
-
pace: auto-advance
|
|
210
|
-
preflight: seed
|
|
211
|
-
seed: harness-built
|
|
212
|
-
prereq: basic-kickoff
|
|
213
|
-
track: basic
|
|
214
|
-
status: active
|
|
215
|
-
chapters:
|
|
216
192
|
- id: check-links ; title: "The link checker" ; est_min: 3
|
|
217
193
|
- id: publish ; title: "The publish skill references the harness" ; est_min: 4
|
|
218
194
|
- id: links ; title: "The handbook becomes the hub (references)" ; est_min: 4
|
|
219
195
|
- id: confidence ; title: "Connector confidence (opacity = certainty)" ; est_min: 3
|
|
220
196
|
|
|
221
197
|
- id: basic-daily
|
|
222
|
-
order:
|
|
198
|
+
order: 2
|
|
223
199
|
title: "The daily loop (add, improve, publish)"
|
|
224
200
|
step_file: part-basic-daily.md
|
|
225
201
|
pace: auto-advance
|
|
226
202
|
preflight: seed
|
|
227
203
|
seed: harness-connected
|
|
228
|
-
prereq: basic-
|
|
204
|
+
prereq: basic-kickoff
|
|
229
205
|
fixture: portfolio
|
|
230
206
|
track: basic
|
|
231
207
|
status: active
|
|
@@ -236,17 +212,17 @@ parts:
|
|
|
236
212
|
- id: reserved ; title: "A reserved name collides" ; est_min: 2
|
|
237
213
|
- id: publish ; title: "Ship it: run the publish skill for real" ; est_min: 4
|
|
238
214
|
- id: stability ; title: "Set a node's stability (and the `.sm` sidecar)" ; est_min: 3
|
|
239
|
-
- id: golive ; title: "Your
|
|
215
|
+
- id: golive ; title: "Your website, live next to the graph" ; est_min: 3
|
|
240
216
|
|
|
241
217
|
# ----- parked: MCP returns later as its own iteration (body kept in part-mcp.md) -----
|
|
242
218
|
- id: mcp
|
|
243
|
-
order:
|
|
219
|
+
order: 5
|
|
244
220
|
title: "MCP"
|
|
245
221
|
step_file: part-mcp.md
|
|
246
222
|
pace: auto-advance
|
|
247
223
|
preflight: seed
|
|
248
224
|
seed: harness-connected
|
|
249
|
-
prereq:
|
|
225
|
+
prereq: project-kickoff
|
|
250
226
|
track: rich # MCP tool declaration sits on an agent/command body
|
|
251
227
|
status: planned # temporarily disabled, hidden from the menu. Body exists; re-enable when MCP returns.
|
|
252
228
|
chapters:
|
|
@@ -38,10 +38,10 @@ fixtures-data/
|
|
|
38
38
|
|---|---|---|
|
|
39
39
|
| `universal` | `.skillmapignore`, `findings.md` | pre-flight |
|
|
40
40
|
| `prologue` | the seven Part 0 demo nodes | Part 0 (progressive, `--only`), `prologue-built` seed |
|
|
41
|
-
| `portfolio` | Express skeleton, handbook, `content-editor`, `docs/STYLE` + `DEPLOY` | Part 1 (`--only` boot, chapters lay the rest), `harness
|
|
42
|
-
| `harness` | `check-links` skill, `publish` command | Part
|
|
43
|
-
| `master` | `master-agent`, `master-skill`, `notes/ideas` | Part
|
|
44
|
-
| `cli-external` | `link-validation/hijoA` + `hijoB` | Part
|
|
41
|
+
| `portfolio` | Express skeleton, handbook, `content-editor`, `docs/STYLE` + `DEPLOY` | Part 1 (`--only` boot, chapters lay the rest), `harness-connected` seed |
|
|
42
|
+
| `harness` | `check-links` skill, `publish` command | Part 1 connect chapters, `harness-connected` seed |
|
|
43
|
+
| `master` | `master-agent`, `master-skill`, `notes/ideas` | Part 3 `backstage-init` |
|
|
44
|
+
| `cli-external` | `link-validation/hijoA` + `hijoB` | Part 4 `reference-paths` |
|
|
45
45
|
|
|
46
46
|
## Edits (append fragments)
|
|
47
47
|
|
|
@@ -62,9 +62,8 @@ entered out of order.
|
|
|
62
62
|
|
|
63
63
|
| Seed | Lays | Edits | Drops |
|
|
64
64
|
|---|---|---|---|
|
|
65
|
-
| `prologue-built` (Part
|
|
66
|
-
| `harness-
|
|
67
|
-
| `harness-connected` (Part 3) | `portfolio` + `harness` | `agents-hub`, `content-editor-style` | , |
|
|
65
|
+
| `prologue-built` (Part 4) | `prologue` | `todo-connectors` | `notes/private-credentials.md` |
|
|
66
|
+
| `harness-connected` (Part 2) | `portfolio` + `harness` | `agents-hub`, `content-editor-style` | , |
|
|
68
67
|
|
|
69
68
|
## Footprints (what `clear` and `wipe` remove)
|
|
70
69
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Part
|
|
1
|
+
# Part 3 (c): Extend skill-map - build plugins (step library, `authoring-*` ids)
|
|
2
2
|
|
|
3
|
-
Step bodies for the plugin-authoring chapters of Part
|
|
3
|
+
Step bodies for the plugin-authoring chapters of Part 3.
|
|
4
4
|
The SKILL.md orchestrator dispatches each `authoring-*` chapter id
|
|
5
5
|
here; `settings-*` ids it dispatches to `part-settings.md`.
|
|
6
6
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Part
|
|
1
|
+
# Part 2 (basic track): The daily loop (step library, `daily-loop`)
|
|
2
2
|
|
|
3
3
|
The campaign's payoff and finale, basic track. The tester operates the harness
|
|
4
4
|
they built the way they would on any normal day, **for real**. Three acts:
|
|
@@ -35,13 +35,14 @@ has NO `sm scan` / `sm check` steps: the watcher re-scans on every save.
|
|
|
35
35
|
## Chapter `setup` - Make it yours and bring it up (~5 min)
|
|
36
36
|
|
|
37
37
|
**Context**: the harness is wired. Now put it to work on a real day. First make
|
|
38
|
-
the site yours
|
|
38
|
+
the site yours, about whatever you like, then serve it. The HTML and
|
|
39
39
|
CSS are Layer 2 (the harness's output); skill-map maps the harness (Layer 1, the
|
|
40
40
|
`.md` files), so the site landing on disk does NOT move the graph.
|
|
41
41
|
|
|
42
42
|
**Preparation**:
|
|
43
|
-
1. Ask the tester
|
|
44
|
-
|
|
43
|
+
1. Ask the tester the two questions straight, with no "before we build, let's
|
|
44
|
+
make it yours" lead-in: what the site should be called and one line about what
|
|
45
|
+
it is for. If they do not care, offer defaults ("My Portfolio"
|
|
45
46
|
/ "Small, sturdy things on the web"). Persist both with
|
|
46
47
|
`node .claude/skills/sm-tutorial/scripts/state.js set-identity --name "<name>" --tagline "<tagline>"`.
|
|
47
48
|
2. Backstage, `Write` `public/style.css`, `public/index.html`, and
|
|
@@ -69,10 +70,6 @@ node server.js
|
|
|
69
70
|
> Open `http://localhost:3000`: there is your site, named after you. Click
|
|
70
71
|
> **About** and back to **Home**.
|
|
71
72
|
>
|
|
72
|
-
> Now glance at the Map: it did not move. What you watched grow is your harness
|
|
73
|
-
> (Layer 1, the `.md` files and their references). The pages and stylesheet are
|
|
74
|
-
> Layer 2, what the harness produces. Two layers, one project.
|
|
75
|
-
>
|
|
76
73
|
> Does the site load and look clean?
|
|
77
74
|
|
|
78
75
|
Wait for confirmation. If `node server.js` reports `Cannot find module
|
|
@@ -81,11 +78,6 @@ Wait for confirmation. If `node server.js` reports `Cannot find module
|
|
|
81
78
|
|
|
82
79
|
## Chapter `add-page` - Add a page with your skill (~4 min)
|
|
83
80
|
|
|
84
|
-
**Context**: the daily move. You want a new page, so you ask your
|
|
85
|
-
`content-editor` to write it, the first time it runs **for real**. It reads
|
|
86
|
-
`docs/STYLE.md` and the shared stylesheet and writes a new page into `public/`.
|
|
87
|
-
The graph does not move (HTML is Layer 2).
|
|
88
|
-
|
|
89
81
|
Tell the tester:
|
|
90
82
|
|
|
91
83
|
> Your turn to delegate, the way you would on a real day. Tell me what page to
|
|
@@ -119,13 +111,17 @@ Wait for confirmation. Mark `add-page`: done. Auto-advance to `broken-ref`.
|
|
|
119
111
|
|
|
120
112
|
## Chapter `broken-ref` - A rename breaks a link (~4 min)
|
|
121
113
|
|
|
122
|
-
**Context**:
|
|
123
|
-
|
|
124
|
-
|
|
114
|
+
**Context**: the daily safety net, and where skill-map earns its keep: rename and
|
|
115
|
+
move things freely, and skill-map shows you exactly what you forgot to update
|
|
116
|
+
before it ships broken.
|
|
125
117
|
|
|
126
118
|
**Preparation**: none (the tester drives). Everything is watched live.
|
|
127
119
|
|
|
128
|
-
Tell the tester to rename the deploy runbook
|
|
120
|
+
Tell the tester to free the third terminal, then rename the deploy runbook
|
|
121
|
+
themselves (their file):
|
|
122
|
+
|
|
123
|
+
> In your **third terminal** (the one running `node server.js`), press
|
|
124
|
+
> **Ctrl+C** to stop the site server, then rename the deploy runbook there:
|
|
129
125
|
|
|
130
126
|
```bash
|
|
131
127
|
mv docs/DEPLOY.md docs/DEPLOYMENT.md
|
|
@@ -141,9 +137,7 @@ mv docs/DEPLOY.md docs/DEPLOYMENT.md
|
|
|
141
137
|
> and point the deploy-runbook link at `docs/DEPLOYMENT.md` (the new name). Save.
|
|
142
138
|
>
|
|
143
139
|
> Watch the **Map** again: the arrow snaps back, solid, and the red marker
|
|
144
|
-
> clears, all live.
|
|
145
|
-
> and skill-map shows you exactly what you forgot to update before it ships
|
|
146
|
-
> broken.
|
|
140
|
+
> clears, all live.
|
|
147
141
|
>
|
|
148
142
|
> Did the broken marker appear and then clear?
|
|
149
143
|
|
|
@@ -152,10 +146,6 @@ Wait for confirmation. The harness MUST be clean again before Act C. Mark
|
|
|
152
146
|
|
|
153
147
|
## Chapter `reserved` - A reserved name collides (~2 min)
|
|
154
148
|
|
|
155
|
-
**Context**: you add a quick helper skill and, without thinking, name it
|
|
156
|
-
`config`, a name the agent runtime already owns for its own built-in slash verb.
|
|
157
|
-
skill-map warns you before the runtime silently ignores your skill.
|
|
158
|
-
|
|
159
149
|
**Preparation**: `Write` `<provider_dir>/config/SKILL.md`:
|
|
160
150
|
```markdown
|
|
161
151
|
---
|
|
@@ -179,13 +169,12 @@ The watcher picks up the new skill. Tell the tester:
|
|
|
179
169
|
>
|
|
180
170
|
> Rename it to `new-page`: first rename the folder `<provider_dir>/config/` to
|
|
181
171
|
> `<provider_dir>/new-page/`. Then open `new-page/SKILL.md` and, at the top where
|
|
182
|
-
> the frontmatter says `name: config`, change it to `name: new-page
|
|
183
|
-
> the H1 to `# new-page`. Save.
|
|
172
|
+
> the frontmatter says `name: config`, change it to `name: new-page`. Save.
|
|
184
173
|
>
|
|
185
174
|
> Watch the **Map** again: the warning clears and the node is now `new-page`, all
|
|
186
|
-
> live.
|
|
187
|
-
>
|
|
188
|
-
>
|
|
175
|
+
> live. What cleared it was changing `frontmatter.name` (which for a skill must
|
|
176
|
+
> match its folder, so you renamed both). Now `new-page` is yours and the runtime
|
|
177
|
+
> will run it.
|
|
189
178
|
>
|
|
190
179
|
> Did the warning clear after the rename?
|
|
191
180
|
|
|
@@ -197,12 +186,6 @@ Wait for confirmation. Mark `reserved`: done. Auto-advance to `publish`.
|
|
|
197
186
|
|
|
198
187
|
## Chapter `publish` - Ship it: run the publish skill for real (~4 min)
|
|
199
188
|
|
|
200
|
-
**Context**: the harness is a set of instructions, and the `publish` skill ties
|
|
201
|
-
them together. You run it **for real**: it runs the link checker over your pages,
|
|
202
|
-
hands off to the `content-editor` if anything needs a fix, then follows the
|
|
203
|
-
deploy runbook. Same Layer 1 / Layer 2 split, the pages are output, so the Map
|
|
204
|
-
stays put while the pipeline runs.
|
|
205
|
-
|
|
206
189
|
**Preparation**: make sure the pages exist (`index`, `about`, `projects`). When
|
|
207
190
|
the tester asks to publish, **execute the publish flow for real** by following
|
|
208
191
|
`<provider_dir>/publish/SKILL.md`: run the `check-links` logic over every `.html`
|
|
@@ -215,7 +198,8 @@ Tell the tester:
|
|
|
215
198
|
> The site is ready. Tell me to publish and I'll run your `publish` skill for
|
|
216
199
|
> real: I follow its steps, run the link check across your pages, fix anything
|
|
217
200
|
> through the `content-editor`, and walk the deploy runbook, exactly what the
|
|
218
|
-
> skill says to do.
|
|
201
|
+
> skill says to do. (You can read the skill's content anytime by clicking the
|
|
202
|
+
> `publish` node on the Map, then opening its **Body** section.)
|
|
219
203
|
|
|
220
204
|
After running the flow, report what actually happened (keep promises conditional
|
|
221
205
|
on the real result):
|
|
@@ -229,9 +213,6 @@ on the real result):
|
|
|
229
213
|
> regenerate the pages (done), run the link check (done), start the server
|
|
230
214
|
> (next chapter).
|
|
231
215
|
>
|
|
232
|
-
> And the Map did not move while the pipeline ran: the pages are Layer 2 output;
|
|
233
|
-
> the harness on the canvas is Layer 1.
|
|
234
|
-
>
|
|
235
216
|
> The link check came back clean and `publish` is wired correctly across your
|
|
236
217
|
> pages. Shall we continue?
|
|
237
218
|
|
|
@@ -239,24 +220,17 @@ Wait for confirmation. Mark `publish`: done. Auto-advance to `stability`.
|
|
|
239
220
|
|
|
240
221
|
## Chapter `stability` - Set a node's stability (and the `.sm` sidecar) (~3 min)
|
|
241
222
|
|
|
242
|
-
**Context**: real maintenance includes marking how mature each piece is. skill-map
|
|
243
|
-
lets you tag a node's **stability** from the inspector. That is skill-map's own
|
|
244
|
-
metadata, so it lands in a co-located **`.sm` sidecar** next to the file (the
|
|
245
|
-
vendor file stays untouched), and the first `.sm` write asks for your consent.
|
|
246
|
-
|
|
247
223
|
This chapter is lens-agnostic: follow the `stability` chapter in the rich
|
|
248
|
-
daily-loop (`part-daily-loop.md`) verbatim,
|
|
249
|
-
|
|
250
|
-
|
|
224
|
+
daily-loop (`part-daily-loop.md`) verbatim, setting the `AGENTS` handbook node's
|
|
225
|
+
stability from the inspector, confirming the consent dialog, and watching the
|
|
226
|
+
stability badge plus the `AGENTS.sm` sidecar appear. Nothing here depends on the
|
|
251
227
|
lens.
|
|
252
228
|
|
|
253
229
|
Mark `stability`: done. Auto-advance to `golive`.
|
|
254
230
|
|
|
255
|
-
## Chapter `golive` - Your
|
|
231
|
+
## Chapter `golive` - Your website, live next to the graph (~3 min)
|
|
256
232
|
|
|
257
|
-
|
|
258
|
-
ending with the running portfolio on one side and the full harness graph on the
|
|
259
|
-
other. Lens-agnostic: follow the `golive` chapter in the rich daily-loop
|
|
233
|
+
Lens-agnostic: follow the `golive` chapter in the rich daily-loop
|
|
260
234
|
(`part-daily-loop.md`) verbatim (the serve commands and the closing congratulation
|
|
261
235
|
are identical), except when you name the harness pieces on the graph, say "the
|
|
262
236
|
handbook, the content-editor, the style guide, the publish skill, the link
|
|
@@ -155,11 +155,8 @@ Tell the tester:
|
|
|
155
155
|
> the link finds the real file and draws a solid arrow. Same kind of
|
|
156
156
|
> note, one `.md` apart: one resolves, the other does not.
|
|
157
157
|
>
|
|
158
|
-
>
|
|
159
|
-
>
|
|
160
|
-
> lands on a real file; the broken one would read 0.50 (a penalty, not
|
|
161
|
-
> "half sure") and is not drawn at all. The exact per-link numbers live
|
|
162
|
-
> in the inspector, next chapter.
|
|
158
|
+
> 💡 Tip: if the nodes are crowded, the map toolbar has a **Re-arrange
|
|
159
|
+
> layout** button that tidies things up.
|
|
163
160
|
>
|
|
164
161
|
> Confirm when you see the two arrows plus the broken-reference marker
|
|
165
162
|
> on the hub. If an arrow is missing, refresh the browser and let me
|
|
@@ -175,9 +172,6 @@ by hand in `edit-link`). If an arrow is missing, do not advance. Mark
|
|
|
175
172
|
The canvas only draws the resolved arrows; the full per-link breakdown,
|
|
176
173
|
including the broken one, lives in the Inspector. Open it on the hub.
|
|
177
174
|
|
|
178
|
-
> 💡 Tip: if the nodes are crowded, the map toolbar has a **Re-arrange
|
|
179
|
-
> layout** button that tidies things up.
|
|
180
|
-
>
|
|
181
175
|
> 🆕 Open the Inspector for **Demo TODO list** (click the node). Find
|
|
182
176
|
> the **Connections** section: **Outgoing** and **Incoming**.
|
|
183
177
|
> Demo TODO list lists **3 links** under Outgoing (the canvas drew two
|
|
@@ -192,6 +186,10 @@ including the broken one, lives in the Inspector. Open it on the hub.
|
|
|
192
186
|
> Open `demo-guideline` and it shows **0**: the broken link never landed
|
|
193
187
|
> on it. Three outgoing links on the hub, but only two reach a node.
|
|
194
188
|
>
|
|
189
|
+
> 💡 Tip: skill-map draws each connector's **confidence** as opacity.
|
|
190
|
+
> Both drawn arrows are solid (1.00) because each lands on a real file;
|
|
191
|
+
> the broken one is flagged instead of drawn.
|
|
192
|
+
>
|
|
195
193
|
> Let me know when you see it.
|
|
196
194
|
|
|
197
195
|
Mark `inspector`: done.
|
|
@@ -250,17 +248,19 @@ each ends with its own confirmation. Do NOT prepend an intro line to a block.
|
|
|
250
248
|
> Tell me when the tree is open.
|
|
251
249
|
|
|
252
250
|
> At the top of the sidebar there's a search box (placeholder
|
|
253
|
-
> `Search…`). Type `guideline`. Watch
|
|
254
|
-
>
|
|
255
|
-
>
|
|
256
|
-
> filters
|
|
251
|
+
> `Search…`). Type `guideline`. Watch the tree narrow to the two
|
|
252
|
+
> guideline nodes. The search matches a node's name, path, or
|
|
253
|
+
> description, and filters live, no Enter needed. The **Map** stays
|
|
254
|
+
> put: by default the search filters only the files list, not the map
|
|
255
|
+
> (the tip below changes that).
|
|
257
256
|
>
|
|
258
|
-
> Now clear the box. All four nodes come back
|
|
259
|
-
>
|
|
257
|
+
> Now clear the box. All four nodes come back in the tree. Confirm you
|
|
258
|
+
> saw it filter and then restore.
|
|
260
259
|
|
|
261
|
-
> Last one. In the tree, find the
|
|
262
|
-
>
|
|
263
|
-
>
|
|
260
|
+
> Last one. In the tree, find the `notes/todo` row (the **Demo TODO
|
|
261
|
+
> list** hub, the tree labels rows by file name): at its right edge
|
|
262
|
+
> there's a small **sitemap** icon (tooltip "Isolate this node and its
|
|
263
|
+
> direct links on the map"). Click it.
|
|
264
264
|
>
|
|
265
265
|
> The Map collapses to **Demo TODO list** plus only the nodes it draws
|
|
266
266
|
> an arrow to (`demo-skill`, `demo-guideline2`). That's how you focus on
|
|
@@ -271,8 +271,9 @@ each ends with its own confirmation. Do NOT prepend an intro line to a block.
|
|
|
271
271
|
> four nodes return.
|
|
272
272
|
>
|
|
273
273
|
> 💡 Tip: the map-icon button next to the search box controls whether
|
|
274
|
-
> the search also filters the **Map** (
|
|
275
|
-
>
|
|
274
|
+
> the search also filters the **Map** (off by default, which is why the
|
|
275
|
+
> map stayed put while only the tree narrowed). Click it on if you want
|
|
276
|
+
> a search to filter the map too.
|
|
276
277
|
>
|
|
277
278
|
> Did the map isolate and then restore?
|
|
278
279
|
|