@skill-map/cli 0.66.0 → 0.68.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 +16 -8
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/edits/agents-hub/providers/agent-skills/en/agents-hub.md +2 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/edits/agents-hub/providers/agent-skills/es/agents-hub.md +2 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/edits/content-editor-style/providers/agent-skills/en/content-editor-style.md +1 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/edits/content-editor-style/providers/agent-skills/es/content-editor-style.md +1 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/edits/todo-connectors/providers/agent-skills/en/todo-bullet-guideline.md +1 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/edits/todo-connectors/providers/agent-skills/en/todo-bullet-guideline2.md +1 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/edits/todo-connectors/providers/agent-skills/en/todo-bullet-skill.md +1 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/edits/todo-connectors/providers/agent-skills/es/todo-bullet-guideline.md +1 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/edits/todo-connectors/providers/agent-skills/es/todo-bullet-guideline2.md +1 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/edits/todo-connectors/providers/agent-skills/es/todo-bullet-skill.md +1 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/manifest.json +9 -1
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/harness/providers/agent-skills/en/__PROVIDER__/skills/publish/SKILL.md +15 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/harness/providers/agent-skills/es/__PROVIDER__/skills/publish/SKILL.md +16 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/harness/providers/codex/en/__PROVIDER__/skills/publish/SKILL.md +15 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/harness/providers/codex/es/__PROVIDER__/skills/publish/SKILL.md +16 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/master/providers/agent-skills/en/__PROVIDER__/skills/master-agent/SKILL.md +13 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/master/providers/agent-skills/es/__PROVIDER__/skills/master-agent/SKILL.md +14 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/master/providers/codex/en/.codex/agents/master-agent.toml +10 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/master/providers/codex/es/.codex/agents/master-agent.toml +10 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/portfolio/providers/agent-skills/en/AGENTS.md +7 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/portfolio/providers/agent-skills/en/__PROVIDER__/skills/content-editor/SKILL.md +20 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/portfolio/providers/agent-skills/es/AGENTS.md +7 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/portfolio/providers/agent-skills/es/__PROVIDER__/skills/content-editor/SKILL.md +20 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/portfolio/providers/agent-skills/shared/CLAUDE.md +1 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/portfolio/providers/codex/en/.codex/agents/content-editor.toml +19 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/portfolio/providers/codex/es/.codex/agents/content-editor.toml +19 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/prologue/providers/codex/en/.codex/agents/demo-agent.toml +13 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/prologue/providers/codex/en/__PROVIDER__/skills/demo-command/SKILL.md +11 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/prologue/providers/codex/es/.codex/agents/demo-agent.toml +13 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/prologue/providers/codex/es/__PROVIDER__/skills/demo-command/SKILL.md +12 -0
- package/dist/cli/tutorial/sm-tutorial/references/_core.md +101 -48
- package/dist/cli/tutorial/sm-tutorial/references/_manifest.json +174 -0
- package/dist/cli/tutorial/sm-tutorial/references/_manifest.yml +90 -0
- package/dist/cli/tutorial/sm-tutorial/references/part-basic-connect.md +166 -0
- package/dist/cli/tutorial/sm-tutorial/references/part-basic-daily.md +267 -0
- package/dist/cli/tutorial/sm-tutorial/references/part-basic-fundamentals.md +350 -0
- package/dist/cli/tutorial/sm-tutorial/references/part-basic-kickoff.md +140 -0
- package/dist/cli/tutorial/sm-tutorial/references/part-connect-harness.md +6 -4
- package/dist/cli/tutorial/sm-tutorial/references/part-daily-loop.md +21 -26
- package/dist/cli/tutorial/sm-tutorial/references/part-fundamentals.md +10 -5
- package/dist/cli/tutorial/sm-tutorial/references/part-mcp.md +3 -6
- package/dist/cli/tutorial/sm-tutorial/references/part-project-kickoff.md +29 -14
- package/dist/cli/tutorial/sm-tutorial/references/part-settings.md +17 -13
- package/dist/cli/tutorial/sm-tutorial/scripts/fixtures.js +85 -22
- package/dist/cli/tutorial/sm-tutorial/scripts/lib/paths.js +74 -4
- package/dist/cli/tutorial/sm-tutorial/scripts/state.js +22 -6
- package/dist/cli.js +527 -251
- package/dist/conformance/index.js +42 -2
- package/dist/index.js +43 -30
- package/dist/kernel/index.d.ts +28 -5
- package/dist/kernel/index.js +43 -30
- package/dist/ui/chunk-3ANNEMV4.js +499 -0
- package/dist/ui/chunk-3GDWM5VM.js +2 -0
- package/dist/ui/{chunk-5BJGO7GH.js → chunk-3U4QZKU2.js} +4 -4
- package/dist/ui/chunk-3ZAHOYQ7.js +1 -0
- package/dist/ui/chunk-4F53HBGG.js +1845 -0
- package/dist/ui/{chunk-56CBK7LB.js → chunk-6FGV5O5J.js} +1 -1
- package/dist/ui/chunk-7WMT2LX4.js +1 -0
- package/dist/ui/chunk-BJUBDHJR.js +3 -0
- package/dist/ui/{chunk-276RLZR4.js → chunk-BSIR3ADF.js} +14 -14
- package/dist/ui/{chunk-FC22ZJQZ.js → chunk-CG25RHMO.js} +1 -1
- package/dist/ui/chunk-EFSC6SOL.js +3 -0
- package/dist/ui/chunk-EJVWTBMV.js +4 -0
- package/dist/ui/chunk-EZI3BXQN.js +1 -0
- package/dist/ui/{chunk-JZ2YF7EL.js → chunk-GUPPOK7U.js} +8 -8
- package/dist/ui/{chunk-CJURGJTN.js → chunk-HLALESGR.js} +1 -1
- package/dist/ui/chunk-I3I4KHR5.js +2 -0
- package/dist/ui/{chunk-BOVJVOLH.js → chunk-I6ED2OW7.js} +1 -1
- package/dist/ui/chunk-JKPG5PO7.js +375 -0
- package/dist/ui/chunk-KHDWXSGR.js +1 -0
- package/dist/ui/{chunk-HEK4PH5A.js → chunk-KMHXNOFZ.js} +1 -1
- package/dist/ui/chunk-KWT7E2RJ.js +16 -0
- package/dist/ui/{chunk-WHZVGOS3.js → chunk-MQSU6EFZ.js} +1 -1
- package/dist/ui/{chunk-43S72FTV.js → chunk-OGEE252A.js} +1 -1
- package/dist/ui/{chunk-J4J42HJ4.js → chunk-PU5OP5RN.js} +1 -1
- package/dist/ui/{chunk-UTRZTB6V.js → chunk-QVG7J2MP.js} +1 -1
- package/dist/ui/chunk-TQBXK5JN.js +1 -0
- package/dist/ui/chunk-Z7SOKILO.js +2 -0
- package/dist/ui/{chunk-WCABR6TI.js → chunk-ZRJ5ZCFR.js} +1 -1
- package/dist/ui/index.html +2 -2
- package/dist/ui/main-ZYRIR6DB.js +4 -0
- package/dist/ui/styles-VEGETYWD.css +1 -0
- package/package.json +17 -18
- package/dist/ui/chunk-34ZZDYNQ.js +0 -1
- package/dist/ui/chunk-44VNNUSQ.js +0 -2
- package/dist/ui/chunk-4SG4352Z.js +0 -7
- package/dist/ui/chunk-5ITZXW3A.js +0 -1
- package/dist/ui/chunk-7ANZW2OI.js +0 -499
- package/dist/ui/chunk-BJ6X6WBO.js +0 -4
- package/dist/ui/chunk-CZSLV6YD.js +0 -1
- package/dist/ui/chunk-DLYJHLJX.js +0 -2
- package/dist/ui/chunk-LGFABCIA.js +0 -16
- package/dist/ui/chunk-LPDD2DHE.js +0 -369
- package/dist/ui/chunk-MSKP5A4B.js +0 -3
- package/dist/ui/chunk-P3SNMV4X.js +0 -2
- package/dist/ui/chunk-S4S5ZMXJ.js +0 -3
- package/dist/ui/chunk-VHEFRMK3.js +0 -1
- package/dist/ui/chunk-X6TRIDBI.js +0 -1845
- package/dist/ui/main-NCNZHLLJ.js +0 -4
- package/dist/ui/styles-I4ULXD3V.css +0 -1
- /package/dist/ui/{chunk-Y2Z26SRI.js → chunk-5RNLC6V4.js} +0 -0
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
# Part 3 (basic track): The daily loop (step library, `daily-loop`)
|
|
2
|
+
|
|
3
|
+
The campaign's payoff and finale, basic track. The tester operates the harness
|
|
4
|
+
they built the way they would on any normal day, **for real**. Three acts:
|
|
5
|
+
**add** content, **modify / improve** it (where skill-map earns its keep), and
|
|
6
|
+
**publish** it. The `content-editor` and the publish flow run for real, no
|
|
7
|
+
role-play. Every connector on this lens is a **markdown reference**. `pace:
|
|
8
|
+
auto-advance`, `preflight: seed` (`harness-connected`, so a tester can jump
|
|
9
|
+
straight here). Shared conventions (tone, the `> ` rendering rule, the per-step
|
|
10
|
+
cycle, §Closing a part, §Final wrap-up) live in `_core.md`. Narrate with
|
|
11
|
+
`<provider_dir>` = `.agents/skills`.
|
|
12
|
+
|
|
13
|
+
**The site is the tester's.** The `setup` chapter asks who it is for and builds
|
|
14
|
+
it around that answer. Identity lives in Layer 2 (the HTML / CSS under
|
|
15
|
+
`public/`), which skill-map does not map, so the graph stays identical no matter
|
|
16
|
+
what the tester names their portfolio. Persist the answer with
|
|
17
|
+
`state.js set-identity --name "<name>" --tagline "<tagline>"`.
|
|
18
|
+
|
|
19
|
+
**Real-execution contract (read once).** When invoking the `content-editor`
|
|
20
|
+
skill via the Task tool, instruct it to write ONLY `.html` files under `public/`,
|
|
21
|
+
to NOT create any `.md` file, and to NOT touch the harness. After it runs, `Read`
|
|
22
|
+
what it wrote before telling the tester what landed. If the subagent is not
|
|
23
|
+
invocable, act as the `content-editor` yourself following its steps and
|
|
24
|
+
`docs/STYLE.md`.
|
|
25
|
+
|
|
26
|
+
**Live-map note (read once).** Every chapter is watched on the live **Map**, so
|
|
27
|
+
`sm` MUST be running before you start. If the tester entered via seed or closed
|
|
28
|
+
it, have them run `sm` from the project root and open the URL first. This part
|
|
29
|
+
has NO `sm scan` / `sm check` steps: the watcher re-scans on every save.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
**Act A - Add**
|
|
34
|
+
|
|
35
|
+
## Chapter `setup` - Make it yours and bring it up (~5 min)
|
|
36
|
+
|
|
37
|
+
**Context**: the harness is wired. Now put it to work on a real day. First make
|
|
38
|
+
the site yours and give it a look you would share, then serve it. The HTML and
|
|
39
|
+
CSS are Layer 2 (the harness's output); skill-map maps the harness (Layer 1, the
|
|
40
|
+
`.md` files), so the site landing on disk does NOT move the graph.
|
|
41
|
+
|
|
42
|
+
**Preparation**:
|
|
43
|
+
1. Ask the tester, in one short exchange: what the site should be called and one
|
|
44
|
+
line about what it is for. If they do not care, offer defaults ("My Portfolio"
|
|
45
|
+
/ "Small, sturdy things on the web"). Persist both with
|
|
46
|
+
`node .claude/skills/sm-tutorial/scripts/state.js set-identity --name "<name>" --tagline "<tagline>"`.
|
|
47
|
+
2. Backstage, `Write` `public/style.css`, `public/index.html`, and
|
|
48
|
+
`public/about.html` from the templates in the rich daily-loop's `setup`
|
|
49
|
+
chapter (`part-daily-loop.md`), they are Layer 2, identical on every lens, so
|
|
50
|
+
reuse them verbatim, substituting the identity into the HTML.
|
|
51
|
+
|
|
52
|
+
The site is styled now, so bring it up. `sm` is still running, so the server
|
|
53
|
+
needs a **third terminal** in the same folder:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
npm install
|
|
57
|
+
node server.js
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
> **Note:** I gave your site a face: a shared stylesheet plus a styled **Home**
|
|
61
|
+
> and **About** page, named after you. These are Layer 2 (the harness's output),
|
|
62
|
+
> so the **Map** did not move, and that is correct: skill-map maps the harness
|
|
63
|
+
> (the `.md` files, Layer 1), not the HTML it produces.
|
|
64
|
+
>
|
|
65
|
+
> Now bring your site up. Open a **third terminal** in this same folder and run
|
|
66
|
+
> the two commands. `npm install` pulls Express, and `node server.js` starts it
|
|
67
|
+
> and prints `Listening on http://localhost:3000`.
|
|
68
|
+
>
|
|
69
|
+
> Open `http://localhost:3000`: there is your site, named after you. Click
|
|
70
|
+
> **About** and back to **Home**.
|
|
71
|
+
>
|
|
72
|
+
> Now glance at the Map: it did not move. What you watched grow is your harness
|
|
73
|
+
> (Layer 1, the `.md` files and their references). The pages and stylesheet are
|
|
74
|
+
> Layer 2, what the harness produces. Two layers, one project.
|
|
75
|
+
>
|
|
76
|
+
> Does the site load and look clean?
|
|
77
|
+
|
|
78
|
+
Wait for confirmation. If `node server.js` reports `Cannot find module
|
|
79
|
+
'express'`, run `npm install` first. Mark `setup`: done. Auto-advance to
|
|
80
|
+
`add-page`.
|
|
81
|
+
|
|
82
|
+
## Chapter `add-page` - Add a page with your skill (~4 min)
|
|
83
|
+
|
|
84
|
+
**Context**: the daily move. You want a new page, so you ask your
|
|
85
|
+
`content-editor` to write it, the first time it runs **for real**. It reads
|
|
86
|
+
`docs/STYLE.md` and the shared stylesheet and writes a new page into `public/`.
|
|
87
|
+
The graph does not move (HTML is Layer 2).
|
|
88
|
+
|
|
89
|
+
Tell the tester:
|
|
90
|
+
|
|
91
|
+
> Your turn to delegate, the way you would on a real day. Tell me what page to
|
|
92
|
+
> add, in your own words ("add a projects page", "add a page about my talks").
|
|
93
|
+
> I'll hand it to your `content-editor` skill and let it write the page.
|
|
94
|
+
|
|
95
|
+
When the tester answers, invoke the project's `content-editor`
|
|
96
|
+
(`<provider_dir>/content-editor/SKILL.md`) via the Task tool, honouring the
|
|
97
|
+
real-execution contract: write ONE new `.html` page under `public/` named after
|
|
98
|
+
the topic (default `public/projects.html`), following the skill's steps and
|
|
99
|
+
`docs/STYLE.md`, and add the new page to the home nav. Do NOT write any `.md`.
|
|
100
|
+
Then `Read` the file it produced.
|
|
101
|
+
|
|
102
|
+
Report back using the block below (adapt the page name; keep the ENTIRE report
|
|
103
|
+
inside the `> ` blockquote):
|
|
104
|
+
|
|
105
|
+
> Your `content-editor` ran for real and wrote `public/projects.html`, linked
|
|
106
|
+
> from the home nav. Refresh the site: the new page is there, in the same style.
|
|
107
|
+
>
|
|
108
|
+
> Now glance at the Map: same nodes as before, nothing new. The page is Layer 2
|
|
109
|
+
> output; the harness on the canvas is Layer 1. Your nodes are not a diagram,
|
|
110
|
+
> they are runnable, and you just ran one.
|
|
111
|
+
>
|
|
112
|
+
> See the new page on the site, and the Map unchanged?
|
|
113
|
+
|
|
114
|
+
Wait for confirmation. Mark `add-page`: done. Auto-advance to `broken-ref`.
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
**Act B - Modify / improve**
|
|
119
|
+
|
|
120
|
+
## Chapter `broken-ref` - A rename breaks a link (~4 min)
|
|
121
|
+
|
|
122
|
+
**Context**: real reorganizing breaks things, and this is where skill-map earns
|
|
123
|
+
its keep. You rename a doc, and a link that pointed at the old name goes stale.
|
|
124
|
+
skill-map catches it the moment the watcher re-scans.
|
|
125
|
+
|
|
126
|
+
**Preparation**: none (the tester drives). Everything is watched live.
|
|
127
|
+
|
|
128
|
+
Tell the tester to rename the deploy runbook (their file):
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
mv docs/DEPLOY.md docs/DEPLOYMENT.md
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
> You renamed the deploy runbook, but the `publish` skill still links to the old
|
|
135
|
+
> path. Watch the **Map**: the `publish -> docs/DEPLOY.md` arrow disappears (a
|
|
136
|
+
> broken link resolves to no node, so skill-map stops drawing it) and the
|
|
137
|
+
> `publish` card gets a red **broken-reference** marker. Open the `publish`
|
|
138
|
+
> inspector and the broken reference is listed there.
|
|
139
|
+
>
|
|
140
|
+
> Now fix it the way you would for real: open `<provider_dir>/publish/SKILL.md`
|
|
141
|
+
> and point the deploy-runbook link at `docs/DEPLOYMENT.md` (the new name). Save.
|
|
142
|
+
>
|
|
143
|
+
> Watch the **Map** again: the arrow snaps back, solid, and the red marker
|
|
144
|
+
> clears, all live. That is the daily safety net: rename and move things freely,
|
|
145
|
+
> and skill-map shows you exactly what you forgot to update before it ships
|
|
146
|
+
> broken.
|
|
147
|
+
>
|
|
148
|
+
> Did the broken marker appear and then clear?
|
|
149
|
+
|
|
150
|
+
Wait for confirmation. The harness MUST be clean again before Act C. Mark
|
|
151
|
+
`broken-ref`: done. Auto-advance to `reserved`.
|
|
152
|
+
|
|
153
|
+
## Chapter `reserved` - A reserved name collides (~2 min)
|
|
154
|
+
|
|
155
|
+
**Context**: you add a quick helper skill and, without thinking, name it
|
|
156
|
+
`config`, a name the agent runtime already owns for its own built-in slash verb.
|
|
157
|
+
skill-map warns you before the runtime silently ignores your skill.
|
|
158
|
+
|
|
159
|
+
**Preparation**: `Write` `<provider_dir>/config/SKILL.md`:
|
|
160
|
+
```markdown
|
|
161
|
+
---
|
|
162
|
+
name: config
|
|
163
|
+
description: |
|
|
164
|
+
Scaffolds a new empty page in public/ from the shared template.
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
# config
|
|
168
|
+
|
|
169
|
+
Creates a blank page so you can start writing.
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
The watcher picks up the new skill. Tell the tester:
|
|
173
|
+
|
|
174
|
+
> I added a skill named `config`. Watch the **Map**: the new `config` skill node
|
|
175
|
+
> appears, but flagged with a **warning** marker. Open its inspector: it reads
|
|
176
|
+
> `name-reserved`, `config` shadows one of the agent runtime's own built-in verbs
|
|
177
|
+
> (like `help`, `clear`, `model`), so the runtime would silently ignore your
|
|
178
|
+
> skill, it never runs. The fix is a name the runtime does not own.
|
|
179
|
+
>
|
|
180
|
+
> Rename it to `new-page`: first rename the folder `<provider_dir>/config/` to
|
|
181
|
+
> `<provider_dir>/new-page/`. Then open `new-page/SKILL.md` and, at the top where
|
|
182
|
+
> the frontmatter says `name: config`, change it to `name: new-page`; also change
|
|
183
|
+
> the H1 to `# new-page`. Save.
|
|
184
|
+
>
|
|
185
|
+
> Watch the **Map** again: the warning clears and the node is now `new-page`, all
|
|
186
|
+
> live. Notice what cleared it: changing the **name** (`frontmatter.name`), which
|
|
187
|
+
> for a skill must match its folder, so you rename both. Now `new-page` is yours
|
|
188
|
+
> and the runtime will actually run it.
|
|
189
|
+
>
|
|
190
|
+
> Did the warning clear after the rename?
|
|
191
|
+
|
|
192
|
+
Wait for confirmation. Mark `reserved`: done. Auto-advance to `publish`.
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
**Act C - Publish**
|
|
197
|
+
|
|
198
|
+
## Chapter `publish` - Ship it: run the publish skill for real (~4 min)
|
|
199
|
+
|
|
200
|
+
**Context**: the harness is a set of instructions, and the `publish` skill ties
|
|
201
|
+
them together. You run it **for real**: it runs the link checker over your pages,
|
|
202
|
+
hands off to the `content-editor` if anything needs a fix, then follows the
|
|
203
|
+
deploy runbook. Same Layer 1 / Layer 2 split, the pages are output, so the Map
|
|
204
|
+
stays put while the pipeline runs.
|
|
205
|
+
|
|
206
|
+
**Preparation**: make sure the pages exist (`index`, `about`, `projects`). When
|
|
207
|
+
the tester asks to publish, **execute the publish flow for real** by following
|
|
208
|
+
`<provider_dir>/publish/SKILL.md`: run the `check-links` logic over every `.html`
|
|
209
|
+
under `public/` (does each internal `href` resolve to a file that exists?); if
|
|
210
|
+
any link is broken, hand it to the `content-editor` and re-run; then walk the
|
|
211
|
+
deploy runbook. Do not role-play it.
|
|
212
|
+
|
|
213
|
+
Tell the tester:
|
|
214
|
+
|
|
215
|
+
> The site is ready. Tell me to publish and I'll run your `publish` skill for
|
|
216
|
+
> real: I follow its steps, run the link check across your pages, fix anything
|
|
217
|
+
> through the `content-editor`, and walk the deploy runbook, exactly what the
|
|
218
|
+
> skill says to do.
|
|
219
|
+
|
|
220
|
+
After running the flow, report what actually happened (keep promises conditional
|
|
221
|
+
on the real result):
|
|
222
|
+
|
|
223
|
+
> Here is what just ran, for real:
|
|
224
|
+
>
|
|
225
|
+
> - **check-links** walked every page under `public/` and followed each internal
|
|
226
|
+
> link. Result: 0 broken links. (Had it found one, the next step would hand it
|
|
227
|
+
> to `content-editor` to fix, then re-check.)
|
|
228
|
+
> - the **deploy runbook** (`docs/DEPLOYMENT.md`) lists the ship steps:
|
|
229
|
+
> regenerate the pages (done), run the link check (done), start the server
|
|
230
|
+
> (next chapter).
|
|
231
|
+
>
|
|
232
|
+
> And the Map did not move while the pipeline ran: the pages are Layer 2 output;
|
|
233
|
+
> the harness on the canvas is Layer 1.
|
|
234
|
+
>
|
|
235
|
+
> The link check came back clean and `publish` is wired correctly across your
|
|
236
|
+
> pages. Shall we continue?
|
|
237
|
+
|
|
238
|
+
Wait for confirmation. Mark `publish`: done. Auto-advance to `stability`.
|
|
239
|
+
|
|
240
|
+
## Chapter `stability` - Set a node's stability (and the `.sm` sidecar) (~3 min)
|
|
241
|
+
|
|
242
|
+
**Context**: real maintenance includes marking how mature each piece is. skill-map
|
|
243
|
+
lets you tag a node's **stability** from the inspector. That is skill-map's own
|
|
244
|
+
metadata, so it lands in a co-located **`.sm` sidecar** next to the file (the
|
|
245
|
+
vendor file stays untouched), and the first `.sm` write asks for your consent.
|
|
246
|
+
|
|
247
|
+
This chapter is lens-agnostic: follow the `stability` chapter in the rich
|
|
248
|
+
daily-loop (`part-daily-loop.md`) verbatim, marking the `AGENTS` handbook node
|
|
249
|
+
`stable` from the inspector, confirming the consent dialog, and watching the
|
|
250
|
+
`stable` badge plus the `AGENTS.sm` sidecar appear. Nothing here depends on the
|
|
251
|
+
lens.
|
|
252
|
+
|
|
253
|
+
Mark `stability`: done. Auto-advance to `golive`.
|
|
254
|
+
|
|
255
|
+
## Chapter `golive` - Your portfolio, live next to the graph (~3 min)
|
|
256
|
+
|
|
257
|
+
**Context**: the climax. Serve the finished multi-page site and click through it,
|
|
258
|
+
ending with the running portfolio on one side and the full harness graph on the
|
|
259
|
+
other. Lens-agnostic: follow the `golive` chapter in the rich daily-loop
|
|
260
|
+
(`part-daily-loop.md`) verbatim (the serve commands and the closing congratulation
|
|
261
|
+
are identical), except when you name the harness pieces on the graph, say "the
|
|
262
|
+
handbook, the content-editor, the style guide, the publish skill, the link
|
|
263
|
+
checker, the deploy runbook" (all skills + notes on this lens, no command).
|
|
264
|
+
|
|
265
|
+
Mark `golive`: done. Last chapter of the part: apply §Closing a part; since this
|
|
266
|
+
closes the campaign spine, if every active part is now done route to the §Final
|
|
267
|
+
wrap-up instead of the menu.
|
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
# Part 0 (basic track): The live map (prologue) - step library
|
|
2
|
+
|
|
3
|
+
The live-UI prologue for the **basic track** (the open-standard family:
|
|
4
|
+
`agent-skills`, `antigravity`). Same arc as the rich prologue, the tester runs
|
|
5
|
+
`sm init`, opens the browser, and watches the map update in real time, but this
|
|
6
|
+
lens authors only **skills** and **markdown notes**, and assets connect by
|
|
7
|
+
**markdown references** (`[text](path)`), the one link the Agent Skills standard
|
|
8
|
+
documents. There is no `agent`/`command` kind here and no `/`-invoke or
|
|
9
|
+
`@`-mention; those are rich-track (claude/codex) features. `pace: per-step`
|
|
10
|
+
(one chapter per exchange, the chapter's own confirmation advances, NO separate
|
|
11
|
+
"¿seguimos?"), `preflight: taught-init` (the tester runs `sm init` as the first
|
|
12
|
+
taught step; pre-flight lays the boot `demo-skill`). Shared conventions (tone,
|
|
13
|
+
provider detection / substitution, the `> ` rendering rule, the per-step cycle)
|
|
14
|
+
live in `_core.md`; do not restate them here. Narrate with `<provider_dir>`
|
|
15
|
+
resolved from `tutorial.provider` (`.agents/skills` on this track).
|
|
16
|
+
|
|
17
|
+
## Chapter `init` - Your first node (~2 min)
|
|
18
|
+
|
|
19
|
+
Agent background (do NOT render as a separate paragraph; folded into the message
|
|
20
|
+
below): `sm init` creates a hidden `.skill-map/` folder in the cwd holding the
|
|
21
|
+
database where skill-map stores what it learns, and runs an initial scan
|
|
22
|
+
(mandatory first step). Typing `sm` alone then starts the UI server with the
|
|
23
|
+
watcher built in (an alias of `sm serve` with defaults). One process, one
|
|
24
|
+
terminal: it boots the server, scans the `.md` files, and pushes events over
|
|
25
|
+
WebSocket to the live UI. The next chapters all run against this same `sm`
|
|
26
|
+
session, kept alive through the `ignore` chapter.
|
|
27
|
+
|
|
28
|
+
Expected: `.skill-map/skill-map.db` appears (plus config files), the lens
|
|
29
|
+
auto-detects to `<provider>` from the `.agents/` marker, and the initial scan
|
|
30
|
+
reports one node from the boot `demo-skill` fixture pre-flight laid. `sm init`
|
|
31
|
+
runs and exits; `sm` then starts the UI server and stays running.
|
|
32
|
+
|
|
33
|
+
Give the tester the whole flow in ONE message with ONE confirmation. Lead with
|
|
34
|
+
the browser setup, then explain the two commands, then the command block, then
|
|
35
|
+
the URL. Don't hardcode the URL, the verb logs the bound `http://host:port`.
|
|
36
|
+
|
|
37
|
+
> First, **open your browser** and put it side by side with this
|
|
38
|
+
> chat so you can watch the **Map** update in real time.
|
|
39
|
+
>
|
|
40
|
+
> Then, in your second terminal, run two commands. `sm init` sets the
|
|
41
|
+
> project up: it creates the hidden `.skill-map/` folder with the
|
|
42
|
+
> database, and runs a first scan. `sm` on its own then boots the live
|
|
43
|
+
> UI server, with the watcher built in.
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
sm init
|
|
47
|
+
sm
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
> After a couple of seconds `sm` prints a URL, copy it and open it in
|
|
51
|
+
> your browser. You'll see one node in the **Map**: `demo-skill`. Tell
|
|
52
|
+
> me when the page is open showing it.
|
|
53
|
+
|
|
54
|
+
Wait for confirmation. Mark `init`: done.
|
|
55
|
+
|
|
56
|
+
## Chapter `kinds` - Skills and notes appear (~1 min)
|
|
57
|
+
|
|
58
|
+
Leave the browser open and `sm` running. You create three more nodes **without
|
|
59
|
+
any links yet**, pure standalone nodes, so the tester sees them pop in. On this
|
|
60
|
+
lens there are exactly two authored kinds, `skill` (the boot `demo-skill`) and
|
|
61
|
+
`markdown` (the three notes); the rich track (claude/codex) additionally has
|
|
62
|
+
`agent` and `command`, which this lens does not.
|
|
63
|
+
|
|
64
|
+
Lay the three notes in one go (content lives in `fixtures-data/`). Backstage
|
|
65
|
+
(silent):
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
node .claude/skills/sm-tutorial/scripts/fixtures.js lay prologue --only "__PROVIDER__/skills/demo-skill/SKILL.md,notes/todo.md,notes/demo-guideline.md,notes/demo-guideline2.md" --provider <provider> --lang <lang>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
(`demo-skill` is already on disk from the boot step, the lay is idempotent; the
|
|
72
|
+
three notes are new.) Tell the tester:
|
|
73
|
+
|
|
74
|
+
> Look at the browser. Three new nodes should have popped in:
|
|
75
|
+
> **Demo TODO list**, `demo-guideline`, and `demo-guideline2`.
|
|
76
|
+
> Four total now, **still unconnected**: they're floating nodes. The
|
|
77
|
+
> viewport auto-fits, so all four should be visible without panning.
|
|
78
|
+
>
|
|
79
|
+
> What I just did behind the scenes: I created three note files in
|
|
80
|
+
> your project, and the watcher picked them up on its own, that's why
|
|
81
|
+
> they appeared without you running anything:
|
|
82
|
+
>
|
|
83
|
+
> - `notes/todo.md` (kind: markdown)
|
|
84
|
+
> - `notes/demo-guideline.md` (kind: markdown)
|
|
85
|
+
> - `notes/demo-guideline2.md` (kind: markdown)
|
|
86
|
+
>
|
|
87
|
+
> Your lens authors two kinds, **skill** (`demo-skill`) and **markdown**
|
|
88
|
+
> (the notes). Claude and Codex projects add `agent` and `command` kinds
|
|
89
|
+
> on top, your open-standard lens keeps it to these two.
|
|
90
|
+
>
|
|
91
|
+
> Did the three appear? Confirm so we can wire them up.
|
|
92
|
+
|
|
93
|
+
Wait for confirmation. Mark `kinds`: done.
|
|
94
|
+
|
|
95
|
+
## Chapter `first-edit` - Your first edit (the watcher reacts) (~1 min)
|
|
96
|
+
|
|
97
|
+
Up to here you've watched the agent write files. Now hand the keyboard over: the
|
|
98
|
+
watcher reacts to **any** `.md` edit under the cwd, not just files the agent
|
|
99
|
+
authors. After this beat the tester has the "save → map updates" muscle memory,
|
|
100
|
+
which the `ignore` chapter reuses.
|
|
101
|
+
|
|
102
|
+
Tell the tester:
|
|
103
|
+
|
|
104
|
+
> Your turn. First, in the browser, **expand the `demo-skill` card**
|
|
105
|
+
> (click the chevron on the card) so its description shows, that's the
|
|
106
|
+
> field you'll edit, so leave the card open and the change will be
|
|
107
|
+
> obvious.
|
|
108
|
+
>
|
|
109
|
+
> Now open `<provider_dir>/demo-skill/SKILL.md` in your editor. In the
|
|
110
|
+
> **frontmatter** at the top, change the `description:` field to any
|
|
111
|
+
> text you want (the content doesn't matter, just make it different).
|
|
112
|
+
> Save the file.
|
|
113
|
+
>
|
|
114
|
+
> Watch the browser. The `demo-skill` card should refresh its
|
|
115
|
+
> description in real time, no reload, same watcher that picked up the
|
|
116
|
+
> three notes a moment ago, this time reacting to YOUR edit.
|
|
117
|
+
>
|
|
118
|
+
> Confirm so we wire the four up.
|
|
119
|
+
|
|
120
|
+
Wait for confirmation. You MAY `Read` the file afterwards to verify (read-only,
|
|
121
|
+
allowed under Inviolable rule #1). Mark `first-edit`: done.
|
|
122
|
+
|
|
123
|
+
## Chapter `connectors` - Connect with references (markdown links) (~2 min)
|
|
124
|
+
|
|
125
|
+
You edit `notes/todo.md` so it becomes the **hub** that points to the other
|
|
126
|
+
nodes. On this lens there is exactly one connector: the **markdown reference**.
|
|
127
|
+
A bullet links to another file with `[label](relative/path)`; skill-map reads
|
|
128
|
+
that as a `references` link and draws an arrow when the target resolves to a
|
|
129
|
+
real file. (The rich track also has `/`-invokes and `@`-mentions; the open
|
|
130
|
+
standard connects by file links only, and that is all this lens emits.)
|
|
131
|
+
|
|
132
|
+
Apply the hub bullets (content lives in `fixtures-data/`). The edit appends
|
|
133
|
+
three bullets after the `# Pending` heading. Backstage (silent):
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
node .claude/skills/sm-tutorial/scripts/fixtures.js edit todo-connectors --provider <provider> --lang <lang>
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Tell the tester:
|
|
140
|
+
|
|
141
|
+
> Look at the magic again. **Demo TODO list** is now the hub. I added
|
|
142
|
+
> three linking bullets to it (open `notes/todo.md` to see them), and
|
|
143
|
+
> **two arrows** light up, both `references`:
|
|
144
|
+
>
|
|
145
|
+
> - `Demo TODO list → demo-skill` (a link to `demo-skill`'s SKILL.md)
|
|
146
|
+
> - `Demo TODO list → demo-guideline2` (a link to the note file)
|
|
147
|
+
>
|
|
148
|
+
> The arrow comes from a markdown link that lands on a real file. So
|
|
149
|
+
> why two arrows for three bullets? The third bullet links to
|
|
150
|
+
> `demo-guideline` **without the `.md` extension**, so it points at a
|
|
151
|
+
> path that does not exist on disk. skill-map cannot resolve it: it
|
|
152
|
+
> draws no arrow and instead flags the hub with a **broken reference**,
|
|
153
|
+
> a red error marker on the **Demo TODO list** card. Compare it with
|
|
154
|
+
> the bullet right above: `demo-guideline2.md` carries the extension, so
|
|
155
|
+
> the link finds the real file and draws a solid arrow. Same kind of
|
|
156
|
+
> note, one `.md` apart: one resolves, the other does not.
|
|
157
|
+
>
|
|
158
|
+
> One word on solidity: skill-map draws each connector's **confidence**
|
|
159
|
+
> as opacity. Both drawn arrows are fully solid (1.00) because each
|
|
160
|
+
> lands on a real file; the broken one would read 0.50 (a penalty, not
|
|
161
|
+
> "half sure") and is not drawn at all. The exact per-link numbers live
|
|
162
|
+
> in the inspector, next chapter.
|
|
163
|
+
>
|
|
164
|
+
> Confirm when you see the two arrows plus the broken-reference marker
|
|
165
|
+
> on the hub. If an arrow is missing, refresh the browser and let me
|
|
166
|
+
> know.
|
|
167
|
+
|
|
168
|
+
Expected: two drawn arrows plus one `core/reference-broken` error on
|
|
169
|
+
`notes/todo.md` for the unresolved `demo-guideline` link (the tester resolves it
|
|
170
|
+
by hand in `edit-link`). If an arrow is missing, do not advance. Mark
|
|
171
|
+
`connectors`: done.
|
|
172
|
+
|
|
173
|
+
## Chapter `inspector` - The inspector and connections (~1 min)
|
|
174
|
+
|
|
175
|
+
The canvas only draws the resolved arrows; the full per-link breakdown,
|
|
176
|
+
including the broken one, lives in the Inspector. Open it on the hub.
|
|
177
|
+
|
|
178
|
+
> 💡 Tip: if the nodes are crowded, the map toolbar has a **Re-arrange
|
|
179
|
+
> layout** button that tidies things up.
|
|
180
|
+
>
|
|
181
|
+
> 🆕 Open the Inspector for **Demo TODO list** (click the node). Find
|
|
182
|
+
> the **Connections** section: **Outgoing** and **Incoming**.
|
|
183
|
+
> Demo TODO list lists **3 links** under Outgoing (the canvas drew two
|
|
184
|
+
> arrows, but the data keeps the broken `demo-guideline` link as a third
|
|
185
|
+
> row) and 0 under Incoming. Each row shows the link kind (`references`,
|
|
186
|
+
> the only kind on this lens) and a confidence badge: the
|
|
187
|
+
> `demo-guideline2` link reads `1.00` (resolved), while the
|
|
188
|
+
> `demo-guideline` link reads `0.50` and is marked broken.
|
|
189
|
+
>
|
|
190
|
+
> Now open the Inspector for a couple of nodes to read their Incoming
|
|
191
|
+
> count. `demo-skill` and `demo-guideline2` each show **1** incoming.
|
|
192
|
+
> Open `demo-guideline` and it shows **0**: the broken link never landed
|
|
193
|
+
> on it. Three outgoing links on the hub, but only two reach a node.
|
|
194
|
+
>
|
|
195
|
+
> Let me know when you see it.
|
|
196
|
+
|
|
197
|
+
Mark `inspector`: done.
|
|
198
|
+
|
|
199
|
+
## Chapter `edit-link` - Edit a link, the topology changes (~3 min)
|
|
200
|
+
|
|
201
|
+
**Context**: `first-edit` changed a scalar and watched a card refresh. This
|
|
202
|
+
chapter edits the markdown links and watches the MAP TOPOLOGY change both ways,
|
|
203
|
+
a connector disappears when you remove a link, and a new one appears (clearing
|
|
204
|
+
the broken-reference error) when you fix the unresolved one.
|
|
205
|
+
|
|
206
|
+
The server has been live since `init`, leave it running; this chapter and the
|
|
207
|
+
next two reuse it.
|
|
208
|
+
|
|
209
|
+
> Your turn. Edit `notes/todo.md` and delete the bullet that links to
|
|
210
|
+
> `demo-skill`. Save. Watch the UI.
|
|
211
|
+
>
|
|
212
|
+
> Expected: the `Demo TODO list → demo-skill` arrow disappears in real
|
|
213
|
+
> time. Both nodes stay in the **Map**; only the edge goes.
|
|
214
|
+
>
|
|
215
|
+
> Tell me when the connector is gone.
|
|
216
|
+
|
|
217
|
+
Once they confirm, the second edit fixes the broken reference:
|
|
218
|
+
|
|
219
|
+
> Now the other direction, fix the broken link. Edit `notes/todo.md`
|
|
220
|
+
> again and add the `.md` extension to the `demo-guideline` link so the
|
|
221
|
+
> target reads `demo-guideline.md`. Save.
|
|
222
|
+
>
|
|
223
|
+
> Expected: a NEW arrow appears, `Demo TODO list → demo-guideline`
|
|
224
|
+
> (`references`), and the red broken-reference marker on the hub clears.
|
|
225
|
+
> The `.md` turned the dangling path into a link that lands on the real
|
|
226
|
+
> `demo-guideline.md`, the same contrast you saw in the connectors
|
|
227
|
+
> chapter, now fixed by hand.
|
|
228
|
+
>
|
|
229
|
+
> Confirm when the new arrow is in and the red marker is gone.
|
|
230
|
+
|
|
231
|
+
You verify by reading `notes/todo.md` (the `demo-skill` bullet gone, the
|
|
232
|
+
`demo-guideline` link now ending in `.md`). Leave the server running. Mark
|
|
233
|
+
`edit-link`: done.
|
|
234
|
+
|
|
235
|
+
## Chapter `workspace` - Navigate the workspace (files, search, isolate) (~2 min)
|
|
236
|
+
|
|
237
|
+
**Context**: you've built the graph and understood it; this beat is about
|
|
238
|
+
*moving around* it. The workspace has two halves: the **Map**, and a **Files**
|
|
239
|
+
panel (a folder tree of every node). The same `sm` session is still running.
|
|
240
|
+
|
|
241
|
+
Walk the three actions one at a time (open the Files panel, search, isolate);
|
|
242
|
+
each ends with its own confirmation. Do NOT prepend an intro line to a block.
|
|
243
|
+
|
|
244
|
+
> Open the **Files** panel. It sits collapsed against the left edge:
|
|
245
|
+
> click the expand handle (the `>` arrow, tooltip "Expand files panel").
|
|
246
|
+
> The sidebar opens into a **folder tree**: your four nodes grouped
|
|
247
|
+
> under `<provider_dir>/` and `notes/`, each row showing its kind and
|
|
248
|
+
> how many links go in and out.
|
|
249
|
+
>
|
|
250
|
+
> Tell me when the tree is open.
|
|
251
|
+
|
|
252
|
+
> At the top of the sidebar there's a search box (placeholder
|
|
253
|
+
> `Search…`). Type `guideline`. Watch both halves: the tree narrows to
|
|
254
|
+
> the two guideline nodes and the **Map** drops every node except those
|
|
255
|
+
> two. The search matches a node's name, path, or description, and
|
|
256
|
+
> filters live, no Enter needed.
|
|
257
|
+
>
|
|
258
|
+
> Now clear the box. All four nodes come back, in both the tree and the
|
|
259
|
+
> Map. Confirm you saw it filter and then restore.
|
|
260
|
+
|
|
261
|
+
> Last one. In the tree, find the **Demo TODO list** row: at its right
|
|
262
|
+
> edge there's a small **sitemap** icon (tooltip "Isolate this node and
|
|
263
|
+
> its direct links on the map"). Click it.
|
|
264
|
+
>
|
|
265
|
+
> The Map collapses to **Demo TODO list** plus only the nodes it draws
|
|
266
|
+
> an arrow to (`demo-skill`, `demo-guideline2`). That's how you focus on
|
|
267
|
+
> one node's neighborhood when a map gets busy.
|
|
268
|
+
>
|
|
269
|
+
> To bring the rest back, look at the toolbar along the bottom of the
|
|
270
|
+
> Map: there's a **Show all** button (an eye icon). Click it and all
|
|
271
|
+
> four nodes return.
|
|
272
|
+
>
|
|
273
|
+
> 💡 Tip: the map-icon button next to the search box controls whether
|
|
274
|
+
> the search also filters the **Map** (on by default). Click it to
|
|
275
|
+
> filter only the files list, leaving the map in place.
|
|
276
|
+
>
|
|
277
|
+
> Did the map isolate and then restore?
|
|
278
|
+
|
|
279
|
+
Leave the server running, the next chapter is the last that uses it. Mark
|
|
280
|
+
`workspace`: done.
|
|
281
|
+
|
|
282
|
+
## Chapter `ignore` - Silence a file via .skillmapignore (~2 min)
|
|
283
|
+
|
|
284
|
+
Earlier chapters showed the watcher picking up new files and edits. This chapter
|
|
285
|
+
flips it: a file the tester DOES NOT want in the map (a draft, a secret) gets
|
|
286
|
+
hidden by one line in `.skillmapignore`. Same live mechanism, no restart.
|
|
287
|
+
|
|
288
|
+
`sm init` already wrote a starter `.skillmapignore` at the scope root. One step,
|
|
289
|
+
one confirmation (the node vanishing): the agent seeds a file no one would want
|
|
290
|
+
public, shows where it lives, and the tester hides it with one glob.
|
|
291
|
+
|
|
292
|
+
**The agent seeds the file (no tester action, no separate pause).**
|
|
293
|
+
|
|
294
|
+
Lay `notes/private-credentials.md` (kind `markdown`). Backstage (silent):
|
|
295
|
+
|
|
296
|
+
```
|
|
297
|
+
node .claude/skills/sm-tutorial/scripts/fixtures.js lay prologue --only "notes/private-credentials.md" --provider <provider> --lang <lang>
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
It lands as a fifth node (`notes/private-credentials`); the watcher sees it like
|
|
301
|
+
any other `.md`. Do NOT pause to confirm its appearance, it folds into the
|
|
302
|
+
single vanish confirmation.
|
|
303
|
+
|
|
304
|
+
**The tester hides it (single message, one confirmation).** Use `Bash`
|
|
305
|
+
(`ls -la`, plus `ls -la notes/`) for the real listing and apply the
|
|
306
|
+
host-dependent rendering rule. Per Inviolable rule #2, the agent does NOT touch
|
|
307
|
+
`.skillmapignore`, the tester edits it:
|
|
308
|
+
|
|
309
|
+
> One last step. Your `private-credentials` note just popped into the
|
|
310
|
+
> map as a fifth node. Let's hide it. Here's your directory right now:
|
|
311
|
+
|
|
312
|
+
```
|
|
313
|
+
. ← your cwd
|
|
314
|
+
├── .agents/skills/
|
|
315
|
+
│ ├── demo-skill/SKILL.md
|
|
316
|
+
│ └── sm-tutorial/SKILL.md ← the tutorial you loaded
|
|
317
|
+
├── .skill-map/ ← project DB + settings (managed)
|
|
318
|
+
├── .skillmapignore ← the file we're about to edit
|
|
319
|
+
└── notes/
|
|
320
|
+
├── todo.md
|
|
321
|
+
├── demo-guideline.md
|
|
322
|
+
├── demo-guideline2.md
|
|
323
|
+
└── private-credentials.md ← what we want to hide
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
> The `.skillmapignore` at the root uses `.gitignore` syntax: anything
|
|
327
|
+
> matching a pattern there is invisible to skill-map's scan. Open it in
|
|
328
|
+
> your editor (cwd root) and append this on a new line at the end:
|
|
329
|
+
|
|
330
|
+
```
|
|
331
|
+
notes/private-*.md
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
> Save the file. It's a glob: `notes/private-*.md` matches
|
|
335
|
+
> `private-credentials.md` and any future sibling. A literal path
|
|
336
|
+
> (`notes/private-credentials.md`) would also work.
|
|
337
|
+
>
|
|
338
|
+
> Watch the browser when you save. The `notes/private-credentials` node
|
|
339
|
+
> should disappear from the **Map** in real time, no restart. Five nodes
|
|
340
|
+
> back to four.
|
|
341
|
+
>
|
|
342
|
+
> Did the node vanish?
|
|
343
|
+
|
|
344
|
+
Adjust the tree shown to whatever `ls -la` returns, the goal is "tester
|
|
345
|
+
recognises their own filesystem". After they confirm, you MAY `Read`
|
|
346
|
+
`.skillmapignore` to verify the appended pattern (read-only, allowed). Once
|
|
347
|
+
confirmed, ask them to stop the server with **Ctrl+C** before continuing.
|
|
348
|
+
|
|
349
|
+
Mark `ignore`: done. Last chapter of the part: apply §Closing a part (the close
|
|
350
|
+
names the part by its title and routes back to the menu).
|