layout-journal

layout-journal is a command for Claude Code from rjwalters/kicad-tools. It costs 50 tokens per session (2,142 once invoked), scanned A, original, MIT.

A durable journal for manual circuit-board routing, where copper paths are planned and adjusted by hand. It records the reasoning, changes, review results, and unresolved blockers next to the committed board file.

In plain words
What is it for?
Recording routing decisions, documenting removed and redrawn connections, tracking referee results, and handing a board-routing session to another person or agent.
Why use it?
Scratch notes can disappear after a reboot, worktree change, or hand-off. A committed journal preserves why routing decisions were made and what remains unresolved.

Command for Claude Code

Written for Claude Code: $ARGUMENTS substitution. Also seen: reads .claude/ paths.

Install

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.

agentmods
npx agentmods add commands/rjwalters/kicad-tools/layout-journal
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 layout-journal

README.md
[![agentmods](https://agentmods.dev/badge/commands/rjwalters/kicad-tools/layout-journal.svg)](https://agentmods.dev/commands/rjwalters/kicad-tools/layout-journal)
Your own site
<a href="https://agentmods.dev/commands/rjwalters/kicad-tools/layout-journal"><img src="https://agentmods.dev/badge/commands/rjwalters/kicad-tools/layout-journal.svg" alt="Measured on agentmods" height="20"></a>
Per session 50 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 2,142 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
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.00050 $0.02142
Opus 5 $0.00025 $0.01071
Sonnet 5 $0.00010 $0.00428
Haiku 4.5 $0.00005 $0.00214

Measured 6d ago against content hash c68e42df102e, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-05, from the pricing page.

Security

Grade A, and why

layout-journal 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 6d 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/kct/layout-journal.md · 130 lines

How it starts

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

Layout journal

Keep a LAYOUT_NOTES.md journal alongside a board while hand-routing it, so the reasoning behind manual copper is not lost when the scratch workspace is (a reboot, a new worktree, a hand-off to another agent or the owner). The committed board artifact is shipping truth; this journal is the why behind it. This skill generalizes the hand-router-session convention proven during kicad-tools' own manufacturing hand-routing work — it hardcodes no board and no fixture.

The kct namespace. This skill lives in .claude/commands/kct/ — the kicad-tools-native, harness-agnostic agent-tool namespace, invoked as /kct:layout-journal. It runs from inside a consumer repo and assumes nothing about the current directory being the kicad-tools repo.

Why this skill exists

Hand-routing is iterative and the intermediate reasoning is fragile: which nets you ripped and why, which corridor you chose, what the referee said after each pass, what is still blocked and on whom. Scratch state (/tmp, un-committed working notes) is routinely lost on reboot. A LAYOUT_NOTES.md committed next to the board preserves that journal as durable, reviewable truth — the same reason artifact-first treats the committed board as canonical (Epic #4054 convention #3). Without it, a resumed session re-derives decisions that were already made and paid for.

Prerequisite

The native router/DRC backend must be built in the active checkout so the referee gate (below) runs at full speed:

uv run kct build-native --check   # expect: "C++ backend: available"
uv run kct build-native           # if "not installed"

Model selection

suggestedModel: sonnet. Maintaining a structured journal and running a referee gate is disciplined record-keeping, not frontier judgment. Model resolves through the harness's normal precedence chain.

Arguments

Arguments: $ARGUMENTS

$ARGUMENTS is <board-path> [--entry "<free text>"].

Token Meaning
<board-path> Required. Path to the board being hand-routed (a *.kicad_pcb, or a board directory containing one). The journal is written to <board-dir>/LAYOUT_NOTES.md, derived from this token — never a hardcoded board directory.
--entry "<free text>" Append a single dated session entry describing what you just did (the nets touched, the decision, the referee result). Optional; if omitted, the skill creates/updates the journal skeleton and prompts for the first entry.

Read the full file on GitHub · 130 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. 6d ago First seen · 130 lines · 50 tokens per session scan A c68e42df102e

Subscribe to this mod's changes

layout-journal is a command published in the GitHub repository rjwalters/kicad-tools (55 stars, last pushed today), licensed MIT. It adds 50 tokens to every session and 2,142 once invoked, about $0.0003 per session on Opus 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.