@skill-map/cli 0.53.4 → 0.53.5
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 +19 -10
- package/dist/cli/tutorial/sm-tutorial/references/_core.md +2 -2
- package/dist/cli/tutorial/sm-tutorial/references/_manifest.yml +9 -9
- package/dist/cli/tutorial/sm-tutorial/references/fixtures.md +9 -9
- package/dist/cli/tutorial/sm-tutorial/references/part-authoring.md +2 -2
- package/dist/cli/tutorial/sm-tutorial/references/part-cli.md +2 -2
- package/dist/cli/tutorial/sm-tutorial/references/part-connect-harness.md +30 -15
- package/dist/cli/tutorial/sm-tutorial/references/part-fundamentals.md +86 -53
- package/dist/cli/tutorial/sm-tutorial/references/part-live-site.md +2 -2
- package/dist/cli/tutorial/sm-tutorial/references/part-maintain.md +25 -41
- package/dist/cli/tutorial/sm-tutorial/references/part-mcp.md +6 -6
- package/dist/cli/tutorial/sm-tutorial/references/part-plugins.md +1 -1
- package/dist/cli/tutorial/sm-tutorial/references/part-project-kickoff.md +11 -7
- package/dist/cli/tutorial/sm-tutorial/references/part-run-harness.md +34 -8
- package/dist/cli/tutorial/sm-tutorial/references/part-settings.md +2 -2
- package/dist/cli.js +3 -3
- package/dist/index.js +3 -3
- package/dist/kernel/index.js +3 -3
- package/dist/ui/{chunk-R2IJXS47.js → chunk-7OJPO3XD.js} +6 -6
- package/dist/ui/{chunk-JQE4N6JU.js → chunk-MWDBZ2BE.js} +1 -1
- package/dist/ui/index.html +1 -1
- package/dist/ui/{main-ZXOCLPLS.js → main-QLIHFXBC.js} +2 -2
- package/package.json +1 -1
|
@@ -145,7 +145,7 @@ every other `<cwd>` mention.
|
|
|
145
145
|
> output, and I verify.
|
|
146
146
|
> 2. **A second terminal**: open it now (new window or tab), then run
|
|
147
147
|
> the command below so it's anchored **exactly to this folder**.
|
|
148
|
-
> That's where you copy and paste every
|
|
148
|
+
> That's where you copy and paste every command I give you to run.
|
|
149
149
|
|
|
150
150
|
```bash
|
|
151
151
|
cd <cwd>
|
|
@@ -195,12 +195,13 @@ the files the prologue's own chapters lay as taught steps, exactly this
|
|
|
195
195
|
set: `<provider_dir>/agents/demo-agent.md`,
|
|
196
196
|
`<provider_dir>/skills/demo-skill/`,
|
|
197
197
|
`<provider_dir>/commands/demo-command.md`, `notes/todo.md`,
|
|
198
|
-
`notes/demo-guideline.md`, `notes/
|
|
198
|
+
`notes/demo-guideline.md`, `notes/demo-guideline2.md`,
|
|
199
|
+
`notes/private-credentials.md`. This is the
|
|
199
200
|
single source for that list. Four entry points delete exactly this set
|
|
200
201
|
when the prologue ran first in the dir: `portfolio-init`, the campaign
|
|
201
|
-
`seed` fast-forward, and `backstage-init` (Part
|
|
202
|
+
`seed` fast-forward, and `backstage-init` (Part 6), each so the part's
|
|
202
203
|
own fixture starts from a clean slate, plus start-over (§Menu, resume,
|
|
203
|
-
wrap-up). Part
|
|
204
|
+
wrap-up). Part 7 `cli` is the inverse
|
|
204
205
|
consumer: its `prologue-built` seed *lays* this fixture (the
|
|
205
206
|
connector-chapter subset, without `notes/private-credentials.md`)
|
|
206
207
|
instead of deleting it, see `fixtures.md` §Seed snapshots. Keep the list
|
|
@@ -332,7 +333,7 @@ When a part begins, honour its `preflight` from the manifest:
|
|
|
332
333
|
`preflight: seed` to fast-forward into them directly, see the `seed`
|
|
333
334
|
case below; `portfolio-init` is just Part 1's flavour of that,
|
|
334
335
|
handling the Part 0 to Part 1 transition.)
|
|
335
|
-
- **`backstage-init`** (Part
|
|
336
|
+
- **`backstage-init`** (Part 6 `extend`): the part teaches plugins on
|
|
336
337
|
its own **master fixture**, distinct from both the demo and the
|
|
337
338
|
portfolio, so on entry make the master fixture the only one on disk.
|
|
338
339
|
Silently, with no narration: (1) clear whatever prior-part fixture is
|
|
@@ -352,10 +353,10 @@ When a part begins, honour its `preflight` from the manifest:
|
|
|
352
353
|
`Write` the part's fixture (read `references/fixtures.md` for the
|
|
353
354
|
verbatim `master-agent` / `master-skill` / `notes/ideas` files; skip
|
|
354
355
|
kinds the provider doesn't claim). If nothing needed clearing and the
|
|
355
|
-
dir was already initialised with the master fixture in place (Part
|
|
356
|
+
dir was already initialised with the master fixture in place (Part 6
|
|
356
357
|
re-entry), that is fine: skip the init and just ensure the fixture
|
|
357
358
|
files are present.
|
|
358
|
-
- **`seed: prologue-built`** (Part
|
|
359
|
+
- **`seed: prologue-built`** (Part 7 `cli`): the part reads the **Part 0
|
|
359
360
|
demo fixture**, NOT the cumulative portfolio, so on entry make that
|
|
360
361
|
fixture the one on disk. Read the state, then:
|
|
361
362
|
- Demo fixture already present (the tester came straight from the
|
|
@@ -374,7 +375,15 @@ When a part begins, honour its `preflight` from the manifest:
|
|
|
374
375
|
On entry, read the state file:
|
|
375
376
|
- If every predecessor campaign part up the `prereq` chain is `done`
|
|
376
377
|
→ reuse the accumulated state; an `sm scan` to refresh is enough,
|
|
377
|
-
nothing to lay.
|
|
378
|
+
nothing to lay. **`mcp` is the exception**: it is ordered last,
|
|
379
|
+
after `extend` (Part 6) and `cli` (Part 7), which both replace the
|
|
380
|
+
portfolio on disk with their own master / demo fixture, so its
|
|
381
|
+
accumulated state cannot be trusted to still be the portfolio.
|
|
382
|
+
`mcp` therefore ALWAYS re-lays its `harness-connected` snapshot on
|
|
383
|
+
entry (clearing a master / demo fixture first if one is present,
|
|
384
|
+
the same clears the `backstage-init` and `prologue-built` cases
|
|
385
|
+
do), then `sm init` if `.skill-map/` is missing and `sm scan`,
|
|
386
|
+
exactly like the fast-forward branch below.
|
|
378
387
|
- Else → **fast-forward, silently** (backstage, do not narrate the
|
|
379
388
|
plumbing): first, if the prologue ran first in this dir, clear the
|
|
380
389
|
full Part 0 demo fixture set (§Fixture and state templates) so the
|
|
@@ -413,7 +422,7 @@ All three are specified in `_core.md`:
|
|
|
413
422
|
the **numbered start menu** (Part 0 is option 1, the recommended
|
|
414
423
|
first pick); the menu (the ToC from `_manifest.yml`, numbered,
|
|
415
424
|
completed parts ticked, `planned` parts hidden, `prereq` gating only
|
|
416
|
-
seedless parts, none today since Part
|
|
425
|
+
seedless parts, none today since Part 7 `cli` now self-seeds) is the
|
|
417
426
|
entry point on the first
|
|
418
427
|
invocation and after every part closes / on resume. Render it with
|
|
419
428
|
the format in `_core.md` §Menu format.
|
|
@@ -421,7 +430,7 @@ All three are specified in `_core.md`:
|
|
|
421
430
|
wipe list is whatever the tester's parts actually created:
|
|
422
431
|
`tutorial-state.yml`, `findings.md`, `.skillmapignore`,
|
|
423
432
|
`.skill-map/`, the full Part 0 demo fixture set (§Fixture and state
|
|
424
|
-
templates), the Part
|
|
433
|
+
templates), the Part 6 fixture if `extend` ran
|
|
425
434
|
(`<provider_dir>/agents/master-agent.md`,
|
|
426
435
|
`<provider_dir>/skills/master-skill/`, `notes/ideas.md`,
|
|
427
436
|
`.skill-map/plugins/`), `link-validation/` if the CLI part ran,
|
|
@@ -293,11 +293,11 @@ For every chapter:
|
|
|
293
293
|
§Menu format).
|
|
294
294
|
- **Which parts to list**: parts in `order`, `status: active` only
|
|
295
295
|
(`planned` parts are hidden). A part with a `seed` (the campaign
|
|
296
|
-
parts plus Part
|
|
296
|
+
parts plus Part 7 `cli`) is always shown, even out of order, its
|
|
297
297
|
`preflight: seed` fast-forwards the project into it (SKILL.md
|
|
298
298
|
§Entering a part). A part with a `prereq` but NO `seed` would be
|
|
299
299
|
shown only once its `prereq` is `done`; no active part is in that
|
|
300
|
-
state today (Part
|
|
300
|
+
state today (Part 7 `cli` used to be, now it self-seeds).
|
|
301
301
|
- **After the tester picks**: walk that part; when it ends, run
|
|
302
302
|
§Closing a part (a tester-facing close, then this menu).
|
|
303
303
|
- **Adding content** is data-only: a new chapter in a part (or a new
|
|
@@ -51,7 +51,7 @@ parts:
|
|
|
51
51
|
- id: ignore ; title: "Silence a file via .skillmapignore" ; est_min: 2
|
|
52
52
|
|
|
53
53
|
- id: extend
|
|
54
|
-
order:
|
|
54
|
+
order: 6
|
|
55
55
|
title: "Extend skill-map for the site"
|
|
56
56
|
# Spans three chapter libraries; dispatch by chapter-id prefix:
|
|
57
57
|
# settings-* -> part-settings.md
|
|
@@ -81,7 +81,7 @@ parts:
|
|
|
81
81
|
- id: authoring-6-upgrade ; title: "Try `sm plugins upgrade`" ; est_min: 2
|
|
82
82
|
|
|
83
83
|
- id: cli
|
|
84
|
-
order:
|
|
84
|
+
order: 7
|
|
85
85
|
title: "The CLI in depth"
|
|
86
86
|
step_file: part-cli.md
|
|
87
87
|
pace: auto-advance
|
|
@@ -142,8 +142,9 @@ parts:
|
|
|
142
142
|
prereq: connect-harness
|
|
143
143
|
status: active
|
|
144
144
|
chapters:
|
|
145
|
-
- id: generate
|
|
146
|
-
- id: serve
|
|
145
|
+
- id: generate ; title: "The agent generates the HTML in public/" ; est_min: 3
|
|
146
|
+
- id: serve ; title: "node server.js: your portfolio, live next to the graph" ; est_min: 3
|
|
147
|
+
- id: editor-live ; title: "Let the content-editor agent write a posts page (optional)" ; est_min: 3
|
|
147
148
|
|
|
148
149
|
- id: maintain
|
|
149
150
|
order: 4
|
|
@@ -157,14 +158,13 @@ parts:
|
|
|
157
158
|
chapters:
|
|
158
159
|
- id: broken-ref ; title: "A ref breaks (you rename DEPLOY.md)" ; est_min: 3
|
|
159
160
|
- id: analyzers ; title: "The analyzer catalogue (what sm check catches)" ; est_min: 3
|
|
160
|
-
- id: orphans ; title: "Orphans (
|
|
161
|
+
- id: orphans ; title: "Orphans (a page nobody links to)" ; est_min: 2
|
|
161
162
|
- id: reserved ; title: "Reserved names" ; est_min: 2
|
|
162
163
|
- id: sidecar ; title: "Annotations .sm and consent" ; est_min: 3
|
|
163
|
-
- id: versions ; title: "Versions: sm bump and history" ; est_min: 2
|
|
164
164
|
|
|
165
165
|
- id: mcp
|
|
166
|
-
order:
|
|
167
|
-
title: "MCP" #
|
|
166
|
+
order: 8
|
|
167
|
+
title: "MCP" # standalone appendix, ordered last; ALWAYS re-seeds harness-connected (extend/cli wipe the portfolio before it)
|
|
168
168
|
step_file: part-mcp.md
|
|
169
169
|
pace: auto-advance
|
|
170
170
|
preflight: seed
|
|
@@ -175,7 +175,7 @@ parts:
|
|
|
175
175
|
- id: mcp-node ; title: "content-editor declares an MCP tool; the mcp:// node appears" ; est_min: 3
|
|
176
176
|
|
|
177
177
|
- id: live-site
|
|
178
|
-
order:
|
|
178
|
+
order: 5
|
|
179
179
|
title: "Ship the site (the full publish pipeline)" # the finale / climax
|
|
180
180
|
step_file: part-live-site.md
|
|
181
181
|
pace: auto-advance
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Fixture templates
|
|
2
2
|
|
|
3
3
|
Fixtures the orchestrator lays for the auto-fixtured parts. Two full
|
|
4
|
-
templates live here: the **master fixture** (Part
|
|
4
|
+
templates live here: the **master fixture** (Part 6, "Extend
|
|
5
5
|
skill-map", `backstage-init`) right below, and the **portfolio
|
|
6
6
|
fixture** (Part 1, "The project from zero", `portfolio-init`) at the
|
|
7
7
|
end of this file. The **Part 0 demo fixture** is not templated here:
|
|
@@ -18,7 +18,7 @@ context for. Holds for every command fixture wherever it is defined
|
|
|
18
18
|
(today: the prologue `demo-command`, the `publish` command, and the
|
|
19
19
|
`reserved` chapter's `init`).
|
|
20
20
|
|
|
21
|
-
## Master fixture (Part
|
|
21
|
+
## Master fixture (Part 6): layout (per provider)
|
|
22
22
|
|
|
23
23
|
Per §Provider detection in `SKILL.md`, the `<provider_dir>`
|
|
24
24
|
placeholder resolves to `.claude/` or `.agents/skills/` depending
|
|
@@ -146,7 +146,7 @@ Per finding:
|
|
|
146
146
|
Laid backstage before the tester's `sm init` in Part 1. The Express
|
|
147
147
|
skeleton (`server.js`, `package.json`, `public/index.html`) is plain
|
|
148
148
|
scaffolding, not `.md`, so the scan ignores it; it makes the project
|
|
149
|
-
real and runnable (Part 3 runs it, Part
|
|
149
|
+
real and runnable (Part 3 runs it, Part 5 ships it). The one boot node is the
|
|
150
150
|
handbook `AGENTS.md`. On `agent-skills` / Antigravity (no `agent`
|
|
151
151
|
kind) the harness still works: the agent member is created as a skill
|
|
152
152
|
in a later chapter.
|
|
@@ -224,7 +224,7 @@ Append to the universal `.skillmapignore` (written in pre-flight, see
|
|
|
224
224
|
## Seed snapshots (for `preflight: seed`)
|
|
225
225
|
|
|
226
226
|
When the orchestrator enters a seedable part out of order (the campaign
|
|
227
|
-
parts when their predecessors are not `done`, or Part
|
|
227
|
+
parts when their predecessors are not `done`, or Part 7 `cli` when the
|
|
228
228
|
demo fixture is not the one on disk), it fast-forwards the project by
|
|
229
229
|
laying the snapshot below, then `sm init` (if `.skill-map/` is missing) +
|
|
230
230
|
`sm scan`. These are **checklists, not content**: each row names a file
|
|
@@ -259,16 +259,16 @@ Everything in `harness-built`, PLUS the Part 2 wiring:
|
|
|
259
259
|
After laying a campaign snapshot the map matches the state a tester would
|
|
260
260
|
have at the END of the part just before the one being entered.
|
|
261
261
|
|
|
262
|
-
### Seed snapshot: `prologue-built` (Part
|
|
262
|
+
### Seed snapshot: `prologue-built` (Part 7 `cli`)
|
|
263
263
|
|
|
264
264
|
NOT cumulative and NOT the portfolio: this is the **Part 0 demo
|
|
265
|
-
fixture**, the
|
|
265
|
+
fixture**, the six standalone demo nodes with `notes/todo` wired as the
|
|
266
266
|
hub, the clean state (`✓ No issues`) at the end of the prologue's
|
|
267
|
-
connector chapters. Part
|
|
267
|
+
connector chapters. Part 7 only reads it. Because it is a different
|
|
268
268
|
fixture from the portfolio, entry first resets any portfolio on disk
|
|
269
269
|
(see SKILL.md §Entering a part, the `cli` case).
|
|
270
270
|
|
|
271
271
|
1. `<provider_dir>/agents/demo-agent.md` <- SKILL.md §Fixture and state templates. (The `.skillmapignore` is universal, already on disk from pre-flight; the snapshot does not lay it.)
|
|
272
|
-
2. `<provider_dir>/skills/demo-skill/SKILL.md`, `<provider_dir>/commands/demo-command.md`, `notes/todo.md`, `notes/demo-guideline.md` <- part-fundamentals.md, chapter `kinds`.
|
|
273
|
-
3. EDIT `notes/todo.md`: wire the hub bullets pointing at the
|
|
272
|
+
2. `<provider_dir>/skills/demo-skill/SKILL.md`, `<provider_dir>/commands/demo-command.md`, `notes/todo.md`, `notes/demo-guideline.md`, `notes/demo-guideline2.md` <- part-fundamentals.md, chapter `kinds`.
|
|
273
|
+
3. EDIT `notes/todo.md`: wire the hub bullets pointing at the five other nodes <- part-fundamentals.md, chapter `connectors`.
|
|
274
274
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Part
|
|
1
|
+
# Part 6 (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 6.
|
|
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 7: The CLI in depth - step library
|
|
2
2
|
|
|
3
3
|
The deep-dive into the rest of the CLI: browsing verbs, ASCII graph + export, broken-ref issues, the `.sm` annotation consent prompt, and validating links to folders outside the scan scope. `pace: auto-advance` (walk straight into the next chapter's Announcement once one is marked done) and `preflight: seed` with the `prologue-built` snapshot: it self-seeds its own copy of the Part 0 demo fixture, so it works even if the campaign already replaced that fixture with the portfolio (see SKILL.md §Entering a part, the `cli` case). Shared conventions (tone, provider detection / substitution, the `> ` rendering rule, the per-step cycle) live in `_core.md`; do not restate them here.
|
|
4
4
|
|
|
@@ -13,7 +13,7 @@ sm show .claude/skills/demo-skill/SKILL.md
|
|
|
13
13
|
sm check
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
Expected: you see the
|
|
16
|
+
Expected: you see the 6 fixture nodes listed with their kind: `demo-skill` (skill), `demo-agent` (agent), `demo-command` (command), `notes/todo` (`markdown`, the catch-all per the `kinds` chapter), and the two guideline notes `notes/demo-guideline` and `notes/demo-guideline2` (both `markdown`, the hub's confidence pair: a faint `mentions` at 0.50 and a resolved `references` at 1.00). `check` reads the persisted `scan_issues` table, it does NOT re-walk the filesystem. The fixture is clean (the connector / inspector chapters captured the latest state before Ctrl+C), so the verb prints `✓ No issues`. We will plant one in the `issues` chapter and watch the rule catch it after a fresh `sm scan`.
|
|
17
17
|
|
|
18
18
|
Mark `browse`: done.
|
|
19
19
|
|
|
@@ -55,9 +55,9 @@ Wait for confirmation. Mark `check-links`: done.
|
|
|
55
55
|
|
|
56
56
|
On `agent-skills` / Antigravity there is no `command` kind, so skip this whole chapter and fold its purpose into the prose of the next one.
|
|
57
57
|
|
|
58
|
-
Tell the tester to create the file themselves (it is their project's file, Inviolable rule #2). Substitute `<provider_dir>` per `_core.md` in the path you give them:
|
|
58
|
+
Tell the tester to create the file themselves (it is their project's file, Inviolable rule #2). Substitute `<provider_dir>` per `_core.md` in the path you give them. The frontmatter fence (`---`) MUST sit on column 0 with no leading spaces: present the block below exactly as written, and if the tester pastes it indented, have them strip the leading whitespace. An indented `---` does not parse as YAML, so the `publish` node would land without its `name`, `description`, or `shortcut`.
|
|
59
59
|
|
|
60
|
-
> Create `.claude/commands/publish.md` with exactly this content:
|
|
60
|
+
> Create `.claude/commands/publish.md` with exactly this content (the first line is `---`, nothing before it):
|
|
61
61
|
|
|
62
62
|
```markdown
|
|
63
63
|
---
|
|
@@ -99,6 +99,12 @@ Continue the tester message:
|
|
|
99
99
|
> One node, three connectors, three link kinds. The harness is
|
|
100
100
|
> starting to look like a real graph.
|
|
101
101
|
>
|
|
102
|
+
> 💡 Tip: to tidy every node into a clean layout, click the
|
|
103
|
+
> **Re-arrange layout** button in the map toolbar (tooltip
|
|
104
|
+
> "Re-arrange the visible nodes"). Handy whenever the graph starts to
|
|
105
|
+
> look crowded. If you've dragged nodes by hand it asks for
|
|
106
|
+
> confirmation first, otherwise it just re-arranges.
|
|
107
|
+
>
|
|
102
108
|
> Did the three arrows appear?
|
|
103
109
|
|
|
104
110
|
Wait for confirmation. You MAY use `Read` on the file afterwards to verify it landed. Mark `publish`: done.
|
|
@@ -150,34 +156,43 @@ Wait for confirmation. You MAY use `Read` on the two files afterwards to verify
|
|
|
150
156
|
|
|
151
157
|
## Chapter `confidence` - How sure is each link (~3 min)
|
|
152
158
|
|
|
153
|
-
**Context**:
|
|
159
|
+
**Context**: skill-map estimates how sure it is of every connection and shows that as opacity. In this harness every link resolves to a real node, so they all read solid (1.00); the faint, low-confidence case is the one the tester met in the prologue (the bare `@demo-guideline` mention that had nothing to resolve to). Here we open the Inspector on a real harness node, read the all-solid numbers, and point back to that prologue contrast. Mirrors the prologue's connectors beat on the portfolio.
|
|
154
160
|
|
|
155
161
|
No file edits in this chapter, pure observation on the graph the tester just built.
|
|
156
162
|
|
|
157
163
|
Tell the tester:
|
|
158
164
|
|
|
159
165
|
> Last beat of this part: how sure is skill-map about each connection?
|
|
160
|
-
>
|
|
161
|
-
>
|
|
162
|
-
>
|
|
166
|
+
> It estimates a **confidence** for every link and draws it as opacity:
|
|
167
|
+
> the surer a connection is real, the more solid the arrow; the less
|
|
168
|
+
> sure, the more translucent.
|
|
163
169
|
>
|
|
164
170
|
> Open the Inspector for the `publish` node (click it on the **Map**).
|
|
165
171
|
> Scroll down to the **Connections** panel and read the **Outgoing**
|
|
166
|
-
> rows. Each row shows the link kind and a confidence badge
|
|
172
|
+
> rows. Each row shows the link kind and a confidence badge, and here
|
|
173
|
+
> every one reads **1.00**:
|
|
174
|
+
>
|
|
175
|
+
> - `publish -> docs/DEPLOY.md` (`references`) is a markdown link to a
|
|
176
|
+
> file that exists on disk, so skill-map is certain.
|
|
177
|
+
> - `publish -> content-editor` (`mentions`) resolves to the real
|
|
178
|
+
> content-editor agent, and `publish -> check-links` (`invokes`)
|
|
179
|
+
> resolves to the real check-links skill, so both are certain too.
|
|
167
180
|
>
|
|
168
|
-
>
|
|
169
|
-
>
|
|
170
|
-
>
|
|
171
|
-
> -
|
|
172
|
-
>
|
|
173
|
-
>
|
|
174
|
-
>
|
|
181
|
+
> Your whole harness reads solid because every link lands on a real
|
|
182
|
+
> node, that is what a clean, fully wired graph looks like. So what
|
|
183
|
+
> does a *low*-confidence connector look like? You saw one back in the
|
|
184
|
+
> prologue: `@demo-guideline` was a bare `@`-mention pointing at a
|
|
185
|
+
> note, and a bare `@handle` only firmly resolves to an agent, so it
|
|
186
|
+
> had nothing to land on and stayed a soft guess at **0.50**, drawn
|
|
187
|
+
> translucent. The fix there was one character: `@demo-guideline2.md`,
|
|
188
|
+
> the same handle plus a `.md`, resolved to the real file and jumped to
|
|
189
|
+
> **1.00**.
|
|
175
190
|
>
|
|
176
191
|
> The number is the certainty, and the opacity on the canvas is just
|
|
177
192
|
> that number drawn as transparency: a glance at the **Map** tells you
|
|
178
193
|
> which connections are rock solid and which are skill-map's best
|
|
179
194
|
> guess.
|
|
180
195
|
>
|
|
181
|
-
> Do you see
|
|
196
|
+
> Do you see every badge reading 1.00 in the Inspector?
|
|
182
197
|
|
|
183
198
|
Wait for confirmation. Mark `confidence`: done. Last chapter of the part: apply §Closing a part (the close names the part by its title and routes back to the menu; do NOT lead into the next part from here).
|
|
@@ -32,9 +32,9 @@ Wait for confirmation. Mark `init`: done.
|
|
|
32
32
|
|
|
33
33
|
## Chapter `kinds` - The other kinds appear (~1 min)
|
|
34
34
|
|
|
35
|
-
Leave the browser open and the terminal with `sm` running. You create
|
|
35
|
+
Leave the browser open and the terminal with `sm` running. You create five more nodes **without any cross-fixture links** yet, pure standalone nodes, so the tester sees five new dots pop in. Three new **kinds** show up in this step (skill, command, markdown); the last two files are sibling `markdown` notes (`demo-guideline`, `demo-guideline2`) the hub in the `connectors` chapter reaches two ways, a faint mention that can't resolve and the same handle plus `.md` that resolves to a real file.
|
|
36
36
|
|
|
37
|
-
Create these
|
|
37
|
+
Create these five files (with `Write`), exactly in this order. Per §Provider detection, **substitute `.claude/` with the detected `<provider_dir>` and skip files whose kind is not in the provider's supported set** (`agent-skills` / Antigravity: skip both `demo-agent` and `demo-command`, only the skill + the three markdown notes remain). Adjust the node count, the "five new nodes" message, and the file list shown to the tester in the sample below accordingly:
|
|
38
38
|
|
|
39
39
|
1. `.claude/skills/demo-skill/SKILL.md` (kind: skill):
|
|
40
40
|
```markdown
|
|
@@ -102,16 +102,16 @@ Create these four files (with `Write`), exactly in this order. Per §Provider de
|
|
|
102
102
|
# Pending
|
|
103
103
|
```
|
|
104
104
|
|
|
105
|
-
4. `notes/demo-guideline.md`, second `kind: markdown` node,
|
|
106
|
-
|
|
107
|
-
|
|
105
|
+
4. `notes/demo-guideline.md`, second `kind: markdown` node, reached
|
|
106
|
+
in the `connectors` chapter by a bare `@`-mention that can't
|
|
107
|
+
resolve, so it stays skill-map's faintest connector:
|
|
108
108
|
```markdown
|
|
109
109
|
---
|
|
110
110
|
name: demo-guideline
|
|
111
111
|
description: |
|
|
112
|
-
Static reference notes
|
|
113
|
-
|
|
114
|
-
|
|
112
|
+
Static reference notes the rest of the demo points at. The hub
|
|
113
|
+
reaches it with a bare `@`-mention, which stays a faint guess
|
|
114
|
+
(0.50) because it can't resolve to a known entity.
|
|
115
115
|
tags: [notes, demo]
|
|
116
116
|
---
|
|
117
117
|
|
|
@@ -124,27 +124,49 @@ Create these four files (with `Write`), exactly in this order. Per §Provider de
|
|
|
124
124
|
- Body stays minimal, only what's needed to teach the kind.
|
|
125
125
|
```
|
|
126
126
|
|
|
127
|
+
5. `notes/demo-guideline2.md`, a sibling `markdown` node identical
|
|
128
|
+
to `demo-guideline`, reached by the same handle plus a `.md`
|
|
129
|
+
extension (`@demo-guideline2.md`), which makes it a file reference
|
|
130
|
+
that resolves to this node and lands at full confidence:
|
|
131
|
+
```markdown
|
|
132
|
+
---
|
|
133
|
+
name: demo-guideline2
|
|
134
|
+
description: |
|
|
135
|
+
Sibling of demo-guideline. The hub reaches it with an
|
|
136
|
+
`@`-mention that carries the `.md` extension, so the link
|
|
137
|
+
resolves to this file and lands certain (1.00).
|
|
138
|
+
tags: [notes, demo]
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
# Demo Guideline 2
|
|
142
|
+
|
|
143
|
+
Same conventions as demo-guideline; it exists so the hub can
|
|
144
|
+
reach it with a resolved reference instead of a bare mention.
|
|
145
|
+
```
|
|
146
|
+
|
|
127
147
|
Tell the tester:
|
|
128
148
|
|
|
129
|
-
> Look at the browser.
|
|
130
|
-
> `demo-skill`, `demo-command`, **Demo TODO list**,
|
|
131
|
-
>
|
|
149
|
+
> Look at the browser. Five new nodes should have popped in:
|
|
150
|
+
> `demo-skill`, `demo-command`, **Demo TODO list**, `demo-guideline`,
|
|
151
|
+
> and `demo-guideline2`.
|
|
152
|
+
> Six total now, **still unconnected**: they're floating dots.
|
|
132
153
|
> The viewport auto-fits whenever a node is added or removed, so
|
|
133
|
-
> all
|
|
154
|
+
> all six should be visible without panning.
|
|
134
155
|
>
|
|
135
|
-
> What I just did behind the scenes: I created
|
|
156
|
+
> What I just did behind the scenes: I created five new files in
|
|
136
157
|
> your project, and the watcher picked them up on its own, that's
|
|
137
|
-
> why
|
|
158
|
+
> why five new dots appeared without you running anything:
|
|
138
159
|
>
|
|
139
160
|
> - `.claude/skills/demo-skill/SKILL.md` (kind: skill)
|
|
140
161
|
> - `.claude/commands/demo-command.md` (kind: command)
|
|
141
162
|
> - `notes/todo.md` (kind: markdown)
|
|
142
163
|
> - `notes/demo-guideline.md` (kind: markdown)
|
|
164
|
+
> - `notes/demo-guideline2.md` (kind: markdown)
|
|
143
165
|
>
|
|
144
166
|
> Same loop you'll use yourself in the next step, only this time
|
|
145
167
|
> the writes came from me.
|
|
146
168
|
>
|
|
147
|
-
> Did the
|
|
169
|
+
> Did the five appear? Confirm so we can wire them up.
|
|
148
170
|
|
|
149
171
|
Wait for confirmation. Mark `kinds`: done.
|
|
150
172
|
|
|
@@ -168,24 +190,24 @@ Tell the tester:
|
|
|
168
190
|
>
|
|
169
191
|
> Watch the browser. The `demo-agent` card should refresh its
|
|
170
192
|
> description in real time, no reload, no Ctrl+C, same watcher
|
|
171
|
-
> that picked up the
|
|
193
|
+
> that picked up the five new nodes a moment ago, this time
|
|
172
194
|
> reacting to YOUR edit.
|
|
173
195
|
>
|
|
174
|
-
> Confirm so we wire the
|
|
196
|
+
> Confirm so we wire the six up.
|
|
175
197
|
|
|
176
198
|
Wait for confirmation. You MAY use `Read` on the file afterwards to verify the change landed (read-only, allowed under Inviolable rule #1) before moving on. Mark `first-edit`: done.
|
|
177
199
|
|
|
178
200
|
## Chapter `connectors` - The connectors light up (~2 min)
|
|
179
201
|
|
|
180
|
-
You edit `notes/todo.md` so it becomes the **hub** that points to each of the other
|
|
202
|
+
You edit `notes/todo.md` so it becomes the **hub** that points to each of the other five nodes. Each bullet uses a syntax that maps to a specific **link kind**:
|
|
181
203
|
|
|
182
204
|
- an `@handle` token → kind `mentions`
|
|
205
|
+
- an `@handle.md` token (a `@` handle that ends in a file extension) → kind `references`
|
|
183
206
|
- a `/slash` token → kind `invokes`
|
|
184
|
-
- a markdown link `[text](path)` → kind `references`
|
|
185
207
|
|
|
186
|
-
Five bullets, three kinds: `invokes` and `mentions` each appear twice, `references` once. The last two bullets
|
|
208
|
+
Five bullets, three kinds: `invokes` and `mentions` each appear twice, `references` once. The last two bullets are the confidence lesson: a bare `@demo-guideline` mention (which can't resolve, so it stays a faint guess) next to `@demo-guideline2.md`, the same handle shape plus a `.md` extension that points at a real sibling file (so it resolves and lands certain). Two separate nodes, two clearly different confidences.
|
|
187
209
|
|
|
188
|
-
Apply with `Edit` on `notes/todo.md` (do not rewrite the file). Per §Provider detection, **substitute `.claude/` with the detected `<provider_dir>` and drop any bullet whose target node was not created in the `kinds` chapter** (on `agent-skills` / Antigravity there is no agent and no command → skip the `@demo-agent` and `/demo-command` bullets; the
|
|
210
|
+
Apply with `Edit` on `notes/todo.md` (do not rewrite the file). Per §Provider detection, **substitute `.claude/` with the detected `<provider_dir>` and drop any bullet whose target node was not created in the `kinds` chapter** (on `agent-skills` / Antigravity there is no agent and no command → skip the `@demo-agent` and `/demo-command` bullets; the two guideline bullets stay, so the confidence contrast, faint mention 0.50 vs resolved reference 1.00, is intact on those providers too).
|
|
189
211
|
|
|
190
212
|
**Edit `notes/todo.md`**: append these bullets after the `# Pending` heading:
|
|
191
213
|
|
|
@@ -193,9 +215,8 @@ Apply with `Edit` on `notes/todo.md` (do not rewrite the file). Per §Provider d
|
|
|
193
215
|
- [ ] Brief @demo-agent on the rough edges.
|
|
194
216
|
- [ ] Run /demo-command before publishing.
|
|
195
217
|
- [ ] Trigger /demo-skill when the input lands.
|
|
196
|
-
- [ ] Re-read the
|
|
197
|
-
[demo-guideline](./demo-guideline.md) before shipping.
|
|
198
218
|
- [ ] Ping @demo-guideline if the conventions change.
|
|
219
|
+
- [ ] Ping @demo-guideline2.md if the conventions change.
|
|
199
220
|
```
|
|
200
221
|
|
|
201
222
|
Tell the tester:
|
|
@@ -207,22 +228,32 @@ Tell the tester:
|
|
|
207
228
|
> - `Demo TODO list → demo-agent` (kind: `mentions`)
|
|
208
229
|
> - `Demo TODO list → demo-command` (kind: `invokes`)
|
|
209
230
|
> - `Demo TODO list → demo-skill` (kind: `invokes`)
|
|
210
|
-
> - `Demo TODO list → demo-guideline` (kind: `
|
|
211
|
-
> - `Demo TODO list → demo-
|
|
231
|
+
> - `Demo TODO list → demo-guideline` (kind: `mentions`, the bare `@` handle)
|
|
232
|
+
> - `Demo TODO list → demo-guideline2` (kind: `references`, the `@` handle with a `.md` extension)
|
|
233
|
+
>
|
|
234
|
+
> The kind comes from the syntax in the bullet: an `@handle` is a
|
|
235
|
+
> mention, a `/skill` or `/command` is an invoke, and an `@handle`
|
|
236
|
+
> that ends in a file extension (`@name.md`) is a reference, the
|
|
237
|
+
> extension turns the name drop into a file pointer. Five arrows,
|
|
238
|
+
> three kinds.
|
|
239
|
+
>
|
|
240
|
+
> Now look closely: the two guideline arrows are not equally solid.
|
|
241
|
+
> Skill-map draws each connector's **confidence** as opacity, how
|
|
242
|
+
> sure it is the link resolves to something real:
|
|
212
243
|
>
|
|
213
|
-
>
|
|
214
|
-
>
|
|
215
|
-
>
|
|
244
|
+
> - `@demo-guideline` is a bare `@`-mention. A bare mention only
|
|
245
|
+
> firmly resolves to an *agent*, and `demo-guideline` is a note,
|
|
246
|
+
> not an agent, so skill-map keeps it a soft guess (0.50), drawn
|
|
247
|
+
> faint. (That's also why `@demo-agent` above is solid: it does
|
|
248
|
+
> resolve to a real agent.)
|
|
249
|
+
> - `@demo-guideline2.md` adds the `.md`, so skill-map reads a file
|
|
250
|
+
> pointer, finds the real `demo-guideline2.md` node, and is certain
|
|
251
|
+
> (1.00), drawn solid.
|
|
216
252
|
>
|
|
217
|
-
>
|
|
218
|
-
>
|
|
219
|
-
>
|
|
220
|
-
>
|
|
221
|
-
> it's certain (1.00) and looks solid; the `@demo-guideline` mention
|
|
222
|
-
> is a looser name drop, a softer guess (0.50), so it's drawn fainter.
|
|
223
|
-
> A glance at the map tells you which links are rock solid and which
|
|
224
|
-
> are skill-map's best guess; the exact number per link is in the
|
|
225
|
-
> inspector, next chapter.
|
|
253
|
+
> Same handle, one `.md` apart, and the confidence jumps from a guess
|
|
254
|
+
> to a certainty. A glance at the map tells you which links are rock
|
|
255
|
+
> solid and which are skill-map's best guess; the exact number per
|
|
256
|
+
> link is in the inspector, next chapter.
|
|
226
257
|
>
|
|
227
258
|
> Confirm when you see it. If a connector is missing, refresh the
|
|
228
259
|
> browser and let me know.
|
|
@@ -238,12 +269,11 @@ The connector opacity tells the confidence story at a glance; the exact per-link
|
|
|
238
269
|
> by default): it has two sections, **Outgoing** and **Incoming**.
|
|
239
270
|
> Demo TODO list lists **5 links** under Outgoing (the hub) and 0
|
|
240
271
|
> under Incoming; open the Inspector for a targeted node to see its
|
|
241
|
-
> Incoming count (
|
|
242
|
-
>
|
|
243
|
-
>
|
|
244
|
-
>
|
|
245
|
-
>
|
|
246
|
-
> `mentions` of it reads `0.50`.
|
|
272
|
+
> Incoming count (each node the hub points at shows **1**). Each row
|
|
273
|
+
> shows the link kind (`mentions`, `invokes`, `references`) and a
|
|
274
|
+
> badge with its confidence: the numeric value. Here you'll see the
|
|
275
|
+
> contrast in numbers, the `mentions` to `demo-guideline` reads
|
|
276
|
+
> `0.50`, while the `references` to `demo-guideline2` reads `1.00`.
|
|
247
277
|
>
|
|
248
278
|
> 💡 Tip: if all these changes left the nodes crowded together, the
|
|
249
279
|
> map toolbar has a **Re-arrange layout** button (tooltip "Re-arrange
|
|
@@ -283,7 +313,7 @@ Per §Provider detection, on `agent-skills` / Antigravity the fixture has fewer
|
|
|
283
313
|
> by default: click the expand handle there (the `>` arrow, its
|
|
284
314
|
> tooltip reads "Expand files panel"). The sidebar opens into a
|
|
285
315
|
> **folder tree** (a nested view of your folders and the nodes inside
|
|
286
|
-
> them): your
|
|
316
|
+
> them): your six nodes grouped under `.claude/` and `notes/`, each
|
|
287
317
|
> row showing its kind and how many links go in and out.
|
|
288
318
|
>
|
|
289
319
|
> Tell me when the tree is open.
|
|
@@ -292,11 +322,12 @@ Per §Provider detection, on `agent-skills` / Antigravity the fixture has fewer
|
|
|
292
322
|
|
|
293
323
|
> At the top of that sidebar there's a search box (placeholder
|
|
294
324
|
> `Search…`). Type `guideline`. Watch both halves at once: the tree
|
|
295
|
-
> narrows down to `demo-guideline` and
|
|
296
|
-
>
|
|
325
|
+
> narrows down to the two guideline nodes (`demo-guideline` and
|
|
326
|
+
> `demo-guideline2`) and the **Map** drops every node except those
|
|
327
|
+
> two. The search matches a node's name, path,
|
|
297
328
|
> or description, and filters live as you type, no Enter needed.
|
|
298
329
|
>
|
|
299
|
-
> Now clear the box. All
|
|
330
|
+
> Now clear the box. All six nodes come back, in both the tree and
|
|
300
331
|
> the Map. Confirm you saw it filter and then restore.
|
|
301
332
|
|
|
302
333
|
**Beat 3, isolate (tester does this).**
|
|
@@ -306,7 +337,8 @@ Per §Provider detection, on `agent-skills` / Antigravity the fixture has fewer
|
|
|
306
337
|
> "Isolate this node and its direct links on the map"). Click it.
|
|
307
338
|
>
|
|
308
339
|
> The Map collapses to **Demo TODO list** plus only the nodes it
|
|
309
|
-
> links to (`demo-command`, `demo-skill`, `demo-guideline
|
|
340
|
+
> links to (`demo-command`, `demo-skill`, `demo-guideline`,
|
|
341
|
+
> `demo-guideline2`).
|
|
310
342
|
> `demo-agent`, which lost its only connector back in the last step,
|
|
311
343
|
> drops out of view, and the Inspector opens on **Demo TODO list**.
|
|
312
344
|
> That's how you
|
|
@@ -314,7 +346,7 @@ Per §Provider detection, on `agent-skills` / Antigravity the fixture has fewer
|
|
|
314
346
|
>
|
|
315
347
|
> To bring the rest back, look at the toolbar along the bottom of
|
|
316
348
|
> the Map: there's a **Show all** button (an eye icon). Click it and
|
|
317
|
-
> all
|
|
349
|
+
> all six nodes return.
|
|
318
350
|
>
|
|
319
351
|
> Did the map isolate and then restore?
|
|
320
352
|
|
|
@@ -344,14 +376,14 @@ description: |
|
|
|
344
376
|
API_TOKEN: example-not-real
|
|
345
377
|
```
|
|
346
378
|
|
|
347
|
-
It lands in the map as a
|
|
379
|
+
It lands in the map as a seventh node (`notes/private-credentials`); the watcher sees it like any other `.md`. Do NOT pause to confirm the appearance, it folds into the single vanish confirmation at the end of this step.
|
|
348
380
|
|
|
349
381
|
**The tester hides it (single tester-facing message, one confirmation).**
|
|
350
382
|
|
|
351
383
|
Give the tester a mental map of the folder so they know where the file lives, then the glob that hides it, all in ONE message. Use `Bash` (`ls -la`, plus `ls -la notes/` if a deeper view helps) for the real listing and apply the host-dependent rendering rule. Per Inviolable rule #2, the agent does NOT touch `.skillmapignore` with its `Edit` tool, the tester edits it from their own editor:
|
|
352
384
|
|
|
353
385
|
> One last step. Your `private-credentials` note just popped into
|
|
354
|
-
> the map as a
|
|
386
|
+
> the map as a seventh node, that's the watcher again. Now let's hide
|
|
355
387
|
> it. Here's what your directory looks like right now:
|
|
356
388
|
|
|
357
389
|
```
|
|
@@ -367,6 +399,7 @@ Give the tester a mental map of the folder so they know where the file lives, th
|
|
|
367
399
|
└── notes/
|
|
368
400
|
├── todo.md
|
|
369
401
|
├── demo-guideline.md
|
|
402
|
+
├── demo-guideline2.md
|
|
370
403
|
└── private-credentials.md ← what we want to hide
|
|
371
404
|
```
|
|
372
405
|
|
|
@@ -387,8 +420,8 @@ notes/private-*.md
|
|
|
387
420
|
>
|
|
388
421
|
> Watch the browser when you save. The
|
|
389
422
|
> `notes/private-credentials` node should disappear from the
|
|
390
|
-
> **Map** in real time, without restarting anything.
|
|
391
|
-
> back to
|
|
423
|
+
> **Map** in real time, without restarting anything. Seven nodes
|
|
424
|
+
> back to six.
|
|
392
425
|
>
|
|
393
426
|
> Did the node vanish?
|
|
394
427
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Part
|
|
1
|
+
# Part 5: Ship the site (the full publish pipeline) (step library, finale, `pipeline` + `golive`)
|
|
2
2
|
|
|
3
3
|
The finale, the climax of the whole campaign. In Part 3 you ran the
|
|
4
4
|
harness once, the simple way (generate two pages, serve them). Here you
|
|
@@ -134,7 +134,7 @@ Tell the tester:
|
|
|
134
134
|
> Now take it all in at once. On one side, the real running site you
|
|
135
135
|
> can click through. On the other, the skill-map graph of the harness
|
|
136
136
|
> that built it: the handbook, the content editor, the style guide,
|
|
137
|
-
> the publish command, the link checker,
|
|
137
|
+
> the publish command, the link checker, all wired
|
|
138
138
|
> together. You started in an empty folder with nothing, and you have
|
|
139
139
|
> ended with a real, running site and a living map of how it all fits.
|
|
140
140
|
>
|