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.
git 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/manufacturing-readiness)<a href="https://agentmods.dev/commands/rjwalters/kicad-tools/manufacturing-readiness"><img src="https://agentmods.dev/badge/commands/rjwalters/kicad-tools/manufacturing-readiness/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/commands/rjwalters/kicad-tools/manufacturing-readiness"><img src="https://agentmods.dev/badge/commands/rjwalters/kicad-tools/manufacturing-readiness.svg" alt="Reviewed on agentmods" width="80" 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.00059 | $0.04903 |
| Opus 5.5 | $0.00024 | $0.01961 |
| Sonnet 5.5 | $0.00012 | $0.00981 |
| Haiku 4.5 | $0.00006 | $0.00490 |
Grade A, and why
manufacturing-readiness 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.
How it starts
The opening of the file, as written. The whole thing — 219 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Manufacturing readiness
Sign off a routed .kicad_pcb for fabrication. This skill codifies the sign-off ritual: kct check at the board's fab tier, the mandatory independent cross-gate kicad-cli pcb drc --refill-zones, and a kct export manufacturing bundle — then confirms a manifest.json was produced. A clean kct check alone is not sign-off.
The
kctnamespace. This skill lives in{{skills-dir}}— the kicad-tools-native, harness-agnostic agent-tool namespace, invoked as{{skill:manufacturing-readiness}}. It runs from inside a consumer repo that depends on kicad-tools as auvdependency (kct ...is onPATHvia the venv). It does not assume the current directory is the kicad-tools repo, and it hardcodes no board path, no fab-tier list, and no CI-workflow context.
Prerequisite
The native router/DRC backend must be built in the active checkout before this skill is meaningful (Epic #4054 convention #1). Run once per checkout / worktree:
uv run kct build-native --check # expect: "C++ backend: available"
# if "not installed":
uv run kct build-native
uv sync does not build the native extension. A fresh checkout or git worktree needs this step explicitly.
The gates also need jq (Gates 1, 2 and 4 judge JSON reports with it) and a KiCad install for kicad-cli (Gate 2 resolves it itself; see there). A missing jq means the gates cannot be judged — refuse sign-off rather than eyeballing the JSON.
Model selection
suggestedModel: sonnet. This is a deterministic checklist-execution task — run three gates in order, read their exit codes and reports, and refuse sign-off on any failure. It does not require frontier judgment. Model resolves through the harness's normal precedence chain (explicit dispatch param → harness role config → this doc's frontmatter suggestedModel → session default).
Arguments
Arguments: $ARGUMENTS
$ARGUMENTS is <board-path> [--mfr <tier>] [--output <dir>].
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.
- 8d ago Changed · +53 lines f62b2e306214
- 20d ago Changed 364dc1fd98d0
- 26d ago Changed · +9 lines a9d13c11134c
- 1mo ago Changed · +14 lines 694bbcde4093
- 1mo ago First seen · 143 lines · 59 tokens per session scan A 1c748b034141
manufacturing-readiness is a command published in the GitHub repository rjwalters/kicad-tools (74 stars, last pushed today), licensed MIT. It adds 59 tokens to every session and 4,903 once invoked, about $0.0002 per session on Opus 5.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
embedded-test
Generate Unity tests, CMock mocks, a hardware-in-the-loop scaffold, or a coverage report.
test
A command for generating and running tests for embedded C code, either on a computer or on a physical development board. It creates both runnable test code and a written list of test cases.
gf-cocotb
Generate Python testbench using Cocotb.
kshana-lunanet-afs-check
Check the LunaNet Augmented Forward Signal (LNIS V5, LSIS-AFS V1.0) - the implementation against the published code tables, or a symbol stream against the frame format - via the kshana-mcp server.
checklist
Generate a custom checklist for the current feature based on user requirements.
clarify
Identify underspecified areas in the current feature spec by asking up to 5 highly targeted clarification questions and encoding answers back into the spec.