skill
EDA Bridge Standard: one way for an AI to drive every PCB tool
Public Made by Adomby adom
The standard every Adom EDA bridge follows so one AI can drive Altium, KiCad, Fusion 360 and any future PCB tool the same way: shared verb names in tiers, the board model JSON, reply and refusal conventions, and a coverage table of each bridge against the Altium reference.
← Commit history
kicad-lane: simulate sweep, temperatures, signals[].step, not_supported pitfall (#23 ruling)
1 file changed
+5−2
tools/proposed/kicad-lane.json+5−2@@ -1995,10 +1995,12 @@ "schematic": "the design or sheet to simulate (the bridge's own path or id) (required)", "analysis": "{type: op} | {type: dc, source, start, stop, step} | {type: ac, sweep: dec|oct|lin, points, start, stop} (Hz) | {type: tran, step, stop, start?} (s) | {type: raw, text: \".ac dec 20 10 1meg\"} (a bridge that cannot run raw SPICE refuses it with not_supported); default the analysis the design carries", "probes": "[{net: \"OUT\"} | {current: \"V1\"}]; default every net (a bridge may cap the count)",+ "sweep": "{parameter, start, stop, step, scale?: \"lin\" | \"dec\" | \"oct\"}: optional; steps a part's value (\"R4\") or a model parameter (\"Q1.BF\"), one run per value; for lin, step is the increment, for dec and oct the points per decade or octave; a bridge may cap the number of runs",+ "temperatures": "{start, stop, step} (°C): optional; one run per temperature", "points": "int, default 200: a ceiling on the points returned per signal; decimation keeps the first and last points and every extremum (the run itself is not coarsened)" }, "output": {- "signals": "[{signal: \"V(OUT)\", x: [..], y: [..], xUnit: s|Hz|V, yUnit: V|A|dB, phase?: [..] (AC, degrees, unwrapped)}]; an op gives one point per signal",+ "signals": "[{signal: \"V(OUT)\", x: [..], y: [..], xUnit: s|Hz|V, yUnit: V|A|dB, phase?: [..] (AC, degrees, unwrapped)}]; an op gives one point per signal; with sweep or temperatures each run is its own signal, with step saying which run it is (\"R4 = 300\", \"T = 85\"), so a reader groups runs by signal + step", "missing": "[probe]: probes the run did not have", "notSimulated": "[ref]: parts the run left out for want of a simulation model, when the sheet is only partly modelled, so a reader knows the result covers only part of the circuit (empty when every part was simulated)", "available": "[signal name]",@@ -2008,7 +2010,8 @@ "pitfalls": [ "simulation_failed carries the simulator's own message: a part without a model, a node with no DC path to ground, or a bad analysis.", "points thins the reply, not the run: a long transient with a tiny step still takes its time.",- "A partly modelled sheet still runs and names the parts it left out in notSimulated; a sheet with no modelled parts refuses with no_model."+ "A partly modelled sheet still runs and names the parts it left out in notSimulated; a sheet with no modelled parts refuses with no_model.",+ "A bridge that cannot sweep refuses sweep or temperatures with not_supported; it never runs once and returns a single trace as if it were the sweep (ngspice has no .step: loop with alter per value)." ], "related": [ "export_spice",