@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
|
@@ -113,7 +113,7 @@ Wait for confirmation. Mark `analyzers`: done.
|
|
|
113
113
|
|
|
114
114
|
## Chapter `orphans` - A page nobody links to (~3 min)
|
|
115
115
|
|
|
116
|
-
**Context**: a different kind of loose end. A node can be perfectly valid and still be an orphan: nothing in the harness links to it. We create a draft page that no one references, and `sm
|
|
116
|
+
**Context**: a different kind of loose end. A node can be perfectly valid and still be an orphan: nothing in the harness links to it. We create a draft page that no one references; it lands on the **Map** as a floating dot, and `sm show` confirms it has no incoming links. The point is to separate three ideas the tester now has names for: orphan (nothing points at it) vs broken-ref (a link with no target) vs issue (a rule violation). Note: orphan-ness is a property of the graph (visible on the Map / inspector), there is no `sm check` analyzer for it. The separate `sm orphans` verb is unrelated, it surfaces history stranded by a rename, not unlinked pages, so do NOT use it here.
|
|
117
117
|
|
|
118
118
|
`Write` `docs/draft.md` (markdown kind), a half-finished page nobody has wired up yet:
|
|
119
119
|
|
|
@@ -138,19 +138,28 @@ Tell the tester:
|
|
|
138
138
|
> I dropped a new note into your project, `docs/draft.md`, a
|
|
139
139
|
> half-finished page. Look at the **Map**: it shows up as a floating
|
|
140
140
|
> dot with no arrows touching it. Nothing in your harness links to it,
|
|
141
|
-
> which makes it an **orphan**.
|
|
141
|
+
> which makes it an **orphan**. Click the dot, the inspector shows no
|
|
142
|
+
> connections in or out.
|
|
143
|
+
>
|
|
144
|
+
> You can confirm the same thing from the CLI:
|
|
142
145
|
>
|
|
143
146
|
> ```bash
|
|
144
|
-
> sm
|
|
147
|
+
> sm show docs/draft.md
|
|
145
148
|
> ```
|
|
146
149
|
>
|
|
147
|
-
>
|
|
148
|
-
>
|
|
150
|
+
> It prints the node's details, and there is **no "Links in"
|
|
151
|
+
> section**, nothing references it. That absence is exactly what
|
|
152
|
+
> "orphan" means here.
|
|
153
|
+
>
|
|
154
|
+
> It is worth keeping three ideas apart, because they are easy to
|
|
155
|
+
> confuse:
|
|
149
156
|
>
|
|
150
157
|
> - **orphan**: a real, valid node that simply has no incoming link
|
|
151
|
-
> (your `docs/draft`). Not an error, just unreferenced
|
|
158
|
+
> (your `docs/draft`). Not an error, just unreferenced, and visible
|
|
159
|
+
> on the Map as a floating dot.
|
|
152
160
|
> - **broken-ref**: a link whose target file does not exist (the one
|
|
153
|
-
> you triggered by renaming the runbook). That is a real issue
|
|
161
|
+
> you triggered by renaming the runbook). That is a real issue
|
|
162
|
+
> `sm check` reports.
|
|
154
163
|
> - **issue**: any rule violation `sm check` reports (broken-ref is
|
|
155
164
|
> one family; name-reserved, self-loop and the rest are others).
|
|
156
165
|
>
|
|
@@ -159,7 +168,14 @@ Tell the tester:
|
|
|
159
168
|
> reachable from anywhere. When you link to it later, it stops being
|
|
160
169
|
> an orphan.
|
|
161
170
|
>
|
|
162
|
-
>
|
|
171
|
+
> (Heads up: there is also an `sm orphans` command, but it is a
|
|
172
|
+
> different tool. It tracks history left stranded when you rename a
|
|
173
|
+
> file that had tracked state, not pages with no links, so it will
|
|
174
|
+
> not list `docs/draft`. Running it here prints "no orphan issues",
|
|
175
|
+
> which is correct.)
|
|
176
|
+
>
|
|
177
|
+
> Did `docs/draft` land as a floating dot, with `sm show` confirming
|
|
178
|
+
> no links in?
|
|
163
179
|
|
|
164
180
|
Wait for confirmation. Mark `orphans`: done.
|
|
165
181
|
|
|
@@ -266,36 +282,4 @@ sm sidecar annotate AGENTS.md
|
|
|
266
282
|
>
|
|
267
283
|
> Did the prompt appear, and does `AGENTS.sm` exist now?
|
|
268
284
|
|
|
269
|
-
Wait for confirmation. You MAY use `Read` on `AGENTS.sm` to verify it landed. Mark `sidecar`: done.
|
|
270
|
-
|
|
271
|
-
## Chapter `versions` - Bump a version, read its history (~3 min)
|
|
272
|
-
|
|
273
|
-
**Context**: now that the consent is granted, the day-to-day versioning verbs go through silently. `sm bump` increments a node's frontmatter version and appends a record to its `.sm` companion; `sm history` reads that trail back. We bump the content editor and read its history. Same consent gate as the previous chapter, already satisfied.
|
|
274
|
-
|
|
275
|
-
This is a CLI beat, the tester runs everything (substitute `<provider_dir>` in the path per `_core.md`):
|
|
276
|
-
|
|
277
|
-
```bash
|
|
278
|
-
sm bump content-editor
|
|
279
|
-
sm history content-editor
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
> `sm bump <node>` is the everyday versioning verb: it nudges the
|
|
283
|
-
> `version` field in the node's frontmatter up by one and appends an
|
|
284
|
-
> entry to that node's `.sm` companion file, recording that the bump
|
|
285
|
-
> happened. Because you already granted consent in the last chapter,
|
|
286
|
-
> it runs without prompting (the `.sm` write is pre-authorized for
|
|
287
|
-
> this checkout).
|
|
288
|
-
>
|
|
289
|
-
> `sm history <node>` reads that trail back: it prints the version
|
|
290
|
-
> entries skill-map has recorded for the content editor, so you can
|
|
291
|
-
> see how it has changed over time. Right after one bump you will see
|
|
292
|
-
> the single entry the bump just wrote.
|
|
293
|
-
>
|
|
294
|
-
> The two verbs are a pair: `sm bump` writes a version checkpoint into
|
|
295
|
-
> the companion file, `sm history` reads the checkpoints back out.
|
|
296
|
-
> Your `.md` body never gets cluttered with this, it all lives in the
|
|
297
|
-
> `.sm` alongside it.
|
|
298
|
-
>
|
|
299
|
-
> Does `sm history` show the bump you just made?
|
|
300
|
-
|
|
301
|
-
Wait for confirmation. Mark `versions`: done. Last chapter of the part: apply §Closing a part (the close names the part by its title and routes back to the menu).
|
|
285
|
+
Wait for confirmation. You MAY use `Read` on `AGENTS.sm` to verify it landed. Mark `sidecar`: done. Last chapter of the part: apply §Closing a part (the close names the part by its title and routes back to the menu).
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# Part
|
|
1
|
+
# Part 8: MCP (step library, `mcp-*` ids)
|
|
2
2
|
|
|
3
|
-
This is a chapter apart,
|
|
4
|
-
`auto-advance`, preflight `
|
|
5
|
-
connected portfolio harness
|
|
6
|
-
|
|
7
|
-
`_core.md`.
|
|
3
|
+
This is a chapter apart, a standalone appendix that comes last in the
|
|
4
|
+
book. Pace `auto-advance`, preflight `seed` (`harness-connected`, so it
|
|
5
|
+
fast-forwards onto the connected portfolio harness whether the campaign
|
|
6
|
+
was just run in this directory or you jumped straight here). One chapter
|
|
7
|
+
only. Shared conventions live in `_core.md`.
|
|
8
8
|
|
|
9
9
|
## Chapter `mcp-node` - The agent reaches for an MCP tool (~3 min)
|
|
10
10
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Part
|
|
1
|
+
# Part 6 (b): Extend skill-map - plugins (step library, `tour-*` ids)
|
|
2
2
|
|
|
3
3
|
Guided tour of the **built-in plugins** that ship with `sm`. Three
|
|
4
4
|
steps: a quick mental model of what plugins are plus a peek at
|
|
@@ -5,7 +5,7 @@ starts an actual project: a tiny personal **portfolio website**,
|
|
|
5
5
|
fully static, served by a ~15-line Express server, plus the
|
|
6
6
|
`.claude/` **harness** that maintains it. skill-map maps the harness
|
|
7
7
|
(the `.md` assets and how they reference each other); the site itself
|
|
8
|
-
is plain HTML the harness produces (Part 3 runs it, Part
|
|
8
|
+
is plain HTML the harness produces (Part 3 runs it, Part 5 ships it).
|
|
9
9
|
`pace: per-step`, `preflight: portfolio-init`. Shared
|
|
10
10
|
conventions live in `_core.md`.
|
|
11
11
|
|
|
@@ -54,8 +54,9 @@ Wait for confirmation. Mark `kickoff`: done.
|
|
|
54
54
|
|
|
55
55
|
**Context**: the dogfood beat. Real Claude Code projects keep a
|
|
56
56
|
`CLAUDE.md` that just points at `AGENTS.md` (this very repo does).
|
|
57
|
-
That one-line pointer is a real `
|
|
58
|
-
|
|
57
|
+
That one-line pointer is a real `references` link (the `.md` extension
|
|
58
|
+
makes `@AGENTS.md` a file pointer, not a bare mention), the tester's
|
|
59
|
+
first connector on the real project.
|
|
59
60
|
|
|
60
61
|
Tell the tester to create the file themselves (it is their project's
|
|
61
62
|
file, Inviolable rule #2):
|
|
@@ -68,10 +69,13 @@ file, Inviolable rule #2):
|
|
|
68
69
|
> ```
|
|
69
70
|
>
|
|
70
71
|
> Save it. Watch the map: a new `CLAUDE.md` node appears, with a
|
|
71
|
-
> `
|
|
72
|
-
>
|
|
73
|
-
>
|
|
74
|
-
>
|
|
72
|
+
> `references` connector pointing at `AGENTS.md`, solid at 1.00.
|
|
73
|
+
> Because `@AGENTS.md` carries the `.md` extension, skill-map reads it
|
|
74
|
+
> as a file pointer (the same `@name.md` reference you met in the
|
|
75
|
+
> prologue, not a bare mention), and since the handbook is right there
|
|
76
|
+
> the link resolves with full confidence. It tells anyone (and
|
|
77
|
+
> skill-map) that `CLAUDE.md` defers to the handbook. This is exactly
|
|
78
|
+
> how this tool's own repo is wired.
|
|
75
79
|
>
|
|
76
80
|
> Did the connector light up?
|
|
77
81
|
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
# Part 3: Run the harness (your site, live) (step library, `generate` + `serve`)
|
|
1
|
+
# Part 3: Run the harness (your site, live) (step library, `generate` + `serve` + `editor-live`)
|
|
2
2
|
|
|
3
3
|
The first payoff: the harness you built and wired in the earlier parts
|
|
4
4
|
finally does its job and you see a real site running, without waiting
|
|
5
5
|
for the finale. Pace `auto-advance`, preflight `seed` (`harness-connected`,
|
|
6
|
-
so a tester can jump straight here).
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
so a tester can jump straight here). Three chapters: `generate` (the
|
|
7
|
+
agent writes the HTML pages), `serve` (the tester runs the site next to
|
|
8
|
+
the graph), then an optional `editor-live` (the tester lets the real
|
|
9
|
+
`content-editor` agent write a posts page). This is a deliberately
|
|
9
10
|
simple, working pass: maintenance, MCP and the full publish pipeline
|
|
10
11
|
come in the parts after it. Shared conventions live in `_core.md`.
|
|
11
12
|
|
|
@@ -149,7 +150,32 @@ stop the server with Ctrl+C and the edge case for ports applies the
|
|
|
149
150
|
same as elsewhere. Remind them they can leave the server running or
|
|
150
151
|
stop it with Ctrl+C; either way the next parts do not need it.
|
|
151
152
|
|
|
152
|
-
Mark `serve`: done.
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
153
|
+
Mark `serve`: done. Auto-advance to the optional `editor-live` chapter.
|
|
154
|
+
|
|
155
|
+
## Chapter `editor-live` - Let the content-editor agent write a posts page for real (optional) (~3 min)
|
|
156
|
+
|
|
157
|
+
**Context**: optional payoff, and the first time the tester runs a harness member for real instead of playing it. In `generate` the tester (as the agent) wrote the HTML by hand; here the actual `content-editor` agent does the job. The tester asks for a new **posts** page, the tutorial invokes the agent, and a real `public/posts.html` lands, proof that the nodes on the map are runnable, not just a diagram. The Layer-1 / Layer-2 split still holds: the new HTML does NOT move the graph (HTML is not `.md`). Fully skippable; run it or skip it, the part closes either way.
|
|
158
|
+
|
|
159
|
+
On `agent-skills` / Antigravity the `content-editor` member is a **skill**, not an `agent`; invoke it as a skill and keep everything else identical.
|
|
160
|
+
|
|
161
|
+
This chapter is OPTIONAL and the tester opts in. Offer it; if they skip, go straight to the part close below.
|
|
162
|
+
|
|
163
|
+
Tell the tester:
|
|
164
|
+
|
|
165
|
+
> Optional last beat, and the fun one: so far you have *played* the
|
|
166
|
+
> `content-editor` yourself. Want to see it run for real? Ask me to add
|
|
167
|
+
> a **posts** page with your agent, for example: "use the
|
|
168
|
+
> content-editor agent to add a posts page". I'll invoke the real
|
|
169
|
+
> `content-editor` in your project; it reads its own rules and the
|
|
170
|
+
> style guide, then writes a new static page into `public/`.
|
|
171
|
+
>
|
|
172
|
+
> Watch two things: the new page lands in `public/` (and shows on the
|
|
173
|
+
> live site when you open it), and the **Map does NOT move**, same
|
|
174
|
+
> Layer-1 / Layer-2 split as before, the agent's HTML output is not
|
|
175
|
+
> part of the harness graph.
|
|
176
|
+
>
|
|
177
|
+
> Or just tell me to skip it and we'll wrap up this part.
|
|
178
|
+
|
|
179
|
+
If the tester opts in: invoke the project's `content-editor` (the `<provider_dir>/agents/content-editor.md` agent, or the skill on `agent-skills`) via the Task tool to write ONE new static page `public/posts.html`, following the agent's own rules and `docs/STYLE.md` (plain HTML, no framework, no client JS, one page per file, a nav link back to Home), holding two or three short sample posts (a heading plus a sentence or two each). Do NOT edit `public/index.html` or any `.md` harness file, and do NOT edit the agent definition. If the subagent is not invocable in the tester's setup, act as the `content-editor` yourself following the same rules so the beat still lands. Then tell the tester to open `http://localhost:3000/posts.html` (refresh and navigate there), confirm the posts page is live and links back home, and confirm the **Map stayed still**.
|
|
180
|
+
|
|
181
|
+
Wait for confirmation (ran it or skipped). Mark `editor-live`: done. Last chapter of the part: apply §Closing a part (the close names the part by its title and routes back to the menu; this is a mid-campaign payoff, NOT the campaign finale, so do not sign the campaign off here).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Part
|
|
1
|
+
# Part 6 (a): Extend skill-map - settings (step library, `settings-*` ids)
|
|
2
2
|
|
|
3
|
-
Step bodies for the settings chapters of Part
|
|
3
|
+
Step bodies for the settings chapters of Part 6 (config layers, the
|
|
4
4
|
`sm config` verbs, the active provider lens), plus the shared step
|
|
5
5
|
`settings-6-contributions` that the plugin-authoring chapters reuse.
|
|
6
6
|
The SKILL.md orchestrator dispatches each `settings-*` chapter id
|
package/dist/cli.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// cli/entry.ts
|
|
2
2
|
|
|
3
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
3
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ab2725f4-cc31-54b9-b0c4-0d9778b2143e")}catch(e){}}();
|
|
4
4
|
import { existsSync as existsSync33 } from "fs";
|
|
5
5
|
import { Builtins, Cli as Cli2 } from "clipanion";
|
|
6
6
|
|
|
@@ -246,7 +246,7 @@ function bucketByKind(kind, instance, bag) {
|
|
|
246
246
|
// package.json
|
|
247
247
|
var package_default = {
|
|
248
248
|
name: "@skill-map/cli",
|
|
249
|
-
version: "0.53.
|
|
249
|
+
version: "0.53.5",
|
|
250
250
|
description: "skill-map reference implementation \u2014 kernel + CLI + adapters.",
|
|
251
251
|
license: "MIT",
|
|
252
252
|
type: "module",
|
|
@@ -30251,4 +30251,4 @@ function resolveBareDefault() {
|
|
|
30251
30251
|
process.exit(ExitCode.Error);
|
|
30252
30252
|
}
|
|
30253
30253
|
//# sourceMappingURL=cli.js.map
|
|
30254
|
-
//# debugId=
|
|
30254
|
+
//# debugId=ab2725f4-cc31-54b9-b0c4-0d9778b2143e
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// kernel/i18n/registry.texts.ts
|
|
2
2
|
|
|
3
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
3
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="47677efe-5ea6-5c32-bc68-24254a2513dd")}catch(e){}}();
|
|
4
4
|
var REGISTRY_TEXTS = {
|
|
5
5
|
duplicateExtension: "Extension already registered: {{kind}}:{{qualifiedId}}",
|
|
6
6
|
unknownKind: "Unknown extension kind: {{kind}}",
|
|
@@ -102,7 +102,7 @@ import { Tiktoken as Tiktoken2 } from "js-tiktoken/lite";
|
|
|
102
102
|
// package.json
|
|
103
103
|
var package_default = {
|
|
104
104
|
name: "@skill-map/cli",
|
|
105
|
-
version: "0.53.
|
|
105
|
+
version: "0.53.5",
|
|
106
106
|
description: "skill-map reference implementation \u2014 kernel + CLI + adapters.",
|
|
107
107
|
license: "MIT",
|
|
108
108
|
type: "module",
|
|
@@ -3632,4 +3632,4 @@ export {
|
|
|
3632
3632
|
runScanWithRenames
|
|
3633
3633
|
};
|
|
3634
3634
|
//# sourceMappingURL=index.js.map
|
|
3635
|
-
//# debugId=
|
|
3635
|
+
//# debugId=47677efe-5ea6-5c32-bc68-24254a2513dd
|
package/dist/kernel/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// kernel/i18n/registry.texts.ts
|
|
2
2
|
|
|
3
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
3
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="e395a3a8-34ff-5d90-ae21-95ad61f53649")}catch(e){}}();
|
|
4
4
|
var REGISTRY_TEXTS = {
|
|
5
5
|
duplicateExtension: "Extension already registered: {{kind}}:{{qualifiedId}}",
|
|
6
6
|
unknownKind: "Unknown extension kind: {{kind}}",
|
|
@@ -102,7 +102,7 @@ import { Tiktoken as Tiktoken2 } from "js-tiktoken/lite";
|
|
|
102
102
|
// package.json
|
|
103
103
|
var package_default = {
|
|
104
104
|
name: "@skill-map/cli",
|
|
105
|
-
version: "0.53.
|
|
105
|
+
version: "0.53.5",
|
|
106
106
|
description: "skill-map reference implementation \u2014 kernel + CLI + adapters.",
|
|
107
107
|
license: "MIT",
|
|
108
108
|
type: "module",
|
|
@@ -3632,4 +3632,4 @@ export {
|
|
|
3632
3632
|
runScanWithRenames
|
|
3633
3633
|
};
|
|
3634
3634
|
//# sourceMappingURL=index.js.map
|
|
3635
|
-
//# debugId=
|
|
3635
|
+
//# debugId=e395a3a8-34ff-5d90-ae21-95ad61f53649
|