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 commands/rolecraft-sh/rolecraft/diffgit clone --depth 1 https://github.com/rolecraft-sh/rolecraftWhat 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.00000 | $0.00686 |
| Opus 5 | $0.00000 | $0.00343 |
| Sonnet 5 | $0.00000 | $0.00137 |
| Haiku 4.5 | $0.00000 | $0.00069 |
Grade A, and why
diff 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 2d 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.
What it actually says
rolecraft diff
Compare two SKILL.md files section-by-section. Parses frontmatter and body sections independently, showing exactly what changed.
Usage
rolecraft diff <skill-a> <skill-b> # Full diff output
rolecraft diff <skill-a> <skill-b> --brief # Summary only
rolecraft diff <skill-a> <skill-b> --json # Machine-readable JSON
Options
| Flag | Description |
|---|---|
--json |
Machine-readable JSON output |
--brief |
Summary only (which fields/sections changed) |
--context <N> |
Context lines around changes (default: full) |
--no-color |
Disable ANSI colors |
How it works
- Parse both SKILL.md files (frontmatter + body)
- Compare frontmatter fields key-by-key → show added/removed/changed
- Split body into sections by
##headings - For each section heading present in both files:
- Compare lines line-by-line (using set diff)
- Tags:
-(removed),+(added)
- Sections in only one file → marked as added/removed
- Output with color (red: removed, green: added)
Examples
$ rolecraft diff ./frontend.SKILL.md ./backend.SKILL.md
=== ./frontend.SKILL.md → ./backend.SKILL.md ===
--- Frontmatter Changes ---
--- name:
- Skill A
+ Skill B
--- agents:
- cursor
+ cursor, claude
--- Section Changes ---
## Code Style
-Lint with ESLint
+Lint with Biome
## Testing (added)
+Write unit tests
+Aim for 80% coverage
## Configuration (removed)
-Set key in config
Summary: 1 changed, 1 added, 1 removed, 2 unchanged, 2 frontmatter changes
$ rolecraft diff ./a.SKILL.md ./b.SKILL.md --brief
=== ./a.SKILL.md → ./b.SKILL.md ===
Frontmatter changes:
name: A → B
agents: cursor → cursor, claude
Sections:
~ Code Style (+2, -1)
+ Testing (+3)
- Configuration (-2)
Summary: 1 changed, 1 added, 1 removed
$ rolecraft diff ./identical.SKILL.md ./copy.SKILL.md --json
Node.js API
import { diff } from 'rolecraft'
const result = await diff('./a.SKILL.md', './b.SKILL.md')
// {
// a: './a.SKILL.md',
// b: './b.SKILL.md',
// frontmatter: { name: { from: 'A', to: 'B' }, ... },
// sections: [
// { heading: 'Code Style', status: 'changed', added: [...], removed: [...] },
// { heading: 'Testing', status: 'added', added: [...], removed: [] },
// ],
// stats: { changedSections: 1, addedSections: 1, removedSections: 1, ... }
// }
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.
- 2d ago First seen · 101 lines · 0 tokens per session scan A 4012ae7bd4bd
diff is a command published in the GitHub repository rolecraft-sh/rolecraft (75 stars, last pushed 4d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 686 tokens. 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 commands, from other repositories
pitchcraft.zh-CN
安装 pitchcraft skill(结构化说服与汇报).
audit-artifacts
List suspicious root agent process files and placement directories.
rclone_convmv
Convert file and directory names in place.
init
Generate FILETREE.md from scratch. Confirms overwrite if it already exists. --self-only keeps every artifact out of git.
uninstall
Uninstall filetree from this repo — un-wires CLAUDE.md/AGENTS.md, removes generated artifacts (confirmed per item), tears down self-only mode if enabled.
audit
Diff live infrastructure against the spec and report drift by component name.