app
adom-component-fit
Public UnreviewedCLI for the LCSC-3D-model → KiCad-footprint alignment transform. One JSON line out: {rot_deg, offset_mm}. Backed by a per-library CSV corpus auto-republished from task files in adom-pin1-truth/compone
{
"schema_version": 1,
"type": "app",
"slug": "adom-component-fit",
"title": "adom-component-fit",
"brief": "CLI for the LCSC-3D-model → KiCad-footprint alignment transform. One JSON line out: {rot_deg, offset_mm}. Backed by a per-library CSV corpus auto-republished from task files in adom-pin1-truth/compone",
"version": "0.1.0",
"tags": [],
"license": "MIT",
"sample_prompts": [
{
"label": "Molex KK-254",
"prompt": "adom-component-fit Connector/Molex_KK-254_AE-6410-03A_1x03_P2.54mm_Vertical C234181"
},
{
"label": "Help",
"prompt": "adom-component-fit --help"
},
{
"label": "Version",
"prompt": "adom-component-fit --version"
}
],
"install": {
"binary_name": "adom-component-fit",
"install_dir": "",
"install_hint": "",
"version_cmd": ""
},
"readme": "# adom-component-fit\n\nCLI shim that returns the rotation + offset transform needed to fit a given LCSC 3D model onto a given KiCad footprint. Distributed to the InstaPCB consumer's render pipeline so each component lands with pin-1 in the right corner regardless of EasyEDA-vs-KiCad pin-1 convention drift.\n\n## Usage\n\n```\nadom-component-fit <Library>/<Footprint> <LCSC-code>\n```\n\nTwo positional args. Same `<Library>/<Footprint>` shape consumers already pass to `step2glb from-library` / `adom-pin1-truth`.\n\n**Output (stdout, single JSON line):**\n\n```json\n{\"rot_deg\":180.0,\"offset_mm\":[0.0,0.0,0.0]}\n```\n\n- `rot_deg` — rotation around the GLB's local Y axis (world up once placed on the PCB plane). Positive = CCW looking down at the board.\n- `offset_mm` — `[x, y, z]` translation in the footprint's local frame, applied **after** the rotation.\n\n**Unknown entry:** exit non-zero, one-line stderr message, no stdout. Caller falls back to identity (no transform).\n\n## Exit codes\n\n| Code | Meaning |\n|------|---------|\n| 0 | Real answer printed |\n| 1 | (Library/Footprint, LCSC) not in the dataset |\n| 2 | Bad CLI input |\n\n## Backed by\n\n- One CSV per library at `data/component-fit/<Library>.csv`, baked into the binary at compile time.\n- New rows arrive via task files in `component-fit-tasks/`; the listener (`scripts/fit-listener.sh`, run from cron) processes them and republishes this binary.\n- Source: github.com/adom-inc/adom-pin1-truth\n",
"author": {
"name": "Kyle Bergstedt",
"email": "[email protected]"
},
"visibility": {
"public": true
},
"hero": null,
"discovery_triggers": [],
"discovery_pitch": null,
"metadata": {},
"created_at": "2026-05-28T05:29:07.936Z",
"updated_at": "2026-05-28T05:29:07.936Z",
"skills": []
}