@skill-map/cli 0.21.0 → 0.23.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/README.md +4 -4
- package/bin/sm.js +3 -3
- package/dist/cli/tutorial/sm-tutorial.md +22 -4
- package/dist/cli.js +7958 -6881
- package/dist/cli.js.map +1 -1
- package/dist/conformance/index.d.ts +1 -1
- package/dist/conformance/index.js.map +1 -1
- package/dist/index.js +1612 -1400
- package/dist/index.js.map +1 -1
- package/dist/kernel/index.d.ts +583 -421
- package/dist/kernel/index.js +1612 -1400
- package/dist/kernel/index.js.map +1 -1
- package/dist/ui/{chunk-GXRWH2VL.js → chunk-2TPMJJYQ.js} +1 -1
- package/dist/ui/chunk-4BVLXZO3.js +61 -0
- package/dist/ui/{chunk-MPMBTIUR.js → chunk-BMAKIDAV.js} +30 -30
- package/dist/ui/{chunk-VVOEPDQD.js → chunk-GJJZ5QH6.js} +1 -1
- package/dist/ui/chunk-I7EELB7M.js +1 -0
- package/dist/ui/chunk-K47RR2IO.js +251 -0
- package/dist/ui/{chunk-OPPQMCMQ.js → chunk-KRNW54CI.js} +1 -1
- package/dist/ui/chunk-NJ4PSNK3.js +965 -0
- package/dist/ui/{chunk-W2EFGI3J.js → chunk-OU26UMVW.js} +1 -1
- package/dist/ui/chunk-QGRY6MDS.js +123 -0
- package/dist/ui/chunk-SCSYN7U2.js +1 -0
- package/dist/ui/index.html +3 -3
- package/dist/ui/main-CVCJMGY5.js +2 -0
- package/dist/ui/{styles-M2FETVAG.css → styles-ALBMEXCF.css} +1 -1
- package/package.json +8 -7
- package/dist/ui/chunk-25AWRVIC.js +0 -965
- package/dist/ui/chunk-6FTVUS57.js +0 -123
- package/dist/ui/chunk-MF2M6GYF.js +0 -1
- package/dist/ui/chunk-N366HMME.js +0 -1
- package/dist/ui/chunk-V3SZQETX.js +0 -61
- package/dist/ui/chunk-W62WVNU4.js +0 -251
- package/dist/ui/main-NIYE2VFS.js +0 -2
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# skill-map
|
|
2
2
|
|
|
3
|
-
Map, inspect, and manage collections of interrelated Markdown files
|
|
3
|
+
Map, inspect, and manage collections of interrelated Markdown files, skills, agents, commands, hooks, and notes that compose AI-agent ecosystems (Claude Code, Codex, Gemini, Copilot, docs sites).
|
|
4
4
|
|
|
5
5
|
**Status**: pre-1.0, active development. Steps 0a–9 are complete (spec, kernel, plugin loader, full CLI surface, plugin author UX). Step 14 (Full Web UI) is in progress with sub-steps 14.1–14.4 closed (Hono BFF + REST + WebSocket broadcaster + reactive UI); 14.5–14.7 (polish + bundle budgets + responsive scope) still pending. The full deterministic scan, check, history, orphans, plugin authoring, and `sm serve` are live; the optional LLM layer (Phase B / `v0.8.0`) lands after Step 14 closes. See [`ROADMAP.md`](../ROADMAP.md) for the canonical completeness marker and full execution plan. Releases follow the standard changeset flow.
|
|
6
6
|
|
|
@@ -9,7 +9,7 @@ Map, inspect, and manage collections of interrelated Markdown files — skills,
|
|
|
9
9
|
- **Node.js ≥ 24.0** (active LTS since October 2025). Older versions are unsupported.
|
|
10
10
|
- Any platform Node 24 supports (Linux, macOS, Windows).
|
|
11
11
|
|
|
12
|
-
`skill-map` checks the runtime version at the first `sm` invocation and exits with a human-readable message if Node is too old
|
|
12
|
+
`skill-map` checks the runtime version at the first `sm` invocation and exits with a human-readable message if Node is too old, no silent partial runs.
|
|
13
13
|
|
|
14
14
|
If your system is on Node 22 or 20, install the latest LTS from [nodejs.org](https://nodejs.org) (or via `nvm`, `fnm`, `volta`, …) before installing this package.
|
|
15
15
|
|
|
@@ -80,7 +80,7 @@ Exit codes follow [`spec/cli-contract.md`](../spec/cli-contract.md):
|
|
|
80
80
|
|
|
81
81
|
## Sidecar `.sm` files
|
|
82
82
|
|
|
83
|
-
`sm bump` and `sm sidecar annotate` write a sibling `<basename>.sm` YAML next to each `.md` (same directory). Their purpose is to keep skill-map's bookkeeping
|
|
83
|
+
`sm bump` and `sm sidecar annotate` write a sibling `<basename>.sm` YAML next to each `.md` (same directory). Their purpose is to keep skill-map's bookkeeping, version, stability, supersession, tags, audit trail, **out of the `.md` body and frontmatter**. The `.md` stays vendor-pure (Claude Code, Codex, Cursor, …); the `.sm` is the only file skill-map writes. **`sm scan`, `sm watch`, and the live UI never create `.sm` files**, they only read existing ones; sidecars appear only when you opt in via `bump` or `annotate`. **Commit `.sm` files to git like any other source file**, don't `.gitignore` them; they carry the metadata that drives `sm check`, drift detection, and supersession graphs. Full spec: [`spec/architecture.md` §Annotation system](../spec/architecture.md#annotation-system).
|
|
84
84
|
|
|
85
85
|
## Spec
|
|
86
86
|
|
|
@@ -88,7 +88,7 @@ This binary implements the [skill-map spec](https://www.npmjs.com/package/@skill
|
|
|
88
88
|
|
|
89
89
|
## Security: untrusted repositories
|
|
90
90
|
|
|
91
|
-
`sm scan` (and the verbs that include a scan: `refresh`, `watch`, `init`) auto-loads JavaScript plugins from `<cwd>/.skill-map/plugins/` by default. Running these commands inside a repository you do not control is equivalent to running `node ./.skill-map/plugins/*/index.js
|
|
91
|
+
`sm scan` (and the verbs that include a scan: `refresh`, `watch`, `init`) auto-loads JavaScript plugins from `<cwd>/.skill-map/plugins/` by default. Running these commands inside a repository you do not control is equivalent to running `node ./.skill-map/plugins/*/index.js`, the plugin code executes with your user permissions.
|
|
92
92
|
|
|
93
93
|
If you cloned an untrusted repository, run with `--no-plugins` to disable third-party plugin loading, or audit the contents of `.skill-map/plugins/` before scanning.
|
|
94
94
|
|
package/bin/sm.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env -S node --disable-warning=ExperimentalWarning
|
|
2
2
|
// Shebang note: `env -S` lets us pass `--disable-warning=ExperimentalWarning`
|
|
3
3
|
// to node so end users don't see the `node:sqlite` experimental notice on
|
|
4
|
-
// every invocation. The flag scopes to ExperimentalWarning only
|
|
4
|
+
// every invocation. The flag scopes to ExperimentalWarning only, other
|
|
5
5
|
// warning classes (DeprecationWarning, etc.) still surface.
|
|
6
6
|
//
|
|
7
|
-
// Runtime guard
|
|
7
|
+
// Runtime guard, fail fast with a human message before importing anything
|
|
8
8
|
// that uses Node 24 APIs (node:sqlite stable, built-in WebSocket, modern
|
|
9
9
|
// ESM loader). Without this, a user on Node 20/22 gets an obscure
|
|
10
10
|
// SyntaxError or "module not found" instead of guidance.
|
|
@@ -25,6 +25,6 @@ Install the latest LTS from https://nodejs.org and retry.
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
import('../dist/cli.js').catch((err) => {
|
|
28
|
-
process.stderr.write(`sm: failed to load CLI
|
|
28
|
+
process.stderr.write(`sm: failed to load CLI, ${err.message}\n`);
|
|
29
29
|
process.exit(2);
|
|
30
30
|
});
|
|
@@ -975,7 +975,7 @@ sm graph
|
|
|
975
975
|
sm export --format md > export.md
|
|
976
976
|
sm export "kind=markdown" --format json > export-markdown.json
|
|
977
977
|
sm export "path=notes/**" --format json > export-notes.json
|
|
978
|
-
ls -la export
|
|
978
|
+
ls -la export*
|
|
979
979
|
```
|
|
980
980
|
|
|
981
981
|
`graph` draws an ASCII tree of the whole persisted scan (no
|
|
@@ -1042,9 +1042,27 @@ sm plugins list # confirm it shows as disabled
|
|
|
1042
1042
|
sm plugins enable core/external-url-counter
|
|
1043
1043
|
```
|
|
1044
1044
|
|
|
1045
|
-
> **About
|
|
1046
|
-
>
|
|
1047
|
-
>
|
|
1045
|
+
> **About `plugins doctor` warnings on a clean fixture**: `doctor` may
|
|
1046
|
+
> emit 1-2 informational warnings about `explorationDir` not existing
|
|
1047
|
+
> for `gemini/gemini` (`~/.gemini`) or `agent-skills/agent-skills`
|
|
1048
|
+
> (`.agents`). These are normal on a machine that has not installed
|
|
1049
|
+
> those tools — the providers declare optional discovery paths and
|
|
1050
|
+
> warn when the path is absent. Nothing is broken; the providers just
|
|
1051
|
+
> have nothing to scan.
|
|
1052
|
+
|
|
1053
|
+
> **About `sm plugins show <qualified-id>`**: the verb is
|
|
1054
|
+
> informational — passing `core/external-url-counter` validates the
|
|
1055
|
+
> extension exists and then renders the **parent bundle's** detail
|
|
1056
|
+
> (i.e. the full `core` listing). The extension you named lives in
|
|
1057
|
+
> that list. This is deliberate: forcing the user to type the bundle
|
|
1058
|
+
> id just to read a single extension's manifest would be hostile, so
|
|
1059
|
+
> `show` accepts the qualified shape and resolves up. Use
|
|
1060
|
+
> `sm plugins doctor` or scroll the bundle's extension table to spot
|
|
1061
|
+
> the one you queried.
|
|
1062
|
+
|
|
1063
|
+
> **About IDs for `disable` / `enable`**: those verbs accept either a
|
|
1064
|
+
> **bundle id** (e.g. `claude`, which toggles every Claude extension
|
|
1065
|
+
> at once) or a **qualified extension id** `<bundle>/<ext-id>` (e.g.
|
|
1048
1066
|
> `core/external-url-counter`). The display format you see in
|
|
1049
1067
|
> `plugins list` (`extractor:core/external-url-counter@1.0.0`)
|
|
1050
1068
|
> includes the kind prefix and the version for readability — strip
|