craft-analyze
Post-cycle analysis — QA, UX, Creative, and Style audits using MCP browser tools.
The Living Map is a derived, always-fresh structural view of a codebase that craft agents read instead of re-exploring the same files on every invocation. It is an optimization you never have to set up: it builds itself the first time an agent needs to orient in an area, and it
> /plugin marketplace add drobins25/craft > /plugin install craft@craft
How it fires
How this command gets triggered: by you, by Claude, or both.
/mapContext preview
What this command does when you run it.
The Living Map is a derived, always-fresh structural view of a codebase that craft agents read instead of re-exploring the same files on every invocation. It is an optimization you never have to set up: it builds itself the first time an agent needs to orient in an area, and it
The Living Map is a derived, always-fresh structural view of a codebase that craft agents read instead of re-exploring the same files on every invocation. It is an optimization you never have to set up: it builds itself the first time an agent needs to orient in an area, and it is wired to never block - if anything goes wrong it quietly drops to a coarser view rather than erroring.
This is a reference for the curious or the stuck. Nothing here is required reading to use craft.
signatures, scope - parsed with a bundled WebAssembly parser (web-tree-sitter). It never spends model tokens on facts a parser gets for free.
directory's own files only, ranked by reference frequency and trimmed to a token budget. Huge repos are never indexed up front.
Python, JavaScript) is parsed into fully-qualified anchors. Shell falls to a flat floor. Markdown headings become slug paths. Anything else gets a file-level anchor.
next read re-derives just that file; everything else stays cached. A branch switch cannot serve you a stale slice.
the map's internals.
A grammar is bundled at a pinned version. Languages move faster than grammars, so a newer language feature can confuse an older grammar. When that happens the parser can mis-bind a name - for example, an out-of-date C# grammar reads a C# 12 primary constructor and attaches the wrong identifier to the class.
The map refuses to ship that. If the parser leaves an error at or before a definition's name, the **whole file degrades to a file-level entry** rather than emit a name it cannot stand behind. A wrong map is worse than a coarse one - it would steer an agent into the wrong code. Clean files in the same run are unaffected.
`/craft:status` shows `Map: active · N langs · M degraded` when this is in effect.
You do not refresh it by hand. The map re-derives any file whose content changed the next time its area is read. If you ever want a clean rebuild, delete `.craft/map/` and the next read rebuilds from source.
Add to `.craft/settings.yaml`:
map: enabled: false
With the map off, craft behaves exactly as it did before the map existed - agents orient from scratch, no map is built, nothing errors. The flag is opt-out: absent means on. You can also tune the per-area token budget:
map: token_budget: 4096
The committed artifacts (`scripts/map/runner.js` and `scripts/map/grammars/*.wasm`) are regenerated by a build step, not installed by users:
grammar wasm. Run it after a web-tree-sitter or grammar bump.
keeping only the patterns the bundled grammar version supports.
parse-error density on known-good code, identifier sanity) before a grammar is trusted. `node_modules` is build-time only and never committed.
Stop Vibing. Start Crafting. A Claude Code plugin that acts as an intelligent harness for your development workflow: your codebase is read-only by default, every change passes through a Write Gate as planned and approved work, and craft tracks your project's
Repo: drobins25/craft
Post-cycle analysis — QA, UX, Creative, and Style audits using MCP browser tools.
Consult a craft agent. Routes your question to the best mind in the workshop - not a menu, a recommendation.
Agent crystallization command. Studies a tool, role, or person and produces a portable 9-section agent that inhabits the domain - with beliefs, scar tissue,…
Complete a cycle. Triggers reflection if pending learnings, then archives.
Design a cycle — create new cycles with planned stories, detail existing planning cycles, or quick-sketch a roadmap. Detects planning docs in .craft/planning/…