Assembly builds are how GFS turns components into Power Up / Right Start / brand-line SKUs. Each build resolves the current BOM, refreshes cost rollup (raw + packaging + labor + overhead + freight), runs a capacity check, gates on HITL if cost crosses threshold, consumes components, produces the assembly, refreshes the spec sheet if claims changed, and recalculates assembly_cost_rollup with drift_pct_vs_prior surfaced.
assembly_id · qty · source ∈ {manual, WO, SO}assembliesassembly_bom rows, validate every line_key exists, scale qty.assembly_bom · itemsGET /api/assemblies/{id}/bomassembly_cost_rollup (status=active)src/index.ts · cost-surface blockinventory_balance · employees/proposed-actions.htmlproposed_actions (action_type='assembly_build_authorize')inventory_balance per BOM line.workorderissue (if WO-linked) or inventoryadjustmentinventory_balance · transactionsassemblybuild record linking consumption to creation.assemblybuildtransactions (type='Build')inventory_balance · assembliesspec-sheet-pipeline (R583)POST /api/specs/ingestspec_items · spec_versionsspecs/<item_code>/<version>.pdfassembly_cost_rollup (status=active)/item/<code> · admin-dashboard cost tile| kind | name | purpose |
|---|---|---|
| D1 table | assemblies | master record per assembly_id |
| D1 table | assembly_bom | line_key, qty, uom, est cost per assembly |
| D1 table | assembly_cost_rollup | raw + pkg + labor + overhead + freight · drift_pct_vs_prior |
| D1 table | inventory_balance | on-hand · available · reserved · per item × location |
| D1 table | transactions | Build, WkOrdIss rows |
| D1 table | proposed_actions | assembly_build_authorize rows above threshold |
| D1 table | spec_items | linked spec row refreshed by step 9 |
| NS record | assemblybuild | system-of-record build transaction |
| NS record | inventoryadjustment | consumption when no parent WO |
| Endpoint | POST /api/assemblies/build | orchestrates the pipeline through HITL stage |
| Endpoint | GET /api/assemblies/{id}/bom | resolves BOM + cost rollup |
| Endpoint | POST /api/specs/ingest | linked spec workflow trigger |
| Workflow | spec-sheet-pipeline | step 9 calls into this workflow |
| Code path | src/index.ts (cost-surface) | cost rollup + drift_pct |