@skill-map/cli 0.61.0 → 0.61.2
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 +16 -4
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/manifest.json +0 -2
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/prologue/en/__PROVIDER__/agents/demo-agent.md +0 -2
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/prologue/es/__PROVIDER__/agents/demo-agent.md +0 -2
- package/dist/cli/tutorial/sm-tutorial/references/_core.md +40 -33
- package/dist/cli/tutorial/sm-tutorial/references/_manifest.json +8 -13
- package/dist/cli/tutorial/sm-tutorial/references/_manifest.yml +3 -4
- package/dist/cli/tutorial/sm-tutorial/references/fixtures.md +2 -3
- package/dist/cli/tutorial/sm-tutorial/references/part-connect-harness.md +10 -11
- package/dist/cli/tutorial/sm-tutorial/references/part-daily-loop.md +101 -190
- package/dist/cli/tutorial/sm-tutorial/references/part-fundamentals.md +43 -26
- package/dist/cli/tutorial/sm-tutorial/references/part-project-kickoff.md +16 -9
- package/dist/cli/tutorial/sm-tutorial/references/part-settings.md +12 -42
- package/dist/cli.js +3 -3
- package/dist/index.js +3 -3
- package/dist/kernel/index.js +3 -3
- package/dist/ui/chunk-FVCFBXFY.js +3 -0
- package/dist/ui/index.html +1 -1
- package/dist/ui/{main-5GMGTLYQ.js → main-H6ARR2AP.js} +1 -1
- package/package.json +1 -1
- package/dist/ui/chunk-FDBHGLTW.js +0 -3
|
@@ -161,11 +161,19 @@ cd <cwd>
|
|
|
161
161
|
> Got the second terminal open and anchored to the folder? Confirm
|
|
162
162
|
> before we move on.
|
|
163
163
|
|
|
164
|
+
**HARD STOP here.** This message ends at the confirmation question
|
|
165
|
+
above, that is its own beat. Do NOT run step 5, do NOT render the
|
|
166
|
+
menu, do NOT add a "meanwhile / mientras tanto" bridge in the same
|
|
167
|
+
message. Wait for the tester to confirm the second terminal is open
|
|
168
|
+
and anchored; only then continue to step 5.
|
|
169
|
+
|
|
164
170
|
### 5. Initialise state, lay the universal files, show the menu
|
|
165
171
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
172
|
+
**Run this only after the tester has confirmed step 4.** Pre-flight
|
|
173
|
+
does NOT pre-lay any part's fixture and does NOT auto-enter a part. It
|
|
174
|
+
initialises state, lays the universal files every part needs, then
|
|
175
|
+
routes to the menu. The init + lay are silent (backstage); the menu is
|
|
176
|
+
the first thing the tester sees in this post-confirmation message:
|
|
169
177
|
|
|
170
178
|
- Create the state file (carries the detected provider, the running
|
|
171
179
|
`sm version`, the cwd, and the tester's language):
|
|
@@ -280,8 +288,12 @@ the `__PROVIDER__` token and skip kinds the provider does not claim.
|
|
|
280
288
|
`fixtures.js clear portfolio --provider <provider>`, `rm -rf .skill-map`.
|
|
281
289
|
2. `fixtures.js seed prologue-built --provider <provider> --lang <lang>`
|
|
282
290
|
(lays the six demo nodes, wires the hub, drops `private-credentials`).
|
|
291
|
+
Run this ALWAYS, even if a demo fixture from a prior prologue run is
|
|
292
|
+
on disk, so the deliberate broken reference is the pristine
|
|
293
|
+
`prologue-built` state, not whatever the tester edited in the
|
|
294
|
+
prologue (they resolve it by hand in `edit-link`).
|
|
283
295
|
3. `sm init` (single `.claude/` marker, no lens prompt), then `sm scan`.
|
|
284
|
-
If
|
|
296
|
+
If `.skill-map/` already exists, skip the init and just `sm scan`.
|
|
285
297
|
|
|
286
298
|
- **`seed`** (campaign parts `connect-harness`, `daily-loop`): builds
|
|
287
299
|
on the accumulating portfolio, but the tester may have jumped here.
|
|
@@ -23,12 +23,10 @@
|
|
|
23
23
|
"public/index.html",
|
|
24
24
|
"public/about.html",
|
|
25
25
|
"public/projects.html",
|
|
26
|
-
"public/posts.html",
|
|
27
26
|
"public/style.css",
|
|
28
27
|
"docs/STYLE.md",
|
|
29
28
|
"docs/DEPLOY.md",
|
|
30
29
|
"docs/DEPLOYMENT.md",
|
|
31
|
-
"docs/draft.md",
|
|
32
30
|
"__PROVIDER__/agents/content-editor.md",
|
|
33
31
|
"__PROVIDER__/skills/check-links",
|
|
34
32
|
"__PROVIDER__/commands/publish.md",
|
|
@@ -131,14 +131,16 @@ element. Decide with §Provider detection:
|
|
|
131
131
|
|
|
132
132
|
- `provider == claude` (Claude Code, blockquotes render as a styled
|
|
133
133
|
left bar): emit tester-facing messages with `> ` on every line,
|
|
134
|
-
including blank lines inside a multi-paragraph block.
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
134
|
+
including blank lines inside a multi-paragraph block. This is the
|
|
135
|
+
only active path today.
|
|
136
|
+
- `provider != claude` (coming soon: Antigravity CLI, agent-skills,
|
|
137
|
+
any other host where most non-Claude renderers show `>` as a
|
|
138
|
+
literal character): emit **plain prose**, NO `> ` prefix anywhere.
|
|
139
|
+
Kept as the wiring for the coming-soon providers; not exercised
|
|
140
|
+
while the tutorial demos `claude` only.
|
|
138
141
|
|
|
139
142
|
Sample messages throughout the part files are written in the Claude
|
|
140
|
-
variant (with `> `)
|
|
141
|
-
the wording is unchanged.
|
|
143
|
+
variant (with `> `).
|
|
142
144
|
|
|
143
145
|
**The rule, in one line**: every tester-facing line of prose carries
|
|
144
146
|
the `> ` bar in the Claude variant, context sentences, intros, tips,
|
|
@@ -257,41 +259,41 @@ on-disk convention:
|
|
|
257
259
|
| Provider | Base dir | Kinds it claims | Detect via env var(s) |
|
|
258
260
|
|----------------|-------------------|-----------------------------|--------------------------------------------------------|
|
|
259
261
|
| `claude` | `.claude/` | `agent`, `command`, `skill` | `CLAUDECODE=1` OR `AI_AGENT` starts with `claude-code` |
|
|
260
|
-
| `agent-skills` | `.agents/skills/` | `skill` only (vendor-neutral; also the on-disk home for Google's Antigravity CLI, which replaced the Gemini CLI on 2026-05-19 and adopted this open standard) |
|
|
261
|
-
| `openai` | `.codex/` | `agent` (`.codex/agents/*.toml`) |
|
|
262
|
-
|
|
263
|
-
**Decision logic, applied silently during pre-flight**:
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
`
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
they
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
>
|
|
277
|
-
>
|
|
278
|
-
>
|
|
262
|
+
| `agent-skills` | `.agents/skills/` | `skill` only (vendor-neutral; also the on-disk home for Google's Antigravity CLI, which replaced the Gemini CLI on 2026-05-19 and adopted this open standard) | coming soon (not selectable in the tutorial yet) |
|
|
263
|
+
| `openai` | `.codex/` | `agent` (`.codex/agents/*.toml`) | coming soon (not selectable in the tutorial yet) |
|
|
264
|
+
|
|
265
|
+
**Decision logic, applied silently during pre-flight**: the tutorial
|
|
266
|
+
demonstrates the `claude` provider only. `agent-skills` and `openai`
|
|
267
|
+
are **coming soon** and are not selectable here, so there is no
|
|
268
|
+
runtime to detect or opt into.
|
|
269
|
+
|
|
270
|
+
1. `provider = claude`, `<provider_dir> = .claude`, kinds =
|
|
271
|
+
`{agent, command, skill}`. Always.
|
|
272
|
+
2. Do NOT offer Antigravity / agent-skills / openai as an alternative,
|
|
273
|
+
and do NOT ask the tester which runtime hosts them. If a tester
|
|
274
|
+
says they use another runtime, acknowledge it briefly and explain
|
|
275
|
+
that those providers are coming soon, the tutorial demos `claude`
|
|
276
|
+
(`.claude/`) today:
|
|
277
|
+
|
|
278
|
+
> Heads up: skill-map also reads Antigravity, agent-skills and
|
|
279
|
+
> Codex projects, but those providers are coming soon in this
|
|
280
|
+
> tutorial. We'll demo skill-map's Claude provider (`.claude/`)
|
|
281
|
+
> today.
|
|
279
282
|
|
|
280
283
|
Persist `provider` into the state file (`tutorial.provider`) so a
|
|
281
|
-
resumed session does not re-detect.
|
|
284
|
+
resumed session does not re-detect. (It is always `claude` for now.)
|
|
282
285
|
|
|
283
286
|
**Global substitution rule**: the fixture scripts do the file-level
|
|
284
287
|
work. You pass `--provider <p>` (the value persisted in
|
|
285
288
|
`tutorial.provider`) and `--lang <l>`, and they resolve the
|
|
286
289
|
`__PROVIDER__` path token, skip files whose kind the provider does
|
|
287
290
|
not claim, and report the adjusted `nodeCount` plus the `skipped`
|
|
288
|
-
list in their summary.
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
the reality check below).
|
|
291
|
+
list in their summary. Today `provider` is always `claude`, so the
|
|
292
|
+
narration uses `.claude/` throughout; the `--provider` plumbing stays
|
|
293
|
+
wired so the coming-soon providers (`agent-skills` / Antigravity,
|
|
294
|
+
`openai`) drop in later without a narrative rewrite. The campaign
|
|
295
|
+
cross-link chapters target `claude` today (see the reality check
|
|
296
|
+
below).
|
|
295
297
|
|
|
296
298
|
**Reality check (don't mention to the tester)**: this skill ships
|
|
297
299
|
at `.claude/skills/sm-tutorial/`, so Claude Code is the only host
|
|
@@ -338,6 +340,11 @@ For every chapter:
|
|
|
338
340
|
Inviolable rule #6, NO "¿seguimos?"). `pace` only decides batching:
|
|
339
341
|
`per-step` presents one chapter per exchange, `auto-advance` may
|
|
340
342
|
chain chapters that need no tester action into one response.
|
|
343
|
+
**Either pace still emits every chapter's `Capítulo S.N` Announcement
|
|
344
|
+
(step 1).** `auto-advance` drops only the inter-chapter "¿seguimos?"
|
|
345
|
+
pause, never the per-chapter announcement, so any chapter with a
|
|
346
|
+
tester-facing beat always opens with its number, even when it
|
|
347
|
+
follows straight on from the previous one.
|
|
341
348
|
|
|
342
349
|
## Routing + menu (orchestrator)
|
|
343
350
|
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
},
|
|
70
70
|
{
|
|
71
71
|
"id": "manual",
|
|
72
|
-
"title": "The handbook and CLAUDE.md
|
|
72
|
+
"title": "The handbook (AGENTS.md) and CLAUDE.md",
|
|
73
73
|
"est_min": 2
|
|
74
74
|
},
|
|
75
75
|
{
|
|
@@ -132,19 +132,14 @@
|
|
|
132
132
|
"est_min": 3
|
|
133
133
|
},
|
|
134
134
|
{
|
|
135
|
-
"id": "
|
|
136
|
-
"title": "
|
|
137
|
-
"est_min": 4
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
"id": "orphan-draft",
|
|
141
|
-
"title": "A page nobody links to yet",
|
|
135
|
+
"id": "preview",
|
|
136
|
+
"title": "Bring it up and see your site",
|
|
142
137
|
"est_min": 2
|
|
143
138
|
},
|
|
144
139
|
{
|
|
145
|
-
"id": "
|
|
146
|
-
"title": "
|
|
147
|
-
"est_min":
|
|
140
|
+
"id": "add-page",
|
|
141
|
+
"title": "Add a page with your agent",
|
|
142
|
+
"est_min": 4
|
|
148
143
|
},
|
|
149
144
|
{
|
|
150
145
|
"id": "broken-ref",
|
|
@@ -162,8 +157,8 @@
|
|
|
162
157
|
"est_min": 4
|
|
163
158
|
},
|
|
164
159
|
{
|
|
165
|
-
"id": "
|
|
166
|
-
"title": "
|
|
160
|
+
"id": "stability",
|
|
161
|
+
"title": "Set a node's stability (and the `.sm` sidecar)",
|
|
167
162
|
"est_min": 3
|
|
168
163
|
},
|
|
169
164
|
{
|
|
@@ -113,7 +113,7 @@ parts:
|
|
|
113
113
|
status: active
|
|
114
114
|
chapters:
|
|
115
115
|
- id: kickoff ; title: "Start the portfolio (sm init on the real skeleton)" ; est_min: 2
|
|
116
|
-
- id: manual ; title: "The handbook and CLAUDE.md
|
|
116
|
+
- id: manual ; title: "The handbook (AGENTS.md) and CLAUDE.md" ; est_min: 2
|
|
117
117
|
- id: first-agent ; title: "The first harness agent (content-editor)" ; est_min: 2
|
|
118
118
|
- id: real-kinds ; title: "The real kinds in context" ; est_min: 2
|
|
119
119
|
|
|
@@ -144,13 +144,12 @@ parts:
|
|
|
144
144
|
status: active
|
|
145
145
|
chapters:
|
|
146
146
|
- id: setup ; title: "Make it yours, make it presentable" ; est_min: 3
|
|
147
|
+
- id: preview ; title: "Bring it up and see your site" ; est_min: 2
|
|
147
148
|
- id: add-page ; title: "Add a page with your agent" ; est_min: 4
|
|
148
|
-
- id: orphan-draft ; title: "A page nobody links to yet" ; est_min: 2
|
|
149
|
-
- id: wire-and-improve ; title: "Wire the draft in" ; est_min: 3
|
|
150
149
|
- id: broken-ref ; title: "A rename breaks a link" ; est_min: 4
|
|
151
150
|
- id: reserved ; title: "A reserved name collides" ; est_min: 2
|
|
152
151
|
- id: publish ; title: "Ship it: run /publish for real" ; est_min: 4
|
|
153
|
-
- id:
|
|
152
|
+
- id: stability ; title: "Set a node's stability (and the `.sm` sidecar)" ; est_min: 3
|
|
154
153
|
- id: golive ; title: "Your portfolio, live next to the graph" ; est_min: 3
|
|
155
154
|
|
|
156
155
|
# ----- parked: MCP returns later as its own iteration (body kept in part-mcp.md) -----
|
|
@@ -70,9 +70,8 @@ entered out of order.
|
|
|
70
70
|
|
|
71
71
|
`manifest.json#footprints` lists the full on-disk reach of each
|
|
72
72
|
fixture, INCLUDING files a part's later chapters add (the daily loop's
|
|
73
|
-
`
|
|
74
|
-
`
|
|
75
|
-
rename). `fixtures.js clear <footprint>` (part-entry resets) and
|
|
73
|
+
`public/style.css` + generated pages, the renamed `new-page` command,
|
|
74
|
+
`AGENTS.sm`; the portfolio's `DEPLOYMENT.md` rename). `fixtures.js clear <footprint>` (part-entry resets) and
|
|
76
75
|
`state.js wipe` (start-over) both read it, so the per-fixture path list
|
|
77
76
|
lives in ONE place. Add or drop a harness file there.
|
|
78
77
|
|
|
@@ -32,7 +32,7 @@ Wait for confirmation. Mark `check-links`: done.
|
|
|
32
32
|
|
|
33
33
|
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.
|
|
34
34
|
|
|
35
|
-
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. Backstage, get the content: `node .claude/skills/sm-tutorial/scripts/fixtures.js cat harness --file "__PROVIDER__/commands/publish.md" --provider <provider> --lang <lang>`, then render it
|
|
35
|
+
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. Backstage, get the content: `node .claude/skills/sm-tutorial/scripts/fixtures.js cat harness --file "__PROVIDER__/commands/publish.md" --provider <provider> --lang <lang>`, then render it as a **top-level fenced code block**: at column 0, NOT inside the `> ` blockquote and with NO leading indentation, so the tester's copy keeps every line flush left. The frontmatter fences (`---`) MUST land on column 0. If the block is rendered (or pasted) indented, the opening and closing `---` shift off column 0, the YAML never parses, and the `publish` node loads body-only without its `name` / `description` (`sm check` then warns `frontmatter-malformed`). Present the block below exactly as written.
|
|
36
36
|
|
|
37
37
|
> Create `.claude/commands/publish.md` with exactly this content (the first line is `---`, nothing before it):
|
|
38
38
|
|
|
@@ -78,7 +78,7 @@ Continue the tester message:
|
|
|
78
78
|
>
|
|
79
79
|
> Did the three arrows appear?
|
|
80
80
|
|
|
81
|
-
Wait for confirmation. You MAY use `Read` on the file afterwards to verify it landed. Mark `publish`: done.
|
|
81
|
+
Wait for confirmation. You MAY use `Read` on the file afterwards to verify it landed, in particular that the opening and closing `---` are flush at column 0. If a later `sm check` flags `frontmatter-malformed` on `publish.md`, the fences got indented on paste: have the tester re-align every line flush left (strip the leading spaces so `---` is at column 0), then the next scan reads it clean. Mark `publish`: done.
|
|
82
82
|
|
|
83
83
|
## Chapter `links` - The handbook becomes the hub (~4 min)
|
|
84
84
|
|
|
@@ -122,7 +122,7 @@ Wait for confirmation. You MAY use `Read` on the two files afterwards to verify
|
|
|
122
122
|
|
|
123
123
|
## Chapter `confidence` - How sure is each link (~3 min)
|
|
124
124
|
|
|
125
|
-
**Context**: skill-map records 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 broken-reference case is the one the tester met in the prologue (the
|
|
125
|
+
**Context**: skill-map records 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 broken-reference case is the one the tester met in the prologue (the `@demo-guideline` reference skill-map could not resolve, drawn as no arrow and flagged `reference-broken` at 0.50, then resolved by hand with `.md`). 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.
|
|
126
126
|
|
|
127
127
|
No file edits in this chapter, pure observation on the graph the tester just built.
|
|
128
128
|
|
|
@@ -147,14 +147,13 @@ Tell the tester:
|
|
|
147
147
|
>
|
|
148
148
|
> Your whole harness reads solid because every link lands on a real
|
|
149
149
|
> node, that is what a clean, fully wired graph looks like. So what
|
|
150
|
-
> does a link that does NOT resolve look like? You
|
|
151
|
-
> prologue: `@demo-guideline` was a
|
|
152
|
-
>
|
|
153
|
-
> it
|
|
154
|
-
>
|
|
155
|
-
>
|
|
156
|
-
>
|
|
157
|
-
> real file and drew a solid arrow at **1.00**.
|
|
150
|
+
> does a link that does NOT resolve look like? You met one back in the
|
|
151
|
+
> prologue: `@demo-guideline` was a reference skill-map could not
|
|
152
|
+
> resolve, it had nothing to land on, so skill-map drew no arrow and
|
|
153
|
+
> flagged it as a **broken reference**, its confidence knocked down to
|
|
154
|
+
> **0.50** by the broken penalty. The fix was one character: adding
|
|
155
|
+
> `.md` (`@demo-guideline.md`) turned it into a file reference to the
|
|
156
|
+
> real `demo-guideline.md`, and it drew a solid arrow at **1.00**.
|
|
158
157
|
>
|
|
159
158
|
> So confidence here is really about resolution: **1.00** for a link
|
|
160
159
|
> that lands on a real node, **0.50** for one flagged broken. There is
|