Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/attckdigital/smith/smith-indexnpx skills add ATTCKDigital/smith --skill smith-indexgit clone --depth 1 https://github.com/ATTCKDigital/smithWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00109 | $0.05095 |
| Opus 5 | $0.00055 | $0.02547 |
| Sonnet 5 | $0.00022 | $0.01019 |
| Haiku 4.5 | $0.00011 | $0.00509 |
Grade A, and why
smith-index scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 482 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Smith Index
Generate the deterministic project manifest at .smith/index/. The
manifest replaces soft natural-language guidance with structured, indexed
context — every Smith skill (/smith-new, /smith-bugfix, /smith-debug,
/smith-explore, …) consults it through the same retrieval path
(/smith-navigate + context-loader.sh).
Arguments: $ARGUMENTS
Manifest is a map, not a fence
.smith/index/ is a navigation aid, not a hard boundary. Skills like
/smith-explore still grep the whole codebase when initial signals
suggest broader impact. A stale or imprecise manifest must never block
the calling session — it should degrade gracefully to vault-only context
plus a soft warning.
Behavior
This skill is imperative — running it modifies .smith/index/ and
(with --migrate-templates) constitution.md / CLAUDE.md. It does NOT
modify any source file in the project. All generated state is confined to
.smith/index/ plus optional .bak.<timestamp> files on template
migration.
The actual work runs in ~/.smith/scripts/smith-index/run.py (called
via ~/.smith/scripts/smith-index/run.sh), installed by
scripts/install.sh from this repo. In the smith-repo dev tree these
same files live at scripts/smith-index/run.py / run.sh — invoking
either works. The skill markdown is the entry point that parses
$ARGUMENTS, decides the mode, and shells out.
Modes (flags)
/smith-index — full rebuild (default)
- Walk the project from the current directory.
- Honor
.gitignore(usesgit ls-fileswhen available; falls back to a manual exclusion list ofnode_modules/,.git/,.venv/, etc.). - For each source file (
.py,.js,.jsx,.ts,.tsx,.css,.html,.sh):- Resolve the parser via
parser-lib.sh resolve_parser <ext>(prefers.smith/scripts/over~/.smith/scripts/over the in-repo fallback). - Run the parser; capture JSON.
- Compute SHA-256 of the first 4KB of source content (Q6 — hash field
in
.meta). - Render the
.metafile at.smith/index/files/<mirrored>/<file>.meta. - Resolve the file's system via
path-resolver.py(longest-prefixsystem-paths.jsonoverride → heuristic per spec Requirement 14).
- Resolve the parser via
- Per system: rewrite
systems/<sys>.mdonce with all files bucketed in that system (sorted by lines desc; truncated at 60 entries with…and N more filesper data-model.md section 3). Cap ≤80 lines. - Rewrite top-level
manifest.md(systems table + Stats). Cap ≤50 lines. - Write checkpoint state to
.smith/index/.smith-index-checkpoint.jsonevery 25 files; delete on clean exit. - Append one JSONL log line per stage per file to
~/.smith/logs/smith-index-<ISO8601>.jsonlper Rule 4. - Write the schema-version marker at
.smith/index/.schema-versioncontaining the current schema version (read from~/.smith/scripts/meta_schema_version.txt, falls back toscripts/parsers/meta_schema_version.txtin the smith-repo dev tree if the global install is missing). This file lets/smith-updatedetect projects whose manifest was generated against an older.metaschema and offer to regenerate. The marker is overwritten on every full rebuild (and on--incrementalruns that write a fresh manifest); silently skipped if neither source file is found. - Print a summary line:
/smith-index: N files indexed (N succeeded, N failed, N skipped) in T.Ts.
What ships with it
5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 482 lines · 109 tokens per session scan A bad16b886284
smith-index is a skill published in the GitHub repository ATTCKDigital/smith (52 stars, last pushed 1mo ago), licensed MIT. It adds 109 tokens to every session and 5,095 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
auto-perf-optimize
Run agent-driven VS Code performance or memory investigations. Use when asked to launch Code OSS, automate a VS Code scenario, run the Chat memory smoke runner, capture renderer heap snapshots, take workflow screenshots, compare run summaries, or drive a repeatable scenario before heap-snapshot analysis.
chat-perf
Run chat perf benchmarks and memory leak checks against the local dev build or any published VS Code version. Use when investigating chat rendering regressions, validating perf-sensitive changes to chat UI, or checking for memory leaks in the chat response pipeline.
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…