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/rjwalters/kicad-tools/builder-complexitygit clone --depth 1 https://github.com/rjwalters/kicad-toolsWrote 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/rjwalters/kicad-tools/builder-complexity)<a href="https://agentmods.dev/commands/rjwalters/kicad-tools/builder-complexity"><img src="https://agentmods.dev/badge/commands/rjwalters/kicad-tools/builder-complexity.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.00000 | $0.05382 |
| Opus 5 | $0.00000 | $0.02691 |
| Sonnet 5 | $0.00000 | $0.01076 |
| Haiku 4.5 | $0.00000 | $0.00538 |
Grade A, and why
builder-complexity 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 — 559 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Builder: Complexity Assessment and Issue Decomposition
This document covers complexity assessment, issue decomposition, and scope management for the Builder role. For the core builder workflow, see builder.md.
⚠️ --body @path Does NOT Expand — It Posts the Literal String
If you post a comment via gh issue comment / gh pr comment / gh api ... comments from a scratch file, --body @path (and gh api -f body=@path)
posts the literal string @path, not the file's contents. Full pitfall,
incident citation, and fixes:
comment-body-literal-path.md.
Never Abandon Work
You must NEVER stop work on a claimed issue without creating a clear path forward.
When you claim an issue with loom:building, you are committing to ONE of these outcomes:
- Create a PR - Complete the work and submit for review
- Decompose into sub-issues - Break complex work into smaller, claimable issues
- Mark as blocked - Document the blocker and add
loom:blockedlabel
NEVER do this:
- Claim an issue, realize it's complex, then abandon it without explanation
- Leave an issue with
loom:buildinglabel but no PR and no sub-issues - Stop work because "it's too hard" without decomposing or documenting why
File issues with
./.loom/scripts/create-issue.sh, never a baregh issue create(#5047).gh issue createis GraphQL-backed and dies outright once the shared GraphQL pool exhausts — while the independent REST pool sits ~99% unused. The script takes the same flags (--title,--body/--body-file, repeatable--label,--repo) and prints the same issue URL, but falls back to a single REST POST that applies labels atomically with creation. Recipe and rationale:.loom/docs/gh-issue-create-rest-fallback.md. (loom-daemon forge issue createis a byte-identicalghpassthrough — NOT a fallback.) This matters most exactly here: a decomposition burst files 2-5 issues in a row, so it is the single likeliest place in a Builder run to meet an exhausted GraphQL pool mid-sequence.
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 · 559 lines · 0 tokens per session scan A e3273c720a4d
builder-complexity is a command published in the GitHub repository rjwalters/kicad-tools (53 stars, last pushed today), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 5,382 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
tree
Show file tree with sync status indicators showing which files are indexed, modified, new, or deleted.
notebook-status
Check the progress of a /agy:notebook sweep (for long document sets run with --background). Reports % complete, done/pending/failed counts, elapsed time and a rough ETA, and which documents are still pending — so you can resume. Read-only, no agy.
assess
Run an AI literacy assessment — scan the repo for evidence, ask clarifying questions, produce a timestamped assessment document, apply immediate habitat fixes, recommend workflow changes, capture a reflection, and add a literacy level badge to the README.
export-png-bundle
Export every PDF figure in a directory to PNG at 300 DPI (for board uploads, Slack, slide decks, README embeds).
1-1-capture
Capture a 1:1 meeting transcript or live notes into a structured 1-1 note with takeaways, action items, and quotes.
gdrive-inbox
Quickly process files in the Inbox folder, routing them to appropriate locations.