EDA Skillpack
Public Made by Adomby adom
All skills for all EDA capabilities across the Adom ecosystem.
| Name | Last updated |
|---|---|
| source | 23d ago |
| README.md | 23d ago |
Astra ESC: source, provenance and what is reusable
There are two separate historical experiments. Astra placement, issue 92 independently generated the movable-part placement from the common fixture and preserved the fixed contacts. Routing, issue 94 instead routed Fable's fixed placement. Combining those two results would NOT demonstrate an end-to-end Astra layout. The handoff is being corrected; no completed independent end-to-end result is claimed here.
The routing take reached 59/59 connected nets and zero new DRC errors, with 13 inherited library errors. It did not complete outer-layer power/thermal pours or establish a current/thermal rating. Its first fully connected video had blinking captions; AB issue 194 owns the shared product fix.
Code map
| Source | Language | Responsibility | Portability today |
|---|---|---|---|
| placement/place_plan.py | Python | Functional anchors, pin-relative component targets, courtyard-safe local placement search | ESC-specific anchors, references and bounds |
| placement/plan.py | Python | Extract local pad/net data for placement | Demo file/evidence paths |
| routing/geometry.py | Python, Shapely | Parse pad shapes and layer/net membership | Useful geometry routines, incomplete general KiCad parser, hardcoded input |
| routing/planner.py | Python, NumPy, Shapely | Rasterize clearance obstacles, choose endpoints, compress paths | ESC outline, grid, widths and layer assumptions |
| routing/search*.cpp | C++ | Fast grid path search with layer/via moves and costs | Reusable algorithmic core; not a standalone general router |
| routing/component_search.py, soft_search2.py, soft_repair3.py | Python | Find disconnected copper groups, identify blocking paths, rip up and reroute | Demo-specific globals and plane handling |
| routing/build_corrected.py, final-plan.json | Python / JSON | Build and replay the accepted route batches | Specific geometry for Fable's placement; do not use for Astra's independent layout |
| routing/bridge.py | Python | Timestamped calls to Adom Bridge | Fixed desktop and fixture path |
The AI chooses electrical intent and writes/adapts the planner. C++ performs the geometric search. KiCad Bridge commits the supplied points as native undo steps and checks them with KiCad; it does not invent those points for this AI routing take. Replaying final-plan.json is not fresh planning.
Source is copied under source/ for inspection and reproducibility. Historical placement and routing inputs have different provenance. The routing source is a worked example, NOT an install-and-run router for arbitrary boards. Paths, reference names, net classes, layer roles, outline/grid, pad support and rules must be parameterized and validated on multiple unseen boards before making that claim. No power-pour optimizer is hidden inside it.
Use the end-to-end layout skill for the reusable process: preserve each engine's own placement, reserve power/thermal regions, route, pour/refill, measure actual connected copper and bottlenecks, reroute or move parts when necessary, and validate every stage. Improvements belong in the shared owning projects so all Adom users benefit.