Skip to main content

Pre-fabrication quality gate for PCB projects — KiCad design gate plus Gerber/ODB++ fab package checks, scored reports, and CI.

Project description

FabGate

Pre-fabrication quality gate for 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.

Two modes

Mode Input What you get
Design gate KiCad project (.kicad_pcb) DRC, schematic parity, layout rules, physics, scored gate
Fab package gate Gerber folder or ODB++ .tgz Layer completeness, outline/drill checks, physics on copper

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"
fabgate evaluate "C:\path\to\gerber-export-folder"
fabgate evaluate "C:\path\to\design.tgz"

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

Add .fabgate.yaml in your project root to set pass thresholds and which checks block release:

fabgate policy init .
fabgate policy show .
fabgate gate .
# 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.9.tar.gz (62.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.9-py3-none-any.whl (70.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fabgate-0.1.9.tar.gz
  • Upload date:
  • Size: 62.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.9.tar.gz
Algorithm Hash digest
SHA256 7e174fa319b71e9c6c9636669c849a3b0efdf060f27c8c638023f4070fdb57cb
MD5 ec92950b547447b67c60e866e4d9064f
BLAKE2b-256 6cc82a3a9ce002f2c49ea88cbfc0ba42ba2ecc7b015d311f8b2ffa825bda915a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabgate-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 70.2 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.9-py3-none-any.whl
Algorithm Hash digest
SHA256 a25914e653ae91853aada1a1977c19993dbe75e8f0b7ddf153d89330f4b12bee
MD5 652e07e8acc449a43b1e4e23e490af22
BLAKE2b-256 6dad06d85344f2083a4054d8d6cdbc94c80a941b0e596c774aacbf575967cb8f

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