@skill-map/cli 0.44.0 → 0.45.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.
@@ -439,8 +439,8 @@ Before you lay anything down, give the tester a one-shot heads-up.
439
439
  **This is not interactive**: do NOT wait for a confirmation, do
440
440
  NOT ask permission per file, do NOT enumerate the files. The
441
441
  tester just needs to know scaffolding is starting so they're not
442
- surprised when files appear; details (file list, cleanup) come
443
- later when they're relevant. Keep it to a single short sentence:
442
+ surprised when files appear; the specifics come later when
443
+ they're relevant. Keep it to a single short sentence:
444
444
 
445
445
  > Quick heads-up before we start: I'm about to set up the
446
446
  > tutorial scenario in this directory, that means creating a
@@ -757,10 +757,9 @@ them to launch the server and open the link it prints, without
757
757
  hardcoding the URL here, since the verb itself is the source of
758
758
  truth (it logs the bound `http://host:port` after listen):
759
759
 
760
- > In the terminal you opened for `sm`, run the command above. After
761
- > a couple of seconds it will print a line with the URL where the
762
- > UI is listening, copy that link and open it in the browser you
763
- > just arranged. Tell me when you see the page load.
760
+ > Run `sm`. After a couple of seconds it will print a line with the
761
+ > URL where the UI is listening, copy that link and open it in the
762
+ > browser you just arranged. Tell me when you see the page load.
764
763
 
765
764
  Wait for confirmation that the page loaded. Then tell the tester:
766
765
 
@@ -995,23 +994,16 @@ Tell the tester:
995
994
  > colours on the canvas (the two `invokes` share a colour, as you
996
995
  > would expect).
997
996
  >
998
- > Observa también que los conectores tienen distinta transparencia.
999
- > Skill-map estima qué tan seguro está de cada conexión: un
1000
- > `[text](file.md)` que apunta a un archivo concreto (1.00 de
1001
- > confianza, ahora que el target existe) se ve sólido, mientras que
1002
- > un `@handle` que no resuelve a ningún nodo se queda en 0.5
1003
- > (ambiguo) y se ve translúcido. La opacidad cuenta esa historia de
1004
- > un vistazo: cuanto más sólido, más confiable es la inferencia.
997
+ > Notice too that the connectors have different transparency.
998
+ > Skill-map estimates how sure it is of each connection: a
999
+ > `[text](file.md)` that points at a real file (confidence 1.00,
1000
+ > now that the target exists) looks solid, while an `@handle` that
1001
+ > resolves to no node sits at 0.5 (ambiguous) and looks
1002
+ > translucent. The opacity tells that story at a glance: the more
1003
+ > solid the arrow, the more reliable the inference.
1005
1004
  >
1006
- > Confirma. Si falta algún conector, refresca el browser y avísame.
1007
-
1008
- After the tester confirms the connectors, drop this tip:
1009
-
1010
- > 💡 Tip: si tras tantos cambios los nodos quedaron amontonados, en
1011
- > la barra de herramientas del mapa tienes el botón **Reset
1012
- > layout**: reorganiza todo con el auto-layout para que se vea
1013
- > mejor. Te pide confirmación porque descarta las posiciones que
1014
- > hayas movido a mano.
1005
+ > Confirm when you see it. If a connector is missing, refresh the
1006
+ > browser and let me know.
1015
1007
 
1016
1008
  If a connector is missing, do not advance, the next step inspects
1017
1009
  the same hub edit. Mark `5-live-connectors: done`.
@@ -1022,16 +1014,23 @@ The connector opacity tells the confidence story at a glance; the
1022
1014
  exact per-link breakdown lives in the Inspector. Open it on the hub
1023
1015
  so the tester registers the surface before Step 7 changes topology.
1024
1016
 
