@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.
- package/dist/cli/tutorial/sm-tutorial/SKILL.md +91 -114
- package/dist/cli.js +244 -70
- package/dist/cli.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/kernel/index.d.ts +35 -0
- package/dist/kernel/index.js +1 -1
- package/dist/kernel/index.js.map +1 -1
- package/dist/ui/{chunk-DL5EA245.js → chunk-CBI77N5U.js} +3 -3
- package/dist/ui/index.html +1 -1
- package/dist/ui/{main-O3CWFYKV.js → main-ERCTR2PR.js} +1 -1
- package/package.json +2 -2
|
@@ -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;
|
|
443
|
-
|
|
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
|
-
>
|
|
761
|
-
>
|
|
762
|
-
>
|
|
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
|
-
>
|
|
999
|
-
> Skill-map
|
|
1000
|
-
> `[text](file.md)`
|
|
1001
|
-
>
|
|
1002
|
-
>
|
|
1003
|
-
>
|
|
1004
|
-
>
|
|
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
|
-
>
|
|
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
|
-
> 🆕
|
|
1026
|
-
>
|
|
1027
|
-
> **Outgoing**
|
|
1028
|
-
> Outgoing (
|
|
1029
|
-
>
|
|
1030
|
-
>
|
|
1031
|
-
>
|
|
1032
|
-
>
|
|
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
|
-
>
|
|
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
|
|
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
|
|
1346
|
-
behavior,
|
|
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
|
-
>
|
|
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 ←
|
|
1466
|
+
> │ └── note-with-external-link.md ← contains [spec](../hijoB/spec.md)
|
|
1469
1467
|
> └── hijoB/
|
|
1470
|
-
> └── spec.md ←
|
|
1468
|
+
> └── spec.md ← the real target file
|
|
1471
1469
|
> ```
|
|
1472
1470
|
>
|
|
1473
|
-
>
|
|
1474
|
-
>
|
|
1475
|
-
>
|
|
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
|
-
>
|
|
1478
|
-
> Ctrl+C
|
|
1479
|
-
>
|
|
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
|
-
>
|
|
1488
|
-
>
|
|
1489
|
-
> skill-map
|
|
1490
|
-
>
|
|
1491
|
-
>
|
|
1492
|
-
>
|
|
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
|
-
>
|
|
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
|
-
>
|
|
1507
|
-
>
|
|
1508
|
-
>
|
|
1509
|
-
>
|
|
1510
|
-
>
|
|
1511
|
-
>
|
|
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
|
-
>
|
|
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
|
-
>
|
|
1522
|
-
>
|
|
1523
|
-
>
|
|
1524
|
-
>
|
|
1525
|
-
>
|
|
1526
|
-
>
|
|
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
|
-
>
|
|
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
|
-
>
|
|
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
|
-
>
|
|
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
|
-
>
|
|
1550
|
-
>
|
|
1551
|
-
>
|
|
1552
|
-
>
|
|
1553
|
-
>
|
|
1554
|
-
>
|
|
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
|
-
>
|
|
1560
|
-
>
|
|
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
|
-
>
|
|
1567
|
-
>
|
|
1568
|
-
>
|
|
1569
|
-
> validation
|
|
1570
|
-
>
|
|
1571
|
-
>
|
|
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
|
-
>
|
|
1574
|
-
>
|
|
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),
|
|
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
|
|
1699
|
-
|
|
1700
|
-
`
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
>
|
|
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
|
|