@skill-map/cli 0.36.0 → 0.38.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.
Files changed (34) hide show
  1. package/dist/cli/tutorial/sm-tutorial/SKILL.md +100 -13
  2. package/dist/cli.js +2684 -988
  3. package/dist/cli.js.map +1 -1
  4. package/dist/conformance/index.d.ts +4 -4
  5. package/dist/conformance/index.js +48 -2
  6. package/dist/conformance/index.js.map +1 -1
  7. package/dist/index.d.ts +1 -1
  8. package/dist/index.js +256 -25
  9. package/dist/index.js.map +1 -1
  10. package/dist/kernel/index.d.ts +232 -17
  11. package/dist/kernel/index.js +256 -25
  12. package/dist/kernel/index.js.map +1 -1
  13. package/dist/migrations/001_initial.sql +26 -0
  14. package/dist/ui/chunk-47MG5XH2.js +317 -0
  15. package/dist/ui/{chunk-YZ7KCL3G.js → chunk-4CDTW64C.js} +1 -1
  16. package/dist/ui/chunk-4XEJUDPL.js +123 -0
  17. package/dist/ui/{chunk-2QZDJSJN.js → chunk-5AZ5S6JB.js} +1 -1
  18. package/dist/ui/{chunk-TKV6TXTI.js → chunk-AAR3Y55J.js} +3 -3
  19. package/dist/ui/chunk-CR3AANNX.js +3 -0
  20. package/dist/ui/{chunk-UMCC32EJ.js → chunk-G5CKBDBB.js} +1 -1
  21. package/dist/ui/{chunk-5CFY2K3Y.js → chunk-KKOZFBXQ.js} +1 -1
  22. package/dist/ui/{chunk-UK5YFHL3.js → chunk-NTM2J2WO.js} +5 -5
  23. package/dist/ui/{chunk-LTQTJU54.js → chunk-O5N7UH37.js} +13 -13
  24. package/dist/ui/{chunk-FQOZBFJ5.js → chunk-QZM2G474.js} +2 -2
  25. package/dist/ui/chunk-Z4LANJFK.js +1 -0
  26. package/dist/ui/index.html +6 -9
  27. package/dist/ui/main-EO5QNLE4.js +2 -0
  28. package/migrations/001_initial.sql +26 -0
  29. package/package.json +4 -4
  30. package/dist/ui/chunk-5JBW2LUN.js +0 -2
  31. package/dist/ui/chunk-GQ5YNA5Q.js +0 -123
  32. package/dist/ui/chunk-KJQEO6P3.js +0 -1
  33. package/dist/ui/chunk-L3OLNVKI.js +0 -317
  34. package/dist/ui/main-MGFSWAOX.js +0 -2
@@ -540,6 +540,15 @@ sm-tutorial.md
540
540
  findings.md
541
541
  tutorial-state.yml
542
542
 
543
+ # sm-tutorial / sm-master skill installations. When the tester loaded
544
+ # the tutorial as a Claude Code (or agent-skills) project-local skill,
545
+ # its SKILL.md lives under the project's provider dir and would
546
+ # otherwise register as a phantom project node on the first scan.
547
+ .claude/skills/sm-tutorial/
548
+ .claude/skills/sm-master/
549
+ .agents/skills/sm-tutorial/
550
+ .agents/skills/sm-master/
551
+
543
552
  # Tutorial outputs that may land at the root if a step forgets to
544
553
  # clean up (sm export, sm db dump).
545
554
  export.*