1025
- > 🆕 Abre el Inspector de `notes/todo` (clic en el nodo en el
1026
- > mapa). Baja hasta el panel **Linked nodes**: tiene dos secciones,
1027
- > **Outgoing** e **Incoming**. `notes/todo` lista 4 enlaces en
1028
- > Outgoing (es el hub que apunta a cuatro nodos) y 0 en Incoming;
1029
- > si abres el Inspector de cualquiera de los cuatro nodos
1030
- > apuntados, ves 1 en Incoming. Cada fila muestra el tipo del
1031
- > enlace (`mentions`, `invokes`, `references`) y una etiqueta con
1032
- > su confianza: el valor numérico (`1.00`, `0.50`, …).
1017
+ > 🆕 Open the Inspector for `notes/todo` (click the node on the
1018
+ > map). Scroll down to the **Linked nodes** panel: it has two
1019
+ > sections, **Outgoing** and **Incoming**. `notes/todo` lists 4
1020
+ > links under Outgoing (it's the hub pointing at four nodes) and 0
1021
+ > under Incoming; if you open the Inspector for any of the four
1022
+ > targeted nodes, you'll see 1 under Incoming. Each row shows the
1023
+ > link kind (`mentions`, `invokes`, `references`) and a badge with
1024
+ > its confidence: the numeric value (`1.00`, `0.50`, …).
1033
1025
  >
1034
- > Confírmame cuando lo veas.
1026
+ > Let me know when you see it.
1027
+
1028
+ After the tester confirms, drop this tip:
1029
+
1030
+ > 💡 Tip: if all these changes left the nodes crowded together,
1031
+ > the map toolbar has a **Reset layout** button: it re-runs the
1032
+ > auto-layout so everything reads better. It asks for confirmation
1033
+ > because it discards any positions you moved by hand.
1035
1034
 
1036
1035
  Wait for confirmation. Mark `6-live-inspector: done`.
1037
1036
 
@@ -1290,7 +1289,7 @@ sm check --analyzers reference-broken
1290
1289
  sm check --json
1291
1290
  ```
1292
1291
 
1293
- Expected: the warning surfaces the dangling link from
1292
+ Expected: the error surfaces the dangling link from
1294
1293
  `notes/todo.md` to the non-existent `missing-page.md`. The
1295
1294
  `--analyzers` filter lets you focus on a single issue type; `--json`
1296
1295
  emits the structured payload (useful for CI / scripting). When
@@ -1342,9 +1341,8 @@ sm plugins show core # confirm it shows as disabled
1342
1341
  sm plugins enable core/external-url-counter
1343
1342
  ```
1344
1343
 
1345
- If the tester asks about `plugins doctor` warnings, `plugins show`
1346
- behavior, or which id format `disable` / `enable` accept, see
1347
- §Scope clarifications.
1344
+ If the tester asks about `plugins doctor` warnings or `plugins show`
1345
+ behavior, see §Scope clarifications.
1348
1346
 
1349
1347
  If `plugins list` shows zero entries (depends on the build), tell
1350
1348
  the tester no plugins are installed yet and offer to skip.
@@ -1460,23 +1458,23 @@ Anything that hijoA points at lives here.
1460
1458
 
1461
1459
  Once the files are in place, tell the tester:
1462
1460
 
1463
- > Acabo de dejar dos carpetas hermanas dentro del cwd del tutorial:
1461
+ > I just dropped two sibling folders inside the tutorial cwd:
1464
1462
  >
1465
1463
  > ```
1466
1464
  > link-validation/
1467
1465
  > ├── hijoA/
1468
- > │ └── note-with-external-link.md ← contiene [spec](../hijoB/spec.md)
1466
+ > │ └── note-with-external-link.md ← contains [spec](../hijoB/spec.md)
1469
1467
  > └── hijoB/
1470
- > └── spec.md ← el archivo target real
1468
+ > └── spec.md ← the real target file
1471
1469
  > ```
1472
1470
  >
1473
- > Para este paso vas a cambiar de carpeta momentáneamente, así `sm`
1474
- > trata a `hijoA/` como un proyecto separado (cwd nuevo, scope
1475
- > acotado al subárbol). Al final del paso te indico cómo volver.
1471
+ > For this step you'll switch folders for a moment, so `sm` treats
1472
+ > `hijoA/` as a separate project (new cwd, scope limited to that
1473
+ > subtree). At the end of the step I'll tell you how to come back.
1476
1474
  >
1477
- > Si quedó algún `sm` corriendo de un paso anterior, ciérralo con
1478
- > Ctrl+C así el puerto queda libre para el de este paso. Después,
1479
- > en tu segundo terminal:
1475
+ > If an `sm` from an earlier step is still running, close it with
1476
+ > Ctrl+C so the port is free for this one. Then, in your second
1477
+ > terminal:
1480
1478
 
1481
1479
  ```bash
1482
1480
  cd link-validation/hijoA
@@ -1484,15 +1482,14 @@ sm init
1484
1482
  sm check
1485
1483
  ```
1486
1484
 
1487
- > Vas a ver un error del analyzer (regla que detecta problemas)
1488
- > `reference-broken` apuntando al link `../hijoB/spec.md`. Para
1489
- > skill-map ese archivo no existe, porque `hijoB/` queda afuera
1490
- > del scope (alcance) que `sm` está escaneando desde `hijoA/`:
1491
- > cada proyecto tiene su propio `.skill-map/` y solo recorre
1492
- > desde su cwd hacia abajo, nunca para "arriba" ni hacia carpetas
1493
- > hermanas.
1485
+ > You'll see an error from the `reference-broken` analyzer (a rule
1486
+ > that flags problems) pointing at the link `../hijoB/spec.md`. As
1487
+ > far as skill-map is concerned that file doesn't exist, because
1488
+ > `hijoB/` sits outside the scope `sm` is scanning from `hijoA/`:
1489
+ > each project has its own `.skill-map/` and only walks from its
1490
+ > cwd downwards, never "up" and never into sibling folders.
1494
1491
  >
