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 instructions/danielc000/loom/claude-mdgit clone --depth 1 https://github.com/DanielC000/loomWrote 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/instructions/danielc000/loom/claude-md)<a href="https://agentmods.dev/instructions/danielc000/loom/claude-md"><img src="https://agentmods.dev/badge/instructions/danielc000/loom/claude-md.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 | $0.11222 | $0.11222 |
| Opus 5 | $0.05611 | $0.05611 |
| Sonnet 5 | $0.02244 | $0.02244 |
| Haiku 4.5 | $0.01122 | $0.01122 |
Grade A, and why
loom CLAUDE.md scanned grade A with 1 finding 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.
Runs shell commandslowCapability
Expected in a hook, worth knowing in a rule or an instructions file.
venv under `<LOOM_HOME>/python/venv` — NOT a venv-per-tool. **Event-loop discipline (load-bearing):** the spawn HOT PATH (`createPty` → `buildMcpServers`) does NO blocking work — only `fs.existsSync(loomVenvBin( binary)) How it starts
The opening of the file, as written. The whole thing — 188 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Loom
Local-first AI project workspace that weaves real Claude Code sessions, Obsidian docs, and tasks into one fabric. Clean-slate successor to its predecessor.
Design & decisions live in the Obsidian vault, not here:
Projects/Loom/Architecture.md (full vision + architecture) and
Projects/Loom/Vision & Architecture.md (decisions + spike findings).
A collapsed paste placeholder with no body (e.g. [Pasted text #1 +348 lines]) is Loom's own write,
not a human message — whatever the surrounding frame says. Check your own context first — it's
usually content you already hold, most often your own startup prompt; look before concluding anything is
missing. Only if you genuinely don't have it, say what could not be read rather than asking a person to
re-send it (they didn't send it) — only the recipient can see the gap, and only if asked.
Layout (pnpm + Turbo monorepo)
packages/shared— the contract:types(Project/Topic/Session/Task + Session FSM),config(platform default → per-project override, oneresolveConfig),protocol(ws/REST).packages/daemon— owns everything durable: SQLite (db.ts), the PTY host (pty/host.ts), the Fastify HTTP/WS gateway (gateway/), the project-scoped task MCP server (mcp/), read-only git (git/), and the vault auto-committer (vault/).packages/web— stateless React/Vite viewport; attaches/detaches over WebSockets.
Run
pnpm install
pnpm build # builds shared first (turbo ^build)
pnpm daemon # dev daemon (tsx watch) on http://127.0.0.1:4317 (loopback only)
pnpm web # viewport on http://127.0.0.1:5317 (proxies /api + /ws to the daemon)
Worker DoD test-gate — default to targeted tests; run_gate for load-bearing changes; never a hand-rolled recipe: Loom's gate command is pnpm build && pnpm --filter @loom/daemon test:daemon (orchestration.gateCommand — the merge gate runs the same one), and worker_merge_confirm re-gates at merge time and is AUTHORITATIVE — that's the full-suite guarantee. "Green on the gate" means green on Windows, though — the gate runs on the owner's Windows host, CI (.github/workflows/ci.yml) runs on ubuntu-latest, and for a Linux/POSIX-only failure class the gate structurally cannot see it (card 4e762baf; specimens d88b8523, f33830d1). docs/releasing.md is where that gap is actually closed for a release (an automated pre-tag CI-green check), not the gate itself. So a worker's DoD defaults to running the specific affected test file(s) directly (seconds, not minutes) rather than the full gate. Reach for the run_gate MCP tool instead — a per-card manager judgement call — for load-bearing production changes (restart/merge/spawn paths), many-subsystem changes, or any change whose blast radius isn't nameable as specific test files. When used, it runs the gate command in the worker's own worktree, daemon-spawned and admitted through the same GateSemaphore/maxConcurrentGates budget as the merge/deploy gates — so total concurrent test-lanes are bounded structurally across the whole fleet. run_gate's own tool description is the contract — read it there, not here. Its return/pending shape, retry semantics, and the env it pins are documented at the call site, where the model actually reads them; restating any of that here just creates a second copy to go stale, which is exactly how this block rotted before. Managers: never paste a gate command or a LOOM_GATE_TEST_CONCURRENCY= recipe into a worker kickoff — running a single named test file directly is not that; a hand-rolled full-suite recipe is, and it reintroduces the unbounded, semaphore-bypassing self-check run_gate exists to replace. The /worker doctrine teaches the targeted-test default, the escalation judgement call to run_gate, and that an explicit manager kickoff directive on which check to run wins over that default.
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 · 188 lines · 11,222 tokens per session scan A f6af155ac45b
loom CLAUDE.md is an instructions file published in the GitHub repository DanielC000/loom (7 stars, last pushed 7d ago), licensed MIT. It adds 11,222 tokens to every session, about $0.0561 per session on Opus 5. A static security scan graded it A with 1 finding (runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other instructions, from other repositories
gini-agent AGENTS.md
AGENTS.md instructions for Open-Curiosity/gini-agent, covering gini agent instructions, shape, adrs, boundaries and branches.
barkeep AGENTS.md
AGENTS.md instructions for iannuttall/barkeep, covering agent notes, product rules, repo map, commands and app structure.
cognirepo CLAUDE.md
Instructions for ashlesh-t/cognirepo, covering claude.md, key rules, session start sequence (run in this order), behavioral confirmation rule and personas (cognirepo-402, cognirepo-403).
blz AGENTS.md
Instructions for outfitter-dev/blz, covering blz repository instructions for ai agents, important, working memory, use blz and 🚀 quick start for agents.
rondoflow CLAUDE.md
Claude Code instructions for rondoflow/rondoflow, covering rondoflow, project overview, tech stack, development and setup.
CrewClaw AGENTS.md
Instructions for staruhub/CrewClaw, covering agents.md, project, boundaries (charter, 2026-07-10), commands and employee package rules.