@@ -917,9 +926,16 @@ Wait for confirmation. You MAY use `Read` on the file afterwards
917
926
  to verify the change landed (read-only, allowed under Inviolable
918
927
  rule #1) before moving on. Mark `4-live-edit: done`.
919
928
 
920
- ### Step 5: Live UI: the connectors light up (~1 min)
929
+ ### Step 5: Live UI: the connectors light up (~2 min)
930
+
931
+ Two beats. Beat 1 wires up the connectors (the arrows and their
932
+ kinds). Beat 2 calls out the per-node ↑/↓ chips that the same hub
933
+ edit lit up on every card. Each beat gets its own confirm so the
934
+ tester slows down on each surface instead of conflating them.
921
935
 
922
- Now you edit `notes/todo.md` so it becomes the **hub** that points
936
+ **Beat 1, connectors (the arrows themselves).**
937
+
938
+ You edit `notes/todo.md` so it becomes the **hub** that points
923
939
  to each of the other four nodes. Each bullet uses a syntax that
924
940
  maps to a specific **link kind**:
925
941
 
@@ -967,18 +983,42 @@ Tell the tester:
967
983
  >
968
984
  > Fijate también que los conectores tienen distinta transparencia.
969
985
  > Skill-map estima qué tan seguro está de cada conexión: un
970
- > `[text](file.md)` que apunta a un archivo concreto (95% de
971
- > confianza) se ve sólido, mientras que un `@handle` suelto sin
972
- > extensión (50%, ambiguo) se ve translúcido. La opacidad cuenta
973
- > esa historia de un vistazo: cuanto más sólido, más confiable es
974
- > la inferencia.
986
+ > `[text](file.md)` que apunta a un archivo concreto (1.00 de
987
+ > confianza, ahora que el target existe) se ve sólido, mientras que
988
+ > un `@handle` que no resuelve a ningún nodo se queda en 0.5
989
+ > (ambiguo) y se ve translúcido. La opacidad cuenta esa historia de
990
+ > un vistazo: cuanto más sólido, más confiable es la inferencia, y
991
+ > el badge numérico arriba del conector lo dice explícito.
975
992
  >
976
993
  > Confirm. If a connector is missing, refresh the browser and tell
977
994
  > me.
978
995
 
979
- Wait for confirmation. **Do NOT move on to Step 6** until the
980
- connectors are confirmed visible, Step 6 reuses the same live UI
981
- session. Mark `5-live-connectors: done`.
996
+ Wait for confirmation of the connectors before moving on to Beat 2.
997
+ If a connector is missing, do not advance, the chips below depend
998
+ on the same hub edit having landed.
999
+
1000
+ **Beat 2, the ↑/↓ chips on every card.**
1001
+
1002
+ The same edit also lit up a per-node link counter on each card.
1003
+ Call it out explicitly so the tester registers the surface before
1004
+ Step 6 changes topology, easier to notice the chips going up and
1005
+ down later if they saw the baseline now.
1006
+
1007
+ > 🆕 Mirá también las cards de los nodos: ahora cada nodo muestra
1008
+ > dos pequeñas chips abajo a la izquierda, ↑ y ↓, que cuentan los
1009
+ > links entrantes y salientes. `notes/todo` ahora marca 0↑ / 4↓
1010
+ > (es el hub que apunta a cuatro nodos), y los cuatro nodos
1011
+ > apuntados muestran 1↑ cada uno. Pasale el mouse a una chip y se
1012
+ > abre un tooltip con el desglose por kind (`mentions`, `invokes`,
1013
+ > `references`). Es la misma info que el grafo, resumida en la
1014
+ > card por si trabajás desde la list view.
1015
+ >
1016
+ > Confirm cuando las veas en las cinco cards.
1017
+
1018
+ Wait for confirmation. **Do NOT move on to Step 6** until both
1019
+ beats are confirmed, Step 6 reuses the same live UI session and
1020
+ the chip counts are the baseline the tester will watch change
1021
+ when the private node disappears. Mark `5-live-connectors: done`.
982
1022
 
983
1023
  ### Step 6: Live UI: silence a private file via `.skillmapignore` (~2 min)
984
1024
 
@@ -1112,9 +1152,23 @@ Mark `6-live-ignore: done`.
1112
1152
  > persistido y rearma el grafo desde cero bajo el nuevo lente, así
1113
1153
  > que sirve cuando tu proyecto migra de runtime. Por default
1114
1154
  > skill-map autodetecta el lente correcto al primer scan (en este
1115
- > caso, `claude` porque hay `.claude/`). El lente `antigravity` no
1116
- > se auto-detecta (Google adoptó el open standard sin marker
1117
- > propio); seleccionarlo es manual.
1155
+ > caso, `claude` porque hay `.claude/`); si tu repo tiene markers
1156
+ > ambiguos (`.claude/` + `.codex/` al mismo tiempo) `sm scan` te
1157
+ > pregunta cuál usar, o aborta con exit 2 si pasás `--yes` y todavía
1158
+ > está ambiguo. El lente `antigravity` no se auto-detecta (Google
1159
+ > adoptó el open standard sin marker propio); seleccionarlo es
1160
+ > manual.
1161
+ >
1162
+ > 🛡️ **Red de seguridad**: si en algún momento desactivás el bundle
1163
+ > al que apunta el lente activo (por ejemplo `sm plugins disable
1164
+ > claude` con `activeProvider: claude`), el próximo `sm scan` te
1165
+ > avisa con un warning explícito ("the active lens points at a
1166
+ > disabled bundle") y te ofrece los dos arreglos: reactivar el
1167
+ > bundle o cambiar el lente. Lo mismo si la DB local quedó vieja
1168
+ > respecto del binario, el open de SQLite detecta el skew de
1169
+ > versiones y te dice qué correr para refrescarla. Tip: si ves uno
1170
+ > de esos warnings durante el tutorial, NO los ignores, son la
1171
+ > señal de que el grafo no refleja lo que vos esperás.
1118
1172
  >
1119
1173
  > If you want, **we can keep going deeper**: I'll walk you through
1120
1174
  > the CLI verbs and flags (`list`, `graph`, `export`, `orphans`,
@@ -1234,6 +1288,17 @@ We'll plant one and watch it surface, that's the easiest way to
1234
1288
  internalise that it is an **issue** on a node, NOT a graph
1235
1289
  connector and NOT the same thing as an "orphan".
1236
1290
 
1291
+ > ℹ️ `broken-ref` is one of ~16 built-in rules. Others surface
1292
+ > different families: `core/reserved-name` (a file shadows a vendor
1293
+ > built-in like `/help`), `core/self-loop` (a node links to itself),
1294
+ > `core/redundant-target-reference` (two surfaces in the same body
1295
+ > point at the same target), `core/signal-collision` (two extractors
1296
+ > detected the SAME byte range with different interpretations, the
1297
+ > resolver picked one and the warning explains who lost and why).
1298
+ > Same `sm check --analyzers <id>` pattern works for any of them.
1299
+ > We will not plant fixtures for the rest, the broken-ref demo
1300
+ > covers the mechanics.
1301
+
1237
1302
  Ask the tester to **append one bullet** to `notes/todo.md`:
1238
1303
 
1239
1304
  ```markdown
@@ -1405,6 +1470,28 @@ the id to `disable` / `enable`. Per-extension toggles only work on
1405
1470
  extension-granularity bundles like `core`; the `claude` bundle is
1406
1471
  bundle-granularity and only accepts the bundle id.
1407
1472
 
1473
+ **Multiple ids in one call**: both verbs accept any number of ids
1474
+ in a single invocation, e.g. `sm plugins disable antigravity openai
1475
+ agent-skills` or `sm plugins enable claude core/external-url-counter`.
1476
+ Batches are all-or-nothing: if any id is unknown or
1477
+ granularity-mismatched the entire call aborts before any
1478
+ `config_plugins` write, so the user never lands in a partial state.
1479
+ Repeated ids are deduped; locked plugins inside a batch are
1480
+ silently skipped (matching `--all` semantics).
1481
+
1482
+ ### Reserved names (e.g. `commands/help.md`)
1483
+
1484
+ If the tester ever names a file after a built-in (`/help`,
1485
+ `/clear`, `/init`, `/agents`, `/model`, or one of the documented
1486
+ agent reservations like `general-purpose`), `sm check` surfaces a
1487
+ `reserved-name` warning. The vendor runtime ignores user-owned
1488
+ files that shadow its built-ins, so the warning is not a bug,
1489
+ it's skill-map telling the operator "Claude will never invoke this
1490
+ file; pick another name". Incoming links to the shadowed file
1491
+ resolve at confidence `0.1` instead of `1.0`, so the graph also
1492
+ visually de-emphasises them. Rename the file and the warning
1493
+ clears on the next scan.
1494
+
1408
1495
  ### `sm sidecar annotate` vs `sm bump` vs `sm sidecar refresh`
1409
1496
 
1410
1497
  - `sm sidecar annotate` is the scaffold verb (creates a fresh