@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
|
@@ -5,7 +5,7 @@ The live-UI prologue: the tester runs `sm init`, opens the browser, and watches
|
|
|
5
5
|
**Codex deltas (rich track).** When `tutorial.provider == codex` the lay commands are unchanged (the `--only` ids match the Codex overlay), but the on-disk shapes differ; substitute in the tester-facing prose:
|
|
6
6
|
|
|
7
7
|
- `init`: the boot node `demo-agent` is a **TOML agent** at `.codex/agents/demo-agent.toml`.
|
|
8
|
-
- `kinds`: the node list reads `.codex/agents/demo-agent.toml` (agent), `.agents/skills/demo-command/SKILL.md` (
|
|
8
|
+
- `kinds`: the node list reads `.codex/agents/demo-agent.toml` (agent), `.agents/skills/demo-command/SKILL.md` (skill), `.agents/skills/demo-skill/SKILL.md` (skill), and the `notes/*.md`. Name the kinds as agent + skill + markdown (two new kinds this step: skill + markdown). Present `demo-command` as a plain skill: do NOT tell the tester it "is a command" or narrate any command-to-skill substitution. Codex has no `command` kind, so on this track `demo-command` is simply one of the two skills, nothing to explain.
|
|
9
9
|
- `first-edit`: the description to edit lives in `.codex/agents/demo-agent.toml` (the `description = "…"` TOML field, not YAML frontmatter).
|
|
10
10
|
- `connectors` onward: identical, the `@`/`/` bullets resolve the same on Codex; only the `ignore` chapter's directory tree shows `.codex/agents/` + `.agents/skills/` instead of `.claude/`.
|
|
11
11
|
|
|
@@ -152,14 +152,10 @@ Tell the tester:
|
|
|
152
152
|
> (That is also why `@demo-agent` drew fine: an `@name` mention
|
|
153
153
|
> resolves when an agent by that name really exists.)
|
|
154
154
|
>
|
|
155
|
-
>
|
|
156
|
-
>
|
|
157
|
-
>
|
|
158
|
-
>
|
|
159
|
-
> simple, a reference
|
|
160
|
-
> that resolves draws a solid arrow, a reference that points at
|
|
161
|
-
> nothing is not drawn at all and gets flagged instead. The exact
|
|
162
|
-
> per-link numbers live in the inspector, next chapter.
|
|
155
|
+
> 💡 Tip: if all these changes left the nodes crowded together, the
|
|
156
|
+
> map toolbar has a **Re-arrange layout** button: it tidies the
|
|
157
|
+
> layout so everything reads better. If you've moved nodes by hand it
|
|
158
|
+
> asks for confirmation first, otherwise it just re-arranges.
|
|
163
159
|
>
|
|
164
160
|
> Confirm when you see the four arrows plus the broken-reference
|
|
165
161
|
> marker on the hub. If an arrow is missing, refresh the browser and
|
|
@@ -171,12 +167,6 @@ Expected: four drawn arrows plus one `core/reference-broken` error on `notes/tod
|
|
|
171
167
|
|
|
172
168
|
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.
|
|
173
169
|
|
|
174
|
-
> 💡 Tip: if all these changes left the nodes crowded together, the
|
|
175
|
-
> map toolbar has a **Re-arrange layout** button (tooltip "Re-arrange
|
|
176
|
-
> the visible nodes"): it tidies the layout so everything reads
|
|
177
|
-
> better. If you've moved nodes by hand it asks for confirmation
|
|
178
|
-
> first, otherwise it just re-arranges.
|
|
179
|
-
>
|
|
180
170
|
> 🆕 Open the Inspector for **Demo TODO list** (click the node on
|
|
181
171
|
> the map). Find the **Connections** section: it has two sections,
|
|
182
172
|
> **Outgoing** and **Incoming**.
|
|
@@ -187,7 +177,7 @@ The canvas only draws the resolved arrows; the full per-link breakdown, includin
|
|
|
187
177
|
> confidence: the numeric value. Here you'll see the contrast, the
|
|
188
178
|
> `references` to `demo-guideline2` reads `1.00` (resolved), while the
|
|
189
179
|
> `mentions` to `demo-guideline` reads `0.50` and is marked broken,
|
|
190
|
-
> that 0.5 is the broken-reference penalty,
|
|
180
|
+
> that 0.5 is the broken-reference penalty, it's a "half sure".
|
|
191
181
|
>
|
|
192
182
|
> Now open the Inspector for a couple of the nodes to read their
|
|
193
183
|
> Incoming count. The four resolved nodes (`demo-agent`,
|
|
@@ -196,6 +186,11 @@ The canvas only draws the resolved arrows; the full per-link breakdown, includin
|
|
|
196
186
|
> mention never landed on it, so nothing points in. Five outgoing
|
|
197
187
|
> links on the hub, but only four of them reach a node.
|
|
198
188
|
>
|
|
189
|
+
> 💡 Tip: skill-map draws each connector's **confidence** as opacity.
|
|
190
|
+
> Every arrow here is solid (1.00) because it lands on a real node; a
|
|
191
|
+
> reference that points at nothing is flagged instead of drawn. The
|
|
192
|
+
> fainter, partial case shows up later in the campaign.
|
|
193
|
+
>
|
|
199
194
|
> Let me know when you see it.
|
|
200
195
|
|
|
201
196
|
Mark `inspector`: done.
|
|
@@ -252,18 +247,20 @@ action itself.
|
|
|
252
247
|
> Tell me when the tree is open.
|
|
253
248
|
|
|
254
249
|
> At the top of that sidebar there's a search box (placeholder
|
|
255
|
-
> `Search…`). Type `guideline`. Watch
|
|
256
|
-
>
|
|
257
|
-
>
|
|
258
|
-
>
|
|
259
|
-
>
|
|
250
|
+
> `Search…`). Type `guideline`. Watch the tree narrow down to the
|
|
251
|
+
> two guideline nodes (`demo-guideline` and `demo-guideline2`). The
|
|
252
|
+
> search matches a node's name, path, or description, and filters
|
|
253
|
+
> live as you type, no Enter needed. The **Map** stays put: by
|
|
254
|
+
> default the search filters only the files list, not the map (the
|
|
255
|
+
> tip below changes that).
|
|
260
256
|
>
|
|
261
|
-
> Now clear the box. All six nodes come back
|
|
262
|
-
>
|
|
257
|
+
> Now clear the box. All six nodes come back in the tree. Confirm you
|
|
258
|
+
> saw it filter and then restore.
|
|
263
259
|
|
|
264
|
-
> Last one. In the tree, find the **Demo TODO
|
|
265
|
-
>
|
|
266
|
-
>
|
|
260
|
+
> Last one. In the tree, find the `notes/todo` row (the **Demo TODO
|
|
261
|
+
> list** hub, the tree labels rows by file name): at its right edge
|
|
262
|
+
> there's a small **sitemap** icon (its tooltip reads "Isolate this
|
|
263
|
+
> node and its direct links on the map"). Click it.
|
|
267
264
|
>
|
|
268
265
|
> The Map collapses to **Demo TODO list** plus only the nodes it
|
|
269
266
|
> draws an arrow to (`demo-command`, `demo-skill`,
|
|
@@ -276,10 +273,9 @@ action itself.
|
|
|
276
273
|
>
|
|
277
274
|
> 💡 Tip: remember the search box from a moment ago? The map-icon
|
|
278
275
|
> button right next to it controls whether the search also filters
|
|
279
|
-
> the **Map**. It's
|
|
280
|
-
>
|
|
281
|
-
>
|
|
282
|
-
> in place.
|
|
276
|
+
> the **Map**. It's off by default, which is why the **Map** stayed
|
|
277
|
+
> put while only the tree narrowed when you searched `guideline`.
|
|
278
|
+
> Click it on if you want a search to filter the map too.
|
|
283
279
|
>
|
|
284
280
|
> Did the map isolate and then restore?
|
|
285
281
|
|
|
@@ -317,7 +313,7 @@ Give the tester a mental map of the folder so they know where the file lives, th
|
|
|
317
313
|
│ └── skills/
|
|
318
314
|
│ ├── demo-skill/SKILL.md
|
|
319
315
|
│ └── sm-tutorial/SKILL.md ← the tutorial you loaded
|
|
320
|
-
├── .skill-map/ ← project DB + settings
|
|
316
|
+
├── .skill-map/ ← project DB + settings
|
|
321
317
|
├── .skillmapignore ← the file we're about to edit
|
|
322
318
|
└── notes/
|
|
323
319
|
├── todo.md
|
|
@@ -1,13 +1,17 @@
|
|
|
1
|
-
# Part 1: The
|
|
1
|
+
# Part 1: The harness from zero (step library, `kickoff-*` ids)
|
|
2
2
|
|
|
3
3
|
The campaign turns real here. After the abstract prologue, the tester
|
|
4
4
|
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 (the daily loop, Part
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
is plain HTML the harness produces (the daily loop, Part 2, runs and ships it).
|
|
9
|
+
This part runs end to end: it boots the project and grows its harness
|
|
10
|
+
members (the `kickoff` to `real-kinds` chapters), then wires them into a
|
|
11
|
+
connected graph, a link checker, a publish command, the handbook turned
|
|
12
|
+
hub, and a close-up on connector confidence (the `check-links` to
|
|
13
|
+
`confidence` chapters). `pace: per-step`, `preflight: portfolio-init`.
|
|
14
|
+
Shared conventions live in `_core.md`.
|
|
11
15
|
|
|
12
16
|
The orchestrator's `portfolio-init` pre-flight (backstage, silent)
|
|
13
17
|
has already laid the bare project skeleton before the tester runs
|
|
@@ -33,7 +37,9 @@ The chapters grow the harness from there.
|
|
|
33
37
|
- `real-kinds`: Codex's kinds are `agent` (TOML) + `skill` + `markdown`, there is
|
|
34
38
|
no `command`. Lay only `docs/DEPLOY.md` here (STYLE landed in `first-agent`),
|
|
35
39
|
and name the kinds as agent + skill + markdown (the skill + the publish piece
|
|
36
|
-
arrive in
|
|
40
|
+
arrive later in this part as skills).
|
|
41
|
+
- `publish`: Codex has no `command` kind, so the tester creates a **skill** at `.agents/skills/publish/SKILL.md` instead of `.claude/commands/publish.md`. The body is the Codex one (same `/check-links` + `@content-editor` + deploy reference); fetch it with `fixtures.js cat harness --file "__PROVIDER__/skills/publish/SKILL.md" --provider codex --lang <lang>`. Tell the tester they are creating a `skill` (one node, three connectors); present it plainly as a skill, with no mention of a command or a substitution (per _core.md §Rendering the rich book on Codex, silent substitution). The fixture lays no `publish` for codex in this chapter (the tester authors it), so the `cat` is the source.
|
|
42
|
+
- `links`: the `content-editor-style` reference is baked into the Codex content-editor's TOML (`developer_instructions`) at lay time, so the `edit content-editor-style` step is a no-op on Codex, the `content-editor -> docs/STYLE.md` arrow is already drawn from earlier in this part. Run only `edit agents-hub` and narrate the two `AGENTS.md` arrows; mention the style-guide arrow as already present.
|
|
37
43
|
|
|
38
44
|
## Chapter `kickoff` - Start the portfolio (~2 min)
|
|
39
45
|
|
|
@@ -106,8 +112,7 @@ then render it in the fenced block the tester copies:
|
|
|
106
112
|
> as a file pointer (the same `@name.md` reference you met in the
|
|
107
113
|
> prologue), and since the handbook is right there
|
|
108
114
|
> the link resolves with full confidence. It tells anyone (and
|
|
109
|
-
> skill-map) that `CLAUDE.md` defers to the handbook.
|
|
110
|
-
> how this tool's own repo is wired.
|
|
115
|
+
> skill-map) that `CLAUDE.md` defers to the handbook.
|
|
111
116
|
>
|
|
112
117
|
> Did the connector light up?
|
|
113
118
|
|
|
@@ -126,8 +131,8 @@ Tell the tester:
|
|
|
126
131
|
|
|
127
132
|
> I added the first real member of your harness: an agent called
|
|
128
133
|
> `content-editor` (its job is to write the site's pages). A new
|
|
129
|
-
> `agent` node appeared on the map. Right now it stands alone; in
|
|
130
|
-
>
|
|
134
|
+
> `agent` node appeared on the map. Right now it stands alone; later in
|
|
135
|
+
> this part we wire it to the handbook and the style guide.
|
|
131
136
|
>
|
|
132
137
|
> 💡 Tip: I create these harness files for you. If you'd like to see
|
|
133
138
|
> what's inside, open `<provider_dir>/agents/content-editor.md` in your
|
|
@@ -162,14 +167,166 @@ Tell the tester:
|
|
|
162
167
|
> - **agent**: `content-editor` (does work on your behalf).
|
|
163
168
|
> - **markdown**: `AGENTS.md`, `CLAUDE.md`, the two docs (plain notes
|
|
164
169
|
> and manuals).
|
|
165
|
-
> - **skill** and **command**: you add these
|
|
166
|
-
> the publish command)
|
|
170
|
+
> - **skill** and **command**: you add these later in this part (the
|
|
171
|
+
> link checker and the publish command).
|
|
167
172
|
>
|
|
168
173
|
> Your handbook now has a real harness around it: a `content-editor`
|
|
169
174
|
> agent plus its docs, all on the map.
|
|
170
175
|
>
|
|
171
176
|
> See the agent and the docs in the map?
|
|
172
177
|
|
|
173
|
-
Wait for confirmation. Mark `real-kinds`: done.
|
|
174
|
-
|
|
175
|
-
|
|
178
|
+
Wait for confirmation. Mark `real-kinds`: done.
|
|
179
|
+
|
|
180
|
+
## Chapter `check-links` - The link checker (~3 min)
|
|
181
|
+
|
|
182
|
+
**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.
|
|
183
|
+
|
|
184
|
+
Lay the `check-links` skill (its content + translation live in
|
|
185
|
+
`fixtures-data/`; this kind exists on every provider, so no skip).
|
|
186
|
+
Backstage (silent):
|
|
187
|
+
|
|
188
|
+
```
|
|
189
|
+
node .claude/skills/sm-tutorial/scripts/fixtures.js lay harness --only "__PROVIDER__/skills/check-links/SKILL.md" --provider <provider> --lang <lang>
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
Tell the tester:
|
|
193
|
+
|
|
194
|
+
> So I added that guard: a skill called `check-links`. A new `skill`
|
|
195
|
+
> node appeared on the **Map**, alone for now; the next chapter gives
|
|
196
|
+
> it a caller.
|
|
197
|
+
>
|
|
198
|
+
> See the new skill node?
|
|
199
|
+
|
|
200
|
+
Wait for confirmation. Mark `check-links`: done.
|
|
201
|
+
|
|
202
|
+
## Chapter `publish` - The publish command (~4 min)
|
|
203
|
+
|
|
204
|
+
**Context**: this is the chapter where the graph comes alive. The `/publish` command ties three pieces together in one body: it invokes the link checker, mentions the content editor, and references the deploy runbook. Three connectors light up from a single new node, one per link syntax.
|
|
205
|
+
|
|
206
|
+
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.
|
|
207
|
+
|
|
208
|
+
> Create `.claude/commands/publish.md` with exactly this content (the first line is `---`, nothing before it):
|
|
209
|
+
|
|
210
|
+
```markdown
|
|
211
|
+
---
|
|
212
|
+
name: publish
|
|
213
|
+
description: |
|
|
214
|
+
Publishes the portfolio: runs the link check, hands off to the
|
|
215
|
+
content editor for any last fixes, then follows the deploy runbook.
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
# publish
|
|
219
|
+
|
|
220
|
+
The one command you run when the site is ready to go out.
|
|
221
|
+
|
|
222
|
+
## Steps
|
|
223
|
+
1. Run /check-links on the pages in public/. If it reports broken links, stop and fix them first.
|
|
224
|
+
2. If a page needs a content fix, brief @content-editor with the change.
|
|
225
|
+
3. Follow the [deploy runbook](../../docs/DEPLOY.md): regenerate pages, run the link check, start the server.
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Continue the tester message:
|
|
229
|
+
|
|
230
|
+
> Save it. Watch the **Map**: **three** new arrows light up at once
|
|
231
|
+
> from the new `publish` node, and each one is a different colour
|
|
232
|
+
> because each one is a different kind of link:
|
|
233
|
+
>
|
|
234
|
+
> - `publish -> check-links` (kind: `invokes`), from the `/check-links`
|
|
235
|
+
> token in the body.
|
|
236
|
+
> - `publish -> content-editor` (kind: `mentions`), from the
|
|
237
|
+
> `@content-editor` token.
|
|
238
|
+
> - `publish -> docs/DEPLOY.md` (kind: `references`), from the
|
|
239
|
+
> `[deploy runbook](../../docs/DEPLOY.md)` markdown link.
|
|
240
|
+
>
|
|
241
|
+
> One node, three connectors, three link kinds. The harness is
|
|
242
|
+
> starting to look like a real graph.
|
|
243
|
+
>
|
|
244
|
+
> 💡 Tip: to tidy every node into a clean layout, click the
|
|
245
|
+
> **Re-arrange layout** button in the map toolbar. Handy whenever the
|
|
246
|
+
> graph starts to look crowded.
|
|
247
|
+
>
|
|
248
|
+
> Did the three arrows appear?
|
|
249
|
+
|
|
250
|
+
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.
|
|
251
|
+
|
|
252
|
+
## Chapter `links` - The handbook becomes the hub (~4 min)
|
|
253
|
+
|
|
254
|
+
**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.
|
|
255
|
+
|
|
256
|
+
Apply both edits (their content + translation live in `fixtures-data/`).
|
|
257
|
+
The first appends the two hub bullets to `AGENTS.md`; the second adds
|
|
258
|
+
the style-guide reference line to the content-editor. Backstage (silent):
|
|
259
|
+
|
|
260
|
+
```
|
|
261
|
+
node .claude/skills/sm-tutorial/scripts/fixtures.js edit agents-hub --provider <provider> --lang <lang>
|
|
262
|
+
node .claude/skills/sm-tutorial/scripts/fixtures.js edit content-editor-style --provider <provider> --lang <lang>
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
Tell the tester:
|
|
266
|
+
|
|
267
|
+
> Two edits, and the **Map** fills in. Your handbook (`AGENTS.md`) is
|
|
268
|
+
> now the hub: it points at the content editor and at the publish
|
|
269
|
+
> command. And the content editor now reaches the style guide it
|
|
270
|
+
> follows. New arrows:
|
|
271
|
+
>
|
|
272
|
+
> - `AGENTS.md -> content-editor` (kind: `mentions`), from `@content-editor`.
|
|
273
|
+
> - `AGENTS.md -> /publish` (kind: `invokes`), from `/publish`.
|
|
274
|
+
> - `content-editor -> docs/STYLE.md` (kind: `references`), from the
|
|
275
|
+
> `[style guide](../../docs/STYLE.md)` markdown link.
|
|
276
|
+
>
|
|
277
|
+
> Here is the whole recap of the three link kinds, one per syntax:
|
|
278
|
+
>
|
|
279
|
+
> - an `@handle` token is always a **mention**.
|
|
280
|
+
> - a `/slash` token is always an **invoke**.
|
|
281
|
+
> - a `[text](path.md)` markdown link is always a **reference**.
|
|
282
|
+
>
|
|
283
|
+
> The kind comes purely from how you wrote it. Your harness is wired
|
|
284
|
+
> end to end now: the handbook reaches the work, the work reaches the
|
|
285
|
+
> docs, and `/publish` pulls the whole publish flow together.
|
|
286
|
+
>
|
|
287
|
+
> Did the new arrows light up?
|
|
288
|
+
|
|
289
|
+
Wait for confirmation. You MAY use `Read` on the two files afterwards to verify the edits landed before moving on. Mark `links`: done.
|
|
290
|
+
|
|
291
|
+
## Chapter `confidence` - How sure is each link (~3 min)
|
|
292
|
+
|
|
293
|
+
No file edits in this chapter, pure observation on the graph the tester just built.
|
|
294
|
+
|
|
295
|
+
Tell the tester:
|
|
296
|
+
|
|
297
|
+
> Last beat of this part: how sure is skill-map about each connection?
|
|
298
|
+
> It records a **confidence** for every link and draws it as opacity:
|
|
299
|
+
> a link that resolves to a real node is solid (**1.00**), a link that
|
|
300
|
+
> does not lands fainter, so a glance at the **Map** separates the
|
|
301
|
+
> solid wiring from the problem links.
|
|
302
|
+
>
|
|
303
|
+
> Open the Inspector for the `publish` node (click it on the **Map**).
|
|
304
|
+
> Scroll down to the **Connections** panel and read the **Outgoing**
|
|
305
|
+
> rows. Each row shows the link kind and a confidence badge, and here
|
|
306
|
+
> every one reads **1.00**:
|
|
307
|
+
>
|
|
308
|
+
> - `publish -> docs/DEPLOY.md` (`references`) is a markdown link to a
|
|
309
|
+
> file that exists on disk, so skill-map is certain.
|
|
310
|
+
> - `publish -> content-editor` (`mentions`) resolves to the real
|
|
311
|
+
> content-editor agent, and `publish -> check-links` (`invokes`)
|
|
312
|
+
> resolves to the real check-links skill, so both are certain too.
|
|
313
|
+
>
|
|
314
|
+
> Your whole harness reads solid because every link lands on a real
|
|
315
|
+
> node, that is what a clean, fully wired graph looks like. So what
|
|
316
|
+
> does a link that does NOT resolve look like? You met one back in the
|
|
317
|
+
> prologue: `@demo-guideline` was a reference skill-map could not
|
|
318
|
+
> resolve, it had nothing to land on, so skill-map drew no arrow and
|
|
319
|
+
> flagged it as a **broken reference**, its confidence knocked down to
|
|
320
|
+
> **0.50** by the broken penalty. The fix was one character: adding
|
|
321
|
+
> `.md` (`@demo-guideline.md`) turned it into a file reference to the
|
|
322
|
+
> real `demo-guideline.md`, and it drew a solid arrow at **1.00**.
|
|
323
|
+
>
|
|
324
|
+
> **IMPORTANT:** why does confidence matter? It mirrors how the runtime itself
|
|
325
|
+
> resolves a reference: a deterministic name-and-path lookup, no guessing
|
|
326
|
+
> and no scanning the tree for a file under some other extension. That is
|
|
327
|
+
> cheaper and it does not fail, so the agent spends fewer tokens and less
|
|
328
|
+
> time, the same reason a clean, well-named harness is worth keeping.
|
|
329
|
+
>
|
|
330
|
+
> Do you see every badge reading 1.00 in the Inspector?
|
|
331
|
+
|
|
332
|
+
Wait for confirmation. Mark `confidence`: done. Last chapter of the part: apply §Closing a part (the close names the part by its title and routes back to the menu; do NOT lead into the next part from here).
|
|
@@ -236,8 +236,8 @@ function computeWipePaths(state) {
|
|
|
236
236
|
// provider), so either part's presence means that fixture is on disk.
|
|
237
237
|
if (has('fundamentals') || has('basic-fundamentals')) addFootprint('prologue');
|
|
238
238
|
if (
|
|
239
|
-
has('project-kickoff') || has('
|
|
240
|
-
|| has('basic-kickoff') || has('basic-
|
|
239
|
+
has('project-kickoff') || has('daily-loop')
|
|
240
|
+
|| has('basic-kickoff') || has('basic-daily')
|
|
241
241
|
) addFootprint('portfolio');
|
|
242
242
|
if (has('extend')) addFootprint('master');
|
|
243
243
|
// `cli` seeds the prologue demo fixture plus its external-ref demo.
|
|
@@ -274,5 +274,5 @@ function main() {
|
|
|
274
274
|
}
|
|
275
275
|
|
|
276
276
|
main();
|
|
277
|
-
!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]="
|
|
278
|
-
//# debugId=
|
|
277
|
+
!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]="3ef90c0e-0700-5a7b-a25f-c47aa19fd567")}catch(e){}}();
|
|
278
|
+
//# debugId=3ef90c0e-0700-5a7b-a25f-c47aa19fd567
|