1495
- > Pásame la salida (o un OK) y seguimos con el fix.
1492
+ > Paste me the output (or just an OK) and we'll move on to the fix.
1496
1493
 
1497
1494
  Wait for confirmation before showing the fix. Mark the error
1498
1495
  landed as expected; if the tester reports `✓ No issues` instead,
@@ -1503,14 +1500,14 @@ Have them re-check that the cwd of their second terminal is
1503
1500
 
1504
1501
  After they confirm the broken-ref error, present the fix:
1505
1502
 
1506
- > Para resolver el link sin tener que mover `hijoB/` dentro de
1507
- > `hijoA/`, agregas `../hijoB` al setting `scan.referencePaths`.
1508
- > Le dice al analyzer "si un link path-style cae acá, valídalo
1509
- > también contra estas carpetas extra". Los archivos NO se
1510
- > agregan al mapa (no aparecen como nodos), solo se consultan
1511
- > para resolver referencias salientes desde `hijoA/`.
1503
+ > To resolve the link without moving `hijoB/` inside `hijoA/`, you
1504
+ > add `../hijoB` to the `scan.referencePaths` setting. It tells the
1505
+ > analyzer "if a path-style link lands here, validate it against
1506
+ > these extra folders too". The files are NOT added to the map
1507
+ > (they don't show up as nodes), they're only consulted to resolve
1508
+ > outgoing references from `hijoA/`.
1512
1509
  >
1513
- > En tu segundo terminal (todavía dentro de `link-validation/hijoA/`):
1510
+ > In your second terminal (still inside `link-validation/hijoA/`):
1514
1511
 
1515
1512
  ```bash
1516
1513
  sm config set scan.referencePaths '["../hijoB"]' --yes
@@ -1518,25 +1515,25 @@ sm scan
1518
1515
  sm check
1519
1516
  ```
1520
1517
 
1521
- > El flag `--yes` confirma el privacy gate (control de privacidad):
1522
- > estás autorizando que skill-map lea archivos fuera del project
1523
- > root, así que pide tu OK explícito. Sin `--yes` el verb se aborta
1524
- > y te pide reintentar con `--yes` (no abre un prompt interactivo).
1525
- > Después del scan, `sm check` debería imprimir `✓ No issues`: el
1526
- > error desapareció y `hijoB/` sigue sin entrar al mapa como nodo.
1518
+ > The `--yes` flag confirms the privacy gate: you're authorizing
1519
+ > skill-map to read files outside the project root, so it asks for
1520
+ > your explicit OK. Without `--yes` the verb aborts and asks you to
1521
+ > retry with `--yes` (it does not open an interactive prompt).
1522
+ > After the scan, `sm check` should print `✓ No issues`: the error
1523
+ > is gone and `hijoB/` still hasn't entered the map as a node.
1527
1524
  >
1528
- > Pásame la salida y vemos cómo quedó persistido.
1525
+ > Paste me the output and let's see how it got persisted.
1529
1526
 
1530
1527
  Wait for confirmation. After they paste the clean `sm check`
1531
1528
  output, show where the value lives on disk:
1532
1529
 
1533
- > Mira cómo quedó guardado el cambio:
1530
+ > Look at how the change got saved:
1534
1531
 
1535
1532
  ```bash
1536
1533
  cat .skill-map/settings.local.json
1537
1534
  ```
1538
1535
 
1539
- > Vas a ver algo así:
1536
+ > You'll see something like this:
1540
1537
  >
1541
1538
  > ```json
1542
1539
  > {
@@ -1546,32 +1543,32 @@ cat .skill-map/settings.local.json
1546
1543
  > }
1547
1544
  > ```
1548
1545
  >
1549
- > Vive en `settings.local.json` (gitignored, no viaja por git),
1550
- > NO en el `settings.json` que se commitea. La razón: los
1551
- > paths a carpetas hermanas suelen depender del layout local de
1552
- > tu máquina (no todos los contribuidores tienen el mismo árbol
1553
- > de proyectos en disco), por eso skill-map fuerza este setting
1554
- > al layer local.
1546
+ > It lives in `settings.local.json` (gitignored, doesn't travel
1547
+ > through git), NOT in the `settings.json` that does get committed.
1548
+ > The reason: paths to sibling folders usually depend on your
1549
+ > machine's local layout (not every contributor has the same
1550
+ > project tree on disk), so skill-map forces this setting into the
1551
+ > local layer.
1555
1552
 
