@skill-map/cli 0.68.1 → 0.70.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 +8 -3
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/edits/agents-hub/providers/codex/en/agents-hub.md +2 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/edits/agents-hub/providers/codex/es/agents-hub.md +2 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/edits/todo-connectors/providers/codex/en/todo-bullet-agent.md +1 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/edits/todo-connectors/providers/codex/en/todo-bullet-command.md +1 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/edits/todo-connectors/providers/codex/en/todo-bullet-skill.md +1 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/edits/todo-connectors/providers/codex/es/todo-bullet-agent.md +1 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/edits/todo-connectors/providers/codex/es/todo-bullet-command.md +1 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/edits/todo-connectors/providers/codex/es/todo-bullet-skill.md +1 -0
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/harness/providers/codex/en/__PROVIDER__/skills/publish/SKILL.md +2 -2
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/harness/providers/codex/es/__PROVIDER__/skills/publish/SKILL.md +2 -2
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/master/providers/codex/en/.codex/agents/master-agent.toml +1 -1
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/master/providers/codex/es/.codex/agents/master-agent.toml +1 -1
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/portfolio/providers/codex/en/.codex/agents/content-editor.toml +1 -1
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/portfolio/providers/codex/es/.codex/agents/content-editor.toml +1 -1
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/prologue/providers/codex/en/.codex/agents/demo-agent.toml +1 -1
- package/dist/cli/tutorial/sm-tutorial/fixtures-data/sets/prologue/providers/codex/es/.codex/agents/demo-agent.toml +1 -1
- package/dist/cli/tutorial/sm-tutorial/references/_core.md +57 -29
- package/dist/cli/tutorial/sm-tutorial/references/_manifest.json +70 -70
- package/dist/cli/tutorial/sm-tutorial/references/_manifest.yml +38 -38
- package/dist/cli/tutorial/sm-tutorial/references/fixtures.md +3 -3
- package/dist/cli/tutorial/sm-tutorial/references/part-authoring.md +25 -8
- package/dist/cli/tutorial/sm-tutorial/references/part-basic-daily.md +91 -38
- package/dist/cli/tutorial/sm-tutorial/references/part-basic-fundamentals.md +7 -8
- package/dist/cli/tutorial/sm-tutorial/references/part-basic-kickoff.md +1 -1
- package/dist/cli/tutorial/sm-tutorial/references/part-cli.md +1 -1
- package/dist/cli/tutorial/sm-tutorial/references/part-daily-loop.md +173 -56
- package/dist/cli/tutorial/sm-tutorial/references/part-fundamentals.md +14 -13
- package/dist/cli/tutorial/sm-tutorial/references/part-plugins.md +1 -1
- package/dist/cli/tutorial/sm-tutorial/references/part-project-kickoff.md +14 -12
- package/dist/cli/tutorial/sm-tutorial/references/part-settings.md +2 -2
- package/dist/cli/tutorial/sm-tutorial/scripts/lib/paths.js +6 -5
- package/dist/cli.js +963 -451
- package/dist/conformance/index.js +3 -3
- package/dist/index.js +17 -14
- package/dist/kernel/index.d.ts +54 -17
- package/dist/kernel/index.js +17 -14
- package/dist/migrations/001_initial.sql +7 -3
- package/dist/ui/{chunk-22EQLC23.js → chunk-EVNCL7FV.js} +21 -21
- package/dist/ui/chunk-GUGB4JY5.js +1 -0
- package/dist/ui/chunk-RJUHQQOF.js +3 -0
- package/dist/ui/{chunk-KMHXNOFZ.js → chunk-RSPEJBPT.js} +1 -1
- package/dist/ui/chunk-SQCXHF3J.js +2 -0
- package/dist/ui/index.html +1 -1
- package/dist/ui/main-K4O6LCIJ.js +4 -0
- package/migrations/001_initial.sql +7 -3
- package/package.json +2 -2
- package/dist/ui/chunk-K3ZRQNN5.js +0 -2
- package/dist/ui/chunk-PU5OP5RN.js +0 -1
- package/dist/ui/chunk-TLMV4LOQ.js +0 -3
- package/dist/ui/main-R7BIU4HU.js +0 -4
|
@@ -53,11 +53,11 @@ parts:
|
|
|
53
53
|
- id: init ; title: "Your first node (sm init, sm, the UI)" ; est_min: 2
|
|
54
54
|
- id: kinds ; title: "The other kinds appear" ; est_min: 1
|
|
55
55
|
- id: first-edit ; title: "Your first edit (the watcher reacts)" ; est_min: 1
|
|
56
|
-
- id: connectors ; title: "The connectors light up" ; est_min:
|
|
56
|
+
- id: connectors ; title: "The connectors light up" ; est_min: 1
|
|
57
57
|
- id: inspector ; title: "The inspector and connections" ; est_min: 1
|
|
58
|
-
- id: edit-link ; title: "Edit a link, the topology changes" ; est_min:
|
|
59
|
-
- id: workspace ; title: "Navigate the workspace (files, search, isolate)" ; est_min:
|
|
60
|
-
- id: ignore ; title: "Silence a file via .skillmapignore" ; est_min:
|
|
58
|
+
- id: edit-link ; title: "Edit a link, the topology changes" ; est_min: 2
|
|
59
|
+
- id: workspace ; title: "Navigate the workspace (files, search, isolate)" ; est_min: 1
|
|
60
|
+
- id: ignore ; title: "Silence a file via .skillmapignore" ; est_min: 1
|
|
61
61
|
|
|
62
62
|
- id: basic-fundamentals
|
|
63
63
|
order: 0
|
|
@@ -72,15 +72,15 @@ parts:
|
|
|
72
72
|
- id: init ; title: "Your first node (sm init, sm, the UI)" ; est_min: 2
|
|
73
73
|
- id: kinds ; title: "Skills and notes appear" ; est_min: 1
|
|
74
74
|
- id: first-edit ; title: "Your first edit (the watcher reacts)" ; est_min: 1
|
|
75
|
-
- id: connectors ; title: "Connect with references (markdown links)" ; est_min:
|
|
75
|
+
- id: connectors ; title: "Connect with references (markdown links)" ; est_min: 1
|
|
76
76
|
- id: inspector ; title: "The inspector and connections" ; est_min: 1
|
|
77
|
-
- id: edit-link ; title: "Edit a link, the topology changes" ; est_min:
|
|
78
|
-
- id: workspace ; title: "Navigate the workspace (files, search, isolate)" ; est_min:
|
|
79
|
-
- id: ignore ; title: "Silence a file via .skillmapignore" ; est_min:
|
|
77
|
+
- id: edit-link ; title: "Edit a link, the topology changes" ; est_min: 2
|
|
78
|
+
- id: workspace ; title: "Navigate the workspace (files, search, isolate)" ; est_min: 1
|
|
79
|
+
- id: ignore ; title: "Silence a file via .skillmapignore" ; est_min: 1
|
|
80
80
|
|
|
81
81
|
- id: extend
|
|
82
|
-
order:
|
|
83
|
-
title: "Extend skill-map
|
|
82
|
+
order: 4
|
|
83
|
+
title: "Extend skill-map with plugins"
|
|
84
84
|
# Spans three chapter libraries; dispatch by chapter-id prefix:
|
|
85
85
|
# settings-* -> part-settings.md
|
|
86
86
|
# tour-* -> part-plugins.md
|
|
@@ -97,10 +97,10 @@ parts:
|
|
|
97
97
|
chapters:
|
|
98
98
|
- id: settings-1-layers ; title: "The config layers and `sm config list`" ; est_min: 3
|
|
99
99
|
- id: settings-2-resolve ; title: "Read, resolve, and set a value with `sm config`" ; est_min: 3
|
|
100
|
-
- id: settings-3-lens ; title: "The active provider lens (`activeProvider`)" ; est_min:
|
|
101
|
-
- id: tour-1-intro ; title: "How plugins work" ; est_min:
|
|
102
|
-
- id: tour-2-kinds ; title: "The six extension kinds" ; est_min:
|
|
103
|
-
- id: tour-3-explore ; title: "Explore one extension up close" ; est_min:
|
|
100
|
+
- id: settings-3-lens ; title: "The active provider lens (`activeProvider`)" ; est_min: 3
|
|
101
|
+
- id: tour-1-intro ; title: "How plugins work" ; est_min: 3
|
|
102
|
+
- id: tour-2-kinds ; title: "The six extension kinds" ; est_min: 4
|
|
103
|
+
- id: tour-3-explore ; title: "Explore one extension up close" ; est_min: 3
|
|
104
104
|
- id: authoring-1-scaffold ; title: "`sm plugins create extractor demo-highlight`" ; est_min: 2
|
|
105
105
|
- id: authoring-2-anatomy ; title: "Tour the scaffold (plugin.json + stubs + README)" ; est_min: 3
|
|
106
106
|
- id: authoring-3-edit-setting ; title: "Edit a setting (string-list) and observe it in the UI" ; est_min: 3
|
|
@@ -108,8 +108,8 @@ parts:
|
|
|
108
108
|
- id: authoring-5-doctor-author ; title: "Catch a manifest mistake with `sm plugins doctor`" ; est_min: 2
|
|
109
109
|
|
|
110
110
|
- id: cli
|
|
111
|
-
order:
|
|
112
|
-
title: "The CLI
|
|
111
|
+
order: 3
|
|
112
|
+
title: "The CLI for you and your agent"
|
|
113
113
|
step_file: part-cli.md
|
|
114
114
|
pace: auto-advance
|
|
115
115
|
preflight: seed # self-seeds the Part 0 demo fixture
|
|
@@ -118,11 +118,11 @@ parts:
|
|
|
118
118
|
track: both # CLI verbs are lens-agnostic; prose notes lens-specific node counts
|
|
119
119
|
status: active
|
|
120
120
|
chapters:
|
|
121
|
-
- id: browse ; title: "list / show / check" ; est_min:
|
|
122
|
-
- id: graph-export ; title: "graph / export (query, formatters)" ; est_min:
|
|
123
|
-
- id: issues ; title: "Issues and broken refs (--analyzers, --json)" ; est_min:
|
|
121
|
+
- id: browse ; title: "list / show / check" ; est_min: 2
|
|
122
|
+
- id: graph-export ; title: "graph / export (query, formatters)" ; est_min: 2
|
|
123
|
+
- id: issues ; title: "Issues and broken refs (--analyzers, --json)" ; est_min: 2
|
|
124
124
|
- id: annotations ; title: "Annotations and the .sm consent prompt" ; est_min: 3
|
|
125
|
-
- id: reference-paths ; title: "Validate links to folders outside the scan scope" ; est_min:
|
|
125
|
+
- id: reference-paths ; title: "Validate links to folders outside the scan scope" ; est_min: 3
|
|
126
126
|
|
|
127
127
|
# ----- the portfolio campaign (the spine's real project) -----
|
|
128
128
|
# Each part builds on the prior one's accumulated harness. Run in
|
|
@@ -133,7 +133,7 @@ parts:
|
|
|
133
133
|
|
|
134
134
|
- id: project-kickoff
|
|
135
135
|
order: 1
|
|
136
|
-
title: "The
|
|
136
|
+
title: "The harness from zero"
|
|
137
137
|
step_file: part-project-kickoff.md
|
|
138
138
|
pace: per-step
|
|
139
139
|
preflight: portfolio-init # lays the Express skeleton + AGENTS.md; clears the prologue demo fixture if present
|
|
@@ -144,10 +144,10 @@ parts:
|
|
|
144
144
|
- id: kickoff ; title: "Start the portfolio (sm init on the real skeleton)" ; est_min: 2
|
|
145
145
|
- id: manual ; title: "The handbook (AGENTS.md) and CLAUDE.md" ; est_min: 2
|
|
146
146
|
- id: first-agent ; title: "The first harness agent (content-editor)" ; est_min: 2
|
|
147
|
-
- id: real-kinds ; title: "The real kinds in context" ; est_min:
|
|
148
|
-
- id: check-links ; title: "The check-links skill" ; est_min:
|
|
149
|
-
- id: publish ; title: "The /publish command invokes the skill" ; est_min:
|
|
150
|
-
- id: links ; title: "Mentions (@) and references between assets" ; est_min:
|
|
147
|
+
- id: real-kinds ; title: "The real kinds in context" ; est_min: 1
|
|
148
|
+
- id: check-links ; title: "The check-links skill" ; est_min: 1
|
|
149
|
+
- id: publish ; title: "The /publish command invokes the skill" ; est_min: 2
|
|
150
|
+
- id: links ; title: "Mentions (@) and references between assets" ; est_min: 2
|
|
151
151
|
- id: confidence ; title: "Connector confidence (opacity = certainty)" ; est_min: 2
|
|
152
152
|
|
|
153
153
|
- id: daily-loop
|
|
@@ -162,11 +162,11 @@ parts:
|
|
|
162
162
|
track: rich # agent-driven page add + reserved command; basic track has its own counterpart
|
|
163
163
|
status: active
|
|
164
164
|
chapters:
|
|
165
|
-
- id: setup ; title: "Make it yours and bring it up" ; est_min:
|
|
166
|
-
- id: add-page ; title: "Add a page with your agent" ; est_min:
|
|
167
|
-
- id: broken-ref ; title: "A rename breaks a link" ; est_min:
|
|
165
|
+
- id: setup ; title: "Make it yours and bring it up" ; est_min: 4
|
|
166
|
+
- id: add-page ; title: "Add a page with your agent" ; est_min: 3
|
|
167
|
+
- id: broken-ref ; title: "A rename breaks a link" ; est_min: 3
|
|
168
168
|
- id: reserved ; title: "A reserved name collides" ; est_min: 2
|
|
169
|
-
- id: publish ; title: "Ship it: run /publish for real" ; est_min:
|
|
169
|
+
- id: publish ; title: "Ship it: run /publish for real" ; est_min: 3
|
|
170
170
|
- id: stability ; title: "Set a node's stability (and the `.sm` sidecar)" ; est_min: 3
|
|
171
171
|
- id: golive ; title: "Your website, live next to the graph" ; est_min: 3
|
|
172
172
|
|
|
@@ -177,7 +177,7 @@ parts:
|
|
|
177
177
|
|
|
178
178
|
- id: basic-kickoff
|
|
179
179
|
order: 1
|
|
180
|
-
title: "The
|
|
180
|
+
title: "The harness from zero"
|
|
181
181
|
step_file: part-basic-kickoff.md
|
|
182
182
|
pace: per-step
|
|
183
183
|
preflight: portfolio-init
|
|
@@ -189,10 +189,10 @@ parts:
|
|
|
189
189
|
- id: manual ; title: "The handbook (AGENTS.md) and an entry pointer" ; est_min: 2
|
|
190
190
|
- id: first-skill ; title: "The first harness skill (content-editor)" ; est_min: 2
|
|
191
191
|
- id: real-kinds ; title: "The kinds in context" ; est_min: 2
|
|
192
|
-
- id: check-links ; title: "The link checker" ; est_min:
|
|
193
|
-
- id: publish ; title: "The publish skill references the harness" ; est_min:
|
|
194
|
-
- id: links ; title: "The handbook becomes the hub (references)" ; est_min:
|
|
195
|
-
- id: confidence ; title: "Connector confidence (opacity = certainty)" ; est_min:
|
|
192
|
+
- id: check-links ; title: "The link checker" ; est_min: 2
|
|
193
|
+
- id: publish ; title: "The publish skill references the harness" ; est_min: 3
|
|
194
|
+
- id: links ; title: "The handbook becomes the hub (references)" ; est_min: 3
|
|
195
|
+
- id: confidence ; title: "Connector confidence (opacity = certainty)" ; est_min: 2
|
|
196
196
|
|
|
197
197
|
- id: basic-daily
|
|
198
198
|
order: 2
|
|
@@ -206,11 +206,11 @@ parts:
|
|
|
206
206
|
track: basic
|
|
207
207
|
status: active
|
|
208
208
|
chapters:
|
|
209
|
-
- id: setup ; title: "Make it yours and bring it up" ; est_min:
|
|
210
|
-
- id: add-page ; title: "Add a page with your skill" ; est_min:
|
|
211
|
-
- id: broken-ref ; title: "A rename breaks a link" ; est_min:
|
|
209
|
+
- id: setup ; title: "Make it yours and bring it up" ; est_min: 4
|
|
210
|
+
- id: add-page ; title: "Add a page with your skill" ; est_min: 3
|
|
211
|
+
- id: broken-ref ; title: "A rename breaks a link" ; est_min: 3
|
|
212
212
|
- id: reserved ; title: "A reserved name collides" ; est_min: 2
|
|
213
|
-
- id: publish ; title: "Ship it: run the publish skill for real" ; est_min:
|
|
213
|
+
- id: publish ; title: "Ship it: run the publish skill for real" ; est_min: 3
|
|
214
214
|
- id: stability ; title: "Set a node's stability (and the `.sm` sidecar)" ; est_min: 3
|
|
215
215
|
- id: golive ; title: "Your website, live next to the graph" ; est_min: 3
|
|
216
216
|
|
|
@@ -40,8 +40,8 @@ fixtures-data/
|
|
|
40
40
|
| `prologue` | the seven Part 0 demo nodes | Part 0 (progressive, `--only`), `prologue-built` seed |
|
|
41
41
|
| `portfolio` | Express skeleton, handbook, `content-editor`, `docs/STYLE` + `DEPLOY` | Part 1 (`--only` boot, chapters lay the rest), `harness-connected` seed |
|
|
42
42
|
| `harness` | `check-links` skill, `publish` command | Part 1 connect chapters, `harness-connected` seed |
|
|
43
|
-
| `master` | `master-agent`, `master-skill`, `notes/ideas` | Part
|
|
44
|
-
| `cli-external` | `link-validation/hijoA` + `hijoB` | Part
|
|
43
|
+
| `master` | `master-agent`, `master-skill`, `notes/ideas` | Part 4 `backstage-init` |
|
|
44
|
+
| `cli-external` | `link-validation/hijoA` + `hijoB` | Part 3 `reference-paths` |
|
|
45
45
|
|
|
46
46
|
## Edits (append fragments)
|
|
47
47
|
|
|
@@ -62,7 +62,7 @@ entered out of order.
|
|
|
62
62
|
|
|
63
63
|
| Seed | Lays | Edits | Drops |
|
|
64
64
|
|---|---|---|---|
|
|
65
|
-
| `prologue-built` (Part
|
|
65
|
+
| `prologue-built` (Part 3) | `prologue` | `todo-connectors` | `notes/private-credentials.md` |
|
|
66
66
|
| `harness-connected` (Part 2) | `portfolio` + `harness` | `agents-hub`, `content-editor-style` | , |
|
|
67
67
|
|
|
68
68
|
## Footprints (what `clear` and `wipe` remove)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Part
|
|
1
|
+
# Part 4 (c): Extend skill-map - build plugins (step library, `authoring-*` ids)
|
|
2
2
|
|
|
3
|
-
Step bodies for the plugin-authoring chapters of Part
|
|
3
|
+
Step bodies for the plugin-authoring chapters of Part 4.
|
|
4
4
|
The SKILL.md orchestrator dispatches each `authoring-*` chapter id
|
|
5
5
|
here; `settings-*` ids it dispatches to `part-settings.md`.
|
|
6
6
|
|
|
@@ -41,6 +41,7 @@ Created /<cwd>/.skill-map/plugins/demo-highlight
|
|
|
41
41
|
Next:
|
|
42
42
|
- Edit extractors/demo-highlight-extractor/index.js
|
|
43
43
|
- Run sm plugins doctor to confirm it loads
|
|
44
|
+
- Run sm plugins trust demo-highlight to let its code run (project-local plugins are untrusted until you allow them)
|
|
44
45
|
- sm plugins slots list: browse slots and input-types
|
|
45
46
|
```
|
|
46
47
|
|
|
@@ -48,6 +49,28 @@ Next:
|
|
|
48
49
|
slashes, no uppercase. `demo-highlight` is fine, `demo/highlight`
|
|
49
50
|
or `Demo-Highlight` are rejected.
|
|
50
51
|
|
|
52
|
+
**Trust it before it can run.** A project-local plugin you just dropped
|
|
53
|
+
into `.skill-map/plugins/` is discovered but its code does NOT run until
|
|
54
|
+
you trust it on this machine, a security gate so cloning a repo never
|
|
55
|
+
auto-executes its plugins behind your back. The plugin is yours (you just
|
|
56
|
+
wrote it), so grant trust now; the next chapters need it to run. Tell the
|
|
57
|
+
tester:
|
|
58
|
+
|
|
59
|
+
> One more step before your plugin can run. skill-map found it but will
|
|
60
|
+
> not execute its code until you **trust** it, your local consent that
|
|
61
|
+
> this code may run on your machine. It is yours, so trust it:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
sm plugins trust demo-highlight
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
> Two separate ideas, on purpose: **enable** says "this plugin is part of
|
|
68
|
+
> the project" (shared, lives in the config), **trust** says "I let it run
|
|
69
|
+
> on this machine" (local, never travels in a commit). A scaffolded plugin
|
|
70
|
+
> is enabled by default, so trusting it is all it needs to run. You can
|
|
71
|
+
> revoke later with `sm plugins untrust demo-highlight`, or use the
|
|
72
|
+
> per-plugin Trust control in the Settings UI.
|
|
73
|
+
|
|
51
74
|
Mark `authoring-1-scaffold: done`.
|
|
52
75
|
|
|
53
76
|
## Step `authoring-2-anatomy` - tour the scaffold (~3 min)
|
|
@@ -162,12 +185,6 @@ the browser, click `notes/ideas`, and find the chip in the card's
|
|
|
162
185
|
**left footer** (it also shows in the inspector). It reads
|
|
163
186
|
`🔍 kw 3`, one match per keyword.
|
|
164
187
|
|
|
165
|
-
> Heads up: editing only the fixture (`notes/ideas.md`) updates
|
|
166
|
-
> live through the watcher, but it recounts with the OLD keyword
|
|
167
|
-
> set, so the chip would read `🔍 kw 2`. The new `XXX` keyword
|
|
168
|
-
> lives in the plugin, and the plugin is read at boot, that is why
|
|
169
|
-
> restarting `sm` is the step that takes the count to 3.
|
|
170
|
-
|
|
171
188
|
> Three matches. The setting flowed from the extension's `settings`
|
|
172
189
|
> through `ctx.settings.keywords` into the extractor, the extractor
|
|
173
190
|
> counted them, the kernel persisted the contribution, and the UI
|
|
@@ -101,6 +101,9 @@ inside the `> ` blockquote):
|
|
|
101
101
|
> output; the harness on the canvas is Layer 1. Your nodes are not a diagram,
|
|
102
102
|
> they are runnable, and you just ran one.
|
|
103
103
|
>
|
|
104
|
+
> If the new page is not showing, refresh the browser with F5, the site does
|
|
105
|
+
> not reload on its own.
|
|
106
|
+
>
|
|
104
107
|
> See the new page on the site, and the Map unchanged?
|
|
105
108
|
|
|
106
109
|
Wait for confirmation. Mark `add-page`: done. Auto-advance to `broken-ref`.
|
|
@@ -146,77 +149,127 @@ Wait for confirmation. The harness MUST be clean again before Act C. Mark
|
|
|
146
149
|
|
|
147
150
|
## Chapter `reserved` - A reserved name collides (~2 min)
|
|
148
151
|
|
|
149
|
-
**Preparation**: `Write` `<provider_dir>/
|
|
152
|
+
**Preparation**: `Write` `<provider_dir>/model/SKILL.md`:
|
|
150
153
|
```markdown
|
|
151
154
|
---
|
|
152
|
-
name:
|
|
155
|
+
name: model
|
|
153
156
|
description: |
|
|
154
157
|
Scaffolds a new empty page in public/ from the shared template.
|
|
155
158
|
---
|
|
156
159
|
|
|
157
|
-
#
|
|
160
|
+
# model
|
|
158
161
|
|
|
159
162
|
Creates a blank page so you can start writing.
|
|
160
163
|
```
|
|
161
164
|
|
|
162
165
|
The watcher picks up the new skill. Tell the tester:
|
|
163
166
|
|
|
164
|
-
> I added a skill named `
|
|
165
|
-
> appears,
|
|
166
|
-
> `
|
|
167
|
-
>
|
|
168
|
-
>
|
|
169
|
-
>
|
|
170
|
-
> Rename it to `new-page`: first rename the folder `<provider_dir>/config/` to
|
|
171
|
-
> `<provider_dir>/new-page/`. Then open `new-page/SKILL.md` and, at the top where
|
|
172
|
-
> the frontmatter says `name: config`, change it to `name: new-page`. Save.
|
|
167
|
+
> I added a skill named `model`. Watch the **Map**: the new `model` skill node
|
|
168
|
+
> appears **clean, no warning**. On the open Agent Skills standard a skill is
|
|
169
|
+
> activated by its `description`, not invoked by a `/` command, so a skill name
|
|
170
|
+
> can never collide with a built-in command, there are NO reserved skill names.
|
|
171
|
+
> Name your skills anything you like, even after a CLI built-in like `model` or
|
|
172
|
+
> `help`.
|
|
173
173
|
>
|
|
174
|
-
>
|
|
175
|
-
>
|
|
176
|
-
>
|
|
177
|
-
>
|
|
174
|
+
> The one exception is a vendor that bolts `/`-invocation onto the standard:
|
|
175
|
+
> Google's Antigravity invokes skills with `/<name>`, so under the Antigravity
|
|
176
|
+
> lens a skill named after one of its built-in verbs (like `goal`) WOULD be
|
|
177
|
+
> flagged `name-reserved`. The neutral open standard you are on reserves nothing.
|
|
178
178
|
>
|
|
179
|
-
>
|
|
179
|
+
> See the `model` node land clean, with no warning?
|
|
180
180
|
|
|
181
181
|
Wait for confirmation. Mark `reserved`: done. Auto-advance to `publish`.
|
|
182
182
|
|
|
183
|
+
**Antigravity delta** (`tutorial.provider == antigravity`): skills ARE
|
|
184
|
+
`/`-invoked here, so a built-in verb DOES collide. Name the skill `goal` (an
|
|
185
|
+
Antigravity built-in) instead of `model`, narrate the `name-reserved`
|
|
186
|
+
**warning** that appears, and have the tester clear it by renaming the folder +
|
|
187
|
+
`frontmatter.name` to `new-page` (the warning clears live). That collision-and-
|
|
188
|
+
fix beat is the Antigravity version; `agent-skills` gets the "names are free"
|
|
189
|
+
lesson above.
|
|
190
|
+
|
|
183
191
|
---
|
|
184
192
|
|
|
185
193
|
**Act C - Publish**
|
|
186
194
|
|
|
187
195
|
## Chapter `publish` - Ship it: run the publish skill for real (~4 min)
|
|
188
196
|
|
|
189
|
-
**
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
under `public/` (does each internal `href` resolve to a file that exists?); if
|
|
193
|
-
any link is broken, hand it to the `content-editor` and re-run; then walk the
|
|
194
|
-
deploy runbook. Do not role-play it.
|
|
197
|
+
**Context**: the publish flow only earns its keep when something is actually
|
|
198
|
+
wrong, so first you plant a real bug in the site, then watch the publish skill
|
|
199
|
+
catch and fix it for real.
|
|
195
200
|
|
|
196
|
-
|
|
201
|
+
**Preparation**: make sure the pages exist (`index`, `about`, `projects`).
|
|
202
|
+
|
|
203
|
+
This chapter has two beats: the tester breaks a link in the HTML first, then runs
|
|
204
|
+
the publish skill so `check-links` catches the break. The split is required, the
|
|
205
|
+
publish run cannot demonstrate the catch until the break is in place.
|
|
206
|
+
|
|
207
|
+
**Beat 1, plant the bug (the tester breaks the HTML, their file).** Tell the
|
|
208
|
+
tester:
|
|
209
|
+
|
|
210
|
+
> Before we ship, let's break something on purpose. Open `public/index.html` in
|
|
211
|
+
> your editor and find the **About** link in the top nav:
|
|
212
|
+
>
|
|
213
|
+
> ```html
|
|
214
|
+
> <a href="/about.html">About</a>
|
|
215
|
+
> ```
|
|
216
|
+
>
|
|
217
|
+
> Change the target to a typo that points at a page that does not exist, then
|
|
218
|
+
> save:
|
|
219
|
+
>
|
|
220
|
+
> ```html
|
|
221
|
+
> <a href="/abuot.html">About</a>
|
|
222
|
+
> ```
|
|
223
|
+
>
|
|
224
|
+
> Now watch the **Map**. Nothing happens: no arrow moves, no red marker. Back in
|
|
225
|
+
> the `broken-ref` chapter, breaking a link between your `.md` files lit up the
|
|
226
|
+
> graph the instant you saved. This break is invisible to it, and that is
|
|
227
|
+
> correct: skill-map maps your **harness** (the `.md` files, Layer 1), not the
|
|
228
|
+
> HTML pages it produces (Layer 2, your `public/` folder, which is even in
|
|
229
|
+
> `.skillmapignore`). A broken link inside your actual site never shows on the
|
|
230
|
+
> graph. The one thing that catches it is your `check-links` skill, which is
|
|
231
|
+
> exactly what the publish skill runs as its first step.
|
|
232
|
+
>
|
|
233
|
+
> Saved the typo, and the Map stayed unchanged?
|
|
234
|
+
|
|
235
|
+
Wait for confirmation. The Map MUST stay unchanged; if a marker appeared they
|
|
236
|
+
edited a `.md` by mistake, point them back at `public/index.html`.
|
|
237
|
+
|
|
238
|
+
**Beat 2, run the publish skill for real.** Tell the tester:
|
|
239
|
+
|
|
240
|
+
> Now ship it. Tell me to publish and I'll run your `publish` skill for real,
|
|
241
|
+
> exactly as written. (You can read the skill anytime by clicking the `publish`
|
|
242
|
+
> node on the Map, then opening its **Body** section.)
|
|
197
243
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
244
|
+
When the tester asks to publish, **execute the publish flow for real** by
|
|
245
|
+
following `<provider_dir>/publish/SKILL.md`: run the `check-links` logic over
|
|
246
|
+
every `.html` under `public/` (does each internal `href` resolve to a file that
|
|
247
|
+
exists?), which now finds the planted typo; per step 2, hand it to the
|
|
248
|
+
`content-editor` to fix (point the link back at `/about.html`), re-run the check
|
|
249
|
+
until it is clean, then walk the deploy runbook. Do not role-play it; `Read`
|
|
250
|
+
`public/index.html` before and after the fix so the report is honest.
|
|
203
251
|
|
|
204
|
-
After running the flow, report what actually happened
|
|
205
|
-
on the real result):
|
|
252
|
+
After running the flow, report what actually happened:
|
|
206
253
|
|
|
207
254
|
> Here is what just ran, for real:
|
|
208
255
|
>
|
|
209
256
|
> - **check-links** walked every page under `public/` and followed each internal
|
|
210
|
-
> link.
|
|
211
|
-
>
|
|
257
|
+
> link. It caught **1 broken link**: `/abuot.html` on `index.html`, the typo
|
|
258
|
+
> you planted. The graph never flagged it, but the skill did, because the skill
|
|
259
|
+
> reads your real pages.
|
|
260
|
+
> - **step 2 kicked in**: I handed it to your `content-editor` to fix. It pointed
|
|
261
|
+
> the link back at `/about.html`, and a re-run of **check-links** came back
|
|
262
|
+
> clean: 0 broken links.
|
|
212
263
|
> - the **deploy runbook** (`docs/DEPLOYMENT.md`) lists the ship steps:
|
|
213
|
-
> regenerate the pages (done), run the link check (done), start the
|
|
214
|
-
> (next chapter).
|
|
264
|
+
> regenerate the pages (done), run the link check (done, now clean), start the
|
|
265
|
+
> server (next chapter).
|
|
215
266
|
>
|
|
216
|
-
>
|
|
217
|
-
>
|
|
267
|
+
> That is the whole point of the harness: you broke the site, the graph stayed
|
|
268
|
+
> quiet because the HTML is its output and not its map, and your own publish
|
|
269
|
+
> skill caught the break and fixed it before it shipped. Shall we continue?
|
|
218
270
|
|
|
219
|
-
Wait for confirmation.
|
|
271
|
+
Wait for confirmation. The site MUST be clean again (the typo fixed) before
|
|
272
|
+
`golive`. Mark `publish`: done. Auto-advance to `stability`.
|
|
220
273
|
|
|
221
274
|
## Chapter `stability` - Set a node's stability (and the `.sm` sidecar) (~3 min)
|
|
222
275
|
|
|
@@ -251,8 +251,12 @@ each ends with its own confirmation. Do NOT prepend an intro line to a block.
|
|
|
251
251
|
> `Search…`). Type `guideline`. Watch the tree narrow to the two
|
|
252
252
|
> guideline nodes. The search matches a node's name, path, or
|
|
253
253
|
> description, and filters live, no Enter needed. The **Map** stays
|
|
254
|
-
> put: by default the search filters only the files list, not the map
|
|
255
|
-
>
|
|
254
|
+
> put: by default the search filters only the files list, not the map.
|
|
255
|
+
>
|
|
256
|
+
> 💡 Tip: the map-icon button next to the search box controls whether
|
|
257
|
+
> the search also filters the **Map** (off by default, which is why the
|
|
258
|
+
> map stayed put while only the tree narrowed). Click it on if you want
|
|
259
|
+
> a search to filter the map too.
|
|
256
260
|
>
|
|
257
261
|
> Now clear the box. All four nodes come back in the tree. Confirm you
|
|
258
262
|
> saw it filter and then restore.
|
|
@@ -270,11 +274,6 @@ each ends with its own confirmation. Do NOT prepend an intro line to a block.
|
|
|
270
274
|
> Map: there's a **Show all** button (an eye icon). Click it and all
|
|
271
275
|
> four nodes return.
|
|
272
276
|
>
|
|
273
|
-
> 💡 Tip: the map-icon button next to the search box controls whether
|
|
274
|
-
> the search also filters the **Map** (off by default, which is why the
|
|
275
|
-
> map stayed put while only the tree narrowed). Click it on if you want
|
|
276
|
-
> a search to filter the map too.
|
|
277
|
-
>
|
|
278
277
|
> Did the map isolate and then restore?
|
|
279
278
|
|
|
280
279
|
Leave the server running, the next chapter is the last that uses it. Mark
|
|
@@ -315,7 +314,7 @@ host-dependent rendering rule. Per Inviolable rule #2, the agent does NOT touch
|
|
|
315
314
|
├── .agents/skills/
|
|
316
315
|
│ ├── demo-skill/SKILL.md
|
|
317
316
|
│ └── sm-tutorial/SKILL.md ← the tutorial you loaded
|
|
318
|
-
├── .skill-map/ ← project DB + settings
|
|
317
|
+
├── .skill-map/ ← project DB + settings
|
|
319
318
|
├── .skillmapignore ← the file we're about to edit
|
|
320
319
|
└── notes/
|
|
321
320
|
├── todo.md
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Part 1 (basic track): The
|
|
1
|
+
# Part 1 (basic track): The harness from zero (step library, `kickoff-*` ids)
|
|
2
2
|
|
|
3
3
|
The campaign turns real here for the **basic track** (the open-standard family:
|
|
4
4
|
`agent-skills`, `antigravity`). After the abstract prologue, the tester starts an
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Part
|
|
1
|
+
# Part 3: The CLI for you and your agent - step library
|
|
2
2
|
|
|
3
3
|
The deep-dive into the rest of the CLI: browsing verbs, ASCII graph + export, broken-ref issues, the `.sm` annotation consent prompt, and validating links to folders outside the scan scope. `pace: auto-advance` (walk straight into the next chapter's Announcement once one is marked done) and `preflight: seed` with the `prologue-built` snapshot: it self-seeds its own copy of the Part 0 demo fixture, so it works even if the campaign already replaced that fixture with the portfolio (see SKILL.md §Entering a part, the `cli` case). Shared conventions (tone, provider detection / substitution, the `> ` rendering rule, the per-step cycle) live in `_core.md`; do not restate them here.
|
|
4
4
|
|