main
Caleb Publish 0.2.0 cbe04a0 9h ago
{
 "name": "routing",
 "description": "From a placed KiCad board to a routed one with its report: every connection the router could make, what it could not, and why.",
 "steps": [
  {"name": "intake", "done": ["state.json"], "do": "Run `init --board <placed board.kicad_pcb>` (add `--spec <spec.json>` when the design has one). The board's own .kicad_pro beside it carries the rules; without one the tool works to KiCad's defaults and says so. The input board is never changed."},
  {"name": "plan", "done": ["plan.txt"], "do": "Run `plan`. It lists every net with the class it was sorted into (pairs, data, power, plane, the rest) and the reason. Read it as a designer would: a supply rail with no current, a pair that was not found, an RF or sense net treated as plain data are yours to correct in the spec (rails with volts and amps, pairs, priority). A rail the board does not generate itself is sized by the draw of the parts that receive it: look for that in the prompt and on the parts' wiki pages and datasheets, and when nothing says, ask the human for the expected draw. Run `plan` again after a change."},
  {"name": "route", "done": ["routed.kicad_pcb"], "do": "Run `route`. It writes the routed board, lists every connection it could not make with the reason, and any local pad rule it proposes for the human's review. A board with open connections is still a result: read why each one failed before deciding what to do."},
  {"name": "check", "done": ["check.json"], "do": "Run `check`. Then run KiCad's own DRC with zones refilled against the board's project; KiCad is the judge of clearance and of what is really joined. Both are reports, not verdicts: a finding on copper the designer drew on purpose stays the designer's call."},
  {"name": "review", "done": ["review.md"], "do": "Look at the board, do not only read the numbers: `draw` writes a picture, `compare` sets it beside a reference board. For each open connection and each finding decide and write down in review.md what you did: moved a part, changed the spec and routed again, routed it by hand, or left it with the reason. Show the human the picture with the open places marked."},
  {"name": "handoff", "done": ["handoff.json"], "do": "Write handoff.json for whatever comes next: the routed board, connections made and open, the check and KiCad results, the local rules proposed, and what is left for a person to decide."}
 ]
}