A hardware repository should make the design reproducible without turning every generated file into canonical source.
project/
├── README.md
├── board.kicad_pro
├── board.kicad_sch
├── board.kicad_pcb
├── lib/
│ ├── symbols/
│ ├── footprints/
│ └── 3dmodels/
├── mechanical/
│ ├── enclosure.step
│ └── constraints.md
├── scripts/
├── reports/
└── fab/
└── r1.0/
├── manifest.json
├── CHECKSUMS.sha256
└── outputs/
Canonical source
Schematics, PCB layouts, project libraries, scripts, and hand-authored constraints belong in Git. They are the inputs required to understand and reproduce the board.
Generated evidence
DRC/ERC reports, renders, BOMs, placement files, Gerbers, and drill files are outputs. Keeping a release snapshot is useful, but it must identify the source commit and tool versions that produced it.
Large files
STEP assemblies and high-resolution renders can outgrow ordinary Git quickly. fabPlane keeps durable Git data behind the Git backend and generated artifacts behind the object-storage boundary. The two namespaces are deliberately separate.