@skill-map/cli 0.70.0 → 0.72.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/tutorial/sm-tutorial/SKILL.md +2 -2
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/manifest.json +1 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/portfolio/providers/codex/shared/CLAUDE.md +1 -0
- package/dist/cli/tutorial/sm-tutorial/references/_core.md +27 -20
- package/dist/cli/tutorial/sm-tutorial/references/_manifest.json +1 -1
- package/dist/cli/tutorial/sm-tutorial/references/_manifest.yml +3 -3
- package/dist/cli/tutorial/sm-tutorial/references/fixtures.md +4 -1
- package/dist/cli/tutorial/sm-tutorial/references/part-authoring.md +0 -7
- package/dist/cli/tutorial/sm-tutorial/references/part-basic-daily.md +45 -22
- package/dist/cli/tutorial/sm-tutorial/references/part-basic-fundamentals.md +6 -13
- package/dist/cli/tutorial/sm-tutorial/references/part-basic-kickoff.md +19 -38
- package/dist/cli/tutorial/sm-tutorial/references/part-cli.md +0 -4
- package/dist/cli/tutorial/sm-tutorial/references/part-daily-loop.md +0 -17
- package/dist/cli/tutorial/sm-tutorial/references/part-fundamentals.md +0 -4
- package/dist/cli/tutorial/sm-tutorial/references/part-mcp.md +4 -14
- package/dist/cli/tutorial/sm-tutorial/references/part-plugins.md +0 -8
- package/dist/cli/tutorial/sm-tutorial/references/part-project-kickoff.md +5 -25
- package/dist/cli/tutorial/sm-tutorial/references/part-settings.md +2 -10
- package/dist/cli/tutorial/sm-tutorial/scripts/fixtures.js +6 -3
- package/dist/cli.js +471 -241
- package/dist/index.js +109 -14
- package/dist/kernel/index.js +109 -14
- package/dist/ui/chunk-GKN3HN4R.js +3 -0
- package/dist/ui/index.html +1 -1
- package/dist/ui/{main-K4O6LCIJ.js → main-Z2OYMXNS.js} +1 -1
- package/package.json +2 -2
- package/dist/ui/chunk-RJUHQQOF.js +0 -3
- /package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/portfolio/providers/agent-skills/shared/{CLAUDE.md → README.md} +0 -0
- /package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/portfolio/{shared → providers/claude/shared}/CLAUDE.md +0 -0
|
@@ -45,10 +45,6 @@ The chapters grow the harness from there.
|
|
|
45
45
|
|
|
46
46
|
## Chapter `kickoff` - Start the portfolio (~2 min)
|
|
47
47
|
|
|
48
|
-
**Context**: same `sm init` the tester learned in the prologue, but
|
|
49
|
-
now on a real project. The map will show the project's harness, not
|
|
50
|
-
throwaway demo nodes.
|
|
51
|
-
|
|
52
48
|
If the prologue (`fundamentals`) ran first in this directory, the
|
|
53
49
|
demo fixture (`demo-agent`, `demo-skill`, `notes/…`) is still on
|
|
54
50
|
disk. The orchestrator's `portfolio-init` already cleared it during
|
|
@@ -90,12 +86,6 @@ Wait for confirmation. Mark `kickoff`: done.
|
|
|
90
86
|
|
|
91
87
|
## Chapter `manual` - The handbook (AGENTS.md) and CLAUDE.md (~2 min)
|
|
92
88
|
|
|
93
|
-
**Context**: the dogfood beat. Real Claude Code projects can
|
|
94
|
-
reference the generic `AGENTS.md` from their `CLAUDE.md` (this very
|
|
95
|
-
repo does). That one-line pointer is a real `references` link (the
|
|
96
|
-
`.md` extension makes `@AGENTS.md` a file pointer), the tester's first
|
|
97
|
-
connector on the real project.
|
|
98
|
-
|
|
99
89
|
Tell the tester to create the file themselves (it is their project's
|
|
100
90
|
file, Inviolable rule #2). Backstage, get the content:
|
|
101
91
|
`node .claude/skills/sm-tutorial/scripts/fixtures.js cat portfolio --file "CLAUDE.md" --provider <provider> --lang <lang>`,
|
|
@@ -147,11 +137,6 @@ Wait for confirmation. Mark `first-agent`: done.
|
|
|
147
137
|
|
|
148
138
|
## Chapter `real-kinds` - The real kinds in context (~2 min)
|
|
149
139
|
|
|
150
|
-
**Context**: the prologue showed the four kinds on abstract demo
|
|
151
|
-
nodes. Now name them on the real project, and add the two markdown
|
|
152
|
-
docs the harness references later (the style guide and the deploy
|
|
153
|
-
runbook), so the Daily Loop's maintenance beats have something to point at.
|
|
154
|
-
|
|
155
140
|
Lay the two markdown docs the harness references later (their content
|
|
156
141
|
+ translation live in `fixtures-data/`). Backstage (silent):
|
|
157
142
|
|
|
@@ -181,8 +166,6 @@ Wait for confirmation. Mark `real-kinds`: done.
|
|
|
181
166
|
|
|
182
167
|
## Chapter `check-links` - The link checker (~3 min)
|
|
183
168
|
|
|
184
|
-
**Context**: the harness needs a guard that runs before publishing, a skill that checks the site's internal links resolve before it ships. We only create the `skill` node here; the `publish` command in the next chapter is its caller.
|
|
185
|
-
|
|
186
169
|
Lay the `check-links` skill (its content + translation live in
|
|
187
170
|
`fixtures-data/`; this kind exists on every provider, so no skip).
|
|
188
171
|
Backstage (silent):
|
|
@@ -203,9 +186,7 @@ Wait for confirmation. Mark `check-links`: done.
|
|
|
203
186
|
|
|
204
187
|
## Chapter `publish` - The publish command (~4 min)
|
|
205
188
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
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.
|
|
189
|
+
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, line for line: never soft-wrap, and never let a newline fall inside a `[text](path)` link (a break inside the `(path)`, e.g. `(../../docs/DEPLOY.md)`, splits it and the link stops resolving). See `_core.md` §Language mirroring + fixture content.
|
|
209
190
|
|
|
210
191
|
> Create `.claude/commands/publish.md` with exactly this content (the first line is `---`, nothing before it):
|
|
211
192
|
|
|
@@ -253,8 +234,6 @@ Wait for confirmation. You MAY use `Read` on the file afterwards to verify it la
|
|
|
253
234
|
|
|
254
235
|
## Chapter `links` - The handbook becomes the hub (~4 min)
|
|
255
236
|
|
|
256
|
-
**Context**: the handbook (`AGENTS.md`) has been a lonely node since the start of this part. Here it becomes the hub: we add two bullets so it mentions the content editor and invokes the publish command. We also give the content editor a reference to the style guide it follows. Several connectors land, and we recap the three link kinds and which syntax produced each.
|
|
257
|
-
|
|
258
237
|
Apply both edits (their content + translation live in `fixtures-data/`).
|
|
259
238
|
The first appends the two hub bullets to `AGENTS.md`; the second adds
|
|
260
239
|
the style-guide reference line to the content-editor. Backstage (silent):
|
|
@@ -325,9 +304,10 @@ Tell the tester:
|
|
|
325
304
|
>
|
|
326
305
|
> **IMPORTANT:** why does confidence matter? It mirrors how the runtime itself
|
|
327
306
|
> resolves a reference: a deterministic name-and-path lookup, no guessing
|
|
328
|
-
> and no scanning the tree for a file under some other extension.
|
|
329
|
-
>
|
|
330
|
-
>
|
|
307
|
+
> and no scanning the tree for a file under some other extension. A link that
|
|
308
|
+
> does not resolve sends the agent guessing and retrying, which burns time and
|
|
309
|
+
> tokens; a deterministic one does not fail and resolves first try, the same
|
|
310
|
+
> reason a clean, well-named harness is worth keeping.
|
|
331
311
|
>
|
|
332
312
|
> Do you see every badge reading 1.00 in the Inspector?
|
|
333
313
|
|
|
@@ -22,9 +22,6 @@ stop, do not try to re-init mid-chapter.
|
|
|
22
22
|
|
|
23
23
|
## Step `settings-1-layers` - the config layers (~3 min)
|
|
24
24
|
|
|
25
|
-
**Context**: where settings live and how `sm` resolves a value
|
|
26
|
-
when more than one place sets it.
|
|
27
|
-
|
|
28
25
|
> `sm` resolves every setting through a stack of **layers**, each
|
|
29
26
|
> one overriding the layer below it:
|
|
30
27
|
>
|
|
@@ -74,9 +71,6 @@ Mark `settings-1-layers: done`.
|
|
|
74
71
|
|
|
75
72
|
## Step `settings-2-resolve` - read, resolve, and set a value (~3 min)
|
|
76
73
|
|
|
77
|
-
**Context**: the four config verbs (`get`, `show`, `set`, `reset`)
|
|
78
|
-
and how `show --source` reveals which layer won.
|
|
79
|
-
|
|
80
74
|
> Read a single setting. We'll use `scan.maxNodes`, the cap on how
|
|
81
75
|
> many nodes a scan walks:
|
|
82
76
|
|
|
@@ -123,10 +117,8 @@ Mark `settings-2-resolve: done`.
|
|
|
123
117
|
|
|
124
118
|
## Step `settings-3-lens` - the active provider lens (~2 min)
|
|
125
119
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
never touches your `.md` files. (Agent: substitute `<provider>` with
|
|
129
|
-
`tutorial.provider`, the lens this run was scaffolded for.)
|
|
120
|
+
(Agent: substitute `<provider>` with `tutorial.provider`, the lens
|
|
121
|
+
this run was scaffolded for.)
|
|
130
122
|
|
|
131
123
|
> One setting earns its own step: the **active provider lens**. A
|
|
132
124
|
> skill-map project reads its files through exactly **one** provider
|
|
@@ -78,7 +78,10 @@ function writeFileEnsuring(abs, content) {
|
|
|
78
78
|
* tier, then the per-provider overlay (`providers/<provider>/{shared,<lang>}/`).
|
|
79
79
|
* The overlay carries the skill-shaped variants of nodes a lens renders
|
|
80
80
|
* differently (e.g. the `content-editor` agent becomes a skill on
|
|
81
|
-
* agent-skills)
|
|
81
|
+
* agent-skills). claude is mostly the base shape, but it still carries a tiny
|
|
82
|
+
* overlay for the entry-pointer file: the portfolio root pointer is `CLAUDE.md`
|
|
83
|
+
* (claude/codex overlays) vs `README.md` (agent-skills / antigravity), so it
|
|
84
|
+
* cannot live in the universal base `shared/` tier.
|
|
82
85
|
*/
|
|
83
86
|
function laySet(manifest, set, o, only = null) {
|
|
84
87
|
const { kinds } = pdirAndKinds(o);
|
|
@@ -297,5 +300,5 @@ function main() {
|
|
|
297
300
|
}
|
|
298
301
|
|
|
299
302
|
main();
|
|
300
|
-
!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]="
|
|
301
|
-
//# debugId=
|
|
303
|
+
!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]="b7c7dad8-e6ce-5918-a25b-41b4e2d13a4c")}catch(e){}}();
|
|
304
|
+
//# debugId=b7c7dad8-e6ce-5918-a25b-41b4e2d13a4c
|