1556
1553
  Now the UI half. The tester needs `sm` running with `hijoA/` as
1557
1554
  cwd to see the matching panel:
1558
1555
 
1559
- > Lo mismo desde la UI. En el mismo terminal, levanta el servidor
1560
- > desde `hijoA/`:
1556
+ > Now the same thing from the UI. In the same terminal, start the
1557
+ > server from `hijoA/`:
1561
1558
 
1562
1559
  ```bash
1563
1560
  sm
1564
1561
  ```
1565
1562
 
1566
- > Abre la URL que imprime el comando en el browser. Arriba a la
1567
- > derecha está el icono (gear), haz clic ahí, en el modal ve al
1568
- > tab **Project** y baja hasta la sección **Folders for link
1569
- > validation**. Vas a ver `../hijoB` listado, con botones para
1570
- > agregar o sacar paths. La CLI y la UI escriben al mismo archivo:
1571
- > si agregas uno desde la UI, aparece en el JSON, y viceversa.
1563
+ > Open the URL the command prints in the browser. Top right there's
1564
+ > the **sliders** icon (hover shows "Settings"), click it, in the
1565
+ > modal go to the **Project** tab and scroll down to the **Folders
1566
+ > for link validation** section. You'll see `../hijoB` listed, with buttons to add or
1567
+ > remove paths. The CLI and the UI write to the same file: if you
1568
+ > add one from the UI, it shows up in the JSON, and vice versa.
1572
1569
  >
1573
- > Cuando termines de mirar, Ctrl+C en el terminal para cerrar el
1574
- > servidor.
1570
+ > When you're done looking, Ctrl+C in the terminal to close the
1571
+ > server.
1575
1572
 
