@skill-map/cli 0.68.0 → 0.69.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 +14 -15
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/manifest.json +0 -3
- package/dist/cli/tutorial/sm-tutorial/references/_core.md +15 -6
- package/dist/cli/tutorial/sm-tutorial/references/_manifest.json +93 -119
- package/dist/cli/tutorial/sm-tutorial/references/_manifest.yml +46 -70
- package/dist/cli/tutorial/sm-tutorial/references/fixtures.md +5 -6
- package/dist/cli/tutorial/sm-tutorial/references/part-authoring.md +23 -6
- package/dist/cli/tutorial/sm-tutorial/references/part-basic-daily.md +98 -76
- package/dist/cli/tutorial/sm-tutorial/references/part-basic-fundamentals.md +21 -20
- package/dist/cli/tutorial/sm-tutorial/references/part-basic-kickoff.md +151 -6
- package/dist/cli/tutorial/sm-tutorial/references/part-cli.md +1 -1
- package/dist/cli/tutorial/sm-tutorial/references/part-daily-loop.md +114 -100
- package/dist/cli/tutorial/sm-tutorial/references/part-fundamentals.md +27 -31
- package/dist/cli/tutorial/sm-tutorial/references/part-project-kickoff.md +171 -14
- package/dist/cli/tutorial/sm-tutorial/scripts/state.js +4 -4
- package/dist/cli.js +708 -334
- package/dist/conformance/index.js +3 -3
- package/dist/index.js +11 -10
- package/dist/kernel/index.d.ts +27 -17
- package/dist/kernel/index.js +11 -10
- package/dist/migrations/001_initial.sql +7 -3
- package/dist/ui/chunk-E7GLGHVY.js +1 -0
- package/dist/ui/chunk-RLRSNHYG.js +3 -0
- package/dist/ui/{chunk-4F53HBGG.js → chunk-RRRXQNG6.js} +1 -1
- package/dist/ui/{chunk-3GDWM5VM.js → chunk-SI4MGFOW.js} +1 -1
- package/dist/ui/index.html +1 -1
- package/dist/ui/{main-ZYRIR6DB.js → main-23NGLEUB.js} +3 -3
- package/migrations/001_initial.sql +7 -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-PU5OP5RN.js +0 -1
- /package/dist/ui/{chunk-KMHXNOFZ.js → chunk-SXSNTF26.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 3 the CLI deep-dive, Part 4 the Extend dev section; `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.
|
|
@@ -336,14 +336,23 @@ references all resolve on both), so the rich part bodies are written in the
|
|
|
336
336
|
"open the agent file" point at the `.toml`; a chapter that has the tester
|
|
337
337
|
read or tweak an agent works on the TOML frontmatter / `developer_instructions`.
|
|
338
338
|
- **No `command` kind.** Where the claude book authors a `command` (the
|
|
339
|
-
`/publish` command, the reserved-name chapter's `
|
|
339
|
+
`/publish` command, the reserved-name chapter's `model` command), Codex uses a
|
|
340
340
|
**skill** at `.agents/skills/<name>/SKILL.md`. The body is identical (same
|
|
341
341
|
`/check-links` + `@content-editor` + deploy reference); only the kind and path
|
|
342
342
|
change. `cat <set> --file … --provider codex` already returns the Codex skill
|
|
343
343
|
body, so the create-the-file block stays a copy-paste. The reserved-name beat
|
|
344
344
|
uses a skill named with a reserved verb (Codex inherits the open-standard
|
|
345
|
-
`COMMONS_RESERVED_NAMES`, e.g. `
|
|
345
|
+
`COMMONS_RESERVED_NAMES`, e.g. `model`), exactly like the basic track's
|
|
346
346
|
`reserved` chapter, on a skill instead of a command.
|
|
347
|
+
**Apply every substitution silently.** Use the Codex path, kind and file
|
|
348
|
+
directly in the tester-facing prose, but never EXPLAIN the substitution or
|
|
349
|
+
compare it to the claude shape. The Codex tester only ever sees a `skill`
|
|
350
|
+
where the claude book has a command; never tell them "Codex has no `command`
|
|
351
|
+
kind", never say a node "is a command that shows as a skill", never reference
|
|
352
|
+
"the claude command". On Codex these nodes were always skills, there is
|
|
353
|
+
nothing to explain. (Same for the TOML-agent and path swaps above: point the
|
|
354
|
+
tester at the real `.toml` / `.agents/` file when they interact with it, just
|
|
355
|
+
do not narrate that it "would be" something else on claude.)
|
|
347
356
|
- **Skills** live under `.agents/skills/<name>/SKILL.md` (the open layout Codex
|
|
348
357
|
adopted), same as the basic family.
|
|
349
358
|
- Everything else (the `@`/`/` syntax, the confidence numbers, the hub, the
|
|
@@ -444,7 +453,7 @@ promise or pre-announce the next part, the close and the menu own the
|
|
|
444
453
|
transition. Sample (Claude variant, mirror the tester's language,
|
|
445
454
|
apply the host rendering rule):
|
|
446
455
|
|
|
447
|
-
> ✓ Listo, terminaste **El
|
|
456
|
+
> ✓ Listo, terminaste **El harness desde cero**. Levantaste un
|
|
448
457
|
> proyecto real, su handbook y el harness `.claude/` con sus primeros
|
|
449
458
|
> nodos.
|
|
450
459
|
>
|
|
@@ -484,7 +493,7 @@ fill the parts and durations from `_manifest.yml`):
|
|
|
484
493
|
**1. El mapa en vivo** (~12 min)
|
|
485
494
|
> El prólogo: corrés `sm`, abrís el browser y ves el mapa actualizarse en vivo mientras editás `.md`. Si es tu primera vez, empezá por acá.
|
|
486
495
|
|
|
487
|
-
**2. El
|
|
496
|
+
**2. El harness desde cero** (~8 min)
|
|
488
497
|
> Arrancás un proyecto real (un portfolio) y su harness `.claude/`.
|
|
489
498
|
|
|
490
499
|
¿Cuál?
|
|
@@ -503,7 +512,7 @@ the title stays plain):
|
|
|
503
512
|
**1. El mapa en vivo** (~12 min)
|
|
504
513
|
> ✓ Ya la hiciste.
|
|
505
514
|
|
|
506
|
-
**2. El
|
|
515
|
+
**2. El harness desde cero** (~8 min)
|
|
507
516
|
> Arrancás un proyecto real (un portfolio) y su harness `.claude/`.
|
|
508
517
|
```
|
|
509
518
|
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
{
|
|
30
30
|
"id": "connectors",
|
|
31
31
|
"title": "The connectors light up",
|
|
32
|
-
"est_min":
|
|
32
|
+
"est_min": 1
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
35
|
"id": "inspector",
|
|
@@ -39,17 +39,17 @@
|
|
|
39
39
|
{
|
|
40
40
|
"id": "edit-link",
|
|
41
41
|
"title": "Edit a link, the topology changes",
|
|
42
|
-
"est_min":
|
|
42
|
+
"est_min": 2
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
45
|
"id": "workspace",
|
|
46
46
|
"title": "Navigate the workspace (files, search, isolate)",
|
|
47
|
-
"est_min":
|
|
47
|
+
"est_min": 1
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
50
|
"id": "ignore",
|
|
51
51
|
"title": "Silence a file via .skillmapignore",
|
|
52
|
-
"est_min":
|
|
52
|
+
"est_min": 1
|
|
53
53
|
}
|
|
54
54
|
]
|
|
55
55
|
},
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
{
|
|
83
83
|
"id": "connectors",
|
|
84
84
|
"title": "Connect with references (markdown links)",
|
|
85
|
-
"est_min":
|
|
85
|
+
"est_min": 1
|
|
86
86
|
},
|
|
87
87
|
{
|
|
88
88
|
"id": "inspector",
|
|
@@ -92,24 +92,24 @@
|
|
|
92
92
|
{
|
|
93
93
|
"id": "edit-link",
|
|
94
94
|
"title": "Edit a link, the topology changes",
|
|
95
|
-
"est_min":
|
|
95
|
+
"est_min": 2
|
|
96
96
|
},
|
|
97
97
|
{
|
|
98
98
|
"id": "workspace",
|
|
99
99
|
"title": "Navigate the workspace (files, search, isolate)",
|
|
100
|
-
"est_min":
|
|
100
|
+
"est_min": 1
|
|
101
101
|
},
|
|
102
102
|
{
|
|
103
103
|
"id": "ignore",
|
|
104
104
|
"title": "Silence a file via .skillmapignore",
|
|
105
|
-
"est_min":
|
|
105
|
+
"est_min": 1
|
|
106
106
|
}
|
|
107
107
|
]
|
|
108
108
|
},
|
|
109
109
|
{
|
|
110
110
|
"id": "project-kickoff",
|
|
111
111
|
"order": 1,
|
|
112
|
-
"title": "The
|
|
112
|
+
"title": "The harness from zero",
|
|
113
113
|
"status": "active",
|
|
114
114
|
"preflight": "portfolio-init",
|
|
115
115
|
"seed": null,
|
|
@@ -135,6 +135,26 @@
|
|
|
135
135
|
{
|
|
136
136
|
"id": "real-kinds",
|
|
137
137
|
"title": "The real kinds in context",
|
|
138
|
+
"est_min": 1
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"id": "check-links",
|
|
142
|
+
"title": "The check-links skill",
|
|
143
|
+
"est_min": 1
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"id": "publish",
|
|
147
|
+
"title": "The /publish command invokes the skill",
|
|
148
|
+
"est_min": 2
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"id": "links",
|
|
152
|
+
"title": "Mentions (@) and references between assets",
|
|
153
|
+
"est_min": 2
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"id": "confidence",
|
|
157
|
+
"title": "Connector confidence (opacity = certainty)",
|
|
138
158
|
"est_min": 2
|
|
139
159
|
}
|
|
140
160
|
]
|
|
@@ -142,7 +162,7 @@
|
|
|
142
162
|
{
|
|
143
163
|
"id": "basic-kickoff",
|
|
144
164
|
"order": 1,
|
|
145
|
-
"title": "The
|
|
165
|
+
"title": "The harness from zero",
|
|
146
166
|
"status": "active",
|
|
147
167
|
"preflight": "portfolio-init",
|
|
148
168
|
"seed": null,
|
|
@@ -169,100 +189,54 @@
|
|
|
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",
|
|
222
|
-
"est_min":
|
|
196
|
+
"est_min": 2
|
|
223
197
|
},
|
|
224
198
|
{
|
|
225
199
|
"id": "publish",
|
|
226
200
|
"title": "The publish skill references the harness",
|
|
227
|
-
"est_min":
|
|
201
|
+
"est_min": 3
|
|
228
202
|
},
|
|
229
203
|
{
|
|
230
204
|
"id": "links",
|
|
231
205
|
"title": "The handbook becomes the hub (references)",
|
|
232
|
-
"est_min":
|
|
206
|
+
"est_min": 3
|
|
233
207
|
},
|
|
234
208
|
{
|
|
235
209
|
"id": "confidence",
|
|
236
210
|
"title": "Connector confidence (opacity = certainty)",
|
|
237
|
-
"est_min":
|
|
211
|
+
"est_min": 2
|
|
238
212
|
}
|
|
239
213
|
]
|
|
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": [
|
|
252
226
|
{
|
|
253
227
|
"id": "setup",
|
|
254
228
|
"title": "Make it yours and bring it up",
|
|
255
|
-
"est_min":
|
|
229
|
+
"est_min": 4
|
|
256
230
|
},
|
|
257
231
|
{
|
|
258
232
|
"id": "add-page",
|
|
259
233
|
"title": "Add a page with your agent",
|
|
260
|
-
"est_min":
|
|
234
|
+
"est_min": 3
|
|
261
235
|
},
|
|
262
236
|
{
|
|
263
237
|
"id": "broken-ref",
|
|
264
238
|
"title": "A rename breaks a link",
|
|
265
|
-
"est_min":
|
|
239
|
+
"est_min": 3
|
|
266
240
|
},
|
|
267
241
|
{
|
|
268
242
|
"id": "reserved",
|
|
@@ -272,7 +246,7 @@
|
|
|
272
246
|
{
|
|
273
247
|
"id": "publish",
|
|
274
248
|
"title": "Ship it: run /publish for real",
|
|
275
|
-
"est_min":
|
|
249
|
+
"est_min": 3
|
|
276
250
|
},
|
|
277
251
|
{
|
|
278
252
|
"id": "stability",
|
|
@@ -281,36 +255,36 @@
|
|
|
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": [
|
|
300
274
|
{
|
|
301
275
|
"id": "setup",
|
|
302
276
|
"title": "Make it yours and bring it up",
|
|
303
|
-
"est_min":
|
|
277
|
+
"est_min": 4
|
|
304
278
|
},
|
|
305
279
|
{
|
|
306
280
|
"id": "add-page",
|
|
307
281
|
"title": "Add a page with your skill",
|
|
308
|
-
"est_min":
|
|
282
|
+
"est_min": 3
|
|
309
283
|
},
|
|
310
284
|
{
|
|
311
285
|
"id": "broken-ref",
|
|
312
286
|
"title": "A rename breaks a link",
|
|
313
|
-
"est_min":
|
|
287
|
+
"est_min": 3
|
|
314
288
|
},
|
|
315
289
|
{
|
|
316
290
|
"id": "reserved",
|
|
@@ -320,7 +294,7 @@
|
|
|
320
294
|
{
|
|
321
295
|
"id": "publish",
|
|
322
296
|
"title": "Ship it: run the publish skill for real",
|
|
323
|
-
"est_min":
|
|
297
|
+
"est_min": 3
|
|
324
298
|
},
|
|
325
299
|
{
|
|
326
300
|
"id": "stability",
|
|
@@ -329,7 +303,45 @@
|
|
|
329
303
|
},
|
|
330
304
|
{
|
|
331
305
|
"id": "golive",
|
|
332
|
-
"title": "Your
|
|
306
|
+
"title": "Your website, live next to the graph",
|
|
307
|
+
"est_min": 3
|
|
308
|
+
}
|
|
309
|
+
]
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
"id": "cli",
|
|
313
|
+
"order": 3,
|
|
314
|
+
"title": "The CLI for you and your agent",
|
|
315
|
+
"status": "active",
|
|
316
|
+
"preflight": "seed",
|
|
317
|
+
"seed": "prologue-built",
|
|
318
|
+
"prereq": "fundamentals",
|
|
319
|
+
"pace": "auto-advance",
|
|
320
|
+
"track": "both",
|
|
321
|
+
"chapters": [
|
|
322
|
+
{
|
|
323
|
+
"id": "browse",
|
|
324
|
+
"title": "list / show / check",
|
|
325
|
+
"est_min": 2
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
"id": "graph-export",
|
|
329
|
+
"title": "graph / export (query, formatters)",
|
|
330
|
+
"est_min": 2
|
|
331
|
+
},
|
|
332
|
+
{
|
|
333
|
+
"id": "issues",
|
|
334
|
+
"title": "Issues and broken refs (--analyzers, --json)",
|
|
335
|
+
"est_min": 2
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
"id": "annotations",
|
|
339
|
+
"title": "Annotations and the .sm consent prompt",
|
|
340
|
+
"est_min": 3
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
"id": "reference-paths",
|
|
344
|
+
"title": "Validate links to folders outside the scan scope",
|
|
333
345
|
"est_min": 3
|
|
334
346
|
}
|
|
335
347
|
]
|
|
@@ -337,7 +349,7 @@
|
|
|
337
349
|
{
|
|
338
350
|
"id": "extend",
|
|
339
351
|
"order": 4,
|
|
340
|
-
"title": "Extend skill-map
|
|
352
|
+
"title": "Extend skill-map with plugins",
|
|
341
353
|
"status": "active",
|
|
342
354
|
"preflight": "backstage-init",
|
|
343
355
|
"seed": null,
|
|
@@ -358,22 +370,22 @@
|
|
|
358
370
|
{
|
|
359
371
|
"id": "settings-3-lens",
|
|
360
372
|
"title": "The active provider lens (`activeProvider`)",
|
|
361
|
-
"est_min":
|
|
373
|
+
"est_min": 3
|
|
362
374
|
},
|
|
363
375
|
{
|
|
364
376
|
"id": "tour-1-intro",
|
|
365
377
|
"title": "How plugins work",
|
|
366
|
-
"est_min":
|
|
378
|
+
"est_min": 3
|
|
367
379
|
},
|
|
368
380
|
{
|
|
369
381
|
"id": "tour-2-kinds",
|
|
370
382
|
"title": "The six extension kinds",
|
|
371
|
-
"est_min":
|
|
383
|
+
"est_min": 4
|
|
372
384
|
},
|
|
373
385
|
{
|
|
374
386
|
"id": "tour-3-explore",
|
|
375
387
|
"title": "Explore one extension up close",
|
|
376
|
-
"est_min":
|
|
388
|
+
"est_min": 3
|
|
377
389
|
},
|
|
378
390
|
{
|
|
379
391
|
"id": "authoring-1-scaffold",
|
|
@@ -402,52 +414,14 @@
|
|
|
402
414
|
}
|
|
403
415
|
]
|
|
404
416
|
},
|
|
405
|
-
{
|
|
406
|
-
"id": "cli",
|
|
407
|
-
"order": 5,
|
|
408
|
-
"title": "The CLI in depth",
|
|
409
|
-
"status": "active",
|
|
410
|
-
"preflight": "seed",
|
|
411
|
-
"seed": "prologue-built",
|
|
412
|
-
"prereq": "fundamentals",
|
|
413
|
-
"pace": "auto-advance",
|
|
414
|
-
"track": "both",
|
|
415
|
-
"chapters": [
|
|
416
|
-
{
|
|
417
|
-
"id": "browse",
|
|
418
|
-
"title": "list / show / check",
|
|
419
|
-
"est_min": 3
|
|
420
|
-
},
|
|
421
|
-
{
|
|
422
|
-
"id": "graph-export",
|
|
423
|
-
"title": "graph / export (query, formatters)",
|
|
424
|
-
"est_min": 3
|
|
425
|
-
},
|
|
426
|
-
{
|
|
427
|
-
"id": "issues",
|
|
428
|
-
"title": "Issues and broken refs (--analyzers, --json)",
|
|
429
|
-
"est_min": 3
|
|
430
|
-
},
|
|
431
|
-
{
|
|
432
|
-
"id": "annotations",
|
|
433
|
-
"title": "Annotations and the .sm consent prompt",
|
|
434
|
-
"est_min": 3
|
|
435
|
-
},
|
|
436
|
-
{
|
|
437
|
-
"id": "reference-paths",
|
|
438
|
-
"title": "Validate links to folders outside the scan scope",
|
|
439
|
-
"est_min": 4
|
|
440
|
-
}
|
|
441
|
-
]
|
|
442
|
-
},
|
|
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": [
|