SKILL.md
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: ResolvePATHto 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-skillet0.1.0 or newer onPATH, then run:
``sh ai-skillet map "$ARGUMENTS" ``
- Use
--format jsonwhen another command or agent will consume the result.
- Use
--portfolio-root <repo> --format jsonwhen comparing repository skills with user-installed Codex and Claude
Code exposures. Do not add broader home roots.
- Use
--format dotwhen the user asks for a graph, Graphviz input, or dependency visualization.
- Use
--include-snippetswhen exact matching lines materially improve the result, including when the user asks to see
them.
- Read [references/ignore-policy.md](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, andline. 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-referencerecords references outside a discovered skill, andunresolved-like-referencerecords explicit
$kebab-name or /kebab-name tokens that did not match a discovered skill.
countsseparates 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
skillsha256andtreesha256. 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_rootand present/missing user roots, including the client exposed by each root.- Per-skill lexical
exposurepathbeside resolvedrealpath;directoryname; repository/userlocation;
install/catalog kind; and applicable clients.
issymlinkand the lexicalsymlinktargetfor 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-maponly 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 mapexcludes them unless the user
explicitly requests transcript/history analysis.
- Do not broaden home-directory scans into macOS protected paths such as
~/Libraryor~/.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.mdinstead
of ad hoc shell filters.