app
AI Flow: JLCPCB
Public Made by Adomby adom
The whole JLCPCB order, from gerbers to assembled boards in hand: proven part swaps, design rules, rotation checks, quote and order.
main
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "adom/board-release@1",
"title": "Board release: the handoff from the board flow to every later stage",
"description": "Written when a board is finished. Every later flow app (ordering, probing, ...) starts from this file and checks the sha256 of each file it names, so it never builds a board that changed after it was finished.",
"type": "object",
"required": ["schema", "board", "bom"],
"properties": {
"schema": {"const": "adom/board-release@1"},
"name": {"type": "string", "description": "board name, e.g. buck-12v5v-molecule"},
"page": {"type": ["string", "null"], "description": "the board's wiki page (owner/slug), if it has one"},
"board": {"$ref": "#/$defs/file", "description": "the finished .kicad_pcb (or .brd)"},
"schematic": {"$ref": "#/$defs/file"},
"bom": {"$ref": "#/$defs/file", "description": "BOM csv: ref, mpn, value, plus vendor columns (lcsc, mouser...) and fit (post|dnp|hand for parts fitted after assembly)"},
"spec": {"$ref": "#/$defs/file"},
"sourcingProfile": {"type": "string", "description": "the profile the BOM was checked against (fab, jlcpcb, ...)"},
"finished": {"type": "string", "format": "date-time"},
"producedBy": {"type": "string", "description": "app and version that wrote this, e.g. adom-aiflow 0.1.52"},
"checks": {"type": "object", "description": "what the board flow proved: drc, routed, analyses, with their results"},
"notes": {"type": "array", "items": {"type": "string"}, "description": "anything a later stage must know"}
},
"$defs": {
"file": {"type": "object", "required": ["path", "sha256"], "properties": {"path": {"type": "string"}, "sha256": {"type": "string"}}}
}
}