@skill-map/cli 0.59.0 → 0.60.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 +12 -5
- package/dist/cli/tutorial/sm-tutorial/references/fixtures.md +15 -4
- package/dist/cli/tutorial/sm-tutorial/references/part-cli.md +3 -3
- package/dist/cli/tutorial/sm-tutorial/references/part-connect-harness.md +19 -15
- package/dist/cli/tutorial/sm-tutorial/references/part-daily-loop.md +4 -2
- package/dist/cli/tutorial/sm-tutorial/references/part-fundamentals.md +59 -44
- package/dist/cli/tutorial/sm-tutorial/references/part-project-kickoff.md +18 -0
- package/dist/cli.js +160 -76
- package/dist/index.js +3 -3
- package/dist/kernel/index.d.ts +20 -0
- package/dist/kernel/index.js +3 -3
- package/dist/ui/chunk-4N3NRZEH.js +809 -0
- package/dist/ui/chunk-5SSKJ7AM.js +1 -0
- package/dist/ui/{chunk-WB7FKIBP.js → chunk-7VUEZZFJ.js} +1 -1
- package/dist/ui/{chunk-P2DAPRK7.js → chunk-7X3DZNG4.js} +1 -1
- package/dist/ui/chunk-AKKFFP7Y.js +1 -0
- package/dist/ui/chunk-COXOWJFC.js +3 -0
- package/dist/ui/{chunk-JA4Z74I3.js → chunk-FRUHVCND.js} +1 -1
- package/dist/ui/chunk-GDZRZU57.js +1843 -0
- package/dist/ui/{chunk-K2MAVAHG.js → chunk-GKQA75EF.js} +1 -1
- package/dist/ui/chunk-HQ6M2HXK.js +369 -0
- package/dist/ui/chunk-JRVAI7GI.js +2 -0
- package/dist/ui/chunk-JTCIY3SL.js +742 -0
- package/dist/ui/chunk-MBBJJEUX.js +917 -0
- package/dist/ui/{chunk-LCOYSPKE.js → chunk-MGWGV4VD.js} +1 -1
- package/dist/ui/chunk-N6MUHKWR.js +105 -0
- package/dist/ui/chunk-OGXBHDY4.js +1 -0
- package/dist/ui/{chunk-KHARMPTZ.js → chunk-OVVTCPBJ.js} +1 -1
- package/dist/ui/{chunk-UBQUCSQ4.js → chunk-Q4PXVDJA.js} +1 -1
- package/dist/ui/chunk-ZYPXVXYF.js +4 -0
- package/dist/ui/index.html +1 -1
- package/dist/ui/main-5MKN73KQ.js +4 -0
- package/package.json +2 -2
- package/dist/ui/chunk-BCEJCDZB.js +0 -3
- package/dist/ui/chunk-DPLNM4UD.js +0 -2
- package/dist/ui/chunk-G3ZVF4TM.js +0 -1
- package/dist/ui/chunk-H6O2DYVT.js +0 -1110
- package/dist/ui/chunk-KJZQIUZA.js +0 -917
- package/dist/ui/chunk-Q2A6FWC7.js +0 -4
- package/dist/ui/chunk-QVNZN5F7.js +0 -1843
- package/dist/ui/chunk-SXXFDP6V.js +0 -1
- package/dist/ui/chunk-YHJL5LP3.js +0 -913
- package/dist/ui/main-PHRAKC4A.js +0 -4
|
@@ -394,11 +394,18 @@ When a part begins, honour its `preflight` from the manifest:
|
|
|
394
394
|
(`node_modules/`, `public/`) are appended to the universal
|
|
395
395
|
`.skillmapignore` pre-flight already wrote, so the tutorial's own
|
|
396
396
|
`.claude/skills/sm-tutorial/` files stay out of the scan even on a
|
|
397
|
-
direct jump here. Then
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
397
|
+
direct jump here. Then provision the DB if `.skill-map/` is missing,
|
|
398
|
+
with the **non-interactive lens recipe**: the seeded portfolio has
|
|
399
|
+
BOTH a root `AGENTS.md` (an `openai` marker) and `.claude/` (a
|
|
400
|
+
`claude` marker), so a plain `sm init` would stop on the
|
|
401
|
+
`⚠ Multiple provider markers detected` prompt with no tester to
|
|
402
|
+
answer it. Instead run `sm init --no-scan` (skips first-scan
|
|
403
|
+
detection, never prompts; it will not overwrite that
|
|
404
|
+
`.skillmapignore`), then `sm config set activeProvider claude`, then
|
|
405
|
+
`sm scan` so the map reflects the seeded harness under the claude
|
|
406
|
+
lens. (If `.skill-map/` already exists, just `sm scan`.) Mark the
|
|
407
|
+
skipped predecessor campaign parts `skipped` in the state (they stay
|
|
408
|
+
in the menu for later). Then emit exactly ONE tester-facing line:
|
|
402
409
|
|
|
403
410
|
> I set the project up to where this part begins, so you can start
|
|
404
411
|
> here. The earlier parts that build up to this are still in the
|
|
@@ -163,13 +163,22 @@ No frontmatter: a real handbook is plain prose (this repo's own
|
|
|
163
163
|
`name:` that differs from the filename only confuses the tester. The
|
|
164
164
|
node displays by its path, `AGENTS.md`.
|
|
165
165
|
|
|
166
|
+
**No backtick-wrapped relative `.md` paths in the body either.**
|
|
167
|
+
`core/backtick-path` (Decision #127) turns a `` `docs/STYLE.md` `` written
|
|
168
|
+
inside a code span into a `points` link, and at kickoff (before the
|
|
169
|
+
`docs/` files exist) that link lands as a broken reference, which would
|
|
170
|
+
break the "one lonely node" beat the `kickoff` chapter promises. Name the
|
|
171
|
+
docs in prose (the style guide, the deploy runbook), never as backticked
|
|
172
|
+
paths. They become real nodes in the `real-kinds` chapter and are wired
|
|
173
|
+
in explicitly in Part 2.
|
|
174
|
+
|
|
166
175
|
```markdown
|
|
167
176
|
# Portfolio handbook
|
|
168
177
|
|
|
169
178
|
A small static portfolio site, served by Express (`server.js`). The
|
|
170
179
|
`.claude/` harness maintains it: an agent writes the pages, a skill
|
|
171
|
-
checks the links, a command publishes. The conventions live in
|
|
172
|
-
|
|
180
|
+
checks the links, a command publishes. The conventions live in the
|
|
181
|
+
style guide; the deploy steps in the deploy runbook.
|
|
173
182
|
```
|
|
174
183
|
|
|
175
184
|
### File: `server.js` (not scanned; runnable scaffolding)
|
|
@@ -255,8 +264,10 @@ have at the END of the part just before the one being entered.
|
|
|
255
264
|
|
|
256
265
|
NOT cumulative and NOT the portfolio: this is the **Part 0 demo
|
|
257
266
|
fixture**, the six standalone demo nodes with `notes/todo` wired as the
|
|
258
|
-
hub, the
|
|
259
|
-
|
|
267
|
+
hub, the state at the end of the prologue's connector chapters: five hub
|
|
268
|
+
links, one of them (`@demo-guideline`, a bare mention that resolves to no
|
|
269
|
+
agent) a deliberate broken reference that `sm check` reports as a single
|
|
270
|
+
`reference-broken` error. Part 5 only reads it. Because it is a different
|
|
260
271
|
fixture from the portfolio, entry first resets any portfolio on disk
|
|
261
272
|
(see SKILL.md §Entering a part, the `cli` case).
|
|
262
273
|
|
|
@@ -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 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
|
|
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 resolution pair: a broken `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 prologue fixture carries one deliberate broken reference (the bare `@demo-guideline` mention from the `connectors` chapter resolves to no agent), so `sm check` reports `1 error` (`reference-broken` on `notes/todo.md`), NOT `✓ No issues`. The `issues` chapter plants a SECOND broken ref and watches the rule catch it after a fresh `sm scan`.
|
|
17
17
|
|
|
18
18
|
Mark `browse`: done.
|
|
19
19
|
|
|
@@ -33,7 +33,7 @@ Mark `graph-export`: done.
|
|
|
33
33
|
|
|
34
34
|
## Chapter `issues` - Issues and broken refs (--analyzers, --json) (~3 min)
|
|
35
35
|
|
|
36
|
-
`reference-broken` is one of the deterministic rules `sm check` runs.
|
|
36
|
+
`reference-broken` is one of the deterministic rules `sm check` runs. The hub already carries one broken reference from the prologue (the bare `@demo-guideline` mention that resolves to no agent); we'll plant a second, an explicit markdown link to a missing file, and watch the rule catch it too, that's the easiest way to internalise that it is an **issue** on a node, NOT a connector and NOT the same thing as an "orphan".
|
|
37
37
|
|
|
38
38
|
> ℹ️ `reference-broken` is one of ~16 built-in rules. Others surface
|
|
39
39
|
> different families: `core/name-reserved` (a file shadows a vendor
|
|
@@ -61,7 +61,7 @@ sm check --analyzers reference-broken
|
|
|
61
61
|
sm check --json
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
-
Expected:
|
|
64
|
+
Expected: `sm check` now reports **2 errors**, both `reference-broken` on `notes/todo.md`, the pre-existing `@demo-guideline` mention from the prologue plus the freshly planted `[flow diagram](./missing-page.md)` you just added (the dangling markdown link to the non-existent `missing-page.md`). The `--analyzers reference-broken` filter narrows `sm check` to a single rule (still both rows here, since both are that rule); `--json` emits the structured payload (useful for CI / scripting). When done, the tester can leave the bullet in place or delete it, the rest of the deep-dive doesn't depend on it.
|
|
65
65
|
|
|
66
66
|
Mark `issues`: done.
|
|
67
67
|
|
|
@@ -140,16 +140,17 @@ Wait for confirmation. You MAY use `Read` on the two files afterwards to verify
|
|
|
140
140
|
|
|
141
141
|
## Chapter `confidence` - How sure is each link (~3 min)
|
|
142
142
|
|
|
143
|
-
**Context**: skill-map
|
|
143
|
+
**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 bare `@demo-guideline` mention that resolved to no agent, drawn as no arrow and flagged `reference-broken` at 0.50). 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.
|
|
144
144
|
|
|
145
145
|
No file edits in this chapter, pure observation on the graph the tester just built.
|
|
146
146
|
|
|
147
147
|
Tell the tester:
|
|
148
148
|
|
|
149
149
|
> Last beat of this part: how sure is skill-map about each connection?
|
|
150
|
-
> It
|
|
151
|
-
>
|
|
152
|
-
>
|
|
150
|
+
> It records a **confidence** for every link and draws it as opacity:
|
|
151
|
+
> a link that resolves to a real node is solid (**1.00**), a link that
|
|
152
|
+
> does not lands fainter, so a glance at the **Map** separates the
|
|
153
|
+
> solid wiring from the problem links.
|
|
153
154
|
>
|
|
154
155
|
> Open the Inspector for the `publish` node (click it on the **Map**).
|
|
155
156
|
> Scroll down to the **Connections** panel and read the **Outgoing**
|
|
@@ -164,18 +165,21 @@ Tell the tester:
|
|
|
164
165
|
>
|
|
165
166
|
> Your whole harness reads solid because every link lands on a real
|
|
166
167
|
> node, that is what a clean, fully wired graph looks like. So what
|
|
167
|
-
> does a
|
|
168
|
-
> prologue: `@demo-guideline` was a bare `@`-mention
|
|
169
|
-
>
|
|
170
|
-
> had nothing to land on
|
|
171
|
-
>
|
|
172
|
-
> the
|
|
173
|
-
>
|
|
168
|
+
> does a link that does NOT resolve look like? You saw one back in the
|
|
169
|
+
> prologue: `@demo-guideline` was a bare `@`-mention, and a bare
|
|
170
|
+
> `@handle` only resolves to an agent. `demo-guideline` is a note, so
|
|
171
|
+
> it had nothing to land on: skill-map drew no arrow and flagged it as
|
|
172
|
+
> a **broken reference**, its confidence knocked down to **0.50** by
|
|
173
|
+
> the broken penalty. The fix there was one character:
|
|
174
|
+
> `@demo-guideline2.md`, the same handle plus a `.md`, resolved to the
|
|
175
|
+
> real file and drew a solid arrow at **1.00**.
|
|
174
176
|
>
|
|
175
|
-
>
|
|
176
|
-
> that
|
|
177
|
-
>
|
|
178
|
-
>
|
|
177
|
+
> So confidence here is really about resolution: **1.00** for a link
|
|
178
|
+
> that lands on a real node, **0.50** for one flagged broken. There is
|
|
179
|
+
> a third rung, **0.10**, for a link that resolves to a real file the
|
|
180
|
+
> runtime would ignore (a reserved name); you meet that one in the
|
|
181
|
+
> daily-loop part. The opacity on the canvas is just that number drawn
|
|
182
|
+
> as transparency.
|
|
179
183
|
>
|
|
180
184
|
> Do you see every badge reading 1.00 in the Inspector?
|
|
181
185
|
|
|
@@ -330,8 +330,10 @@ sm check
|
|
|
330
330
|
> ```
|
|
331
331
|
>
|
|
332
332
|
> That is the `reference-broken` analyzer: a link whose target no longer exists.
|
|
333
|
-
> On the Map the `publish → docs/DEPLOY.md` arrow has
|
|
334
|
-
>
|
|
333
|
+
> On the Map the `publish → docs/DEPLOY.md` arrow has disappeared: a broken link
|
|
334
|
+
> resolves to no node, so skill-map stops drawing it and flags the `publish` card
|
|
335
|
+
> with a red error instead. `sm check` runs the full analyzer catalogue (around a
|
|
336
|
+
> dozen rules); to narrow it to one rule:
|
|
335
337
|
|
|
336
338
|
```bash
|
|
337
339
|
sm check --analyzers reference-broken
|
|
@@ -32,7 +32,7 @@ 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 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
|
|
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 bare mention that resolves to nothing (which lands as a broken reference, no arrow drawn) and the same handle plus `.md` that resolves to a real file (a solid arrow).
|
|
36
36
|
|
|
37
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
|
|
|
@@ -87,15 +87,17 @@ Create these five files (with `Write`), exactly in this order. Per §Provider de
|
|
|
87
87
|
```
|
|
88
88
|
|
|
89
89
|
4. `notes/demo-guideline.md`, second `kind: markdown` node, reached
|
|
90
|
-
in the `connectors` chapter by a bare `@`-mention that
|
|
91
|
-
|
|
90
|
+
in the `connectors` chapter by a bare `@`-mention that resolves to
|
|
91
|
+
no agent, so it surfaces as a broken reference instead of a drawn
|
|
92
|
+
connector:
|
|
92
93
|
```markdown
|
|
93
94
|
---
|
|
94
95
|
name: demo-guideline
|
|
95
96
|
description: |
|
|
96
97
|
Static reference notes the rest of the demo points at. The hub
|
|
97
|
-
reaches it with a bare `@`-mention, which
|
|
98
|
-
|
|
98
|
+
reaches it with a bare `@`-mention, which resolves to no agent,
|
|
99
|
+
so skill-map flags it as a broken reference (0.50) instead of
|
|
100
|
+
drawing an arrow.
|
|
99
101
|
---
|
|
100
102
|
|
|
101
103
|
# Demo Guideline
|
|
@@ -187,9 +189,9 @@ You edit `notes/todo.md` so it becomes the **hub** that points to each of the ot
|
|
|
187
189
|
- an `@handle.md` token (a `@` handle that ends in a file extension) → kind `references`
|
|
188
190
|
- a `/slash` token → kind `invokes`
|
|
189
191
|
|
|
190
|
-
Five bullets, three kinds: `invokes` and `mentions` each appear twice, `references` once. The last two bullets are the
|
|
192
|
+
Five bullets, three kinds: `invokes` and `mentions` each appear twice, `references` once. The last two bullets are the resolution lesson: a bare `@demo-guideline` mention (which resolves to no agent, so it lands as a broken reference and draws no arrow) next to `@demo-guideline2.md`, the same handle shape plus a `.md` extension that points at a real sibling file (so it resolves and draws a solid arrow). Two separate nodes, one broken and one resolved. Five bullets but only four arrows on the canvas.
|
|
191
193
|
|
|
192
|
-
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
|
|
194
|
+
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 resolution contrast, broken mention 0.50 (no arrow drawn) vs resolved reference 1.00 (solid arrow), is intact on those providers too).
|
|
193
195
|
|
|
194
196
|
**Edit `notes/todo.md`**: append these bullets after the `# Pending` heading:
|
|
195
197
|
|
|
@@ -203,59 +205,70 @@ Apply with `Edit` on `notes/todo.md` (do not rewrite the file). Per §Provider d
|
|
|
203
205
|
|
|
204
206
|
Tell the tester:
|
|
205
207
|
|
|
206
|
-
> Look at the magic again. **Demo TODO list** is now the hub
|
|
207
|
-
>
|
|
208
|
-
>
|
|
208
|
+
> Look at the magic again. **Demo TODO list** is now the hub. You
|
|
209
|
+
> wrote five linking bullets, and **four arrows** light up between it
|
|
210
|
+
> and the other nodes, each coloured by the link kind it carries:
|
|
209
211
|
>
|
|
210
|
-
> - `Demo TODO list → demo-agent` (kind: `mentions
|
|
212
|
+
> - `Demo TODO list → demo-agent` (kind: `mentions`, the bare `@` handle resolves to a real agent)
|
|
211
213
|
> - `Demo TODO list → demo-command` (kind: `invokes`)
|
|
212
214
|
> - `Demo TODO list → demo-skill` (kind: `invokes`)
|
|
213
|
-
> - `Demo TODO list → demo-guideline` (kind: `mentions`, the bare `@` handle)
|
|
214
215
|
> - `Demo TODO list → demo-guideline2` (kind: `references`, the `@` handle with a `.md` extension)
|
|
215
216
|
>
|
|
216
217
|
> The kind comes from the syntax in the bullet: an `@handle` is a
|
|
217
218
|
> mention, a `/skill` or `/command` is an invoke, and an `@handle`
|
|
218
219
|
> that ends in a file extension (`@name.md`) is a reference, the
|
|
219
|
-
> extension turns the name drop into a file pointer.
|
|
220
|
-
> three kinds.
|
|
220
|
+
> extension turns the name drop into a file pointer.
|
|
221
221
|
>
|
|
222
|
-
>
|
|
223
|
-
>
|
|
224
|
-
>
|
|
222
|
+
> So why four arrows for five bullets? The fifth bullet,
|
|
223
|
+
> `@demo-guideline`, is a bare `@`-mention, and a bare mention only
|
|
224
|
+
> resolves to an *agent*. `demo-guideline` is a note, not an agent, so
|
|
225
|
+
> the mention resolves to nothing: skill-map draws no arrow (there is
|
|
226
|
+
> no node for it to land on) and instead flags the hub with a
|
|
227
|
+
> **broken reference**, a red error marker on the **Demo TODO list**
|
|
228
|
+
> card. Compare it with the bullet right after: `@demo-guideline2.md`
|
|
229
|
+
> adds the `.md`, so skill-map reads a file pointer, finds the real
|
|
230
|
+
> `demo-guideline2.md` node, and draws a solid arrow to it. Same
|
|
231
|
+
> handle, one `.md` apart, and one resolves while the other breaks.
|
|
232
|
+
> (That is also why `@demo-agent` drew fine: a bare mention DOES
|
|
233
|
+
> resolve when the target is a real agent.)
|
|
225
234
|
>
|
|
226
|
-
>
|
|
227
|
-
>
|
|
228
|
-
>
|
|
229
|
-
>
|
|
230
|
-
>
|
|
231
|
-
>
|
|
232
|
-
>
|
|
233
|
-
>
|
|
235
|
+
> One word on solidity: skill-map draws each connector's
|
|
236
|
+
> **confidence** as opacity, and every arrow you see here is fully
|
|
237
|
+
> solid (1.00) because each one lands on a real node. The faint,
|
|
238
|
+
> partial case (a link to a real file the runtime would ignore) shows
|
|
239
|
+
> up later in the campaign; for now the rule is simple, a reference
|
|
240
|
+
> that resolves draws a solid arrow, a reference that points at
|
|
241
|
+
> nothing is not drawn at all and gets flagged instead. The exact
|
|
242
|
+
> per-link numbers live in the inspector, next chapter.
|
|
234
243
|
>
|
|
235
|
-
>
|
|
236
|
-
>
|
|
237
|
-
>
|
|
238
|
-
> link is in the inspector, next chapter.
|
|
239
|
-
>
|
|
240
|
-
> Confirm when you see it. If a connector is missing, refresh the
|
|
241
|
-
> browser and let me know.
|
|
244
|
+
> Confirm when you see the four arrows plus the broken-reference
|
|
245
|
+
> marker on the hub. If an arrow is missing, refresh the browser and
|
|
246
|
+
> let me know.
|
|
242
247
|
|
|
243
|
-
If
|
|
248
|
+
Expected: four drawn arrows plus one `core/reference-broken` error on `notes/todo.md` for the unresolved `@demo-guideline` mention (the prologue carries this single deliberate error from here on; it is the broken-reference preview the campaign and CLI parts build on). If an arrow is missing, do not advance, the next chapter inspects the same hub edit. Mark `connectors`: done.
|
|
244
249
|
|
|
245
250
|
## Chapter `inspector` - The inspector and connections (~1 min)
|
|
246
251
|
|
|
247
|
-
The
|
|
252
|
+
The canvas only draws the resolved arrows; the full per-link breakdown, including the broken one that never drew, lives in the Inspector. Open it on the hub so the tester registers the surface before the `edit-link` chapter changes topology.
|
|
248
253
|
|
|
249
254
|
> 🆕 Open the Inspector for **Demo TODO list** (click the node on
|
|
250
255
|
> the map). **Expand** the **Connections** section (it's collapsed
|
|
251
256
|
> by default): it has two sections, **Outgoing** and **Incoming**.
|
|
252
|
-
> Demo TODO list lists **5 links** under Outgoing (the
|
|
253
|
-
>
|
|
254
|
-
>
|
|
255
|
-
>
|
|
256
|
-
>
|
|
257
|
-
>
|
|
258
|
-
> `
|
|
257
|
+
> Demo TODO list lists **5 links** under Outgoing (the canvas drew
|
|
258
|
+
> four arrows, but the data keeps the broken `@demo-guideline` mention
|
|
259
|
+
> as a fifth row) and 0 under Incoming. Each row shows the link kind
|
|
260
|
+
> (`mentions`, `invokes`, `references`) and a badge with its
|
|
261
|
+
> confidence: the numeric value. Here you'll see the contrast, the
|
|
262
|
+
> `references` to `demo-guideline2` reads `1.00` (resolved), while the
|
|
263
|
+
> `mentions` to `demo-guideline` reads `0.50` and is marked broken,
|
|
264
|
+
> that 0.5 is the broken-reference penalty, not a "halfway sure".
|
|
265
|
+
>
|
|
266
|
+
> Now open the Inspector for a couple of the targets to read their
|
|
267
|
+
> Incoming count. The four resolved targets (`demo-agent`,
|
|
268
|
+
> `demo-command`, `demo-skill`, `demo-guideline2`) each show **1**
|
|
269
|
+
> incoming. Open `demo-guideline` and it shows **0**: the broken
|
|
270
|
+
> mention never landed on it, so nothing points in. Five outgoing
|
|
271
|
+
> links on the hub, but only four of them reach a node.
|
|
259
272
|
>
|
|
260
273
|
> 💡 Tip: if all these changes left the nodes crowded together, the
|
|
261
274
|
> map toolbar has a **Re-arrange layout** button (tooltip "Re-arrange
|
|
@@ -319,10 +332,12 @@ Per §Provider detection, on `agent-skills` / Antigravity the fixture has fewer
|
|
|
319
332
|
> "Isolate this node and its direct links on the map"). Click it.
|
|
320
333
|
>
|
|
321
334
|
> The Map collapses to **Demo TODO list** plus only the nodes it
|
|
322
|
-
>
|
|
335
|
+
> draws an arrow to (`demo-command`, `demo-skill`,
|
|
323
336
|
> `demo-guideline2`).
|
|
324
|
-
> `demo-agent`, which lost its only
|
|
325
|
-
>
|
|
337
|
+
> Two nodes drop out of view: `demo-agent`, which lost its only
|
|
338
|
+
> connector back in the last step, and `demo-guideline`, whose bare
|
|
339
|
+
> mention never resolved so it has no drawn connector either. The
|
|
340
|
+
> Inspector opens on **Demo TODO list**.
|
|
326
341
|
> That's how you
|
|
327
342
|
> focus on one node's neighborhood when a map gets busy.
|
|
328
343
|
>
|
|
@@ -28,6 +28,17 @@ disk. The orchestrator's `portfolio-init` already cleared it during
|
|
|
28
28
|
pre-flight, so the tester sees only the portfolio. If anything demo
|
|
29
29
|
lingers, mention it once and move on.
|
|
30
30
|
|
|
31
|
+
**Context (agent, do not narrate the plumbing): the lens prompt.**
|
|
32
|
+
Unlike the prologue (a pure `.claude/` project that auto-detected
|
|
33
|
+
`claude` silently), this project has a root `AGENTS.md` (a filesystem
|
|
34
|
+
marker for the `openai` lens) sitting next to the `.claude/` folder
|
|
35
|
+
(the `claude` marker, where the tutorial skill itself lives). With two
|
|
36
|
+
markers present, `sm init`'s first scan can NOT auto-pick a lens and
|
|
37
|
+
asks the tester to choose (`⚠ Multiple provider markers detected`).
|
|
38
|
+
The portfolio is a Claude project, so the answer is `claude`. The
|
|
39
|
+
prompt is expected, blessed behaviour; the tester just needs to know
|
|
40
|
+
which option to pick, so the message below previews it.
|
|
41
|
+
|
|
31
42
|
```bash
|
|
32
43
|
sm init
|
|
33
44
|
sm
|
|
@@ -40,6 +51,13 @@ Tell the tester:
|
|
|
40
51
|
> `.claude/` folder is the **harness** (the helpers that maintain the
|
|
41
52
|
> site). skill-map maps that harness.
|
|
42
53
|
>
|
|
54
|
+
> Run `sm init`. This folder has both a root `AGENTS.md` and a
|
|
55
|
+
> `.claude/` folder, so skill-map can't tell on its own which runtime
|
|
56
|
+
> you're authoring for and asks:
|
|
57
|
+
> `⚠ Multiple provider markers detected. Pick the active lens: 1) claude 2) openai`.
|
|
58
|
+
> Type `1` (or `claude`) and press Enter, this is a Claude project.
|
|
59
|
+
> Then run `sm` to boot the live UI.
|
|
60
|
+
>
|
|
43
61
|
> Open the URL `sm` printed. You'll see **one node**: `AGENTS.md`,
|
|
44
62
|
> the project's handbook (the operating manual for the site).
|
|
45
63
|
> `server.js`, `package.json` and the HTML under `public/` are not
|