Skip to content
hw.dev
hw.dev/signal/kicad-auto-everything-catches-silent-rule-drop-2026
Signalkicad-auto-everything

A KiCad Check Can Pass After Silently Dropping the Rule File

A successful KiCad exit code is weak evidence when one syntax error can make the checker ignore every custom board rule.

Thesis connection

Board teams can now catch a broken rule file before a misleading green check reaches review.

#pcb#eda#testing#verification
Read Original

KiCad 10.0.7 can discard an entire custom design-rule file after one syntax error, run its built-in checks without those rules, and still exit successfully. A stray semicolon in the .kicad_dru file, where a board team stores project-specific layout rules, is enough to produce a green result that never checked the team's actual policy.

kicad-auto-everything added kae dru-check to test the rule file before trusting KiCad's result. One pass reports the line, column, and suggested fix for syntax problems. A second puts a sentinel rule into a probe board and asks KiCad's own parser whether each rule survived. The authors compared the result with KiCad on 50 crafted cases and 530 rule files from real boards; KiCad rejected 11 of those files.

This is the kind of failure that makes automated board checks dangerous: the command ran and returned zero, but the intended test wasn't present. Teams that run KiCad in continuous integration (CI) should put this check immediately before design rule checking (DRC), the pass that tests board geometry against manufacturing and project rules, then break the build if either parser rejects the file.