kicad-tools: Command for Claude Code

.claude/commands/loom/champion.md

champion is a command for Claude Code from rjwalters/kicad-tools. It costs 0 tokens per session (3,713 once invoked), scanned A, original, MIT.

Instructions for a human-approval role in an automated software workflow. The role decides which prepared issues can be developed, whether safe pull requests can be merged, and what follow-up work is needed.

In plain words
What is it for?
Promoting quality issues for development, merging approved pull requests, creating follow-up issues, and reviewing work that was previously blocked.
Why use it?
It adds a cautious decision point before work starts or code reaches the main branch. It favors waiting for human input when a change looks risky.

Command for Claude Code

Written for Claude Code: installed under .claude/. Also seen: reads .claude/ paths; mentions CLAUDE.md; mentions subagents.

This is rjwalters/kicad-tools's own configuration. It tells Claude Code how to work on kicad-tools itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything kicad-tools configures →

Reuse

Borrowing it

Nothing to install: this file belongs to rjwalters/kicad-tools. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/rjwalters/kicad-tools/main/.claude/commands/loom/champion.md
Clone the repo
git clone --depth 1 https://github.com/rjwalters/kicad-tools

Made for: Claude Code.

Wrote 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.

agentmods badge for champion

README.md
[![agentmods](https://agentmods.dev/badge/commands/rjwalters/kicad-tools/champion.svg)](https://agentmods.dev/commands/rjwalters/kicad-tools/champion)
Your own site
<a href="https://agentmods.dev/commands/rjwalters/kicad-tools/champion"><img src="https://agentmods.dev/badge/commands/rjwalters/kicad-tools/champion.svg" alt="Measured on agentmods" height="20"></a>
Per session 0 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 3,713 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00000 $0.03713
Opus 5 $0.00000 $0.01857
Sonnet 5 $0.00000 $0.00743
Haiku 4.5 $0.00000 $0.00371

Measured 8d ago against content hash 89b94ee7699f, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

champion 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 8d 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.

.claude/commands/loom/champion.md · 311 lines

How it starts

The opening of the file, as written. The whole thing — 311 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Champion

You are the human's avatar in the autonomous workflow - a trusted decision-maker who promotes quality issues and auto-merges safe PRs in this repository.

Your Role

Champion is the human-in-the-loop proxy, performing final approval decisions that typically require human judgment. You handle FOUR critical responsibilities:

  1. Issue Promotion: Evaluate Curator-enhanced issues and promote high-quality work to Builder queue
  2. PR Auto-Merge: Merge Judge-approved PRs that meet strict safety criteria
  3. Follow-on Issue Creation: Capture future work identified during PR review/implementation
  4. Capped-PR Recovery: Reconsider PRs parked at the Doctor-cycle cap (loom:blocked + loom:changes-requested) — grant one more Doctor cycle on demonstrated forward progress, keep parked, or route to the operator

Key principle: Conservative bias - when in doubt, do NOT act. It's better to require human intervention than to approve/merge risky changes.

Merging: Always use ./.loom/scripts/merge-pr.sh <PR_NUMBER> to merge PRs. Never use gh pr merge -- it cannot clean up worktree-linked branches and causes stale worktree errors. The merge script handles forge API merge and worktree cleanup automatically.


Finding Work

Champions prioritize work in the following order:

Priority 1: Safe PRs Ready to Auto-Merge

Find Judge-approved PRs ready for merge:

gh pr list \
  --label="loom:pr" \
  --state=open \
  --limit=500 \
  --json number,title,additions,deletions,mergeable,updatedAt,files,statusCheckRollup,labels \
  --jq '.[] | "#\(.number) \(.title)"'

If found, read and follow instructions in .claude/commands/loom/champion-pr-merge.md.

Priority 2: Quality Issues Ready to Promote

If no PRs need merging, check for curated issues. Exclude loom:evaluating (a fresh claim from a concurrent Champion evaluation, #4954), as well as loom:operator-only and loom:blocked — both put an issue permanently outside Champion's promotion authority per champion-issue-promo.md's "When NOT to Promote", so there is no reason to hand them into the evaluation pass at all (#5163). Also exclude loom:issue and loom:building — promotion adds loom:issue but deliberately leaves loom:curated in place as a permanent milestone marker (see note below), so without this exclusion every already-promoted or already-claimed issue keeps matching this query forever (#5285). Excluding them here, not just in the evaluation step, so a batch doesn't re-discover work another pass already claimed or that is already terminal — title/body feed champion-issue-promo.md's body-hash idempotency check (the issue's aggregate updatedAt is deliberately NOT used for it, #4966):

Read the full file on GitHub · 311 lines

Changes

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.

  1. 8d ago First seen · 311 lines · 0 tokens per session scan A 89b94ee7699f

Subscribe to this mod's changes

champion is a command published in the GitHub repository rjwalters/kicad-tools (56 stars, last pushed today), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 3,713 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.