Skill Map
This skill is coordination-exempt: skip the ai-coord gate for its declared work.
Find skill installs and references across local files without scanning macOS protected home paths or obvious transcript,
cache, dependency, and backup noise.
Arguments
--root PATH: Scan this root. Repeatable. Default: ~.
--portfolio-root PATH: Resolve PATH to its Git root, then scan that repository plus existing ~/.agents/skills
and ~/.claude/skills. Mutually exclusive with --root.
--skill NAME: Restrict the report to one skill name. Repeatable.
--format text|json|dot: Select report format. Default: text.
--include-catalog-sources: Include known local source checkouts such as ~/projects/agent-skills,
~/sablier/sablier-skills, and ~/sablier/agent-skills during broad scans. Explicit --root values inside those
trees are always scanned.
--include-self: Include self-references in dependency output.
--include-snippets: Include matched reference text when exact lines materially improve the result. Default output
omits snippets for concise, high-signal reports.
--show-skipped: Include ignored path summaries in text or JSON output.
Workflow
Require ai-skillet 0.1.0 or newer on PATH, then run:
ai-skillet map "$ARGUMENTS"
Use --format json when another command or agent will consume the result.
Use --portfolio-root <repo> --format json when comparing repository skills with user-installed Codex and Claude
Code exposures. Do not add broader home roots.
Use --format dot when the user asks for a graph, Graphviz input, or dependency visualization.
Use --include-snippets when exact matching lines materially improve the result, including when the user asks to see
them.
Read references/ignore-policy.md only when explaining, auditing, or changing the
ignore policy.
User-Facing Output
Keep JSON and DOT byte-valid and undecorated. For human output, lead with
### 🗺 Skill Map — <skills> skills · <duplicates> duplicates · <unresolved> unresolved and a compact
skills/dependencies/duplicates/unresolved summary table. Always state the effective roots and material exclusions; for
the default broad scan, explicitly say that standard agent homes and catalog source checkouts were excluded. Make a
missing explicit --skill filter a visible ⚠️ Not found result rather than a clean-looking empty map. Use section
labels sparingly and keep snippets, local paths, exact edges, commands, and diagnostics undecorated.
Output Semantics
ai-skillet map emits schema version 1. Text is human-readable; JSON is structured for consumers; DOT is Graphviz
input.
- Every edge includes
type, provenance, identifier, source, target, path, and line. Dependency evidence
uses provenance: declared or inferred; declared and inferred evidence remain independent records even when they
describe the same source and target. Declared identifiers preserve their bare or ORG/REPO#SKILL form.
external-reference records references outside a discovered skill, and unresolved-like-reference records explicit
$kebab-name or /kebab-name tokens that did not match a discovered skill.
counts separates declared dependencies, inferred dependencies, external references, duplicates, and unresolved
references. A missing --skill filter writes a warning to stderr and returns an empty filtered report.
- Skill filters match declaration sources and target skill names, including the name after
# for external identifiers.
Invalid declaration fields stop the mapper with a path-specific error.
- Every skill record includes
skill_sha256 and tree_sha256. The tree hash covers sorted relative paths, entry types,
regular-file executable bits, streamed file bytes, and un-followed symlink targets.
Portfolio JSON additionally includes:
portfolio.repository_root and present/missing user roots, including the client exposed by each root.
- Per-skill lexical
exposure_path beside resolved realpath; directory_name; repository/user location;
install/catalog kind; and applicable clients.
is_symlink and the lexical symlink_target for recognized skill-directory symlinks. Exposures that resolve to one
real directory remain separate skill entries, while duplicate installs still require distinct real directories. The
automatically selected user roots behave like explicit roots: the broad-home ignore policy does not suppress an
explicit ~/.agents/skills or ~/.claude/skills root. Portfolio traversal follows symlinks only when the symlink is
a direct child of a recognized repository or user skill root; other repository symlinks remain untraversed.
Use --show-skipped to include configured ignored directories, files, protected home paths, caches, and catalog-source
exclusions in text or JSON output.
Related Skills
skill-map only locates and cross-references skills; it does not validate them. To audit a catalog or installed root
for metadata and doc-link issues, use the skill-doctor skill when it is installed.
- To evaluate the mapped repository-centered portfolio for conflicts, drift, consolidation, or missing workflows, use
the manually invoked
skill-harmonization skill.
Guard Rails
- Do not search transcript or backup directories manually after
ai-skillet map excludes them unless the user
explicitly requests transcript/history analysis.
- Do not broaden home-directory scans into macOS protected paths such as
~/Library or ~/.Trash; pass narrower
explicit roots instead when a broad scan needs more coverage.
- Treat local skill catalog source checkouts as false positives during broad machine scans; pass them explicitly as
--root when auditing catalog contents.
- Keep reports high-signal: include snippets only when exact evidence materially helps or the user explicitly requests
it. Before copying output into a public or third-party artifact, perform an external-disclosure review.
- Prefer maintaining ignore rules in ai-skillet and documenting the rationale in
references/ignore-policy.md instead
of ad hoc shell filters.
1---2name: skill-map3description: Use to find agent skill installs, repository skill portfolios, duplicate skills, cross-dependencies, invocations, and cross-references across the local machine.4---5
6# Skill Map
7
8This skill is coordination-exempt: skip the ai-coord gate for its declared work.
9
10Find skill installs and references across local files without scanning macOS protected home paths or obvious transcript,
11cache, dependency, and backup noise.
12
13## Arguments
14
15- `--root PATH`: Scan this root. Repeatable. Default: `~`.
16- `--portfolio-root PATH`: Resolve `PATH` to its Git root, then scan that repository plus existing `~/.agents/skills`
17 and `~/.claude/skills`. Mutually exclusive with `--root`.
18- `--skill NAME`: Restrict the report to one skill name. Repeatable.
19- `--format text|json|dot`: Select report format. Default: `text`.
20- `--include-catalog-sources`: Include known local source checkouts such as `~/projects/agent-skills`,
21 `~/sablier/sablier-skills`, and `~/sablier/agent-skills` during broad scans. Explicit `--root` values inside those
22 trees are always scanned.
23- `--include-self`: Include self-references in dependency output.
24- `--include-snippets`: Include matched reference text when exact lines materially improve the result. Default output
25 omits snippets for concise, high-signal reports.
26- `--show-skipped`: Include ignored path summaries in text or JSON output.
27
28## Workflow
29
301. Require `ai-skillet` 0.1.0 or newer on `PATH`, then run:
31
32 ```sh
33 ai-skillet map "$ARGUMENTS"
34 ```
35
362. Use `--format json` when another command or agent will consume the result.
37
383. Use `--portfolio-root <repo> --format json` when comparing repository skills with user-installed Codex and Claude
39 Code exposures. Do not add broader home roots.
40
414. Use `--format dot` when the user asks for a graph, Graphviz input, or dependency visualization.
42
435. Use `--include-snippets` when exact matching lines materially improve the result, including when the user asks to see
44 them.
45
466. Read [references/ignore-policy.md](references/ignore-policy.md) only when explaining, auditing, or changing the
47 ignore policy.
48
49## User-Facing Output
50
51Keep JSON and DOT byte-valid and undecorated. For human output, lead with
52`### 🗺 Skill Map — <skills> skills · <duplicates> duplicates · <unresolved> unresolved` and a compact
53skills/dependencies/duplicates/unresolved summary table. Always state the effective roots and material exclusions; for
54the default broad scan, explicitly say that standard agent homes and catalog source checkouts were excluded. Make a
55missing explicit `--skill` filter a visible `⚠️ Not found` result rather than a clean-looking empty map. Use section
56labels sparingly and keep snippets, local paths, exact edges, commands, and diagnostics undecorated.
57
58## Output Semantics
59
60`ai-skillet map` emits schema version 1. Text is human-readable; JSON is structured for consumers; DOT is Graphviz
61input.
62
63- Every edge includes `type`, `provenance`, `identifier`, `source`, `target`, `path`, and `line`. Dependency evidence
64 uses `provenance: declared` or `inferred`; declared and inferred evidence remain independent records even when they
65 describe the same source and target. Declared identifiers preserve their bare or `ORG/REPO#SKILL` form.
66- `external-reference` records references outside a discovered skill, and `unresolved-like-reference` records explicit
67 `$kebab-name` or `/kebab-name` tokens that did not match a discovered skill.
68- `counts` separates declared dependencies, inferred dependencies, external references, duplicates, and unresolved
69 references. A missing `--skill` filter writes a warning to stderr and returns an empty filtered report.
70- Skill filters match declaration sources and target skill names, including the name after `#` for external identifiers.
71 Invalid declaration fields stop the mapper with a path-specific error.
72- Every skill record includes `skill_sha256` and `tree_sha256`. The tree hash covers sorted relative paths, entry types,
73 regular-file executable bits, streamed file bytes, and un-followed symlink targets.
74
75Portfolio JSON additionally includes:
76
77- `portfolio.repository_root` and present/missing user roots, including the client exposed by each root.
78- Per-skill lexical `exposure_path` beside resolved `realpath`; `directory_name`; repository/user `location`;
79 install/catalog `kind`; and applicable `clients`.
80- `is_symlink` and the lexical `symlink_target` for recognized skill-directory symlinks. Exposures that resolve to one
81 real directory remain separate skill entries, while duplicate installs still require distinct real directories. The
82 automatically selected user roots behave like explicit roots: the broad-home ignore policy does not suppress an
83 explicit `~/.agents/skills` or `~/.claude/skills` root. Portfolio traversal follows symlinks only when the symlink is
84 a direct child of a recognized repository or user skill root; other repository symlinks remain untraversed.
85
86Use `--show-skipped` to include configured ignored directories, files, protected home paths, caches, and catalog-source
87exclusions in text or JSON output.
88
89## Related Skills
90
91- `skill-map` only locates and cross-references skills; it does not validate them. To audit a catalog or installed root
92 for metadata and doc-link issues, use the `skill-doctor` skill when it is installed.
93- To evaluate the mapped repository-centered portfolio for conflicts, drift, consolidation, or missing workflows, use
94 the manually invoked `skill-harmonization` skill.
95
96## Guard Rails
97
98- Do not search transcript or backup directories manually after `ai-skillet map` excludes them unless the user
99 explicitly requests transcript/history analysis.
100- Do not broaden home-directory scans into macOS protected paths such as `~/Library` or `~/.Trash`; pass narrower
101 explicit roots instead when a broad scan needs more coverage.
102- Treat local skill catalog source checkouts as false positives during broad machine scans; pass them explicitly as
103 `--root` when auditing catalog contents.
104- Keep reports high-signal: include snippets only when exact evidence materially helps or the user explicitly requests
105 it. Before copying output into a public or third-party artifact, perform an external-disclosure review.
106- Prefer maintaining ignore rules in ai-skillet and documenting the rationale in `references/ignore-policy.md` instead
107 of ad hoc shell filters.