Skip to main content

Pre-fabrication quality gate for KiCad PCB projects — design checks, schematic-layout parity, fab readiness, and HTML/JSON reports. CI/CD for hardware release.

Project description

FabGate

Pre-fabrication quality gate for KiCad PCB projects.

FabGate runs design checks, detects schematic–layout issues, evaluates fabrication readiness, and generates clear HTML/JSON reports before you send your board to manufacturing. Think of it as CI/CD for hardware design release.

Evaluate, optimize, and gate — three commands in one CLI:

  1. Evaluate — DRC, schematic parity, emcopilot physics → scored report + checklist
  2. Optimize — prioritized fix plan; safe auto-fixes on blank/simple boards
  3. Gate — CI pass/hold/fail before you order prototypes

Autonomous layout is optional assist only — not the product focus.

pip install fabgate
fabgate evaluate "C:\path\to\your-kicad-project"

Why not just run KiCad DRC?

KiCad DRC finds clearance and shorting errors — but it does not:

  • Gate release with a scored pass / hold / fail verdict
  • Flag schematic vs layout mismatches (parts on PCB missing from schematic, and vice versa)
  • Run EMC / power / signal-integrity physics review
  • Produce a shareable HTML report + fix checklist with KiCad jump coordinates
  • Plug into CI with standard exit codes

FabGate bundles that into one pre-fab gate.


What you get

Core (works out of the box)

Feature What it does
KiCad DRC Clearance, shorts, edge violations, silkscreen — via kicad-cli
Schematic parity Catches layout/schematic mismatches before they become rework
Scored verdict 0–100 score, pass / hold / fail — cosmetic noise capped so one silk warning won't zero your score
HTML + JSON reports Audit trail you can share with your team or client
Fix checklist Prioritized actions with KiCad jump coords — press Ctrl+F and go

Deep review (optional)

Feature What it does
Physics review EMC, power integrity, signal integrity via emcopilot
Power trace checks IPC-based width recommendations for high-current nets

Install emcopilot separately:

pip install git+https://github.com/RFingAdam/mcp-pcb-emcopilot.git

Automation & CI

Feature What it does
CI gate fabgate gate → exit 0 (pass), 1 (hold), 2 (fail) for GitHub Actions / Jenkins
Safe auto-fixes Board outline, thickness, GND/power zones, power trace widening
Rollback guardrail Auto-fixes are undone if blocking issue count goes up
Design scaffold Create blank KiCad projects from a YAML spec
Full workflow Design → evaluate → optimize in one pipeline

No LLM calls. Deterministic KiCad rules and physics-based analyzers only.


Quick start

See QUICKSTART.md for a 5-minute walkthrough.

fabgate doctor
fabgate evaluate "C:\path\to\your-kicad-project"
fabgate open "C:\path\to\your-kicad-project"

Reports are written to reports/:

  • *-review.html — full report (open in browser)
  • *-evaluation.json — machine-readable results
  • *-optimization-checklist.md — what to fix first

Example output

FAIL  Score 72/100
Findings: 48 (blocking 3, warnings 12)

Fix first:
  - Board edge clearance violation @ 89.28, 28.24 mm
  - J101 in schematic but missing from layout
  - +3V3 power trace too narrow @ 126.0, 63.9 mm

Projected score if blocking fixed: 91/100
Checklist: reports\my-board-optimization-checklist.md

CI example

fabgate gate "C:\path\to\your-kicad-project"
# exit 0 = pass (OK to fab)
# exit 1 = hold (human review)
# exit 2 = fail (blocking issues)

Commands

Command Purpose
fabgate doctor Check KiCad CLI + optional emcopilot
fabgate evaluate Full evaluation + HTML report + checklist
fabgate review Basic review
fabgate gate CI exit code for release pipelines
fabgate optimize run Optimization plan + optional safe auto-fixes
fabgate auto run Auto-fix loop with rollback guardrail
fabgate design create Scaffold new KiCad project from spec
fabgate workflow Design → evaluate → optimize
fabgate open Open project in KiCad GUI

Who it's for

  • Hardware teams — run a pre-fab gate before every prototype order
  • Freelance PCB designers — deliver scored, auditable releases to clients
  • Startups — add a KiCad release check to CI without manual DRC hunting

Development install

git clone <repo-url>
cd fabgate
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e ".[dev,emcopilot]"
fabgate doctor

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fabgate-0.1.6.tar.gz (51.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fabgate-0.1.6-py3-none-any.whl (57.1 kB view details)

Uploaded Python 3

File details

Details for the file fabgate-0.1.6.tar.gz.

File metadata

  • Download URL: fabgate-0.1.6.tar.gz
  • Upload date:
  • Size: 51.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for fabgate-0.1.6.tar.gz
Algorithm Hash digest
SHA256 a503eee0272e5cece6f7b4af982184c86cfddb11b443d3b88fe7959081bfced2
MD5 bdaedd4eba4616dcd80c6d040f437373
BLAKE2b-256 51bd6b113251608052022912af8ea3e89e2853693ea8964557ee6af9525da210

See more details on using hashes here.

File details

Details for the file fabgate-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: fabgate-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 57.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for fabgate-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 539a4c7275fde99065f48cab9247728ae6ee54dae4fbe584db4feb848b25ba79
MD5 61b55accf1ea78edda9b6401bdc23950
BLAKE2b-256 74cd25cba2f195aa1ee129f74222df6b13b6a51e6177f595ae50360f922fd93b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page