@skill-map/cli 0.67.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 +400 -160
- 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-444BFYGR.js +0 -3
- 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-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-V77F2KZX.js +0 -4
- package/dist/ui/styles-I4ULXD3V.css +0 -1
- /package/dist/ui/{chunk-Y2Z26SRI.js → chunk-5RNLC6V4.js} +0 -0
|
@@ -242,12 +242,18 @@ All commands below are backstage (silent); fill `<provider>` and
|
|
|
242
242
|
`<lang>` from `tutorial.{provider,lang}`. The fixture scripts resolve
|
|
243
243
|
the `__PROVIDER__` token and skip kinds the provider does not claim.
|
|
244
244
|
|
|
245
|
-
- **`taught-init`** (Part 0 `fundamentals`
|
|
246
|
-
fixture progressively, so on entry
|
|
247
|
-
before the tester's `sm init` in the
|
|
245
|
+
- **`taught-init`** (Part 0 `fundamentals` rich / `basic-fundamentals`
|
|
246
|
+
basic): the prologue reveals its fixture progressively, so on entry
|
|
247
|
+
lay ONLY the boot node, just before the tester's `sm init` in the
|
|
248
|
+
`init` chapter. The boot node is the lens's first authored kind, an
|
|
249
|
+
`agent` on the rich track, a `skill` on the basic track (where the
|
|
250
|
+
agent kind folds away):
|
|
248
251
|
|
|
249
252
|
```bash
|
|
253
|
+
# rich track (claude / codex)
|
|
250
254
|
node .claude/skills/sm-tutorial/scripts/fixtures.js lay prologue --only "__PROVIDER__/agents/demo-agent.md" --provider <provider> --lang <lang>
|
|
255
|
+
# basic track (agent-skills / antigravity)
|
|
256
|
+
node .claude/skills/sm-tutorial/scripts/fixtures.js lay prologue --only "__PROVIDER__/skills/demo-skill/SKILL.md" --provider <provider> --lang <lang>
|
|
251
257
|
```
|
|
252
258
|
|
|
253
259
|
The universal `.skillmapignore` is already on disk, so the first
|
|
@@ -304,11 +310,13 @@ the `__PROVIDER__` token and skip kinds the provider does not claim.
|
|
|
304
310
|
2. Seed: `fixtures.js seed <harness-built|harness-connected> --provider <provider> --lang <lang>`
|
|
305
311
|
(`harness-built` for `connect-harness`, `harness-connected` for
|
|
306
312
|
`daily-loop`).
|
|
307
|
-
3. Provision the lens: the seeded portfolio
|
|
308
|
-
(
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
313
|
+
3. Provision the lens: the seeded portfolio carries the scaffold
|
|
314
|
+
marker (`.claude/` on the rich track, `.agents/` on the basic
|
|
315
|
+
track), so a plain `sm init` resolves the matching lens with no
|
|
316
|
+
prompt. (The root `AGENTS.md` is the vendor-neutral agents.md file,
|
|
317
|
+
NOT a marker, so it never forces an ambiguous prompt.) Run `sm
|
|
318
|
+
init`, then `sm scan`. (If `.skill-map/` already exists, just
|
|
319
|
+
`sm scan`.)
|
|
312
320
|
4. Mark the skipped predecessors: `state.js set-part <predecessor> skipped`
|
|
313
321
|
for each (they stay in the menu). Then emit exactly ONE
|
|
314
322
|
tester-facing line:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Every page follows the [style guide](../../../docs/STYLE.md).
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Cada página sigue la [guía de estilo](../../../docs/STYLE.md).
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
- [ ] Follow the [demo-guideline](demo-guideline) when the conventions change.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
- [ ] Follow the [demo-guideline2](demo-guideline2.md) for the rest.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
- [ ] See the [demo-skill](../.agents/skills/demo-skill/SKILL.md) for the steps.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
- [ ] Seguí la [demo-guideline](demo-guideline) cuando cambien las convenciones.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
- [ ] Seguí la [demo-guideline2](demo-guideline2.md) para el resto.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
- [ ] Mirá la [demo-skill](../.agents/skills/demo-skill/SKILL.md) para los pasos.
|
|
@@ -7,8 +7,10 @@
|
|
|
7
7
|
"footprints": {
|
|
8
8
|
"prologue": [
|
|
9
9
|
"__PROVIDER__/agents/demo-agent.md",
|
|
10
|
+
".codex/agents/demo-agent.toml",
|
|
10
11
|
"__PROVIDER__/skills/demo-skill",
|
|
11
12
|
"__PROVIDER__/commands/demo-command.md",
|
|
13
|
+
"__PROVIDER__/skills/demo-command",
|
|
12
14
|
"notes/todo.md",
|
|
13
15
|
"notes/demo-guideline.md",
|
|
14
16
|
"notes/demo-guideline2.md",
|
|
@@ -28,12 +30,18 @@
|
|
|
28
30
|
"docs/DEPLOY.md",
|
|
29
31
|
"docs/DEPLOYMENT.md",
|
|
30
32
|
"__PROVIDER__/agents/content-editor.md",
|
|
33
|
+
".codex/agents/content-editor.toml",
|
|
34
|
+
"__PROVIDER__/skills/content-editor",
|
|
31
35
|
"__PROVIDER__/skills/check-links",
|
|
32
36
|
"__PROVIDER__/commands/publish.md",
|
|
33
|
-
"__PROVIDER__/
|
|
37
|
+
"__PROVIDER__/skills/publish",
|
|
38
|
+
"__PROVIDER__/commands/new-page.md",
|
|
39
|
+
"__PROVIDER__/skills/new-page"
|
|
34
40
|
],
|
|
35
41
|
"master": [
|
|
36
42
|
"__PROVIDER__/agents/master-agent.md",
|
|
43
|
+
".codex/agents/master-agent.toml",
|
|
44
|
+
"__PROVIDER__/skills/master-agent",
|
|
37
45
|
"__PROVIDER__/skills/master-skill",
|
|
38
46
|
"notes/ideas.md"
|
|
39
47
|
],
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: publish
|
|
3
|
+
description: |
|
|
4
|
+
Publishes the portfolio: runs the link check, hands off to the
|
|
5
|
+
content editor for any last fixes, then follows the deploy runbook.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# publish
|
|
9
|
+
|
|
10
|
+
The one skill you run when the site is ready to go out.
|
|
11
|
+
|
|
12
|
+
## Steps
|
|
13
|
+
1. Run the [check-links](../check-links/SKILL.md) skill on the pages in public/. If it reports broken links, stop and fix them first.
|
|
14
|
+
2. If a page needs a content fix, hand the change to [content-editor](../content-editor/SKILL.md).
|
|
15
|
+
3. Follow the [deploy runbook](../../../docs/DEPLOY.md): regenerate pages, run the link check, start the server.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: publish
|
|
3
|
+
description: |
|
|
4
|
+
Publica el portfolio: corre el chequeo de enlaces, le pasa al
|
|
5
|
+
content editor los últimos arreglos, y luego sigue el runbook de
|
|
6
|
+
despliegue.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# publish
|
|
10
|
+
|
|
11
|
+
La única skill que corres cuando el sitio está listo para salir.
|
|
12
|
+
|
|
13
|
+
## Pasos
|
|
14
|
+
1. Corre la skill [check-links](../check-links/SKILL.md) sobre las páginas en public/. Si reporta enlaces rotos, frena y arréglalos primero.
|
|
15
|
+
2. Si una página necesita un arreglo de contenido, pasale el cambio a [content-editor](../content-editor/SKILL.md).
|
|
16
|
+
3. Sigue el [runbook de despliegue](../../../docs/DEPLOY.md): regenera las páginas, corre el chequeo de enlaces, inicia el servidor.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: publish
|
|
3
|
+
description: |
|
|
4
|
+
Publishes the portfolio: runs the link check, hands off to the
|
|
5
|
+
content editor for any last fixes, then follows the deploy runbook.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# publish
|
|
9
|
+
|
|
10
|
+
The one skill you run when the site is ready to go out.
|
|
11
|
+
|
|
12
|
+
## Steps
|
|
13
|
+
1. Run /check-links on the pages in public/. If it reports broken links, stop and fix them first.
|
|
14
|
+
2. If a page needs a content fix, brief @content-editor with the change.
|
|
15
|
+
3. Follow the [deploy runbook](../../../docs/DEPLOY.md): regenerate pages, run the link check, start the server.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: publish
|
|
3
|
+
description: |
|
|
4
|
+
Publica el portfolio: corre el chequeo de enlaces, le pasa al
|
|
5
|
+
content editor los últimos arreglos, y luego sigue el runbook de
|
|
6
|
+
despliegue.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# publish
|
|
10
|
+
|
|
11
|
+
La única skill que corres cuando el sitio está listo para salir.
|
|
12
|
+
|
|
13
|
+
## Pasos
|
|
14
|
+
1. Corre /check-links sobre las páginas en public/. Si reporta enlaces rotos, frena y arréglalos primero.
|
|
15
|
+
2. Si una página necesita un arreglo de contenido, dale el cambio a @content-editor.
|
|
16
|
+
3. Sigue el [runbook de despliegue](../../../docs/DEPLOY.md): regenera las páginas, corre el chequeo de enlaces, inicia el servidor.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: master-agent
|
|
3
|
+
description: |
|
|
4
|
+
Example skill used by the advanced tutorial. Declares a couple of
|
|
5
|
+
tools so the `core/tools-counter` extractor emits a count.
|
|
6
|
+
allowed-tools: Read Bash Edit
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# master-agent
|
|
10
|
+
|
|
11
|
+
Walks the master-skill outputs and reports findings. Used as the
|
|
12
|
+
target node when we exercise extractors, analyzers, and the
|
|
13
|
+
plugin-authoring flow.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: master-agent
|
|
3
|
+
description: |
|
|
4
|
+
Skill de ejemplo que usa el tutorial avanzado. Declara un par de
|
|
5
|
+
herramientas para que el extractor `core/tools-counter` emita un
|
|
6
|
+
conteo.
|
|
7
|
+
allowed-tools: Read Bash Edit
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# master-agent
|
|
11
|
+
|
|
12
|
+
Recorre las salidas de master-skill y reporta hallazgos. Se usa como
|
|
13
|
+
el nodo objetivo cuando ejercitamos extractors, analyzers y el flujo
|
|
14
|
+
de autoría de plugins.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
name = "master-agent"
|
|
2
|
+
description = "Example agent used by the advanced tutorial. The target node when we exercise extractors, analyzers, and the plugin-authoring flow."
|
|
3
|
+
model = "gpt-5-codex"
|
|
4
|
+
developer_instructions = """
|
|
5
|
+
# master-agent
|
|
6
|
+
|
|
7
|
+
Walks the master-skill outputs and reports findings. Used as the
|
|
8
|
+
target node when we exercise extractors, analyzers, and the
|
|
9
|
+
plugin-authoring flow.
|
|
10
|
+
"""
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
name = "master-agent"
|
|
2
|
+
description = "Agente de ejemplo que usa el tutorial avanzado. Es el nodo objetivo cuando ejercitamos extractors, analyzers y el flujo de autoría de plugins."
|
|
3
|
+
model = "gpt-5-codex"
|
|
4
|
+
developer_instructions = """
|
|
5
|
+
# master-agent
|
|
6
|
+
|
|
7
|
+
Recorre las salidas de master-skill y reporta hallazgos. Se usa como
|
|
8
|
+
el nodo objetivo cuando ejercitamos extractors, analyzers y el flujo
|
|
9
|
+
de autoría de plugins.
|
|
10
|
+
"""
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Portfolio handbook
|
|
2
|
+
|
|
3
|
+
A small static portfolio site, served by Express (`server.js`). The
|
|
4
|
+
`.agents/skills/` harness maintains it: a content-editor skill writes
|
|
5
|
+
the pages, a check-links skill checks the links, a publish skill ships
|
|
6
|
+
them. The conventions live in the style guide; the deploy steps in the
|
|
7
|
+
deploy runbook.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: content-editor
|
|
3
|
+
description: |
|
|
4
|
+
Writes and edits the portfolio's pages. Reads a brief, follows the
|
|
5
|
+
style guide, and emits the HTML into public/.
|
|
6
|
+
allowed-tools: Read Write
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# content-editor
|
|
10
|
+
|
|
11
|
+
Turns a short brief into a finished portfolio page.
|
|
12
|
+
|
|
13
|
+
## How to write a page
|
|
14
|
+
1. Read the style guide and the shared stylesheet in public/.
|
|
15
|
+
2. Write one HTML file under public/, named after the page (a projects page becomes `public/projects.html`).
|
|
16
|
+
3. Start from `<!doctype html>`, link the stylesheet with `<link rel="stylesheet" href="/style.css">`, and set a `<title>`.
|
|
17
|
+
4. Use one `<h1>`, group sections under `<h2>`, and reuse the shared header, nav, and footer so every page matches.
|
|
18
|
+
5. Add a link back to Home, and link the new page from the home nav.
|
|
19
|
+
|
|
20
|
+
Rules: plain static HTML, no framework, no client JS, one page per file. If a page needs an image, use a free placeholder from https://placekittens.com/ (e.g. `https://placekittens.com/400/300`) so the `<img>` never points at a missing file.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Manual del portfolio
|
|
2
|
+
|
|
3
|
+
Un sitio de portfolio estático y chico, servido por Express
|
|
4
|
+
(`server.js`). El harness en `.agents/skills/` lo mantiene: una skill
|
|
5
|
+
content-editor escribe las páginas, una skill check-links revisa los
|
|
6
|
+
enlaces, una skill publish las publica. Las convenciones viven en la
|
|
7
|
+
guía de estilo; los pasos de despliegue en el runbook de despliegue.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: content-editor
|
|
3
|
+
description: |
|
|
4
|
+
Escribe y edita las páginas del portfolio. Lee un brief, sigue la
|
|
5
|
+
guía de estilo y emite el HTML en public/.
|
|
6
|
+
allowed-tools: Read Write
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# content-editor
|
|
10
|
+
|
|
11
|
+
Convierte un brief corto en una página de portfolio terminada.
|
|
12
|
+
|
|
13
|
+
## Cómo escribir una página
|
|
14
|
+
1. Lee la guía de estilo y la hoja de estilos compartida en public/.
|
|
15
|
+
2. Escribe un archivo HTML en public/, nombrado según la página (una página de proyectos pasa a ser `public/projects.html`).
|
|
16
|
+
3. Empieza desde `<!doctype html>`, enlaza la hoja de estilos con `<link rel="stylesheet" href="/style.css">` y define un `<title>`.
|
|
17
|
+
4. Usa un solo `<h1>`, agrupa las secciones bajo `<h2>` y reutiliza el header, la nav y el footer compartidos para que todas las páginas coincidan.
|
|
18
|
+
5. Agrega un enlace de vuelta a Home, y enlaza la nueva página desde la nav de inicio.
|
|
19
|
+
|
|
20
|
+
Reglas: HTML estático plano, sin framework, sin JS de cliente, una página por archivo. Si una página necesita una imagen, usa un placeholder gratuito de https://placekittens.com/ (por ejemplo `https://placekittens.com/400/300`) para que el `<img>` nunca apunte a un archivo inexistente.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
See the [handbook](AGENTS.md).
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
name = "content-editor"
|
|
2
|
+
description = "Writes and edits the portfolio's pages. Reads a brief, follows the style guide, and emits the HTML into public/."
|
|
3
|
+
model = "gpt-5-codex"
|
|
4
|
+
developer_instructions = """
|
|
5
|
+
# content-editor
|
|
6
|
+
|
|
7
|
+
Turns a short brief into a finished portfolio page.
|
|
8
|
+
|
|
9
|
+
## How to write a page
|
|
10
|
+
1. Read the style guide and the shared stylesheet in public/.
|
|
11
|
+
2. Write one HTML file under public/, named after the page (a projects page becomes `public/projects.html`).
|
|
12
|
+
3. Start from `<!doctype html>`, link the stylesheet with `<link rel="stylesheet" href="/style.css">`, and set a `<title>`.
|
|
13
|
+
4. Use one `<h1>`, group sections under `<h2>`, and reuse the shared header, nav, and footer so every page matches.
|
|
14
|
+
5. Add a link back to Home, and link the new page from the home nav.
|
|
15
|
+
|
|
16
|
+
Rules: plain static HTML, no framework, no client JS, one page per file.
|
|
17
|
+
|
|
18
|
+
Every page follows the [style guide](../../docs/STYLE.md).
|
|
19
|
+
"""
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
name = "content-editor"
|
|
2
|
+
description = "Escribe y edita las páginas del portfolio. Lee un brief, sigue la guía de estilo y emite el HTML en public/."
|
|
3
|
+
model = "gpt-5-codex"
|
|
4
|
+
developer_instructions = """
|
|
5
|
+
# content-editor
|
|
6
|
+
|
|
7
|
+
Convierte un brief corto en una página de portfolio terminada.
|
|
8
|
+
|
|
9
|
+
## Cómo escribir una página
|
|
10
|
+
1. Lee la guía de estilo y la hoja de estilos compartida en public/.
|
|
11
|
+
2. Escribe un archivo HTML en public/, nombrado según la página (una página de proyectos pasa a ser `public/projects.html`).
|
|
12
|
+
3. Empieza desde `<!doctype html>`, enlaza la hoja de estilos con `<link rel="stylesheet" href="/style.css">` y define un `<title>`.
|
|
13
|
+
4. Usa un solo `<h1>`, agrupa las secciones bajo `<h2>` y reutiliza el header, la nav y el footer compartidos para que todas las páginas coincidan.
|
|
14
|
+
5. Agrega un enlace de vuelta a Home, y enlaza la nueva página desde la nav de inicio.
|
|
15
|
+
|
|
16
|
+
Reglas: HTML estático plano, sin framework, sin JS de cliente, una página por archivo.
|
|
17
|
+
|
|
18
|
+
Cada página sigue la [guía de estilo](../../docs/STYLE.md).
|
|
19
|
+
"""
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
name = "demo-agent"
|
|
2
|
+
description = "Example agent that handles read and shell tasks. Solo node at boot; gets connected to the rest of the demo fixture during the Live UI step."
|
|
3
|
+
model = "gpt-5-codex"
|
|
4
|
+
developer_instructions = """
|
|
5
|
+
# demo-agent
|
|
6
|
+
|
|
7
|
+
Processes inputs and logs every action to stderr. Will be wired up
|
|
8
|
+
to the rest of the demo fixture later in the walkthrough.
|
|
9
|
+
|
|
10
|
+
Rules:
|
|
11
|
+
- Never run destructive commands without confirmation.
|
|
12
|
+
- Log every action to stderr.
|
|
13
|
+
"""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: demo-command
|
|
3
|
+
description: |
|
|
4
|
+
Example skill that wraps the demo-skill. On Codex the prologue's
|
|
5
|
+
command-kind node renders as a skill (Codex has no command kind).
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# demo-command
|
|
9
|
+
|
|
10
|
+
Quick entry point for running the demo flow on a target file.
|
|
11
|
+
Connectors land in the next sub-step.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
name = "demo-agent"
|
|
2
|
+
description = "Agente de ejemplo que maneja tareas de lectura y shell. Nodo solo al arranque; se conecta al resto del fixture demo durante el paso de UI en vivo."
|
|
3
|
+
model = "gpt-5-codex"
|
|
4
|
+
developer_instructions = """
|
|
5
|
+
# demo-agent
|
|
6
|
+
|
|
7
|
+
Procesa entradas y registra cada acción en stderr. Se conectará al
|
|
8
|
+
resto del fixture demo más adelante en el recorrido.
|
|
9
|
+
|
|
10
|
+
Reglas:
|
|
11
|
+
- Nunca corras comandos destructivos sin confirmación.
|
|
12
|
+
- Registrá cada acción en stderr.
|
|
13
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: demo-command
|
|
3
|
+
description: |
|
|
4
|
+
Skill de ejemplo que envuelve a demo-skill. En Codex el nodo de
|
|
5
|
+
kind command del prólogo se renderiza como skill (Codex no tiene
|
|
6
|
+
kind command).
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# demo-command
|
|
10
|
+
|
|
11
|
+
Punto de entrada rápido para correr el flujo demo sobre un archivo.
|
|
12
|
+
Los conectores llegan en el próximo sub-paso.
|
|
@@ -251,54 +251,103 @@ first kind quoted, the second kind never.
|
|
|
251
251
|
command blocks assume the second terminal is anchored to the
|
|
252
252
|
fixture folder.
|
|
253
253
|
|
|
254
|
-
## Provider detection
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
| Provider |
|
|
260
|
-
|
|
261
|
-
| `claude` | `.claude/`
|
|
262
|
-
| `
|
|
263
|
-
| `
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
254
|
+
## Provider detection (and the track it selects)
|
|
255
|
+
|
|
256
|
+
A skill-map project reads its files through exactly ONE active lens
|
|
257
|
+
(provider). The built-in providers and what each claims:
|
|
258
|
+
|
|
259
|
+
| Provider | Asset layout | Kinds | Connectors that form | Marker | Stability | Track |
|
|
260
|
+
|----------------|-------------------------------------------|--------------------------------|--------------------------------|--------------------|------------------|---------|
|
|
261
|
+
| `claude` | `.claude/` (agents, commands, skills) | agent, command, skill, markdown| `/` invokes, `@` mentions, refs| `.claude/` | stable | rich |
|
|
262
|
+
| `codex` | `.codex/agents/*.toml` + `.agents/skills/`| agent (TOML), skill, markdown | `/` invokes, `@` mentions, refs| `.codex/` | beta | rich |
|
|
263
|
+
| `antigravity` | `.agents/skills/` | skill, markdown | `/` invokes, refs | `.agent/workflows/`| beta | basic |
|
|
264
|
+
| `agent-skills` | `.agents/skills/` | skill, markdown | refs only | `.agents/` | stable (default) | basic |
|
|
265
|
+
|
|
266
|
+
`core/markdown` classifies every orphan `.md` under whatever lens is
|
|
267
|
+
active; it is the universal base, never a selectable lens.
|
|
268
|
+
|
|
269
|
+
**Two tracks, by capability** (the axis is "does the lens have an
|
|
270
|
+
`agent` kind?"):
|
|
271
|
+
|
|
272
|
+
- **rich** (`claude`, `codex`): agents + skills (+ commands on claude),
|
|
273
|
+
wired with `/` invocations and `@` mentions plus markdown references.
|
|
274
|
+
- **basic** (`agent-skills`, `antigravity`): the open-standard family,
|
|
275
|
+
`skill` + `markdown` only, wired with **markdown references**
|
|
276
|
+
(`[text](path)`), the one connection the Agent Skills standard
|
|
277
|
+
documents. No `@`. `/` invocation is an Antigravity-only bonus, it is
|
|
278
|
+
NOT part of the neutral standard, so under the `agent-skills` lens only
|
|
279
|
+
references form.
|
|
280
|
+
|
|
281
|
+
Why references and not slash on the open standard: the Agent Skills
|
|
282
|
+
spec (agentskills.io) activates a skill by its `description` and
|
|
283
|
+
connects files by relative markdown links; it has no `/`-invocation
|
|
284
|
+
syntax. claude/codex add `/` and `@` as vendor features on top.
|
|
285
|
+
|
|
286
|
+
**Decision logic, applied silently at pre-flight:**
|
|
287
|
+
|
|
288
|
+
1. The provider is the lens the scaffold set up. Check the vendor markers
|
|
289
|
+
FIRST (they ride on top of the shared `.agents/skills/` skill home), then
|
|
290
|
+
the skill home itself:
|
|
291
|
+
- a `.codex/` dir present (the marker `sm tutorial --for codex` drops) →
|
|
292
|
+
`provider = codex`, `track = rich`.
|
|
293
|
+
- else a `.agent/workflows/` dir present → `provider = antigravity`,
|
|
294
|
+
`track = basic`.
|
|
295
|
+
- else skill under `.claude/skills/sm-tutorial/` → `provider = claude`,
|
|
296
|
+
`<provider_dir> = .claude`, `track = rich`.
|
|
297
|
+
- else skill under `.agents/skills/sm-tutorial/` → `provider = agent-skills`,
|
|
298
|
+
`<provider_dir> = .agents/skills`, `track = basic`.
|
|
299
|
+
**Lens ambiguity for codex / antigravity**: both adopt the open
|
|
300
|
+
`.agents/skills/` layout, so their own marker (`.codex/` or
|
|
301
|
+
`.agent/workflows/`) coexists with the `agent-skills` marker (`.agents/`)
|
|
302
|
+
and a plain `sm scan --yes` reports the lens as ambiguous. For those two,
|
|
303
|
+
set it explicitly once before the first scan, `sm config set
|
|
304
|
+
activeProvider <codex|antigravity> --yes`, then the book runs unchanged
|
|
305
|
+
(the fixture engine renders the right shape: codex its TOML agents +
|
|
306
|
+
command-as-skill, antigravity reuses the `agent-skills` overlays).
|
|
307
|
+
2. `state.js init --provider <p>` persists `provider` plus the derived
|
|
308
|
+
`track`, so a resumed session never re-detects.
|
|
309
|
+
3. Render only the parts whose `track` is `tutorial.track` (or `both`).
|
|
310
|
+
Never offer a rich-only part under the basic track, or vice versa.
|
|
285
311
|
|
|
286
312
|
**Global substitution rule**: the fixture scripts do the file-level
|
|
287
313
|
work. You pass `--provider <p>` (the value persisted in
|
|
288
314
|
`tutorial.provider`) and `--lang <l>`, and they resolve the
|
|
289
|
-
`__PROVIDER__` path token, skip files whose kind the provider does
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
315
|
+
`__PROVIDER__` path token, skip files whose kind the provider does not
|
|
316
|
+
claim, lay any per-provider skill overlay (the open standard renders an
|
|
317
|
+
agent/command as a `skill`), and report the adjusted `nodeCount` plus
|
|
318
|
+
the `skipped` list. Narrate with `<provider_dir>` resolved to the value
|
|
319
|
+
above, never a hard-coded `.claude/`.
|
|
320
|
+
|
|
321
|
+
**Reality check (don't mention to the tester)**: the source skill ships
|
|
322
|
+
at `.claude/skills/sm-tutorial/` (this repo is itself a Claude project);
|
|
323
|
+
`sm tutorial` materializes it under `.claude/skills/` (rich) or
|
|
324
|
+
`.agents/skills/` (basic). Both are real, walkable books.
|
|
325
|
+
|
|
326
|
+
### Rendering the rich book on Codex
|
|
327
|
+
|
|
328
|
+
The rich track has two lenses, `claude` and `codex`. They teach the SAME
|
|
329
|
+
lessons with the SAME connectors (`/` invocations, `@` mentions, markdown
|
|
330
|
+
references all resolve on both), so the rich part bodies are written in the
|
|
331
|
+
`claude` shape; when `tutorial.provider == codex`, apply these substitutions:
|
|
332
|
+
|
|
333
|
+
- **Agents are TOML.** A Codex agent is a single `.codex/agents/<name>.toml`
|
|
334
|
+
file (the prompt lives in its `developer_instructions` field), NOT a
|
|
335
|
+
`.claude/agents/<name>.md`. The fixtures lay them, so when a chapter says
|
|
336
|
+
"open the agent file" point at the `.toml`; a chapter that has the tester
|
|
337
|
+
read or tweak an agent works on the TOML frontmatter / `developer_instructions`.
|
|
338
|
+
- **No `command` kind.** Where the claude book authors a `command` (the
|
|
339
|
+
`/publish` command, the reserved-name chapter's `init` command), Codex uses a
|
|
340
|
+
**skill** at `.agents/skills/<name>/SKILL.md`. The body is identical (same
|
|
341
|
+
`/check-links` + `@content-editor` + deploy reference); only the kind and path
|
|
342
|
+
change. `cat <set> --file … --provider codex` already returns the Codex skill
|
|
343
|
+
body, so the create-the-file block stays a copy-paste. The reserved-name beat
|
|
344
|
+
uses a skill named with a reserved verb (Codex inherits the open-standard
|
|
345
|
+
`COMMONS_RESERVED_NAMES`, e.g. `config`), exactly like the basic track's
|
|
346
|
+
`reserved` chapter, on a skill instead of a command.
|
|
347
|
+
- **Skills** live under `.agents/skills/<name>/SKILL.md` (the open layout Codex
|
|
348
|
+
adopted), same as the basic family.
|
|
349
|
+
- Everything else (the `@`/`/` syntax, the confidence numbers, the hub, the
|
|
350
|
+
broken-reference contrast) is identical to claude; the graph topology matches.
|
|
302
351
|
|
|
303
352
|
## Per-step cycle (inside a chapter)
|
|
304
353
|
|
|
@@ -357,10 +406,14 @@ For every chapter:
|
|
|
357
406
|
parts with a `✓` in their description line, not on the title (see
|
|
358
407
|
§Menu format).
|
|
359
408
|
- **Which parts to list**: parts in `order`, `status: active` only
|
|
360
|
-
(`planned` parts are hidden)
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
409
|
+
(`planned` parts are hidden), AND **matching the active track**, a
|
|
410
|
+
part whose `track` is `tutorial.track` (`rich` or `basic`) or `both`.
|
|
411
|
+
The rich and basic campaigns share titles and `order`, so the track
|
|
412
|
+
filter is what keeps the menu showing exactly ONE book, never both;
|
|
413
|
+
list a part once, by the track the session resolved at pre-flight.
|
|
414
|
+
A part with a `seed` (the campaign parts plus `cli`) is always shown,
|
|
415
|
+
even out of order, its `preflight: seed` fast-forwards the project
|
|
416
|
+
into it (SKILL.md §Entering a part). A part with a `prereq` but NO `seed` would be
|
|
364
417
|
shown only once its `prereq` is `done`; no active part is in that
|
|
365
418
|
state today (`cli` used to be, now it self-seeds).
|
|
366
419
|
- **After the tester picks**: walk that part; when it ends, run
|