1576
1573
  Wait for confirmation that they saw the panel and closed the
1577
1574
  server. If the `sm` launch fails with a port-in-use error, an old
@@ -1615,23 +1612,6 @@ extension table to spot the one you queried.
1615
1612
 
1616
1613
  ### IDs for `plugins disable` / `plugins enable`
1617
1614
 
1618
- Those verbs accept either a **qualified extension id**
1619
- `<bundle>/<ext-id>` (e.g. `core/external-url-counter`,
1620
- `claude/at-directive`) or a **bare bundle id** (e.g. `claude`,
1621
- `core`) which the CLI treats as a macro that fans the toggle out
1622
- across every extension inside the bundle. `plugins show <bundle>`
1623
- lists each extension as `<kind> <bundle>/<ext-id>` (e.g.
1624
- `extractor core/external-url-counter`); the leading kind is just a
1625
- readability column, pass only the `<bundle>/<ext-id>` part to
1626
- `disable` / `enable`.
1627
-
1628
- Single-extension bundles (`openai`, `antigravity`,
1629
- `agent-skills`) flip without prompting because the macro is a
1630
- 1-1 mapping. Multi-extension bundles (`claude`, `core`,
1631
- multi-extension user plugins) need `--yes` OR an interactive TTY
1632
- confirm; pipe / CI contexts always need `--yes` to avoid an
1633
- accidental cascade.
1634
-
1635
1615
  **Multiple ids in one call**: both verbs accept any number of ids
1636
1616
  in a single invocation, e.g. `sm plugins disable antigravity openai
1637
1617
  agent-skills` or `sm plugins enable claude/at-directive core/external-url-counter`.
@@ -1668,7 +1648,7 @@ clears on the next scan.
1668
1648
 
1669
1649
  When everything is done (demo only, or demo + deep-dive), show the
1670
1650
  closing block: a "that's a wrap" line, the sm-master pointer, the
1671
- return-to-root line (deep-dive only), then a one-line cleanup.
1651
+ return-to-root line (deep-dive only), and a guilt-free cleanup line.
1672
1652
 
1673
1653
  > Thanks! That's a wrap, you went through the whole tutorial.
1674
1654
  >
@@ -1695,18 +1675,15 @@ they stopped at the demo** (they never left the root).
1695
1675
  cd ../..
1696
1676
  ```
1697
1677
 
1698
- Then close with the thanks plus a one-line cleanup. **Keep it to a
1699
- single line, never a file inventory.** Pick the shape from
1700
- `ls -A <cwd>`: if every entry is tutorial-owned the cwd is
1701
- dedicated and `rm -rf` is safe; otherwise point only at the
1702
- tutorial-owned paths. **Never recommend `rm -rf <cwd>` when the
1703
- cwd holds anything skill-map did not create** (testers often run
1704
- this inside their real work dir).
1705
-
1706
- > Thanks for testing skill-map! To clean up: a throwaway dir is
1707
- > just `cd ~ && rm -rf <cwd>`; if it lives inside your own work,
1708
- > delete only what the tutorial created (`.skill-map/`, the fixture
1709
- > `.md` / `.sm` files, and `link-validation/`) and leave the rest.
1678
+ Then close with the thanks, a guilt-free cleanup line, and the
1679
+ findings reminder. The cleanup is safe to state plainly: `sm
1680
+ tutorial` only seeds into an empty directory, so everything in the
1681
+ cwd is tutorial-created and a whole-folder delete loses nothing of
1682
+ the tester's. Substitute `<dir>` with the actual directory name.
1683
+
1684
+ > Thanks for testing skill-map! You started in an empty directory, so
1685
+ > everything here was created by the tutorial: when you're done you
1686
+ > can delete the whole folder guilt-free with `cd .. && rm -rf <dir>`.
1710
1687
  > If anything felt off in any step, tell me and I'll log it in
1711
1688
  > `findings.md` before you close.
1712
1689