Generated from sm help --format md. Do not hand-edit; CI regenerates this file from the live command surface.
- CLI version:
0.36.0 - Spec version:
0.34.0
--help: Print usage and exit.
Bump a node's sidecar (<basename>.sm): increment annotations.version, refresh hashes, stamp audit.
Wraps the built-in deterministic core/bump Action. Single-node mode bumps one
path; --pending walks every node whose sidecar overlay reports drift and bumps
them all.
Single-node mode refuses on a fresh (non-stale) node unless --force is passed.
Batch mode (--pending) treats fresh nodes as silent no-ops by default and
accepts --force only as a passthrough to the Action's force flag (no
behaviour change from the default in this verb).
--staged (only valid with --pending) runs git add on each
successfully-bumped .sm file so the new content lands in the same commit.
Requires a git binary on PATH and a parent .git/: missing repo exits 5,
missing binary exits 2.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).--pendingboolean: Bump every node whose sidecar reports drift.--stagedboolean: After each successful --pending bump,git addthe .sm file.--forceboolean: Single-node: bump even when the node is fresh. Batch: turn fresh-node refusals into silent no-ops.--yesboolean: Confirm writing .sm sidecar files in this project (sets allowEditSmFiles=true on first run).
Examples:
- Bump a single node
sm bump .claude/agents/architect.md - Bump a fresh node anyway
sm bump .claude/agents/architect.md --force - Bump every stale node
sm bump --pending - Bump every stale node and stage the .sm changes
sm bump --pending --staged
Install a git pre-commit hook that auto-bumps staged sidecar drift.
The only supported flavour today is pre-commit-bump, which runs sm bump --pending --staged from the repo's pre-commit hook so any drifted sidecar in
the staged set gets a fresh version + audit stamp inside the same commit.
Idempotent: re-running detects the skill-map marker and no-ops. When the repo
already has a custom pre-commit, the verb appends the skill-map block to the
existing file rather than replacing it.
Requires a parent .git/ (exit 5 otherwise). Writes nothing under --dry-run;
instead prints the planned content with --- target: <path> --- markers.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Examples:
- Install the hook
sm hooks install pre-commit-bump - Preview what would be written
sm hooks install pre-commit-bump --dry-run
Scaffold an empty <basename>.sm next to a node ready for editing.
Pure scaffolding helper. Writes a minimal .sm file with the identity: block
populated and an empty annotations: {} block. After editing, run sm bump <node> to commit the version through the Action.
Refuses if the file already exists; pass --force to overwrite. Per Decision A4
the --from-frontmatter migration helper is deferred (no released consumer
demands it).
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).--yesboolean: Confirm writing .sm sidecar files in this project (sets allowEditSmFiles=true on first run).
Examples:
- Scaffold a sidecar
sm sidecar annotate .claude/agents/architect.md - Overwrite an existing one
sm sidecar annotate .claude/agents/architect.md --force
Delete orphan .sm files (sidecars whose accompanying .md no longer exists).
Walks the configured roots looking for .sm files whose sibling <basename>.md
does not exist on disk. With --dry-run reports what would be deleted without
touching anything; without --dry-run prompts for interactive confirmation
before deleting (per the project's destructive-verb convention). --yes (alias
--force) bypasses the prompt for non-interactive use (CI, scripts, the
pre-commit hook).
Different domain from sm orphans: that verb operates on the node graph (rename
heuristic). This one operates on the filesystem layer.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).--force,--yesboolean: Skip the interactive confirmation prompt. Required for non-interactive callers (CI, pre-commit hooks).
Examples:
- List what would be pruned
sm sidecar prune --dry-run - Delete every orphan .sm file (interactive)
sm sidecar prune - Delete every orphan .sm file (non-interactive)
sm sidecar prune --yes
Refresh a sidecar's for.{bodyHash, frontmatterHash} to match the live node. Does NOT bump the version.
Useful when the user knows a body change is editorial-only and doesn't want to
spend a annotations.version increment. Distinct from sm refresh (the
enrichment-layer verb at Step A.8); different storage, different concept.
Refuses if the node has no sidecar (run sm sidecar annotate first, or sm bump to create one through the Action). No-ops on a fresh node, there's nothing
to refresh.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).--yesboolean: Confirm writing .sm sidecar files in this project (sets allowEditSmFiles=true on first run).
Examples:
- Refresh a node's sidecar hashes
sm sidecar refresh .claude/agents/architect.md
Print all current issues (reads from DB, faster than sm scan --json | jq).
Loads every row from scan_issues. Exits 1 if any issue has severity error,
otherwise 0. warn and info do not fail.
Run sm scan first to populate the DB.
--include-prob is an opt-in flag for probabilistic Analyzer dispatch (spec §
A.7). Default is deterministic-only: same CI-safe behaviour as before. With the
flag, registered prob rules are detected and named in a stderr advisory; full
dispatch lands when the job subsystem ships at Step 10.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).--node,-nstring: Restrict to issues whose nodeIds include the given path. Combines with --analyzers and --include-prob.--analyzersstring: Comma-separated analyzer ids (qualified or short). Restrict the issue read; with --include-prob, also filters which prob analyzers surface in the advisory.--include-probboolean: Detect probabilistic Analyzers and emit a stub advisory naming them (full dispatch lands at Step 10). Default off → deterministic-only, CI-safe.--asyncboolean: Reserved companion to --include-prob: once jobs ship, returns job ids without waiting. No effect today.--no-pluginsboolean: Skip drop-in plugin discovery; only kernel built-ins participate in the prob detection. Same flag shape assm scan.
Examples:
- Print every current issue
sm check - Machine-readable issue list
sm check --json - Restrict to a single node
sm check -n .claude/agents/architect.md - Restrict to specific rules
sm check --analyzers core/broken-ref,core/validate-all - Opt in to probabilistic analyzers (stub until Step 10)
sm check --include-prob - Use a non-default DB file
sm check --db /path/to/skill-map.db
Filtered export. Query syntax is implementation-defined pre-1.0.
Reads the persisted scan, applies the query filter, and emits the selected subset.
Query syntax (v0.5.0): whitespace-separated key=value tokens; AND across keys,
OR within comma-separated values. Keys: kind (skill / agent / command / note),
has (issues), path (POSIX glob: * matches a single segment, ** matches
across segments).
Pass an empty query (""), or omit the argument entirely, to export every node.
Run sm scan first to populate the DB.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Examples:
- Whole graph (no query)
sm export --format md - Every command node
sm export "kind=command" --format json - Skills + agents with issues
sm export "kind=skill,agent has=issues" --format md - Files under a path glob
sm export "path=.claude/commands/**" --format json
Probabilistic findings: injection, stale summaries, low confidence. (planned)
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Render the full graph via the named formatter.
Reads the persisted scan and prints a textual rendering. The built-in ascii
formatter is the only format available at v0.5.0; mermaid and dot are
deferred to Step 12 and will surface here automatically once they ship as
built-ins.
Run sm scan first to populate the DB.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).--formatstring: Formatter format. Must match theformatIdfield of a registered formatter. Default: ascii.--no-pluginsboolean: Skip drop-in plugin discovery. Only built-in formatters participate.
Examples:
- Render the graph as ASCII (default)
sm graph - Render with an explicit format
sm graph --format ascii - Use a non-default DB file
sm graph --db /path/to/skill-map.db
Tabular listing of nodes. --json emits an array conforming to node.schema.json.
Reads from the persisted scan snapshot (scan_nodes). Filters: --kind restricts to one node kind; --issue keeps only nodes
that touch at least one current issue; --tag keeps only nodes carrying that tag (matches the union of frontmatter.tags and sidecar.annotations.tags by default; --tag-source author|user narrows to one side).
--sort-by accepts: path, kind, tokens_total, links_out_count,
links_in_count, external_refs_count. Default: path. --limit N caps the result; default is no limit.
Run sm scan first to populate the DB.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Examples:
- List every node
sm list - List only agents
sm list --kind agent - Top 5 by total tokens
sm list --sort-by tokens_total --limit 5 - Only nodes with issues, machine-readable
sm list --issue --json - Filter by tag (author or user surfaces)
sm list --tag urgent - Filter by user-only tag
sm list --tag wip --tag-source user
List orphan / auto-rename issues from the last scan. --json emits an array conforming to issue.schema.json.
Surfaces every active issue with analyzerId in (orphan, auto-rename-medium, auto-rename-ambiguous) so the user can decide whether to reconcile (forward) or undo-rename (reverse).
Filter with --kind: orphan | medium | ambiguous.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Examples:
- List every orphan / auto-rename issue
sm orphans - Just the ambiguous ones, JSON
sm orphans --kind ambiguous --json
Migrate state_* FKs from an orphan path to a live node, resolving the orphan issue.
Forward direction: when the rename heuristic could not find a match (e.g. semantic-only rename, body rewrite), use this verb to attach the orphan's history to a live node.
Validates that <new.path> exists in scan_nodes (exit 5 otherwise) and that an active orphan issue exists for <orphan.path> (exit 5 otherwise). Migration is atomic via a single transaction.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Examples:
- Reattach orphan history
sm orphans reconcile skills/old.md --to skills/new.md
Reverse a medium- or ambiguous-confidence auto-rename. Migrates state_* FKs back, emits a new orphan on the prior path.
Use when the rename heuristic auto-migrated history to a node that turned out to be unrelated.
For an active auto-rename-medium issue on <new.path>, the prior path is read from issue.data.from; omit --from. For an active auto-rename-ambiguous issue, --from <old.path> is REQUIRED to pick a candidate from data.candidates.
Destructive (changes FK ownership). Prompts for confirmation unless --force.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Examples:
- Undo a medium-confidence auto-rename
sm orphans undo-rename skills/new.md - Undo an ambiguous, picking a candidate
sm orphans undo-rename skills/new.md --from skills/old-a.md
Node detail: weight, frontmatter, links, issues.
Loads a single node from the persisted snapshot, plus every link (in and out) and every current issue touching it. Step 10 (findings) and Step 11 (summary) will add fields when their backing tables ship.
Run sm scan first to populate the DB.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Examples:
- Show a single node
sm show .claude/agents/architect.md - Machine-readable detail
sm show .claude/agents/architect.md --json
Read a single config value by dot-path key.
Loads the layered config and prints the final value. Unknown key → exit 5. Exempt from "done in <…>".
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Print the effective config after layered merge.
Walks defaults → project → project-local and prints the merged result. With --json emits the JSON object; otherwise prints flat dot-path = value lines (sorted). Exempt from "done in <…>" per spec/cli-contract.md §Elapsed time.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Remove a config key from the target settings file.
Strips the key from the target settings.json (lower layers still apply). Idempotent: running twice is safe; absent key prints an info note and exits 0.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Write a config key. Targets project (committed) or project-local (gitignored).
Reads the target file (creating it if absent), sets the key at the dot-path, validates the result against project-config.schema.json, and writes back. Value coercion: JSON-parses the raw string first ("true" → true, "42" → 42, "null" → null, arrays / objects natural); unparseable falls through as string. Schema violation → exit 2, no write performed.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).--yesboolean: Confirm a privacy-sensitive write that opens disk access outside the project (scan.referencePaths).
Show a config value with the layer that set it (--source).
Identical to "sm config get" plus optional --source which prefixes the layer (defaults / project / project-local / override). With --json emits { value, source } when --source is set. Exempt from "done in <…>".
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
WAL checkpoint + copy the DB file to a backup.
Default output: /backups/.db. Use --out to override. scan_* is regenerated on demand and is NOT excluded from the raw file copy, but restoring a backup over a live DB is the expected use; running sm scan afterwards refreshes scan_*.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Open the DB in DB Browser for SQLite (sqlitebrowser GUI).
Default: read-only (-R), so a concurrent sm scan writer is safe. Pass --rw to
enable writes.
Resolution order for the DB path: positional arg > --db > project default (cwd/.skill-map/skill-map.db).
Spawns sqlitebrowser detached so the terminal stays usable. If sqlitebrowser is not on PATH, a clear error points at the install hint (Debian/Ubuntu: sudo apt install -y sqlitebrowser).
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).--rwboolean: Open in read-write mode. Default is read-only so a concurrentsm scanwriter is safe.
Examples:
- Open the project DB read-only
sm db browser - Open the project DB read-write
sm db browser --rw - Open an arbitrary DB file
sm db browser path/to/other.db
SQL dump to stdout.
Read-only. Pure node:sqlite; no external sqlite3 binary required. Use --tables
<names...> to limit the dump to specific tables.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Apply pending kernel + plugin migrations (default) or inspect plan.
--dry-run show pending migrations without applying.
--status print applied vs pending summary and exit.
--to apply up to (and including) version N (kernel only).
--no-backup skip the pre-apply backup.
--kernel-only skip plugin migrations entirely.
--plugin run only that plugin's migrations (skips kernel migrations).
Plugin migrations live under /migrations/ and follow the same
NNN_snake_case.sql convention as kernel migrations. Each migration is gated by a
triple-protection rule: every object it creates / alters / drops MUST live in
the namespace plugin_<normalizedId>_*. Layer 1 validates every pending file
before anything runs; Layer 2 re-validates immediately before apply; Layer 3
sweeps sqlite_master after apply and reports any object outside the prefix.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Drop scan_* (default), optionally state_*, or delete the DB entirely.
Without flags: drops scan_* tables only. Non-destructive, no prompt. With --state: also drops state_* tables. Destructive, requires confirmation unless --yes / --force. With --hard: deletes the DB file entirely. Destructive, requires confirmation unless --yes / --force. With --dry-run: previews what would be cleared / deleted without touching the DB. Bypasses the confirmation prompt entirely (the preview itself is non-destructive).
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).--dry-run,-nboolean: Preview the reset without dropping any tables or unlinking any files.
Replace the active DB file with a backup.
Destructive. Requires interactive confirmation unless --yes / --force is passed. scan_* will be re-populated by the next sm scan. With --dry-run: previews the swap (source size, target overwrite status, sidecars to drop) without copying or deleting anything. Dry-run bypasses the confirmation prompt.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).--dry-run,-nboolean: Preview the restore without overwriting the live DB.
Open an interactive sqlite3 shell on the DB file.
Spawns the system sqlite3 binary. If sqlite3 is not on PATH, a clear error points at the two workarounds: install sqlite3, or use sm db dump for a read-only inspection.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Filter execution records. --json emits an array conforming to execution-record.schema.json.
Reads from state_executions. Filters: -n restrict to executions whose nodeIds[] contains
--action restrict to a specific action extension id
--status <s,...> restrict to one or more of completed,failed,cancelled
--since lower bound on startedAt (inclusive, ISO-8601)
--until upper bound on startedAt (exclusive, ISO-8601)
--limit N cap result count
Output is most-recent-first. Run sm scan first to provision the DB.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Examples:
- Recent executions
sm history --limit 10 - Failures in the last week
sm history --status failed --since 2026-04-19T00:00:00Z - Machine-readable, scoped to one node
sm history -n skills/foo.md --json
Aggregate counts, tokens, periods, top nodes, and error rates over state_executions. --json conforms to history-stats.schema.json.
Defaults: --period month, --top 10, all-time when --since omitted.
Window: --since is inclusive, --until is exclusive. Both ISO-8601.
The --json output ALWAYS includes the full per-failure-reason key set (zero-filled if a reason has no occurrences) so dashboards see a predictable shape.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Examples:
- All-time stats
sm history stats - Last 30 days, daily buckets
sm history stats --since 2026-03-26T00:00:00Z --period day - Top 5 nodes, JSON
sm history stats --top 5 --json
Run the conformance suite: spec-owned cases plus every built-in Provider.
Drives the conformance runner shipped at @skill-map/cli/conformance against
the cases bundled with this CLI install. Each case provisions an isolated tmp
scope, seeds the appropriate fixture, runs an sm invocation, and asserts the
requested predicates.
Scope selection:
--scope spec only spec-owned, kernel-agnostic cases
(default fixture: `preamble-v1.txt`,
case: `kernel-empty-boot`). --scope provider:<id> only
the named built-in Provider's
cases. Today: `provider:claude`
(`basic-scan`, `rename-high`,
orphan-detection). --scope all (default) every scope, in registry
order.
Exit codes mirror the rest of the verb catalog: 0 on a clean sweep, 1 if any case failed, 2 on a configuration error (unknown scope, missing binary).
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).--scopestring: Suite selector: 'all' (default), 'spec', or 'provider:'.
Examples:
- Run every conformance suite
sm conformance run - Run only the spec suite
sm conformance run --scope spec - Run only the Claude Provider suite
sm conformance run --scope provider:claude
Self-describing introspection. --format human|md|json.
Without a verb: overview of every registered command grouped by category. With a verb: the detail view for that single command.
Formats: human (default): pretty terminal output. md : canonical markdown. context/cli-reference.md is regenerated from this and CI fails on drift. json : structured surface dump per spec/cli-contract.md.
Print the CLI / kernel / spec / runtime / db-schema version matrix.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Registered action types (manifest view). (planned)
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Full action manifest, including preconditions and expected duration. (planned)
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Force a running job to failed with reason user-cancelled. (planned)
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Atomic primitive: return next queued job id, mark it running. (planned)
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
List jobs. (planned)
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Render the job MD file without executing. (planned)
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Retention GC for completed / failed jobs (per config policy). --orphan-files removes MD files with no DB row.
Reads jobs.retention.completed and jobs.retention.failed from the layered config. For each non-null policy, deletes terminal jobs whose finishedAt is older than the cutoff and unlinks their MD files in .skill-map/jobs/.
With --orphan-files: ALSO scans .skill-map/jobs/ for MD files not referenced by any state_jobs row and deletes them. Both passes run; orphans are scanned AFTER retention so freshly-pruned files don't double-count.
With --dry-run: counts and reports what would happen without touching the DB or the FS.
Exits 0 on success, 5 if the DB is missing (run sm init first), 2 on any other
operational failure (malformed config, IO error).
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).--orphan-filesboolean: Also remove MD files in .skill-map/jobs/ that have no matching state_jobs row.--dry-run,-nboolean: Report what would be pruned without touching the DB or filesystem.
Examples:
- Apply retention policy
sm job prune - Apply retention + clean orphan files
sm job prune --orphan-files - Preview without touching the DB
sm job prune --dry-run --json
Full CLI-runner loop: claim + spawn + record. (planned)
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Job detail: state, claim time, TTL, runner, content hash. (planned)
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Counts (per status) or single-job status. (planned)
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Enqueue a single job or fan out to every matching node (--all). (planned)
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Close a running job with success or failure. Nonce is the sole credential. (planned)
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Scaffold a new plugin directory.
Emits plugin.json + extension stub + README. Pre-filled with one view
contribution (slot card.footer.left) and one setting (string-list); edit to
taste. Use sm plugins slots list to see other options.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Disable one or more plugins (or --all). Persists in config_plugins; does not delete files.
Writes a row to config_plugins with enabled=0 per id. Discovery still surfaces the plugin in sm plugins list, but with status=disabled; its extensions are not imported and the kernel will not run them.
Accepts one or more ids in one call, e.g. 'sm plugins disable antigravity openai agent-skills'. Batches are all-or-nothing: a single unknown / mismatched id aborts before any write. Repeated ids are deduped. Locked plugins inside a batch are silently skipped.
Granularity: a bundle-granularity plugin (default for user plugins, and the built-in 'claude' bundle) accepts only the bundle id. An extension-granularity plugin (the built-in 'core' bundle) accepts only qualified ids '/'. Mismatches are rejected with directed guidance.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Run the full load pass and summarise by failure mode.
Exit code 0 when every plugin loads or is intentionally disabled; 1 when any plugin is in an error / incompat state.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Enable one or more plugins (or --all). Persists in config_plugins.
Writes a row to config_plugins with enabled=1 per id. Takes precedence over the team-shared baseline at settings.json#/plugins//enabled. Use sm plugins disable to flip; sm config reset plugins..enabled drops the settings.json baseline.
Accepts one or more ids in one call, e.g. 'sm plugins enable claude antigravity openai'. Batches are all-or-nothing: a single unknown / mismatched id aborts before any write. Repeated ids are deduped. Locked plugins inside a batch are silently skipped.
Granularity: a bundle-granularity plugin (default for user plugins, and the built-in 'claude' bundle) accepts only the bundle id. An extension-granularity plugin (the built-in 'core' bundle) accepts only qualified ids '/'. Mismatches are rejected with directed guidance.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
List discovered plugins and their load status.
Scans /.skill-map/plugins (or --plugin-dir ). Built-in bundles (claude, core) are listed alongside user plugins.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Show a single plugin's manifest + loaded extensions.
Accepts a bundle / plugin id (core, claude, my-plugin) or a qualified
extension id (core/<ext-id>, <plugin>/<ext-id>). When given a qualified id,
validates the extension exists and renders the parent bundle's detail (which
lists every extension with per-extension status for granularity=extension
bundles like core). The same id shapes sm plugins enable and sm plugins disable accept resolve cleanly here too.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Print the closed catalogs of view slots and input-types.
Read-only. Use this when picking a slot / input-type for a new plugin.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Apply catalog migrations to plugin manifests.
No migrations registered against catalog v1.0.0 yet; this verb is a no-op today. The structure exists so future slot renames / deprecations land without spec churn.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Refresh enrichment rows: granular (single node) or batch (every stale row).
Re-runs Extractors against the node(s) and upserts their outputs into the
universal enrichment layer (node_enrichments). Extractors are
deterministic-only: they always run for real and persist.
Layer separation: enrichments live separately from the author's frontmatter, which is immutable from any Extractor.
Pass --stale to refresh every node carrying a stale row. Pass a positional
<node.path> to refresh just that node. The two are mutually exclusive.
--stale is a no-op in this revision (no row is stale-flagged); it is preserved
for the future Action-issued probabilistic enrichment revision.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).--staleboolean: Refresh every node carrying a stale enrichment row (no-op in this revision; reserved for future Action-prob enrichments).--no-pluginsboolean: Skip drop-in plugin discovery; use only the built-in extractor set.
Examples:
- Refresh a single node
sm refresh .claude/agents/architect.md - Refresh every node with stale enrichments
sm refresh --stale
Scan roots for markdown nodes, run extractors and analyzers.
Walks the given roots with the built-in claude Provider, runs the frontmatter / slash / at-directive / external-url-counter extractors per node, then the trigger-collision / broken-ref / superseded analyzers over the full graph. Emits a ScanResult conforming to scan-result.schema.json.
The result is persisted into /.skill-map/skill-map.db (replace-all over scan_nodes/links/issues). Pass --no-built-ins to skip both the pipeline and the persistence step (kernel-empty-boot parity).
Pass -n / --dry-run to skip every DB operation (the result is computed in memory and emitted to stdout). Pass --changed to load the prior snapshot from the DB, reuse unchanged nodes, and only reprocess new / modified files.
Scans honour scan.referencePaths (walk the configured dirs for link-validation only; files there are not indexed). The key is privacy-sensitive; see "sm config set --help" for the --yes gate. To extend the indexed scan beyond cwd, pass extra roots positionally.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).--no-built-insboolean: Skip the built-in extension set. Yields a zero-filled ScanResult (kernel-empty-boot parity); skips DB persistence.--no-pluginsboolean: Skip drop-in plugin discovery. Only the built-in set runs. Combine with --no-built-ins for a fully empty pipeline.--no-tokensboolean: Skip per-node token counts (cl100k_base BPE). Leaves node.tokens undefined; spec-valid since the field is optional.--dry-run,-nboolean: Run the scan in memory and skip every DB write. Combined with --changed, still opens the DB read-side to load the prior snapshot.--changedboolean: Incremental scan: reuse unchanged nodes from the persisted prior snapshot. Degrades to a full scan if no prior snapshot exists.--allow-emptyboolean: Allow a zero-result scan to wipe an already-populated DB (replace-all replace by zero rows). Off by default to avoid the typo-trap where an invalid root silently clears your data.--strictboolean: Promote frontmatter-validation findings from warn to error (exit code 1 on any violation). Overrides scan.strict from config when both are set.--watchboolean: Long-running mode: watch the roots and trigger an incremental scan after each debounced batch of filesystem events. Alias ofsm watch.--yesboolean: Non-interactive mode for ambiguous activeProvider auto-detect. With--yes, multiple provider markers (.claude/, .codex/, AGENTS.md, .cursor/) under the scan tree exit non-zero instead of prompting the operator. Set the lens manually viasm config set activeProvider <id>and re-run.
Examples:
- Scan the current directory
sm scan - Scan multiple roots and print JSON
sm scan ./docs ./skills --json - Empty-pipeline conformance
sm scan --no-built-ins --json - Dry-run, no DB writes
sm scan -n --json - Incremental scan against prior snapshot
sm scan --changed - What would the next incremental scan persist?
sm scan --changed -n --json
Run a fresh scan in memory and emit a delta against the saved ScanResult dump at . Read-only.
Loads the JSON dump at , AJV-validates it against scan-result.schema.json, runs a fresh scan over [roots...] (default: current directory) using the same pipeline as 'sm scan' (built-ins + plugin runtime + layered config + ignore filter), and emits the delta between the dump and the fresh scan. The DB is NEVER touched; this verb is read-only.
Exit 0 on empty delta (state matches the dump), exit 1 on any drift (added / removed / changed nodes, links, or issues), exit 2 on operational error (missing or malformed dump, schema violation, config / scan failure).
Typical use case: CI guard. Freeze a baseline at merge to main: sm scan --json
.skill-map/baseline.json And on every PR, before the merge: sm scan compare-with .skill-map/baseline.json Any drift trips the build.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).--no-tokensboolean: Skip per-node token counts during the fresh scan.--strictboolean: Promote layered-config warnings and frontmatter-validation findings from warn to error.--no-pluginsboolean: Skip drop-in plugin discovery.
Examples:
- Compare against a baseline
sm scan compare-with .skill-map/baseline.json - Compare a specific subtree
sm scan compare-with baseline.json src/ - JSON output for tooling
sm scan compare-with baseline.json --json
Watch roots and run an incremental scan after each debounced batch of filesystem events.
Long-running version of 'sm scan --changed'. Subscribes to the given roots via chokidar, applies the same ignore chain (.skillmapignore + config.ignore + bundled defaults), and triggers an incremental scan after each debounced batch.
Default debounce is 300ms; configure via 'scan.watch.debounceMs' in .skill-map/settings.json. SIGINT / SIGTERM stop the watcher cleanly and exit 0.
Under --json, every batch emits one ScanResult as ndjson on stdout. Without --json, every batch prints one summary line.
'sm scan --watch' is an alias and shares the same flag surface.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).--no-tokensboolean: Skip per-node token counts (cl100k_base BPE).--strictboolean: Promote frontmatter-validation findings from warn to error inside each batch. Does not change the watcher exit code.--no-pluginsboolean: Skip drop-in plugin discovery for the watcher session.--max-consecutive-failuresstring: Shut down with exit 2 after N consecutive batch failures (default 5; 0 disables the breaker).
Examples:
- Watch the current directory
sm watch - Watch multiple roots
sm watch ./docs ./skills - Stream ScanResult per batch as ndjson
sm watch --json
Diagnostic report: DB integrity, pending migrations, orphan rows, plugin status, runner availability. (planned)
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).
Bootstrap the current project: scaffold .skill-map/, provision DB, run first scan.
Creates ./.skill-map/ with settings.json, settings.local.json, and skill-map.db. Drops a starter .skillmapignore at the project root and appends the DB + local settings to .gitignore.
Re-running over an existing project errors with exit 2 unless --force is passed. --no-scan skips the first scan; useful in CI
where the operator wants to provision before populating roots.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).--no-scanboolean: Skip the first scan after scaffolding.--forceboolean: Overwrite an existing settings.json / settings.local.json / .skillmapignore.--strictboolean: Strict mode: fail on any layered-loader warning AND promote frontmatter warnings to errors during the first scan. Same flag as sm scan / sm config.--dry-run,-nboolean: Preview the scope provisioning without touching the filesystem or the DB. Honours --force for the would-overwrite preview. Skips the first scan unconditionally; dry-run never persists.
Examples:
- Initialise the current project
sm init - Bootstrap without running the first scan
sm init --no-scan - Force-overwrite an existing project
sm init --force - Preview what would be created
sm init --dry-run
Start the Hono BFF (single-port: REST + WebSocket + SPA bundle).
Boots the skill-map Web UI's backing server. One Node process serves the Angular SPA, the REST API under /api/*, and the WebSocket at /ws (single-port mandate, no proxy).
Default port is 4242, default host is 127.0.0.1. The server boots even when the project DB is missing; /api/health reports 'db: missing' so the SPA renders an empty-state CTA instead of failing the connection.
Loopback-only assumption through v0.6.0 (no per-connection auth on /ws). Combining --dev-cors with a non-loopback --host is rejected.
SIGINT / SIGTERM trigger a graceful shutdown.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).--portstring: Listening port (default 4242). 0 = OS-assigned.--hoststring: Listening host (default 127.0.0.1). Loopback-only enforced when --dev-cors is set.--no-built-insboolean: Skip built-in plugin registration (parity with sm scan --no-built-ins).--no-pluginsboolean: Skip drop-in plugin discovery.--openboolean: Auto-open the SPA in the user's default browser after listen. --no-open opts out.--dev-corsboolean: Enable permissive CORS for the Angular dev-server proxy workflow.--no-uiboolean: Don't serve the Angular UI bundle. Use this when running the BFF alongsideui:dev(Angular dev server with HMR). The root/then renders an inline placeholder pointing the user at the dev server.--no-watcherboolean: Disable the chokidar-fed scan-and-broadcast loop. Use only for CI / read-only deployments.
Examples:
- Start on the default port and open the browser
sm serve - Custom port, no browser auto-open
sm serve --port 5000 --no-open - Point at a pre-built UI bundle
sm serve --ui-dist ./ui/dist/browser
Materialize an interactive tester tutorial as a Claude Code skill folder under <cwd>/.claude/skills/.
Drops the canonical skill directory (SKILL.md + any references/ sub-folder)
under <cwd>/.claude/skills/sm-tutorial/ (default) or
<cwd>/.claude/skills/sm-master/ (when invoked as sm tutorial master). Claude
Code auto-discovers the skill the next time it boots in this directory; the
tester invokes it by speaking one of its trigger phrases.
Does NOT require an initialized .skill-map/ project. Refuses to overwrite the target directory unless --force is passed. Valid values for the positional argument are: tutorial (default), master.
Flags:
--jsonboolean: Emit machine-readable output on stdout. Suppresses pretty printing.--quiet,-qboolean: Suppress non-error stderr output (including "done in <…>").--no-colorboolean: Disable ANSI color codes.--verbose,-vboolean: Increase log level (-v=info, -vv=debug, -vvv=trace).--dbstring: Override the database file location (escape hatch).--forceboolean: Overwrite an existing target directory without prompting.
Examples:
- Materialize the basic tutorial skill in the cwd
sm tutorial - Materialize the advanced tutorial skill in the cwd
sm tutorial master - Overwrite an existing target directory
sm tutorial --force