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/drobins25/craft/craft-researchgit clone --depth 1 https://github.com/drobins25/craftWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/drobins25/craft/craft-research)<a href="https://agentmods.dev/commands/drobins25/craft/craft-research"><img src="https://agentmods.dev/badge/commands/drobins25/craft/craft-research.svg" alt="Measured on agentmods" height="20"></a>What 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.1 | $0.00035 | $0.04536 |
| Opus 5 | $0.00017 | $0.02268 |
| Sonnet 5 | $0.00007 | $0.00907 |
| Haiku 4.5 | $0.00003 | $0.00454 |
Grade A, and why
research 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 6d 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 — 406 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Research
Ad-hoc research tool. Not part of the craft pipeline - use it whenever you want to understand something. Phase 1 produces comprehensive research most users never need to go beyond. Phase 2 is the optional "go deeper" layer.
Project Root
Use $CRAFT_PROJECT_ROOT (set at session start) as the base path for all .craft/ references. If not set, resolve by walking up from PWD to find the nearest .craft/.global-state.
Cold fallback (uninitialized project): if neither resolves, anchor to the git toplevel (git rev-parse --show-toplevel) when in a repo, else PWD - never a subdirectory. Research runs fine before /craft:init; artifacts land under the repo-root .craft/research/, not wherever the shell happens to sit.
Set PROJECT to the resolved root - env var, then walk-up, then git toplevel, then PWD, in that order. Never default to bare ..
Flow
Step 0: Determine Invocation Mode
Parse args to determine routing:
Mode A - New research query: Args contain a natural language query (not a known topic slug or "continue"). → Jump to Step 2 (Discover).
Mode B - Existing topic slug: Args match an existing folder name in $PROJECT/.craft/research/.
→ Jump to Step 1b (Browse Topic).
Mode C - "continue" keyword: Args are exactly continue.
→ Jump to Step 1c (Resume).
Mode D - Quick flags: Args contain --quick or --deep or --exhaustive after the query.
→ Extract the query and depth flag. Jump to Step 2 with depth preset.
Mode E - No args: Jump to Step 1 (Dashboard).
Step 1: Research Dashboard
List existing research topics and their status.
Use Glob with pattern $PROJECT/.craft/research/*/_plan.md to find all research topics.
For each topic found:
- Use Read with
limit: 20to extract frontmatter (query, date, status, depth) - Check staleness: if
stale_afterexists and is past today's date, mark asSTALE - Check for pending elaboration: look for branch files with
status: completein frontmatter vs branches in_plan.md
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.
- 6d ago First seen · 406 lines · 35 tokens per session scan A a02a3538f60d
research is a command published in the GitHub repository drobins25/craft (53 stars, last pushed 6d ago), licensed MIT. It adds 35 tokens to every session and 4,536 once invoked, about $0.0002 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 commands, from other repositories
claudehut-learning-report
Show the ClaudeHut learning scoreboard — measured memory health (store size, reinforcement, effectiveness/recurrence, quality) so you can tell whether the agent is actually getting smarter across sessions. One-shot, read-only.
orchestrate
This tool coordinates Claude Code's actions. It does NOT write code or create content.
project
Generate project documentation (product.md, structure.md, tech.md, codemaps/).
repo-architect
Repository structure optimization and multi-repo management with ruv-swarm coordination for scalable project architecture and development workflows.
analyst
Use when performing local analyst review before pushing PR changes. Assesses code quality, impact analysis, and maintainability.
performance-bottlenecks
Identify and resolve performance bottlenecks in your development workflow.