Field Kit
MeshSat Field Kit changelog: the go-box hardware, the V1 kits as built and the V2 carrier PCB set.
Generated from the commit history of the hardware repository meshsat-fieldkit (CERN-OHL-S-2.0): features and fixes, newest first, one section per tag, untagged work on the main branch under Unreleased. The release files are on the releases page. The V1 kits are bench and demo units. No V2 board has been fabricated, ordered or built, and nothing has been through a field deployment.
About the revA release (3 September 2026): the carrier set as prepared for the JLCPCB order. Its release page was updated in place through 6 September and its assets track the last of those updates; the tag itself points at the 3 September sources. Those in-place asset swaps are not commits, so they do not appear below.
Latest tagged design: revA
Tagged 3 September 2026. This design release contains the V2 carrier-board sources, review prints, vendor references and V1 build records. See the revA design record for the files and changes.
The V1 kits are built bench and demo units. V2 remains an unbuilt design: release files and an order-folder layout are not evidence of fabrication or a validated board.
Unreleased (main, last change 2026-10-07)
Features
- records: record l8p round 14 on fnd/l4rowc e85edd10 after Q-179 (W158), no circuit changed: the trip between BRK_VIN 7.6 and 10.16 V a bounded provisional choice with supplier task E-12p, the stiffer PGD divider compared and not adopted, Q114’s IGSS counted by the reader, 4g completed with its scope, the start scoped to power-on on IF-1, row (c) restated SUPPORTED AS CONDITIONAL (8cb1a626)
- l9t5: round 11, row (b)’s corrections on its focused check L4A-62 (W159, Q-182): FW-B20 in L9T5-D11’s words on both anchors, the limiter’s band on TI’s Equation 1 (0.4702 to 0.5878 A) carried, the peers’ hold-off drafted, RM0433 read, authority fields, change-list rows and canq’s anchor; test_l4lim reads its T10 citation (6674dec2)
- records: record l8p round 13 after the targeted recheck L4A-69: the PGD-low disarm held through a conducting FET against leakage (Q113, Q114, R144, D107; R143 330 kOhm from BRK_VIN; three corrections compared), the reader’s PGD-low predicate with five failing mutations, the band’s edge with the loop, E-6b on one basis, L8P-R12-F1 among L8P-R10-F1’s conditions, notes F3 and F5 to F8 (e85edd10)
- l9t5: round 10, row (b)’s last authoring: L4A-57 DONE AS CONDITIONAL on E-17 (the TPS73733DCQRM3 at constant maximum dissipation at the TPS2553-1’s printed maximum, 113.8 C on a JEDEC best-case theta, E-17 named; a typical used as a bound fails) and L4A-61’s propagation (T10 and connected rows restated, the contract, IOHA and ledger apply scripts, not applied) (9063d561)
- records: record l8p round 12 after the focused check L4A-69: the trip’s on-time bound ends round 11’s band under 9.43 V, a source’s share bounded on voltage with R140’s pulse restated at 3.32 J in 4.41 ms and a read candidate, the reader on drawn values, E-9 and E11-29u, L4A-67’s latent clause NOT MET, new finding L8P-R12-F1 (3be1292f)
- records: record l4hod, L4A-58: HO-D under the limiter, the peers’ in-service test of each supervisor’s TPS2553-1 drafted as apply_gen_sch_b_hodtest.py (composed with canmb, regstage and canen in all five orders, read by pin, its acceptance, procedure, interval and own faults; mutations FAIL) (b31fa875)
- records: record l8p round 11 and record l4e11 round 19 (L4A-67, L4A-68): the blades’ finding L8P-R10-F1 corrected in draft by a held-overcurrent trip on board P that ends in the breaker’s own latch (three approaches compared), C-PROT rev 1 for the guard re-evaluated part by part on the corrected circuit, the guard’s allowance restated for its two consumers as apply scripts, 20f, 22 and 28 replayed at it; new finding L8P-R11-F1 on the drawn UVLO node (5f496842)
- l9t5: row (b)’s CAN draft corrected on W139’s quorum analysis: the self-test restated, FW-B21’s stop at the loss count, the latched supervisor’s 2-of-2 EN route (apply_gen_sch_b_canen.py), DAR = 1 with ES0392’s workaround quoted with its page, composed with W138’s regstage in both orders (L4A-54, not applied) (4c0382e7)
- records: L4A-59 HO-E compared and selected: H-1 drops out (no hardware means in RM0433/DS12110/AN4938), H-3 fails (Table 222), H-2 selected PROVISIONAL (SESSION W140-1) with the drafted VCORE monitor apply_gen_sch_b_vcoremon.py, its page and test_l9t5_hoe (971d78e4)
- l9t5: the supervisors’ quorum service under method M-B on every IOHA fault row and vote-path fault, its latent-fault bounds and recovery, with FW-B22 restated on the two fabrics (L4A-55, not applied) (45d9771f)
- records: record l8p round 10 (L4A-66 by M-A, L4A-65): the battery FETs hold the breaker’s held 23.93 A on printed maxima (conditional on E-05, E11-29, E11-36), R17 on ROHM’s printed derating, HO-B bounded at the held state, the 25 A blades over their printed rerating by 0.83 A (8546ff31)
- records: record l4reg, L4A-56 re-scoped: the supervisors’ regulator stage compared over three approaches, TPS2553-1 at 49.9 kOhm with TPS73733DCQRM3 selected (SESSION W138-1) and drafted as apply_gen_sch_b_regstage.py (9c470f60)
- l9t5: draft the supervisors’ 2-of-2 peer SHDN vote on both CAN fabrics with its pin plan and in-service self-test (L4A-54, method M-B, not applied) (fd0fbcb8)
- records: record l4e11 round FET (L4A-70, L4A-71): no P-channel set of 16 read meets TI’s 5 nF on printed maxima with the 40.78 K/W bar at 23.93 A, the three kept on E-05, the pair drafted as the fallback, the UDC-1 table and the M-A first selection (8f5957ad)
- records: record l4lim, the limiter window screen L4A-101: no window on printed limits ahead of the AP2112K, change of method to the thermal-headroom companion (TPS2553-1 at 49.9 kOhm with a regulator of at most 98.6 C/W) (13aea924)
- compact: the compact kit as a top-level folder: the version table for v0, v1 and v2, and the v2 printed-enclosure design package meshsat-enclosure v0.6 (T-Beam Supreme over a RockBLOCK 9704-SMA, OpenSCAD, cleared by its own audit response for prototype printing only; nothing printed or fitted) (9d0aeb1b)
- records: the connected P0 candidate composed with every merged draft (Slot C’s guard fail-safe delta read by record l8p’s check_l8p_fs, L8P-R9-F3; P0-7’s sense and route B2 as a partial proposal on board E; R602 14.0 k), every record check DRAWN and 16 of 16 mutations failing, the re-trace on the case rows, L4-E9’s change-list draft at R-220 to R-244 with D-10 and D-16 restated; outputs regenerated until stable (4ee851ce)
- records: P0-7 route B2 as a PROPOSAL: the presence-loop draft composed after the C2 draft with four failing mutations, the withdrawn-plug turn-off and the arriving-source case recomputed, the owner item, R-180 as a contact requirement and the Layer 6 rows; what B2 does not cover OPEN with S1 (ae2cdded)
- records: P0-7, board E’s solar input sense moved off U5 onto the backstop’s bank (U23 INA169 into IMON_IN, R59 removed, R16 34.0k, R97 24.9k): D-16 corrected in draft, D-10 narrowed to the guard’s port-level residual; the narrowed P1-1 and Analog Devices item 8 drafted, unsent; tests (f29ff8a0)
- records: record efuse (T12): every eFuse and current-limit setting against its exact part’s sheet; SDR3-F04 confirmed as EF-F01 and the same setting on board B’s U24 found as EF-F02, each with a one-component draft composed, read in the netlist with failing mutations, and holding on C-DEV rev 1 (34a60077)
- tools: candidate_guard.py refuses a release candidate before any suite runs when a frozen input changed after the freeze, a tracked file differs from the commit, an output no longer binds to the tree or required evidence is missing or changed; its regressions on a throwaway repository (3e3f084c)
- firmware: the panel power-cycles a compute module lost while running once, as at start-up, then leaves it off until the operator acts, and keeps that state across a controller reset (c5f7d0a7)
- firmware: the panel’s TX lamp follows the dimmer in every lighting position, board D’s expander starts at its designed power-up levels, and two lost compute modules raise MASTER WARN (0022697b)
- firmware: the panel firmware’s slot-cut alarm uses timer alarm 1, clear of the pico-sdk default alarm pool, and its README rows follow the code (5bdf35ba)
- firmware: the panel firmware reads board B’s TMP117 and board C’s VEML7700 off the kit bus and retries an absent secure element (d1bbc68d)
- firmware: the panel firmware raises no slot while ZEROIZE is armed or wiping or a hot stop acts, and counts a switch closed at power-up from boot (7fea3391)
- firmware: the panel firmware never reads its own PI_SHDN_REQ pull as a MAIN tap, treats a silent kit bus as the hot-stop detector lost, and drops each slot as it stops (2e9997dc)
- firmware: panel controller firmware for board C, a portable core with its hardware layer, pico-sdk port and 47 host tests (f2895314)
- parts: the DECODED binding, a maker’s ordering-code table decoding the part number field by field against the selection, 23 of board C’s selections decoded, and the decision drafted for the registry (46e3adf7)
- parts: board C’s 87 part selections checked by rule D-2, a bound document must print the part number on its cited page, with the tool’s tests and the integrator’s apply script (569f46b2)
- case: Option A(i) lid pack: the arrangement counts’ sensitivity to the module’s inferred allowances (A 35, B 56, C 58 at both ends) (e568572a)
- case: Option A(i) lid pack work package: the lid module in five arrangements at Peli’s worst figures, 48 cells fit only with HF or the tablet bracket out of the lid, the hinge harness, the open case’s stability and a lid stay, the base pockets’ 4S6P rows (459b187e)
- case: H1 heat-test plate blank gets its own manufacturing definition, drawing H1-1, DXF, STEP and STL generated from panel1450.py with four PEM S-M3 on the HS100 pattern 37.0 x 35.0 and a check against the released C1 DXF (d5e57177)
- tools: the decoupling seat report judges each capacitor by its class’s screen from its rail pad, as the gate and the placers do, and refuses one with no class (decision 42, T2 and T7) (7c8c6565)
- tools: a decoupling capacitor on the far side is priced at its own via pair’s pitch on a placed board, and at the page’s 0.8 mm only where a pad has no via (decision 42, T9) (d568dabd)
- tools: an own-pin window or a converter opening that cost an escape is closed again on the next placement (decision 42, D3 and T4): the escape pass names the part that cost it and records it beside the board, and both placers read it (3759cd9c)
- intent: intent.bypass takes a declaration’s class and its maker’s clause and intent.write refuses an entry without them (decision 42, T5), and the 440 declared clauses looked up in the held documents (7abc32ec)
- schematic: board A regenerated on the KiCad box with S-99’s D8 split (decision 55): the TPS62933 buck U41 and its nine parts on the new rail +5V_D8IN feeding the eFuse U23, the device stage U7 left with board B and the wall port, the TPS2596 limits by equation 7’s true sign; ERC gate exit 0, check_contracts PASS of 99, the five A to B leads AGREE; board B regenerated at parity and left as committed (12c01214)
- intent: boards A and B regenerated on the KiCad box from d4ada270 with S-98’s interim alignment: the netlists and schematics at parity apart from their dates, the intents carrying the aligned +5V_S2 and +5V_DEV declarations; check_contracts PASS of 99 and the five A to B leads AGREE on the regenerated intents (cac8783c)
- tools: reliability.py binds each board’s declaration to the artefact it was written against by sha256 (written_against,
--pins) and reads a mismatch or an absent pin as INCONCLUSIVE, with the fixtures, the pinned list, the re-taken matrix records and provenance lines for five cited documents (d3a46eca) - case: the QMX lid tray r2 set rebuilt with a record that prints the room, its own manifest, the corrected drafts and the stream’s record (ec3aff46)
- rules: a layout constraint sheet names the inputs it was computed from, and a check fails when the inputs, the calculation or the sheet’s power table move apart (6956ad53)
- case: the QMX lid tray r2 drawn for fitting from above under a screwed frame, open at both end panels, its face room read from the solid above each part (51c7d85e)
- boards-a-e: the hot stop line HOT-R1 drawn on boards A and E, and board E’s fan flyback sheet filed so PWR-001 reads PASS there (ebc7e355)
- handover: handover_pack.py repo builds a one-commit repository from a snapshot, its ignored netlists tracked, for the re-take route (495180a6)
- case: the case release for C1 to C6 with the QMX lid tray on sheet 14, and the mock-up’s checks of the board-moving rows before the layout entry of boards A, B, E and P (e04f8be0)
- tools: retake_schematic_phase.py re-takes every schematic-phase reading on the committed netlists, and REGENERATE section 9 runs it in place of H1.1’s words-only section (f7bc9543)
- handover: handover_pack.py can write a snapshot as its ZIP and manifest alone, without the unzipped copy (f42e0837)
- handover: the snapshot packer, the schematic export driver and the pack spec, with the requirements registry’s seven cited datasheets bundled (fb6ea136)
- tools: RF-002 reads every transmitter’s hardware inhibit path on the netlists, and its rule applies on every board the walk judges (ac2769ed)
- evidence: code-bundle tool provenance, stage-specific layout-entry gates and labelled historical percentages (71dc9a89)
- requirements: the V2 requirements registry and its generated trace, re-read at 46ca63fb with feasibility blockers and evidence classes (ea2872d9)
- review: review packets for boards C, D, E and P at f6c449fc, every change read by hand, and the qualified review routes (42ce8b6f)
- evidence: every rule-board reading is classed against the current candidate, and CURRENT-EVIDENCE.md names what closes each layout-entry blocker (3e7b940c)
- order: the order set is rebuilt for C24, P4 and E5 and every order note opens with its board’s readiness, quarantined under owner decision 41 (5a79a918)
- stackup: board P’s four-layer 2 oz and board B’s eight-layer JLCPCB stackups are recorded, with the part source record (debda89f)
- rules: decision 35 is ruled at the most conservative published model, in one place (b6bc9721)
- rules: a part’s own operating range against the envelope, and the first one measured is outside it (e4f778f7)
- rules: the adopted operating envelope becomes data, pinned to the record it quotes (04663bfa)
- rules: decision 29 is ruled from the host’s own pinout, and the fallback’s part is out of envelope (f1dcd467)
- tools: decision 36, a pair is judged at the tighter of 1.00 mm and its own part’s number (47e756b6)
- tools: decision 32 ruled at the number the tool already uses, and RET-004 becomes a measurement (ab6f6abe)
- ecad: decision 37 ruled: the crystal that exists, on the underside, with Rd re-chosen for its ESR (f1ff130d)
- rules: decision 34’s follow-through: ENV-001 is answered by its own document and a hand-written record can be current evidence (8bbefafd)
- rules: TRN-001 passes on all seven boards and readiness reads 61.6 percent (bb363083)
- ecad: decision 31’s clamps are in boards D and E, and the board refused five seats before it took one (1a536982)
- tools: decision 31 ruled: clamp at the entry, and three of its thirteen failures were the instrument (3ec8f613)
- rules: decision 39 ruled: the per-class return-path criterion is a declared calibration, and RET-001, RET-003 and SI-001 are enforced against it (f48a102d)
- ecad: decision 34 ruled, and ISO-001 is judged on every board that carries a high-voltage net (e6da4cba)
- ecad: the session rules five decisions, and the 1 mm pair rule stops refusing board A’s Kelvin taps (4d9d8b57)
- ecad: E39 sizes PV_P’s cluster on the skew its own mesh reads (8d3bcc12)
- tools: part_room, where a part’s own support sits (d7600385)
- tools: sense_reach, ANA-001’s third report: can the fence reach the violation (3795fc8c)
- a: the outlet cluster’s island takes the device rail from five open pairs to two (8e24fb2d)
- tools: the power-layer keep-out drop reads one spelling of three (361aa14f)
- a: board A declares the ANA-001 fence, measured on A98’s own pre-route board (18ed4d85)
- tools: a fence the router obeys around a sensitive node’s own copper (9f132cef)
- tools: the fanout names the test that refused a via and its counterparty (3408b268)
- pcb-a: the clamp D2’s pad takes a derived barrel and a locked run into the west band; A93’s finished board reads three open (bc205896)
- pcb-a: the whole load bank in each rail island, A95’s line at HEAD; the device rail’s open is the 92 mm run to the outlet cluster (a4050bc9)
- pcb-d: D34 derives the +5V_D8 and +5V_SA barrels beside packed parts from their pads; A95 lands with the three slot rails closed at the router (cac57bb4)
- pcb-e: E36 derives every barrel site from the placed pads and gives the three FET source lands an island and a 0.5 mm column; four typed sites had sat in empty board (e22922cc)
- pcb-e: E35 puts the input side in the order the current flows, its copper derived from the placed pads; the chain names a barrel stage that does not run (61159845)
- tools: rail_barrels lays a second row inside the judge’s window when one row does not hold the barrels; board E’s DC_HS at L2 answered; the bring-up page re-rendered from the corrected E intent (cd4e8007)
- pcb-d: D32 seats C21 beside U6 pin 19 and C28 on the underside beside pin 16, both measured through the chain first (72df6dc2)
- tools: the plain session importer, so a route can be read at a known pass (4d71fcd2)
- register: the open-pairs page says which boards are behind their own generator (ecf3795e)
- tools: every committed board’s class table against the one its generator writes (68db58ed)
- chain: the seat finder runs as a report on every finished placement (fa3798b2)
- docs: the decisions page ranks by what each decision holds (ae4d9b3d)
- gen: the device rail takes its In3 run east, where the room is (21ddb8e9)
- gen: the three slot rails reach their load banks on In3 (86f41627)
- gen: the USB-C outlet stage is seated at the outlet (07a15325)
- intent: boards E and P declare what switches their last two rails (869b0e67)
- pcb-c: ten decoupling capacitors at the pins they serve, and the map learns the board is a U (58354cc2)
- pcb-e: fourteen decoupling capacitors at the pins they serve (3e812ca0)
- tools: where each declared decoupling capacitor could sit, measured rather than guessed (3fb629f4)
- pcb-a: twenty-four decoupling capacitors at seats outside every rectangle and every fan (d2e0fece)
- boards: board E’s parked barrel question is answered and the answer is the fanout (9b19b43b)
- boards: the outlet’s seats go through the generator and land hard zero (f2d53bcf)
- boards: the ISNS twist is conserved, and four arrangements measured one at a time say so (97c1cbf6)
- boards: the USB-C outlet’s corridor has seats and its controller travels for five millimetres (54747d30)
- cloud: a chain tree without the vendor library, in the repo rather than on one box (c6245c08)
- sensitive: the ten filtered ISNS nets are judged by the rule that exists for them (07615045)
- gen-p: the pack return takes a class of its own, sized from its own narrowest pad (1eb976e3)
- gen-a: each LM5176 gets the ISNS filter, so its Kelvin tap is a net at last (9ec117a2)
- gen: board D’s whole PI-003 is two barrels, and the one with room takes its cluster (119bcb74)
- tools: every barrel remembers the line that placed it, so the suggester can name the call (fc819d2f)
- gen: board E’s PI-003 answer, five sites laid and the other five named (a1b3a7db)
- tools: staleness is asked of the deciding TOOL now, and 53 of 76 open pairs rest on a reading older than it (b14a5d62)
- place: the inductor sits between the power-stage pairs, with the chain as the evidence (1d0dcd0a)
- place: the inductor sits between the power-stage pairs and it is free (0345ed16)
- place: board A’s charger block in the converter’s order, and the first explanation of its hard core (c1acd409)
- intent: board B’s last ten feeders, and an LDO’s efficiency is not a guess (e881c6c2)
- intent: board B’s twelve bucks say what feeds them, and the check now runs on all six boards (87048379)
- intent: boards P, C and D say what feeds their rails, and all three add up (78b77db7)
- intent: board E’s solar three are declared after all, and their currents were in the design all along (80dc54dc)
- intent: a part current passes through can be declared, which closes power_path’s gap without a heuristic (a4ef8612)
- intent: board E’s input side is five rails now, four of them too narrow, and rail() gains v_max (a31f4d43)
- intent: a rail says what feeds it, and two of board A’s are short of what they supply (653a7491)
- chain: every chain asks whether a power-path conductor is declared, at generation (0024f36a)
- intent: the last three of the twenty-four, and every board reads zero undeclared (d4ade44e)
- intent: nine of the twenty-four declared, and board E’s ten amps turns out to be built properly (a14f3b32)
- intent: a return’s drop is judged against the rail it returns, and board P’s PACK_N is measured (73b6d4b8)
- tools: power_path asks every board whether a power path is declared as a node, and the grid arm lands (5f88e798)
- gen: board A’s rail hand-overs get the barrels their own span holds, and the report names the call (1a6e829c)
- tools: a reading that lacked its input and wins on fingerprint alone is announced (5ca37447)
- tools: a closure that costs a hard violation is dropped back, newest first (b621309c)
- e: E23 answers it, ANA-001 is closable by construction and the price is the tracker’s gate drives (179d1d46)
- a: board A’s switching pre-lay closes 20 of 20 and A50 is written (fcdae79c)
- tools: switch_list, ANA-001’s denominator asked for the first time (e917d39a)
- e: E22 closed the safety line and ANA-001 moved to a third net, so board E pins its whole list (a6fc8cf2)
- a,e: A48 landed at 15 open, board A’s best, and A49 is launched on that evidence (23201178)
- tools: one set-level reading is not seven failures, and the register says so (3e48ec6a)
- tools: the register names a vendor wait and the ordering session’s own work (42fb515b)
- tools: a cluster can be sized on the skew its own barrels were measured at (552bd6f5)
- e: E21 landed and is refused by its own safety line; every board’s layer measurement exists (ec9bf79f)
- e: board E’s safety line joins the pre-lay, first in the list, and E21’s three rounds are recorded (834279b1)
- tools: the open-pair register is computed, and it found a decision nobody could look up (f137cecf)
- tools: a pre-lay group may ask for more room than its class carries, which is the one instrument board E’s ANA-001 has left; E21 declares it (bee2bd45)
- tools: the chain lays a declared rail’s own barrels after the fanout and before the pre-lay; A, B, D and E declare it with their measured work lists (f9a980bc)
- tools: rail_barrels, the pre-route half of PI-003’s fix: the barrels a declared rail’s crossing needs, laid where the room is still empty (fe094516)
- finish: the Kelvin reading is taken where the mesh was just solved, and a board with no sense tap says so (dd18e088)
- tools: how much of a current-sense signal is the copper’s own drop, measured from the mesh (f3bcfc57)
- routeflow: an arm declares the tool change it depends on and the launcher proves it is in the tree (e88ef85d)
- tools: rail_crossings names every rail crossing short of barrels on the finished placement, with the current split across the pads it is taken on (1963e26d)
- tools: board E pre-lays its two long opens, now that the pre-lay can see the board (9f51d9fd)
- tools: board E’s direct closer reaches 14 mm, which is what its own two closable opens measure (7d2ea90f)
- tools: the fanout says how many barrels a declared rail’s own crossing needs, before anything is routed (494190ba)
- tools: the pack’s protection thresholds are written down and judged against the cell maker’s own limits (BAT-001), and a fixture stops writing over the set’s own verdict (365f1caa)
- tools: board D declares the direct closer, measured on D15’s one open connection (1e20c3fa)
- tools: name the cross-section carrying a factor, solve six of them, and board B’s inner pairs read 140 ohm against 100 (fea28d18)
- tools: place the barrels a transition needs, and suggest the line each site would take (0b5838a0)
- tools: the barrel count a current needs is arithmetic, and a short stitch refuses the board (2be6cafc)
- pcb-e: answer PI-003 on board E, two barrels at the fuse crossing and a 0.7 mm hole at the dock block (264ae172)
- tools: barrel_sites, the map a PI-003 failure hands to whoever draws the copper; board D has two over-rated barrels, not one (ccab8cd5)
- rules: give the stackup rule its own instrument, since a pair measurement of zero pairs was crediting three boards (487180dd)
- pcb-d: answer PI-003 with three parallel barrels at the one transition the mesh puts over its rating (1af901f6)
- ecad: board E’s Kelvin filter resistors take fixed seats at the shunt, E18 measures it (bcf5728f)
- rules: ANA-001 carries its datasheet sources and says a declared node is the one behind the filter; its readings re-taken on four boards (47506bc3)
- ecad: board E’s sense filter capacitor is declared at its controller pin; the corrected ANA-001 reading on E17 is two real runs (19576b92)
- ecad: board A’s five converter stages get the Kelvin current-sense ground and the 100 R / 1 nF filter the LM5176 datasheet asks for; a sensitive node may not be a power terminal (183f716e)
- ecad: board E adopts E17 (0 hard, 0 unrouted, refused only by decision 31); routeflow reads the finish’s own gate before choosing a remedy (93972efc)
- ecad: board E’s bootstrap capacitor C30 is declared as U12 pin 6 decoupling, E17 routes it; A46 is board A as the partition (98f6ced5)
- gen: board E’s hot-swap output DC_HS in three locked B.Cu bands from Q7’s source pads to L2 pin 1 (E14) (8b7bc5ed)
- evidence: every phase directory carries its proved pre-route snapshot and the sweep judges PLC-001 on it, carried only after the footprints are proved the routed board’s (8abebaaf)
- gen: board D’s power-class via is 1.2/0.6 from D13, rated 1.19 A where +5V_SA puts 1.10 A through one 0.4 mm barrel (PI-003) (82b1582a)
- boards: widen trials declared for B22’s finish (nine rails B21’s density reading names) and E12’s (CELL_F), each a DRC-decided trial in place (56784eea)
- tools: via_parallel lays parallel barrels beside a via the solved mesh puts over its wall’s rating (PI-003’s fixer), a finish stage on every board (28da6d21)
- ecad: adopt B21: the board, its schematic and its regenerated netlist together; the contract gate reads PASS of 72; dc_drop has its fixture pair (88a5501e)
- pcb-e: the tracker’s switching nodes take an SW class of their own, so the class-pair rule names them (458c491d)
- pcb-d,pcb-p: the declared sensitive nets take the SENSE class on D and P as well (7844496a)
- pcb-e: board E’s two declared sensitive nets take a SENSE class ahead of the power patterns (ec1f1ec5)
- pcb-a: the declared sensitive nets take a SENSE class of their own, ahead of the switching patterns (f87ba73f)
- tools: FR_CLASS_CLEAR writes a class-pair clearance into the DSN, the instrument ANA-001 was missing (861d79f5)
- tools: thermal_pads.py, every exposed pad and whether a via of its net sits in it (71848819)
- rules: SCH-005, every pad of a part’s land carries a net or a declared no-connect (8d1b4abb)
- tools: the finish blocks on a safety line that does not hold its safe state (0981c5ae)
- rules: a board may declare that no interface of its own carries a target (9dcac22d)
- rules: board E5 can answer a question at last, and a board with no netlist is not a board nobody looked at (e3b79d96)
- rules: board B’s three polyfuses enter the energy chain, and one of them sits above its own track (b1429ef0)
- rules: a reading is stale when its own rule changed, not when any rule did (997ed358)
- tools: SCH-004 has a tool: every safety line’s pull, its drivers, and what happens with the far board absent (9dcdd92e)
- assembly: the rotation work list is a document the ordering session can work through (0928c230)
- place_audit: the pour-island class is predicted before a route is bought (3b1edaa6)
- boards: board A’s ground-via grid and its pre-laid nets are measured, one variable each (0d8ebf15)
- evidence: board A’s placement is measured against the board this tree holds (06724618)
- evidence: the placement evidence of boards C, E and P is re-taken under the current rule set (ef01e8f0)
- pairs: the matcher meanders to the interface’s own budget and still refuses on the project’s (299291f8)
- board-e5: a board that places no part declares it, and board E5 reaches 80 percent verified (434ba588)
- board-c: the ground-via grid is measured on board C and refused with its numbers (6cfda5d7)
- boards: board D declares both of its crystals, one with an authority and one saying it has none (99e7f8ad)
- tools: evidence about a board a directory no longer holds is not that board’s evidence (01fa591a)
- tools: the placement of three cut boards is measured again and proved to be theirs (8d9b2338)
- tools: the pair gate cites the interface’s own budget beside the project’s (93ccf1e5)
- rules: the fuse selection criteria have an authority, and it found board E’s shore fuse at 80 percent (eee05073)
- rules: the hole a net punches in its own reference is RET-003’s question, not RET-002’s (025a9d12)
- tools: the dock block is judged against the board whose pins land on it, and it is the kit’s one blind-mate interface (004dd5f4)
- docs: the open decisions as one generated page, and it holds 68 of the set’s 300 rule-board pairs (1f53c074)
- board-c: C24 is cut, the first board of this set to pass every gate it has (996fcf1f)
- ecad: the layer measurement takes the reading its own docstring promised (77658ab2)
- ecad: the sensitive nodes get a keep-out the router can see, on a copy of the board (83407f34)
- ecad: every board declared a 50 ohm RF target and nothing read it; eleven lines are at 25 (7f30a843)
- ecad: the mark the owner ruled on to these boards is on none of them (e14f862b)
- ecad: a tool that changes copper and that nothing runs is a plan, not a tool (cab23103)
- ecad: the load capacitor is judged against the crystal’s own C_L, and it found two boards (fe4b26c8)
- rules: a sensitive node says how LONG it runs close and how far from the part that joins them (7810bfda)
- board-c: C23 routes 0 hard and 0 unrouted of 133 nets (6acd4056)
- rules: the document that asserts the numbers names the board it read them from (04038bf3)
- contracts: board P is in the set, because a wire is a conductor (44ac6243)
- rules: every interface against the specification of the part that defines it (7258c6af)
- thermal: all five boards carry a dissipation figure, 28 W typical across the set (682702cc)
- thermal: four boards have a dissipation figure, and one of them is 36.6 W (7a38fb17)
- board-a: every via hand-over is judged on the current the mesh put through it (93018e95)
- rules: the current in a via comes from the solved mesh, not from an attribution (dd436e3f)
- rules: the current bar every rail is judged against has a published document (974477c0)
- tools: every polarised footprint against the rotation table, and the date it was checked (d4684da3)
- tools: what carries load and what sees cycling, declared per board and checked (70acef9b)
- tools: every repair in the finish names its defect class, and the coverage is judged per board (9c374c14)
- tools: source, path, victim as data, checked against every board (37111c4c)
- tools: one ground or a partition drawn on purpose, read from the netlist (931e0067)
- intent: board B’s 36 rails declare what switches them, and all seven boards pass PWR-002 (7fa6f0e3)
- tools: what switches each rail, declared and checked, and the deadlock a drawing cannot show (843c0c13)
- rules: the energy chain decides BAT-002 and PWR-003, and readiness reaches 40.0 percent (7ce5b4db)
- tools: the stored-energy chain, drawn end to end and gated (81147020)
- tools: widen a rail’s routed copper in place, as a trial that reverts (4f0d3b16)
- intent: every rail that crosses a connector declares this board’s share of its budget (5e69f2a2)
- tools: a board held by an open owner decision is held as DATA, in the three places it could get out (3482360a)
- tools: every open item says how it executes, and an engineering hour is not an elapsed hour (42a3fe46)
- route: racing attempts that differ in what the router actually reads (aa8fd93c)
- board-e: E14 routes 0 hard and 0 unrouted, and the board existed for an hour before anything noticed (66ecf009)
- rules: a verdict is evidence for the board it names and for no other (baeec252)
- ecad: rule SI-001, a net is a transmission line because of its edge and its length (d888ad5c)
- ecad: the stitching rule reports how far the nearest capacitor is, not whether one is close enough (41ec7a66)
- ecad: rule ISO-001, the high-voltage spacing is measured on the board for the first time (dfa7088e)
- ecad: rule THM-001 has its first half, a dissipation table built from the board (8d2b5236)
- ecad: six more rails cross a connector, and an unsplit budget is an open question (5f743af2)
- ecad: board E5 gets the gate it never had (abc072ae)
- ecad: rule RET-003 is measured and gated, the reference conductor before and after a transition (2f860bf6)
- ecad: board E’s re-finished board, 0 hard and one connection open (29344d6b)
- ecad: a report of where a signal’s reference changes and to what (rule RET-003) (f5594fc2)
- ecad: rule PI-003, a rail’s layer transition is carried by the vias at it and they are counted and rated (4a4597a0)
- ecad: board E declares the direct closure, with the connection that asked for it (25d16145)
- ecad: the sweep re-judges the cross-board contracts too (05692b30)
- ecad: dot_prune, a track shorter than the process can draw is an island and not a conductor (82dc5408)
- ecad: D12 re-finished at 0 hard and 0 unrouted; its last return via is 2.25 mm and measured (b05392c9)
- ecad: the return-via fixer reaches past its target and records what it achieved; owner decision 32 (f5b231f7)
- ecad: rule TRN-001, every conductor that leaves the case is followed from its connector to a clamp (c42b75d5)
- tools: the sweep runs the derating, crystal and fabricator-limit checks too (935a17d0)
- tools: clock_check.py, a crystal that does not start is a board that is perfectly routed and dead (63b0535b)
- tools: a board’s copper layer count is a declaration, not a literal in its gate (cb10f5d2)
- docs: PCB-BRING-UP.md, how each board is powered for the first time (9d8ceec3)
- vendor: the fabricator’s impedance stackups are a document now, not a code comment (fdb6d142)
- tools: one verdict per rule in intent_checks, so a decoupling miss stops failing the return path (4a483a2f)
- tools: STK-001 closes, and it took three findings to get there (8c20dfdc)
- tools: the return-via screen reads the signal’s class, like the return-path rule (18a47722)
- vendor: the fabricator’s capability document is in the tree, and the annular ring has an authority (8201fb73)
- tools: via_audit.py, and the via rule splits along the line of who can answer it (c7dd3e43)
- tools: an open owner decision must arrive as costed options with a recommendation (b31d3e9e)
- tools: the sweep runs the second tool of every two-tool rule, and stays read-only doing it (3210362d)
- tools: every gate in the catalogue maps to a rule, and a rule may name more than one tool (8eb13fe1)
- tools: derate.py, no part sits on a rail that can reach its rated voltage (3390e5b1)
- pcb: the ground-via grid is declared per board from its own measurement (42831928)
- tools: no hard gate without a false-positive analysis, and one owner per fact (59566ede)
- pcb: every signal net on all seven boards is classified by its spectral content, with its reason (83ae1784)
- tools: the return-path rule asks what the signal’s spectral content deserves (1f9c5172)
- tools: gate_sweep.sh, re-judge a routed board under today’s rule set without touching it (3f8deff0)
- tools: a manual verification is judged by rebuilding its record, not by trusting it (e1f9231e)
- tools: rule ENV-002 is a gate: no rating claimed in a public document without its test (edb06fdc)
- rules: the prototype-only unknowns are generated from the registry, so what only hardware can decide never reads as a pass (SGN-002) (ed5dfde0)
- rules: the ETA is computed from the gap register’s remediations and the measured route history, with its assumptions stated and its waits separated (2307ebe4)
- rules: the rulebook, coverage and gap register are generated from the registry, with the per-board status pages; the truth table and the repository rules that keep gates and registry together (c8b1ed2a)
- rules: the Phase B coverage map and the computed board status (absence is never a pass); every verdict names its rule ids and the rule set it was taken under (a5964dd2)
- rules: the canonical PCB rule registry, its reader and its validator (56 rules over 34 domains, 294 rule-board pairs); the readiness manifest freezes promotion of pre-audit evidence (0d33bea9)
- e: E11 routes with the ground-via grid before the route, measured on D first (4c4d8e17)
- d: D12 routes with In2 as a ground plane and the ground-via grid before the route (measured: 0 open, 279 of 289 return vias); a solder jumper’s pads carry the class clearance before the route (f60952f6)
- agent: a placement arm reads the couple gap back off the board it placed (couple_gap.py: part-box and courtyard gaps per couple); PLACE_COUPLE_GAP 2.4 reads 1.80 mm between the parts (a56c3833)
- tools: gnd_grid.py lays rule 2’s ground vias before the route where a board declares it (D12’s fixer found no site for 47 of 185); B declares PLACE_COUPLE_GAP 2.6 (38 of 48, legal, five measured cycles); decision 27 carries D’s anatomy (via transitions, one seam run) and the reading it asks for (deda308d)
- tools: return_gaps.py prints the runs behind rule 1’s uncovered millimetres, with what sits on the neighbouring layers at each (6fee1690)
- gates: a return via may sit inside a ground pad with room for its ring, where crowded copper leaves no fill beside a signal via (40b8063e)
- routeflow: the resolved phase reaches the chain; A’s profile declares the rail-planes measurement for A36 (7cf63f01)
- route: FR_RAIL_PLANES keeps the rails’ locked bands and islands in the DSN as planes on their own layers, off until an A route measures it against rail_prune (3a16a47b)
- agent: the experiment store (SQLite, WAL, a cycle with an exact arm set, one terminal result per arm, artefacts, metrics, reviews, promotions, the chained ledger as its export); a cycle id minted before the proposal travels through the spec, every row and the review; the verdict envelope names the tools tree and the policy (8b96fec5)
- predictor: a plane pad with no path to its plane and a rail pour without its keep-out are read on the placed board, before a route (3921d6d6)
- e: the In2 ground fill under every back-side signal, the power pours above it (decision 27; the previous commit named this and did not carry it) (15baeff8)
- e: an In2 ground fill under every back-side signal (decision 27); a placement the chain’s gate refuses is an UNMEASURABLE arm, not an infrastructure failure; the loop reads the runner’s row names (b334702c)
- agent: the B placement run shape as a template, and the suite on a code-only archive as a script (98d4b38e)
- routeflow: the re-finish phases C18, D12, E10, A36, B20 and P5’s single-signal-layer route under the return-current gates; two red-team reports of 15 September filed (afa2523a)
- gates: the two return-current rules: a plane under every signal net, a ground via beside every signal via, placed by the finish and refused by the board gate (3bea1cd1)
- ecad: the schematic pages draw every net that stays on a page as wires between its parts and mark every signal that leaves a page with the pages it goes to; B’s shared area is sectioned by its generator headings; six netlists identical (25f6f0d5)
- a: A35 profile: the PA head keep-out and the second stitch prune, after A34’s two pour-gate items (984608e5)
- images: render set ten, the display screenshot on the glass in every view and the monitor rear block under the plate (0df99eba)
- ecad: readable schematics: a page engine draws every board as wired A3 pages of functional blocks (ICs as boxes with rails top and grounds bottom, passives on the pins they serve, decoupling rows, power symbols), proves the drawing’s connectivity before writing, and the build cuts the sheet into A3 pages; all six netlists identical; the render scene puts the lit display on the glass and the monitor’s rear block under it (13a79345)
- images: concept render set nine, the monitor glass level with the face plate and the boards of 15 September; the import set at A32, B19, C17, D11, E9, E5, P4; a heredoc rule (fed03718)
- a: A34, the four necks A33 measured again: vias in Q2’s drain tab, a via row across the VBUS20 leg, the PA run doubled south of J_AB2’s pins, the In2 VBAT plane kept off U2’s escape fan (nopour) (4e27f8b7)
- a: A33, the four necks A32 measured: VBUS20’s leg and column at 8 mm with four vias a shunt and a foot at the corner, In2 VBAT tongues under the PA head and the converter row, the VIN_RAW head grown north, a foot at J_PA’s pin (30c3411d)
- tools: rail_prune: the router’s own copper on a rail the rail’s copper already carries comes off before the judgement, judged by connectivity per piece; declared for A (7e702199)
- a: A32 closed to 0 hard and 0 unrouted by hand (CH_BTST1’s B.Cu dive ripped and re-laid, the VBUS20 link on B.Cu between the islands’ own vias); rails 8 of 12, the VBUS20 F.Cu island at 43 percent (8b6bc226)
- c: C17 re-cut without the stale legend; the final gate reads the folder ALL PASS, 38 of 38, six of seven folders pass (9fc35358)
- c: C17 cut, the first C deliverable: 0 hard, 0 unrouted, check ALL PASS, 1 of 1 rails MET, netlist 852 of 852, verify_deliverable 36 of 36 (02c8735e)
- tools: the pair copper meets the DRC before the fanout and a refused pair comes off whole; the inner gap takes the cushion; the via in a station’s middle pad asks every layer; B declares its predictor as a report (346b3a5c)
- pcb-b: decision 24 delegated by the owner and taken, option 2: B’s pair hold judges the coupled fraction at 0.80 (431837c4)
- pcb-c: C17, the forty test points sit beside the nets they tap (40b368de)
- pcb-a: A31, A30’s copper with the slot islands’ column keep-outs, under the corrected supervisor (80feffd0)
- pcb-c: C16 pre-lays the whole six-wire e-paper bus, because one lane taken by hand moved the shortage to the lines beside it (941447a8)
- pcb-c: C15 routes with /EPD_SDA pre-laid (eeb895e4)
- pcb-c: a long net the router will not take is laid before the router runs (8cae2bcf)
- pcb-a: the A29 profile (a3109b80)
- pcb-a: A28, the routed board with its pairs matched and its last two connections closed (f02c9510)
- pcb-c: C13 routes the same copper with the rip-up cost at 10 (a1dc043c)
- pcb-b: the pre-router’s obstacle map can grow each obstacle by its own class clearance (23b74bb0)
- pcb-a: the pre-router measures its two legs and gives the short one the difference back (b564ec4f)
- tools: the final gate pass, one table over every deliverable folder in the tree (07886728)
- pcb-c: C12, more passes for the one connection the corridor would not give up (2c6c7141)
- pcb-b: a current B quote folder, every BOM line coded or declared, and the 8 September one retired (706d164f)
- pcb-e: E9 is cut, 0 hard, 0 unrouted, both rails MET and 36 of 36 deliverable properties (1836c1c0)
- ecad: A27 and E9, the profiles for the copper the routed boards asked for (1025a5ee)
- pcb-b: the underside may not sit under a fine-pitch part’s escape field, behind a knob until an arm grades it (4017173a)
- pcb-a: A26, the profile for the second density pass (28b8e9d7)
- pcb-e: E8, the profile for the VIN_RAW copper pass (99586aab)
- pcb-d: D11 is cut, owner ruling 15 implemented and measured (6e463eb4)
- pcb-p: P4 is cut, 0 hard, 0 unrouted, 3 of 3 rails MET (85bc81dd)
- ecad: routeflow profile p4, P3 measured clean at 3 of 3 rails (ff2104ff)
- ecad: owner ruling 13, B’s nine overflowing regions resized for the pair-corridor margin (2f5dbb6d)
- ecad: routeflow profile d11, owner ruling 15 measured clean in an isolated tree (85adad52)
- ecad: route_one refuses a route that drops its board’s plane nets (67b32b23)
- ecad: routeflow profile c11, C with its USB class actually registered (c0eb7d51)
- ecad: owner ruling 15 on D, the class back to 0.5 mm and the rail in locked inner copper (8ad0e5d4)
- ecad: routeflow profile a25, A with the power copper its density asked for (8cd44f6d)
- ecad: a joint is not a conductor, and every piece too short to be one is reported (02e5a522)
- ecad: a via is judged on its own barrel, and the pour bar is applied to pour copper (2904663d)
- ecad: power copper for A24’s VBUS20 and +12V_HF, a wider PA band, a keep-out on the VBAT plane’s neck (75513a72)
- tools: owner ruling 22, the density is judged on the conductor and not on a grid square (93d81831)
- tools: owner ruling 19, under 1.1x of the density bar counts as MET (c3a4384d)
- tools: density_probe, what is AT an over-density cell, and A24’s eight rails are four jobs (c97db080)
- ecad: 3D views of all seven current boards, and a retired pack leaves two silkscreens (c74843de)
- ecad: EasyEDA Pro import archives for the CURRENT state of all seven boards (2e7d1bcb)
- tools: the current density decides alongside the drop, and ruling 15 is amended to outer copper (12f1e862)
- tools: direct_close tries the escape stub’s far end when the pad is walled in (e374d9bc)
- tools: every board records its regions, and region_room reads the right generator (8a10ba68)
- pcb-b: B’s placed board is LEGAL, 0 hard of the fifteen types (9e75188d)
- e: U5 leaves the assembly list, owner ruling 12 (231bc869)
- tools: direct_close says what else it could have started from (6e9c72b8)
- e5: the dock block rebuilt at 2 oz, owner ruling 7 (5f97b6bd)
- pcb-p: P3 is re-cut, and every part on it is orderable (fa77a641)
- pcb-a,pcb-e: A24 re-cut and E7 cut, and boards A and E certify PASS (73f79bf7)
- pcb-a: A24 is cut, with owner ruling 10’s capacitors and no re-route (3f16e188)
- tools: two ends on different layers are a hop, not a refusal (dd6a0a85)
- tools: the schematic’s values onto a routed board, without touching copper (b9ebe028)
- place: board A’s inner-layer use follows its own layer count (f78f805c)
- boards: the eight owner rulings of 12 September, applied (3c6aa75f)
- tools: layer_judge, the measurement P0 asked for, and never the change (84f0fb4a)
- tools: tiers 2 and 2b, a model in the loop behind a fail-closed validator (428380f6)
- place: B declares the couple gap that lays eight more pairs, and the chain reads it (d38a242a)
- place: PLACE_COUPLE_GAP, room at the stations the pairs are refused at (70c75486)
- preroute: a leg refusal says where it was refused, and on which side of the station (1452ac8b)
- preroute: PAIR_LEG_RETRY, the corridor searched again where its own legs were refused (adc1665a)
- pcb-a: A24’s finished board, 0 hard and 0 unrouted with every pair matched (e7fa2151)
- parts: the codes A24’s BOM was missing, read from JLCPCB on 12 September (a14550ad)
- preroute: PAIR_VIA_CANDS, because the via-site cap of twelve was never measured (56be3fb1)
- preroute: PAIR_END_STRICT, the end stubs searched against the partner’s own copper (f550a3cf)
- tools: A’s stub router searches a 0.05 mm grid, and the stage carries a time limit (a4e17290)
- tools: the finish runs the direct closer where a board declares it, A24 with its number (f4620747)
- boards: B lays its pairs with the board’s own via minimum, worth six pairs (b6225276)
- tools: direct_close, the closure the router stopped short of, proposed as geometry (8864e22c)
- preroute: PAIR_VIA_MODE, because a 0.70 mm via pair cannot leave an 0.8 mm fan (7978fb30)
- tools: A24 declares the stitch pruner, with the number that justified it (daec642d)
- preroute: order the pairs by the contention of their planned corridor (c4c258d2)
- preroute: PAIR_ENTRY_STRICT, so what the entry guard costs can be measured against a DRC (a8bcf73d)
- cloud: the isolated-chain runner, so a measurement is not disturbed by the box clone or the mirror (7f700545)
- a: A’s pre-route board with all three pairs laid and 0 hard (2a5872e0)
- a,b: the wall USB pair takes a ribbon of its own, so every pair leaves its header on an end row (a1b94294)
- preroute: a laid pair is refused if its copper lies on another net, and the verdict names what it hit (53327a31)
- preroute: a diving leg ends short of the station so the other leg’s fan has room (0e830225)
- preroute: every piece records the emission that laid it, and the own-legs verdict names it (71445d70)
- preroute: a twist between two fixed parts is reported, and the own-legs verdict names the copper (bd219311)
- a,b: the ribbon’s three pairs all lay now, 0 of 3 to 3 of 3 (a24e8259)
- d: D10 is cut, 0 hard and 0 unrouted, read back on all its properties (bcb3ff8c)
- pre-router: the legs may pass the pair’s own copper at its own station (802a9afb)
- pre-router: the stub search’s own cap is a knob, not a constant (2101d5b1)
- d: D’s routed board and its regenerated schematic, tracked (88686d0b)
- pre-router: name every footprint the pass moves (45d012f0)
- pre-router: ask the geometry before refusing a pair for one rasterised cell (83a0401e)
- e: E7, the dock strip cut and read back on all 35 properties (eb4e779d)
- p: P3 re-cut and verified, the first deliverable through the collapsed finish (165beceb)
- tools: ledger_verify, the standing check the plan named and nobody wrote (2169810e)
- b: the measured best pair environment, recorded on the board and not as a default (44f64855)
- tools: stitch_prune, for the locked via the pour has abandoned (c91aad8f)
- boards: every board gets the continuation pass, not just A (f23fed8d)
- arms: every row says which host and which KiCad build it ran on (438047ce)
- arms: round two, the corridor slack sweep that round one asked for (fdd62db5)
- tools: declared pad aliases, after netlist_board refused board E for eighteen drain pins (927741b3)
- routeflow: validate, a profile check that writes nothing and touches no host (d165f55a)
- tools: layer_audit.py, and the P0 evidence for every board’s layer count (deaa23b6)
- routeflow: with the per-pass jar, no session at all is INFRA_FAIL and not a routing outcome (fa201d75)
- routeflow: the C, D, E and P profiles call the one finish (6f8a37b4)
- tools: compare the board with the netlist it was placed from (4fbbc0d8)
- arms: sixteen B19 arms against the two measured failure classes (9d517ea9)
- tools: arms.py, many pre-router arms at once, each with a prediction and a judge that is not it (8061c405)
- tools: one finish, with the stage order that has reasons; five clones have the opposite (a846c389)
- routeflow: preflight checks the fab-artefact pin (13f6dffb)
- routeflow: the journal is a chained ledger, not an append-only file (2fad0748)
- routeflow: the supervisor decides on verdicts, and the profile’s prediction is graded (cc7513de)
- tools: verdict.collect, so a caller can ask whether every gate passed (035893ba)
- tools: the tamper-evident ledger, and the two things about it that are easy to get wrong (be7ca009)
- tools: the never-auto floor as a file, checked against a diff (e75bbc68)
- tools: a pin on which files may write a gerber, a BOM, a CPL or an order set (2079be77)
- preroute: the pass reports its own map seconds (610116e3)
- tools: board_diff.py, because cmp cannot tell you whether two runs made the same board (d114c14b)
- tools: every journal row names the bytes it is about (1a177cdb)
- tools: one verdict channel: seventeen gates decide in a file, no driver reads prose (c39f413e)
- parts: hand-fit purchase routes, and the four gates that never bit (f65a15d1)
- parts: the PowerPAK SO-8 land takes one part, the CSD19532Q5B (owner ruling 11 Sep) (1c5ecaea)
- tools: jlc_certify.py, every part on the shipped BOMs checked against JLCPCB with a date (a8d87b0b)
- vendor: seven of the fifteen open picks researched, with the manufacturer’s document for each (81b1094e)
- tools: currency as a dated check, and the two places status was declared now have to agree (ae5887e3)
- vendor: the five drawings that search could not reach now have OCR sidecars (9fb2df70)
- vendor: every document now records where it came from and what revision it claims (695b2886)
- vendor: PARTS.md, everything V2 uses enumerated from three sources that must agree (ed8972a4)
- tools: the parts this design builds with against the documents we hold, and the geometry of every vendor model (e0e6f7bc)
- tools: a datasheet knowledge base over v2/vendor/, advisory only and off every verdict path (f2c57312)
- tools: the inner-layer pair geometry is per class, because only the 90 ohm class misses there (9a063a5d)
- tools: a pair takes the width its layer needs, because an inner layer is a stripline (933b5335)
- tools: every benchmark row records the KiCad build, the Python version and the core count (dc379d38)
- tools: the impedance gate carries the 2D field solver’s numbers and says where each one came from (5613fe11)
- tools: route with our 1.9.0 build by default, its output proved identical to stock (b4e8c075)
- tools: patch Freerouting 1.9.0 to write its session after every pass, and pass it from route_one (a61b82b3)
- tools: the engine carries the project name and seeds its uuids from it, so a board regenerates byte for byte (8608443e)
- tools: kisch, the schematic engine in one module with a strict ic() and deterministic uuids; the P board is the first to import it (e0dfca83)
- tools: a run gets its own immutable directory with provenance, and a deliverable is promoted only after it reads back (d8b32e1c)
- tools: a pair with no corridor at all is searched again with a slim one: a 2.54 mm header leaves 0.94 mm and the corridor asks 1.02 (cdb42f90)
- tools: the negotiator keeps every iteration’s plan, not only its own pick (eb5b69bc)
- tools: negotiated-congestion pre-routing: pairs price the shared cells instead of fighting for them (8cc909d0)
- tools: multi-pass pre-routing, the pairs that failed go first next time and the best pass wins (fbeb0f70)
- tools: the A placement’s fine-pitch margin is a knob too (6875932d)
- tools: the pre-router’s corridor search box is a measured knob (59e991d8)
- tools: the room the B placement leaves around a fine-pitch part is a measured knob (0bd9f070)
- tools: the pre-router’s corridor slack over its legs is a measured knob (8cdc26d8)
- tools: a rip-up episode is a trial, kept only when it leaves more pairs laid than it found (2bb52452)
- tools: pre-router debug: name the copper a leg hits, not just the point (adbaa62b)
- tools: pre-router: PAIR_ENTRY_VIA ends a leg at an IC’s escape via instead of stripping the escape and entering the pad (80cdf3af)
- tools: pre-router rip-up and retry: a failed pair takes the laid pairs out of its corridor and is laid again first (0c3e1e62)
- tools: the partition’s regions can be routed one at a time, each locking the last (3a5d11f7)
- tools: an optional coarser grid for the long pairs, off until it is measured (0536d21e)
- tools: the pair pre-router lays the corridor as found when no smoothing clears (50c47172)
- tools: pair_report.py, who blocked which pair and where, counted (a68c5dee)
- tools: B19, the phase that carries the I/O high-availability layer, with its chain, finish and probe profile (75509de6)
- ecad: the mesh radio is duplicated on slot 3 and the two cards share the antennas through a voted changeover (578d4e5b)
- tools: the B gate checks the I/O ownership invariants, the safe states and the bearer spread (d3448227)
- sch: the I/O control plane, three STM32H753 supervisors on two CAN-FD fabrics with 2-of-3 majority voters (6fa91e6e)
- tools: the host-selection switches take their place beside the hub they feed (1136221d)
- sch: the per-bank USB host-selection fabric, TMUXHS4212 and TS3USB221A, with the ring and its safe state (9c07ccab)
- cad: the face section drawing, and the render stack follows B16 down (65a7261f)
- tools: a corridor that cannot be found says why: the search never began, the node budget ran out, or the map has no path (9dff6c90)
- ecad: P3 released, the pack BMS with the decoupling floor plan; 0 hard, 0 unrouted, 36 of 36 deliverable properties (2b23c304)
- tools: a pair stub may join any point of its own net’s escape, not only the via it aimed at (1735affb)
- tools: the pre-router lays the long pairs first; alphabetical order decided which pair got the room (c708e3d0)
- ecad: the whole set moves to A24 B18 C9 D10 E7 P3 with the decoupling floor-plan pass (cf21ae83)
- tools: the decoupling floor-plan pass in all six placement generators, and the second pass wired into every chain (86a49e44)
- tools: declared decoupling takes its slot beside the pin before the packer fills the regions; wired into the D generator first (e09e4039)
- tools: the E board declares its decoupling as data, thirteen entries including the buck’s input loop (b29a12a3)
- tools: the B placement packs each differential pair’s two series parts as a couple, pads across the pair axis, read from the netlist (2fa568a2)
- tools: the C board declares its decoupling as data, so the loop gate measures fifteen entries instead of none (f0160da3)
- tools: a profile may cap the optimiser passes; the panel board’s auto-route finishes in 14 minutes and the two default passes then ran past every limit (d8857ea4)
- tools: the compute board declares thirty decoupling assignments, validated through the generator (335f26e5)
- tools: the copper checks join the D and C gates, where they find a pour eaten to islands; a fill piece under 5 mm2 is a crumb, reported and not counted as a loose island (a904bb55)
- tools: the power board declares thirty decoupling assignments; every board carries the written reason its distances stand until the floor plan is ruled on (d2de3e7b)
- tools: the power board’s converter blocks declare which capacitor serves which supply pin, where the block is built (2822cc1d)
- release: D9, the VHF mezzanine, clean under the full gate set: 0 hard of 15 types, 0 unrouted, +5V drop 1.78 percent, three pairs at 89 ohm against a 90 target and one too short to judge, contracts pass, deliverable verified on all 35 properties (f91c316d)
- tools: stitch a pour island that has no via of its own net, accepted per via; D9’s front ground pour had eleven, one of 222 mm2 (aef37faa)
- tools: the pad-to-plane closure tries a via in the pad then a dogbone past its tip, keeping the first that closes without cost (cd887041)
- tools: the placement audit separates a pruned escape whose pad pre-laid copper already reaches from one that leaves the pad bare; on B17 only 8 of 84 were served (721239da)
- tools: a decoupling distance may be accepted only through the board’s own bypass-allow.txt with a reason, the erc-allow idiom; the D board records why its sixteen stand (eddb2d0f)
- tools: a pass that moves a declared decoupling capacitor to the first free spot within 3 mm of the pin it serves, reporting what cannot reach (ee747ab8)
- tools: the D board declares which capacitor serves which supply pin, so the decoupling gate of Stage C finally has something to measure (02cfb13f)
- tools: a 2D field solver for differential impedance beside the closed forms, the second opinion the record owes; openEMS is not packaged for the box and atlc is (a496acd9)
- tools: long fine-pitch rows escape by depth stagger instead of splay, so an M.2 socket’s 37 pads no longer throw their end pins 5 mm into the neighbours; B17’s five sockets go from 10 to 13 unescaped pads each to none and its placement gate passes (8d0e55f5)
- tools: a pad its own plane cannot reach after the route gets a via in the pad, reverted if the hard count rises; in every finish of the wave (ac8bb52b)
- ecad: EasyEDA Pro Gerber exports of the V2 set (A22, C7, D8, E6, E5, P2 and the unrouted B16 quote board), B16 introduction cleaned, notes on the stopped description clean-up (d4adfb37)
- tools: impedance judge: the pin fans within 3 mm of a pad are reported and not judged, up to 3 mm unreferenced is a note, a pair under 5 mm of judged length is SHORT (USB 2.0 rise time 500 ps, 75 mm of trace) (7e2fb8f0)
- ecad: EasyEDA Pro imports of the V2 set (A22, B16 quote-only, C7, D8, E6, E5, P2): import archives, epro2 and schematic PDF exports, views, per-board import notes and README; order log 5.2 (213f275d)
- tools: pair pre-router: a 0.4 mm receptacle row keeps its escapes and the escape via is the station (B17’s legs into the CM5 pads shorted their neighbours) (1026668e)
- tools: dc_drop names the disconnected pieces of a rail (layers, extent, source or loads) when a load is unreachable (4b93a1f0)
- tools: pair pre-router: a station with laid copper is never swapped, the P leg dives under the N fan where the fan still crosses (a through-hole pad takes it on the hop layer); D9 pull-downs beside the series row (c0f57c93)
- tools: the pair pre-router stubs every other pad of a pair net to the laid copper (Freerouting 1.9.0 does not hold a class to its layers); D9’s pulls beside their pairs on the top layer; appendix note (476e569e)
- pcb-p: P2 routed clean under the full gate set (0 hard, 0 open, three rails MET, contracts pass): the ground stitch grid on the underside pour, the 0.5 mm power class for the sense links, the intent’s current sinks; deliverable meshsat-pcb-p-revA-P2 (3fca6f15)
- tools: impedance-derived pair geometries per stack (four-layer USB 0.30/0.20 on F.Cu, six-layer USB 0.127/0.127 and DIFF100 0.127/0.20 on F.Cu and B.Cu) in the generators, profiles and chains; suffixed pairs in the pre-router; the stack written before every finish’s read-back; contracts read the newest netlist of a board’s copy directories (b0e24ae9)
- tools: B17 (the HDMI switches fixed at 16 mm pitch, the pair pre-router for the USB and DIFF100 pairs on F.Cu and B.Cu in the chain), its finish and profile; the P2 stitch grid keeps clear of the bands and rule areas (b7067720)
- tools: C8 (1.0 mm rail class, the pair pre-router in the chain, a 3 percent budget for the panel 5 V) and P2 (a locked ground stitch grid on the underside pour, the two-layer coverage floor), their finishes and profiles (0e41f1ee)
- tools: pair pre-router lays D9’s four USB pairs with 0 hard on the pre-route board (entry runs as runs of their own, same-layer runs merged before the offset, fans swap crossing passives, direct legs between adjacent stations, a via in a middle pin’s pad); D9 port-2 resistors in line with the bridge; the A23 finish and routeflow profile (5c2f737c)
- tools: A23 bands as single polygons per net and layer, rail pads joined solid, the intent names the real current sinks and per-rail budgets; pair pre-router: entry stations (straight and fan entries, stripped escapes, via in a middle pin’s pad), exact hop starts, walked-back via pairs, Douglas-Peucker smoothing, twist by the pad pairs’ normals; D9 series resistors face the hub (4d0ecfb2)
- tools: D9 USB cluster on the top layer (hub, bridge, ESD, codec, crystals, every pair’s series resistors side by side beside their pins); the pair pre-router in the D chain; pull resistors are stubs, same-part sections skipped, via map on every layer, no blind straight stubs, crossing ends via beside the pad (af1c95b0)
- tools: A23 power copper (rule 3): shunts and monitors in their rail columns, converters south of the inductors, islands, bottom bands with keep-outs and stitch vias for the slot rails, PA, VIN_RAW (In3 dive under the VBAT trunk) and VBAT; power_copper.py; the gate tests every footprint against the nut keep-outs; the Stage E1 jitter rows (5a0a3686)
- tools: pair pre-router: pad-layer anchors, free via sites for the end stubs, per-end crossings, laid pieces as obstacles, station report; appendix 32.68 with the rule 1 and rule 2 numbers on D8 (dd23e8d8)
- release: order set rebuilt for A22, C7, D8, E6, P1, E5 plus a QUOTE-ONLY B16 line from the placed pre-route board, for the JLCPCB sponsorship quote (0eab183a)
- tools: rule 3, the power-copper pattern of A21 as a shared module for the placement generators (bands with keep-outs, islands, spines, stitch vias, IPC-2221 widths) (1f92e5f0)
- tools: rule 2, a per-class layer rule in the DSN (FR_LAYER_RULES, routeflow layer_rules, the profiles); rule 1 in progress: pair_preroute.py lays a pair’s legs as locked copper on a smoothed centreline with stations, twists detected (47fc2eb7)
- tools: the intent layer and the electrical verdicts (Stage C), the measured placement predictor (Stage D), the learned-critic data tools (Stage E) (ce034a1b)
- tools: partition jobs confined to their region by keep-outs, strict net assignment (4a227cd5)
- tools: partition reconcile: rip the boundary conflicts, close with the stub router (92daea6b)
- tools: partition stage two: lock the global session, route the regions concurrently, merge by net (3a81e350)
- tools: net-partition routing: DSN class rewrite per region, one-group Freerouting job, DSN export of a locked board (7acf3e03)
- tools: cont_route keeps the plane nets and power layers and reads FR_OIT (1a43be80)
- release: E5 rebuilt from the final A22 routed clean on the box, deliverable meshsat-pcb-e5-revA-E5 (59ac4b97)
- release: A22 (six layers, run 12 with the hand closures) routed clean on the box, deliverable meshsat-pcb-a-revA-A22 (ac4afd7a)
- tools: hand_route.py (locked waypoint tracks with vias, DRC-tested on a copy); appendix: the A22 run 12 closures (3cc20eb1)
- release: P1 (the pack BMS board) routed clean on the box, deliverable meshsat-pcb-p-revA-P1 (693ca70f)
- cad: pack_4s.py, the built 4S pack’s printed enclosure for the east pocket (56 x 236 x 46, cell block pocket, the P1 board bay, lid) (f9f54234)
- pcb-p: P1 pack BMS board generators (BQ4050 SMBus gauge and protection for the built 4S pack, 70 x 44, 2 oz, the power path in locked bands), chain, finish and routeflow profile; the BQ4050 sheet filed (85222f77)
- release: C7 (the panel backer ring) routed clean on the box, deliverable meshsat-pcb-c-revA-C7 (67013ac0)
- tools: fix_c7_u3.py, the hand closure of the RP2040’s IOVDD pad inside the QFN ring on the C7 route (87dbada5)
- pcb-a: run 11 placement: INA226 row at 12 mm pitch, the front-end FETs beside their controller, wider support regions, 250 router passes (46a5056c)
- tools: unknot.py removes the router’s two-net tangle before the stub router; wired into the A22, C7 and B16 finishes (c954e3f6)
- pcb-a: A22 on the six-layer stack (In1 and In4 solid ground, In2 and In3 routable), title block fixed; vendor rows marked previous generation (d1ad7e12)
- render: the QMX HF unit in its lid tray over the right strip, a lid-inside view (73ca6ffc)
- render: scene for the MESHSAT-830 set (A22, D8 at the mezzanine site, B16 with three CM5 sites and the M.2 cards, C7 ring, Xenarc on the plate, PA flange, headset jacks, camera, eleven blind-mate paths) (f32b871a)
- ecad: E6 routed clean and released (dock strip with the sensor controller, In2 power planes, the pack cable on J_BATT pin 2) (abfca33e)
- ecad: stub router closes at the project’s class width with a scalable search window; A22 run 8 narrows the power classes and moves the support parts under the mezzanine (9b04997b)
- cad: face plate v2 files and drawing for the C7 face, the QMX lid bracket, the D8 handoff row (613f267a)
- cad: face plate v2 for the C7 face (Xenarc block cutout and VESA holes, headset jacks, camera window, light guide, PA nuts), the wall template from panel1450’s jack lists, E6 pack connector pin order (463007f0)
- ecad: D8 routed clean and released (SA868 exciter, T/R relay, LPF, USB audio and control set), C7 generators (backer ring, RP2040 panel controller, PDi e-paper driver, Xenarc face, headset jacks), per-closure stub acceptance, plane-net fanout fixes (0a814043)
- ecad: D8 generators (SA868 exciter, T/R relay and LPF, USB audio and control set), E6 round-4 changes (In2 power planes, 0.4 mm escapes for the RP2040, fanout search widened), B16 placement duplicate fix and reference guard, escape pruning (dcd9f9a4)
- ecad: B16 generators (three CM5 slots, PCIe and USB 3 fabric, Ethernet and HDMI switches, radios), A22 PowerPAK pin map and net-class fixes, E6 route relief, appendix 32.59 (c394842f)
- tools: the Stage 4 gate is graded on the plain rows of each board’s newest pre-route; tables carry the pre-route hash (5fd49b2c)
- tools: C6 keep-out board on 1.9.0 plainly, beside the stalling 2.4.1 production route (d70fe5a3)
- tools: plain experiment configurations (no settings block, the production route) for the Stage 4 A/B on every board (3d22e641)
- pcb-c: C6, the four-layer backer routed clean (0 hard, 0 open, 240 router vias); deliverable meshsat-pcb-c-revA-C6; order and review sets rebuilt with B15 and C6, B14 and C5 under superseded (052a4d24)
- tools: C6 four-layer experiment adds the 2.4.1 rows without the power layer (the VM’s clean configuration) (3f58b75c)
- tools: fr_rules
--onlyto isolate which settings item costs the design’s clearances; B15 isolation experiment (58356eba) - pcb-b: B15, the six-layer compute carrier routed clean under routeflow on Freerouting 1.9.0 (0 hard, 0 open, 294 router vias); deliverable meshsat-pcb-b-revA-B15 (12b2e99a)
- tools: C6 production profile routes on 1.9.0 with the In1 plane (Stage 4 rule: 2.4.1 did not complete) (2ca33fb6)
- tools: C6 four-layer experiment file (ca9e32c9)
- pcb-c: C6 backer on four layers with a solid In1 ground plane; planes stay in the DSN for the router (FR_PLANE_NETS); B15 plane probe experiment (d0b7f14b)
- tools: B15 routeflow profile on Freerouting 1.9.0 as the fallback behind the 2.4.1 run (d2f4fc54)
- tools: bench_report grades the Stage 4 gate per board and overall from the rows (f2276e74)
- tools: experiment finish as production (stub router, raw counts, re-finish from the kept session); pairs judged against the baseline; report from the latest row per key with recomputed verdicts (fccec297)
- tools: routeflow experiments run N configurations at once with their own lock and timeout scale; vast.ai setup and driver; S1 and A/B files for A21, B14, B15 and C6 (8ff042f2)
- tools: 2.x fanout pre-pass off by default (FR_FANOUT), a fanout-on variant in the A/B (65da7424)
- tools: routeflow profiles route on Freerouting 2.4.1; no -drc in the route command (2.4.1 makes it a DRC-only job) (8242c645)
- tools: FR_JAR drives Freerouting 2.4.1 beside 1.9.0 on the same DSN; the Stage 4 A/B experiments for A21, B15, C5, D7, E4 (6993e1ee)
- pcb-a: the pair report and the pair gate on PCB-A too (one USB pair over 1 mm on A21) (8377ae3f)
- tools: routeflow routes with rules-file knobs and remedies opens with a via-cost change before more passes (ac57e1ef)
- tools: stub router routes on any set of copper layers (STUB_LAYERS); B15’s finish gives it In2 and In3 (db860e2f)
- tools: quality pass in the B15 and A21 finishes (f721fbda)
- tools: the finishes run the DRC-gated quality pass after the clean-up (aa011987)
- tools: via_merge pass with counters; the record notes it finds no removable excursions on B14 (c282b9b5)
- tools: routeflow experiment mode (rules-file knobs, resumable, journaled), bench_report, the S1 sweeps for D7 and E4 (a3a219d7)
- tools: straighten pass with its DRC-gated wrapper, the probe results (rules-file via costs are the lever), fr_rules and FR_RULES in the route (d73cbdbf)
- tools: the quality programme’s instruments: route_metrics, bench_compare, strip_route, bench_baseline, fr_probe; routeflow quality stage (67da3adb)
- tools: join_adjacent_pins joins neighbouring same-net pads before the route (B15’s recurring opens); route_audit region crop (83b0e693)
- tools: routeflow, the fail-closed supervisor around the board chains and Freerouting, with its methodology audit (c6eeb515)
- tools: FR_TIMEOUT sets the Freerouting time limit per attempt (six-layer boards need more than 75 min) (48894140)
- tools: FR_POWER_LAYERS hands plane layers to Freerouting as power layers instead of board-wide keep-outs (0869406c)
- tools: route_audit.py, the audit image of a routed board with its open ends for the self-audit ruling (a792c894)
- render: the Peli 1450 scene from Peli’s 1451-931 bodies, the face plate and backer, the battery row, nine antennas, cables, rulers and the 44-view set (c8351c1b)
- pcb-c: C6, the U-shaped backer board under the aluminium face plate: generators, footprints with body slots, the gate with the stack height rule, chain and finish (9f5d9e5b)
- cad: the 1450 face layout (panel1450.py) and the aluminium face plate model, DXF and marking (76113fd2)
- case: 1450 wall templates (upright plate, nine bulkheads at Z 88) and the battery row model; B15 six-layer generators, gate and finish (f257058e)
- cad: stack height map of the A21/B14/D7 stack on a 5 mm grid, from the scene (3104a000)
- tools: stack height map from the render scene’s bounding boxes, for the C6 gate (62fa0cf3)
- pcb-b: In1 is a solid ground plane (board-wide track keep-out, vias allowed); the B14 finish retitles before the export (606ee573)
- tools: pair mismatch as a hard gate with automatic meanders and an audit image per pair; appendix 32.40 rulings (edc666f8)
- tools: meander on segments of any angle, split across segments, with a B14 length-matching runner (676dfaa6)
- tools: post-route trombone meander for the short leg of a pair (17227138)
- pcb-b: B14 routed and finished, the M.2 WiFi P2P socket on the CM5 PCIe lane (4be43a4c)
- pcb-a: A21, PCB-A re-routed with the net classes applied: rail islands and bottom bands, boost feeds on In2 and B.Cu, 0.6 mm cell-node links, USB pairs 0.2/0.15 (ee2538ca)
- pcb-d: D7 routed and finished for the DMR858M V1.0 board (6b5db948)
- pcb-d: D7 routed and finished for the DMR858M V1.0 board (cf1a7a57)
- tools: continuation route for a routed board with a few opens, wired into the A21 finish (ff0df8bd)
- pcb-a: the A gate checks pattern coverage and reads the rail widths back after the route (611c94e3)
- pcb-d: D7 content checks in the gate; PANEL.md control path and I2C map; NXP SC16IS740 sheet filed (846f3723)
- pcb-b: B14 routed and finished, the M.2 WiFi P2P socket on the CM5 PCIe lane (93366537)
- pcb-d: D7 for the DMR858M V1.0 board: carrier detect and knob code read on a PCA9555 0x26, SC16IS740 UART bridge 0x48, mic divider 47k/1k, no jumpers or bench header; 38 mm spacers; docs (d60106de)
- pcb-b: PCIe intra-pair length report in the gate (post-route warning) (58755154)
- pcb-b: B14 generators: M.2 E-key socket on the CM5 PCIe lane for the AW7915-AED WiFi P2P card, its 3.3 V buck and monitor, the second east-wall site; docs (8d5246ba)
- pcb-d: D6 routed and finished at the 0.14 mm rule (36c15170)
- pcb-a,pcb-d: A20 and D6 routed and finished (fix round) (72bd92ff)
- pcb-a,pcb-d: A20 and D6 routed and finished on the laptop (423e3761)
- pcb-b: B13 routed and finished on the laptop (36b42dc3)
- ecad: A20 and D6 generators (hub and dongle channels out, WM8960 codec on I2S, J_AB1 2x9, Q5 corrected), B13 chain fixes, 0.4 mm connector escapes, contract check extended (e145b2e2)
- pcb-b: B13 Compute Module 5 carrier: generators, receptacle and module footprints, CM5 research and vendor sheets, appendix 32.35 and 32.36 (b0caa741)
- ecad: PCB-C C5 finished, the sealed face (0 hard, 0 unrouted, 272 vias); die-cut seal outlines as DXF; case template with the seal parts named (0d277478)
- ecad: PCB-C C5 generators for the sealed face: keyed switch holes, underside lead lands and SMD connectors, seal bands and die-cut outlines, masked frame rings, panel sounder; seal parts research (085b0060)
- ecad: A19 rerouted on locked fine-pitch escapes (0 open, 0 hard), B12, E4 and E5 finished on real-net planes (e777fd38)
- case: the two external cables defined from Glenair sheets, USB receptacle ordered in the round-hole style (df43ed1b)
- module: RS PRO 245-556 heater mat under the cells, enclosure grown for it, research filed (2e1f336c)
- release: float nest model; C4 schematic PDF with the APEM lock texts, BOM untouched (27ca8a24)
- case: SMA bulkheads on the end walls (sheets 3 and 4), float nest model, second expander map and heating pad rule (1d7ebbe5)
- case: connector plate on the back wall per the Peli drawing; protection board ruling, section 32.31 (4721e67d)
- release: A19, B12, E4 and E5 deliverables, all 0 hard and 0 unrouted; battery module model (34967be8)
- cad: battery module enclosure, lid and floor cradle in build123d (a6ee837a)
- dock: strip 278 x 60, east end at X 118 to clear the battery module cradle (79cbea4b)
- case: wall receptacle plate and 1:1 cut-out template, appendix 32.29 (b8cedd32)
- dock: block board nets per contact, trimmed courtyards, strip power lands moved; battery module research filed (9e4a8b34)
- ecad: dock block board E5 generator; dock schematic layout fixed (0bbc5c68)
- release: PCB-B B12 routed clean (0 hard, 0 unrouted), no X1202, three rails from PCB-A, deliverable (0c14dee3)
- ecad: dock strip E4 generators: 285 x 60 four-layer strip, ideal-diode entry, LT8705A tracker, module entry and block lands, seven float clamps (bb975c30)
- tools: grid router takes its grid and node budget from the environment for long connections (f4f0a9d6)
- ecad: land patterns for the A19 parts from the data sheets (TPS61288 RQQ, BQ25792 RQM, SMP-MAX receptacle, Mill-Max 9 A pin and target) (c86a6ff3)
- ecad: A19 generators (charger, gauge, three rails, power control, pad switch, seven-port hub, blind-mate sites, dock block); B12 T-Beam header out of the panel corridor (7973c8b7)
- ecad: B12 generators, no X1202, three rail inputs, ribbon carries the shutdown request and kill; appendix 32.24 (514b1d16)
- release: A18 (dock holes 1.1 mm for the Preci-Dip 813 connector) and E3 (junction D-hole flat per the Amphenol 132170 drawing), C4 schematic with the switch part numbers, handoff rebuilt, A17 and E2 retired (a86eb7c8)
- ecad: A18 dock drills for the Preci-Dip 813 pins, E3 junction D-hole per the Amphenol 132170 drawing, panel switch part numbers, vendor documents (af7e397a)
- release: A17 and B11 deliverables, order and review sets rebuilt; A16 and B10 retired (8e014640)
- ecad: A17 hub supply, its decoupling and the PWR LED on the module-rail plane so the ribbon 5 V track stays out of the hub escapes (42014242)
- ecad: B11 region boxes for the SDR parts and the XIAO pigtail header; build guide and READMEs for A17/B11 (d7b188c3)
- ecad: A17/B11 pre-route fixes (panel header placed, spare-net test points, header east of the ZigBee slots, boost region), appendix section 32, assembly guide and panel contract for the module rail (a393a09b)
- ecad: A17 module rail (F3 + TPS61089 boost from the cell node, EN from the X1202 5 V sense) and B11 (real X1202 envelope from the Geekworm DXF, stack 10 mm west, GPIO header north, VH module-rail input) (4b8730f2)
Fixes
- records: the battery-FET screen and the row (c) breaker script read their page texts from the committed extractions, outputs byte-identical; the breaker script’s two figure reads pinned as one vector site; nine held sheets given their fetch route (93c1d946)
- records: set 32’s record cites the coordinator’s placeholder checker and list as they stood at its adoption, kept as .pre-swap1247 beside the swapped files (test_res32’s coordinator-file check) (ec36120f)
- l9t5: round 12, row (b)’s last corrections on its targeted recheck Q-183 (W167, Q-189): HO-D’s pass CONDITIONAL on E-17 read at the pass top 0.6819 A (82.5 C/W) wherever E-17 is stated, V-B23’s hold-off vector a short holding the rail under BOR, the contract’s HO-D band held to l4hod.out’s J4 by test (W163’s M3 and M4 fail), old-edge text restated, the change-list class noted, the hold-off across a peer’s own reset specified (3b6fee72)
- records: HO-E reads the limiter’s band on W159’s envelope (W167 on W163-N4): l9t5_hoe.out restated from 0.5704 A and 161.0 C to 0.5878 A and 163.5 C (H-3’s theta 14.82 C/W), from a filed copy of row (b)’s l4reg output at fnd/l4hod 23384006 (5f807248)
- records: L4A-59 HO-E on its targeted recheck (W150’s F1 to F6): C2 a pair with S1’s limits by local air (no loop limit from 78.81 C, no ending from 79.32 C), the loop’s rise on T10’s feedback 0.806 K (S1 3.05 K/W), the self-reset loop’s row S-m on S2 extended (R-4), the hold check on the LSI-clocked RTC at 12 ms, R812 not fitted reads FAIL (ten mutations), the clerical items (f23fac1e)
- records: L4A-59 HO-E, the reset loop’s hold made indifferent to S5: SESSION W148-1 a TPS3703F6050 hold stage per monitor (tD 14 ms minimum for any manual-reset pulse of 1 us), the loop’s duty 0.876 % on printed figures for any fault length, S5 retired, nine mutations FAIL (4ce2bbff)
- records: L4A-59 HO-E on its focused check, the RM0433 reset pages read off their page breaks (24 predicates); the CTR1 hold, the reset-loop row CONDITIONAL on S5, one supply corner and the FW-B23 draft stand as committed in ec50e420 (cc3446e0)
- l4canen: each page read names its options literally and test_l9t5_canmb reaches canmb’s reads, so test_pdftext_input’s walk resolves every extraction the new tests reach (c368e8e3)
- records: L4A-59 HO-E, H-1 also reads RM0433 Table 32 (no PWR pin selects a voltage scale), page and test restated (446850f6)
- records: L4A-59 HO-E, the NRST fall bounded at every corner of the rail and pull-ups (157.4 us, t_resp 174.7 us), the reset flag and VOSRDY quoted with their pages, finding W140-F6 (e81d18bf)
- l9t5: buffer each supervisor TXD before its two peer readers and hold it recessive in reset, so one faulty reader cannot get a resetting peer voted off (L4A-54, not applied) (eeb7d833)
- records: record l4e11 round FET reads two more Infineon sheets (IPD042P03L3 G, BSO301SP H; 18 parts) and states the class bound’s one limit (IPD042P03L3 G under it on its 25 C bound, its own die over 5 nF) (9ef7891f)
- records: record l4k names L9T5-F28 only beside L9T5-F26 (test_w9l9t5’s identifier scan: a line naming both describes the rename), in the assessment’s section 11 and apply_l4k_remeng.py (f707c0d8)
- tests: test_l3r5.py restored to its reviewed content (W110’s N3: l3amlib.AMENDMENT_FILES binds it byte for byte at the reviewed revision f1d8d840, so test_l3am refused set 32’s tree); test_pdftext_input’s census takes its direct read as KNOWN_DIRECT and its site floor 41 -> 40 (0e077fc2)
- records: the PDF text reads the tests make, declared and checked (W66’s full dry run stopped at test_l8p.py:665 on TDK’s undeclared held sheet): inventory section 9 with the census of every test module, the helper header’s declaration-only class, the reflowed declaration modules; test_pdftext_input 19 passed, test_public_hygiene 4 (9c50ac02)
- records: l4e7_p0sol’s 0a on W70’s recheck (R-2 to R-5, outside the l4e7 KEY): the sentence claims only what its parts cover (the definitions compute() reaches, a difference outside the sixteen numbers the record reads), one accepted state (the unreachable file-alone acceptance and its sentence removed), a key field that is not the key of the cache’s parts refuses, moved numbers printed as repr; four fixture tests fail at 9704c68b and pass, W67’s test restated (b14feff4)
- records: l4e7_p0sol’s 0a states only what the KEY check and the results cache’s own fields show (its parts’ Python and pdftotext, the evidence’s sha256 of l4e11_power.out), no typed history of the re-key (W64’s F-1); a move of the part l4e11_numbers alone refuses naming the part and the moved numbers, every other stale state names its parts plainly; fixture test in test_l4e7 fails before and passes after; l4e7_p0sol.out not regenerated (needs the re-keyed cache) (920bc0b2)
- records: l4e7’s L4-E11 extractor matches with re.ASCII (W64’s F-4): a fullwidth or other Unicode digit in a consumed number refuses as malformed instead of being read as its ASCII look-alike; test_l4e7_cachekey t_g fails before and passes after (488cb4b8)
- records: the l4e7 results cache KEY holds the sixteen numbers it reads of l4e11_power.out (part l4e11_numbers, a strict extractor that refuses a missing, duplicated, unparsable or malformed value) in place of the file’s whole digest, kept as evidence beside the KEY; six solver-free tests; base 5ddc7513, re-key owed at adoption (19c253b6)
- records: the PDF text conversion gap closed for set 32: the inventory records l8p_c4’s undeclared read (W53’s finding), the correction, every converted generator and reader run once to scratch with pdftotext and pdftocairo refused (exit 0 and no call of their own; l4e13 and ripple_dense reach the l4e7 KEY group, l4e9 and l4e11 pdftocairo at the pinned sites) and the static declaration check; test_pdftext_input 16 passed, public hygiene 4 (20b4096b)
- records: l8p_c4.py declares and reads its three makers’ texts through the helper with its own PDFTEXT table (the BZT52C read was in no table and refused on this branch, W53’s finding; the texts are the committed BZT52C and 2N7002 extractions and the held-back LM26LV one, the re-take UNCHANGED); with pdftotext and pdftocairo refused it exits 0 with no call, its output the committed one plus three text lines and two moved source pins (21a60739)
- records: NOT CLOSED attributed to its check at set 32’s remaining sites (cx45 ‘P0-3: NOT CONFIRMED’ and ‘P0-5: NOT CONFIRMED’, cx46’s items 5 to 8 and 9 to 10 ‘NOT CLOSED’): test_l8p’s and test_l9t5’s pins restated with their basis and the old words refused, test_recpack’s anchor at 68d3cef0 kept with its basis; outputs left for set 32’s chain (11253158)
- records: the makers’ PDF text as a committed verbatim input: 25 record generators read it through v2/docs/records/_lib/pdftext.py instead of running pdftotext (l4e8’s own pages last), the inventory’s final classification and the set 32 adoption steps, test_pdftext_input over 25 generators, 6 passed (5ac05567)
- tools: tests/run.py records a test’s or a module’s SystemExit as FAIL and keeps running; candidate_guard record refuses an evidence list with no board gate output unless
--no-board-evidencegives the reason (7cb63a80) - handover: the pack specification classifies the compact kit’s folder (MESHSAT-1500, main 9d0aeb1b and ed80d604): excluded by kind as another product line’s package, so every file of the tree is classified again (test_handover_pack read 46 unclassified files on the box); set 30’s candidate (37e89c47)
- records: record l6r2’s together composition names each draft once: board D’s ptt draft sits in STANDALONE and, since R-239, in the change list’s chain, so it was applied twice and the commutation read refused for a draft that commutes (W16’s review of 2b, finding 1); the output regenerated (that one row now commutes with the three drafts), with the regression test (56553780)
- test-procedures: tp_check.out regenerated through regen_out on the re-quoted procedures (ALL PASS, 122 quotes; replaced, then already identical); run.py test_test_procedures. test_public_hygiene.: 18 passed, 0 failed, 0 skipped (5c4dfd12)
- test-procedures: TP-E11-29’s two quotes re-taken on set 31’s cells (5d E11-29 Specimen, R-159 Acceptance), byte for byte as fnd/w3annex 686de0a2 wraps them, with the fixture anchor of test_test_procedures taken from the same commit; quotes only, the stale status lines noted beside them (5d8470ef)
- test-procedures: TP-E11-37, TP-SOLAR and the README re-quoted on the set 30 candidate’s cells (5d E11-37 What transfers, L4-E11 E11-37 Acceptance, 5d P1-1 Acceptance, R-189 Acceptance, the verdict rule’s text quote); quotes only, each changed basis noted beside its quote (58fc5a3f)
- l5pwr: S27-B6 reads L4-E9’s D-10 as set 31 left it (an unresolved protection defect, E-1 with F1 to F4, U5 corrected in draft by R-240; set 28’s sentence no longer printed), S27-03’s trigger names R-186 withdrawn, the two applied contract scripts read Layer 4 at 8ecd72ce, finding L5-F14 for the contracts’ lag, output regenerated through regen_out, a regression test both ways (cf05b7d2)
- records: the connected P0 candidate after cx45 with every merge of the round: Slot C’s containment composed on board B (18 drafts, 1515 parts), L9T5-F22’s chain on the sense resistors at the hardware bound (+0.1311 V as drawn, Slot C’s figure reproduced), L9T5-D9 restated and standing, the CAN service on FW-B22, the return re-solved with the loads behind series elements; outputs regenerated twice, the second pass identical (38b9dfe6)
- l9t5: cx45 Q3: the supervisors contained by hardware no firmware sets (a transmit-share limiter per transceiver, a rail trip per supervisor; apply_gen_sch_b_iocguard.py composed and mutated), the quorum’s schedule FW-B22, the surviving quorum per fault, the other supervisors’ headroom, the thermal envelope on the held trip current with its qualification limits, every row on revision V and 14.0k (rev X held, L9T5-D5 withdrawn, L9T5-D8 superseded); the GPIO-toggled TX pin and the latent stuck comparators handed over (527aad74)
- l8p: cx45 Q5: the guard’s common path survived by a second, separate path (U62 on VBAT through U63, its shunt Q61 on DOCK_EN_OUT; the window untouched), C-PROT rev 1 met on the desk by its author, composed and mutated; the double failure after a latent first one handed over as remaining engineering (L8P-R9-F1); L4-E11 section 28 restates 20c and 20f on the delta’s draw and capacitors (51718239)
- records: P0-7 after cx45 Q6 and the owner’s part 24: route B2’s cold-connection guarantee withdrawn (no selected sequenced connector, time leads not distances, BST kept charged from the back-fed VS, bounce unbounded, the enable path not simulated), the presence pair’s faults solved and tabled (P2 and P3 put INP over its absolute maximum, an OPEN defect of the B2 draft), no protection credit, and no baseline row depends on B2 (86df3ffd)
- l4e11: section 27a’s restated line carries its class again (RECORD, record l8p’s 10b figure), so test_l4e11’s every-figure-has-a-class reading passes; l4e11_power.out regenerated (c1d3ffcf)
- records: P0-7’s S1 rewrite merged: L4-E9’s D-10 row restated in the change-list draft as an unresolved protection defect in the present model (E-1), D-16 corrected in draft, route B2 a partial unapproved proposal that does not resolve D-10; the connected output re-read (0cecfa50)
- l8p: part 22 item A: V6-m7’s three failures stated in full (no requirement permits a latent state, the interval unbounded, the FETs over 150 C from 20.53 A held), L8P-D9 withdrawn, and the fail-safe delta drafted (cold clamp on the open drains, a second switch ORed, R262 22k, U61’s input split), C-PROT rev 1 met on the desk, composed and seven mutations failing; L4-E11 re-pins l8p_c4.out (996b5be0)
- records: the connected candidate after Slot C’s part 22 and P0-7: R602 14.0 k taken over the connected circuit (SESSION L9T5-D9: the babbling state 121.5 C on revision V, the LDO input +0.0352 V at the largest computed current, 13.8 k rejected), board E composed with route B2 as an unapproved partial proposal, P0-7’s change-list rows R-240 and R-241 applied (L4-E9’s list refused the tree without them), D-10 stated as an unresolved protection defect (0e4b5124)
- records: P0-7, l4e7_p0sol.out pins route B2’s draft among its inputs, regenerated through regen_out (the only change against ae2cdded) (d9fef8eb)
- l9t5: T10 part 22: the criterion per state (125 C for every sustained state), the babbling supervisor FAILED 125 C on rev V and is bounded by the drafted set point delta (R602 14.0k, apply_gen_sch_?_iocset.py, composed and mutated, T10-A3 restated), revision V made the model’s case selection with the Layer 6 and Layer 12 rows drafted (7b9b270c)
- records: P0-7, the 100 W bound and check (b) re-run with U23’s VIN+ currents (93.5783 W, 1.052 ms), A7’s possible sink bounded (the accepted margin reached only at 3.67 uA), the supplier’s S3 limits from -0.5 to +1.0 uA (17926a0e)
- records: P0-2, the return of record l8r2 on C-DEV rev 2: V6-B1 PROVISIONAL on a plane-copper layout condition (L8R2-F33a; the declared bound’s printed row and the least rows stay OPEN), V6-B2’s census bounded with vendor tasks, V6-m1 auto mode, m8 and m12 recorded; Slot C’s outputs re-pinned (e49821b1)
- l8p: round 9 re-takes record l8p’s copy of L4-E11 at its round 17 (67074926 on this branch; only the charger draft changed since round 13), so test_l8p passes on the composed candidate; L4-E11 re-pins l8p_c4.out; test_l9stk’s two output tests read red on l4e11_power.out’s digest line only, the coordinator’s re-pin (0e7b168c)
- records: P0-1 1c, F01 / D-17 PROVISIONAL: the PA drain-current cap drafted on boards A and D (round 2b: BIAS on PA_OUT, 1 mA preload, the set point held and ramped from OUTLET_OK, integrator 0.1 ms, board D’s bleed 470 Ohm), composed with every pending draft in L4-E9’s order, read DRAWN on both boards, 11 of 11 mutations fail, C-ALLTX rev 3 at 15.1307 V on the MODEL; cx44’s ten findings disposed of one by one (part 21); L9P-F04, the PA rail rows and board D’s loop PROVISIONAL; Slot C’s T10 outputs re-pinned (digest lines only) (24ae3db4)
- l4e11: round 17, the check V6’s V6-m2: DD-7’s netlist check restated for record l8p’s thermal guard (the loop’s element RT1 or the guard’s pair, never both, never neither), 20c and 20f restated with the guard’s pulled level, its 30 uA and C261 (out 27), test_l4e11 composes the guard and three mutations fail (67074926)
- l9t5: T10 round 5 answers the owner’s four questions of part 21: every junction at the LDO’s worst drop corner (rev V’s rows hold with 14 K or more, rev Y’s cover misses 125 C, so SESSION L9T5-D7 fits rev V and a rev X part waits on V-B20 at 0.2318 A), the CAN service budget under the share (rates now 500 kbit/s to 1 Mbit/s), what enforces each response and the firmware as the faulting party, the drafts and C-DEV rev 2 read against the output; L9T5-F22’s set point offered (6dba9fd0)
- efuse: round 2 after the check V6: the full P0 composition (board B regenerates whole), board A’s U23 a defect by EF-F01’s rule with its 511 R draft (EF-F03), the downstream ratings at the inside air PROVISIONAL with the supplier’s task, the RockBLOCK’s charge pads as a drafted build condition (5e65f452)
- l9t5: T10 round 5 from base bb3422a5: the fabric faults traced to CON-004 (V6-B3), FW-B20 and FW-B21 drafted, each transceiver’s SHDN drafted and composed, the bounded state with its peripherals and every credible bus fault re-solved; F13, F16, F17 drafted, still OPEN (04ad322b)
- records: record efuse reads the makers’ dashes and minus signs as hyphens, so no en dash or minus sign is written into its script, output or test (da8ac61c)
- records: record efuse counts J_LIME’s two printed 30 mOhm contacts in the LimeSDR’s constant-power demand (0.9534 A, EF-F01’s margin +0.118 A), adds the TPS4811 short-circuit trip as an inferred line and the TPS2595 variant note (574734ef)
- records: l9t5 round 4, parts 0 and 1, after the recheck V3 (NOT CONFIRMED): record l8r2’s gndrtn in both orders; the connected path read at record l8r2’s worst vertex (NOT MET as drawn, 10.6376 and 12.0918 A against the VH’s 10 A; CONDITIONAL with its unchecked return, at most 4.9277 A), the claim of no dependence on L8R2-F31 withdrawn; the AP2112K’s requirement with its regulation terms (3.7674 V, 0.9417 V of ground shift allowed); the enable relation stated as connectivity, sequencing an unverified bench item; the BQ4050’s offset drift in the gauge’s bound (0.8036 A, 16.0718 V); the case script and the budget’s 7b labelled and pinned to rev 3; I-03 OPEN, credited with U7’s load relief and the compositions only; test_l9t5 20, test_l9pwr 13, test_public_hygiene 4 passed (044cd38e)
- records: l9t5 round 3 for T5: board B’s half of I-03 composed with record l8r2’s fandec and gndret (DRAWN, two mutations fail, the tree before T5b still stops) and judged on C-DEV rev 1 (the LDOs’ input 4.6580 V against 3.749 V, the lead’s pins within the VH’s 10 A in l8r2’s rows), L8R2-F31 OPEN beside it; L8R2-F35 answered: the return sentence withdrawn for pin 2, the lead named 16 AWG at 150 mm, the device lead’s peak declared from its basis (6.0359 A where a typed 6.0 A stood; board A’s rail 6.9501 A; +5V_IOC 1.4749 A) and held to it by decl(); the claim table for V3; test_l9t5 16 passed (2e5c64d0)
- records: l8r2 round 7 (T5b): the gndret draft’s comment states the upper bound’s relation to Layer 9’s budget as it is (inside it with the I-03 draft composed; without it the device lead’s own declaration is under its case); output regenerated (7e4e9d3e)
- records: l8r2 round 7 (T5b, RSM-01): board B’s ground return reconciled: the declaration derived from the leads it returns (13.30 A typical, 26.40 A peak as an upper bound, 27.78 A with Layer 9’s I-03 draft; the PoE return and J_54V added) and the cooler step-ups’ decoupling class row, two release-guarded drafts; board B’s composition runs to its end in four orders, the netlist and intent check with eight mutations; the return path itself short on the makers’ printed contact maxima (five lead contacts and seventeen ribbon conductors in parallel), L8R2-F31 OPEN, a dedicated return selected as the direction and not drafted; test_l8r2 31 passed (87b79b4a)
- records: l9pwr round 4 for T5: PS-ALLTX carries the standby card off (C1, REQ-018 and CONOPS 4a; the raw HIGH row 276.373 to 265.274 W) and out 7b computes C-ALLTX rev 2 from its text at the case’s own VBAT: 241.039 W, needs 15.5162 V at 18 A, deficit +0.292 W (the row’s quoted 16.214 V is D-11’s basis, which keeps the non-transmit loads at HIGH) (6b87a46e)
- records: finding F-L7-12 corrected: Layer 7 sums the fans’ heat on one basis per use (full speed at the maker’s rated power and the step-up’s typical 0.85: hold 7.15 W, profile 11.86 W; the coolers’ envelope at 0.80: hold 8.24 W, profile 15.11 W), reproduced by Layer 9’s R8 from its own inputs; l8r2’s 0.69 A slot row read as the declaration it is; no acceptance claim had read the mixed sums; outputs regenerated, test_l7pwr, test_l9pwr and test_l5r2 green (records/int29/apply_l7pwr_f12.py) (074eaf5f)
- tests: the panel firmware’s contract test reads FW-C05 as Layer 5’s F-15 follow-up words it (the spent retry kept beside the wipe-pending record, cleared only on a power-on reset read as HAD_POR set and REASON zero); the rule’s figures and every measured assertion unchanged; test_fw_panel 20 passed (records/int29/apply_set29_fw_test.py) (99628568)
- records: l9stk and l9pwr read the battery FETs as the nfet calls on the battery nets (a loop over a literal tuple unrolled: the loop’s form and the part’s sentence decide nothing, fixtures both ways), board A’s decision text names the battery FETs for the hop from R17, protection and budget outputs regenerated through regen_out (pins only) (645290b0)
- records: l9stk and l9pwr run on set 29’s tree: L4-E11 round 9’s drafts are parsed (Q39, Q40, Q42 and +12V_FAN’s declaration), the coordination table’s battery FET rows judged as drafted with the pair’s readings beside them (14.6a), l9stk’s output read by the budget from the tree (the LM5069-2 copy retired), xcheck_readers.py for what L4-E11 and l8p read (30 of 30, 45 of 45 the same); no width, breaker, junction-limit or budget figure moved, no finding closed (b1f9da5c)
- records: Layer 7’s page and mock-up specification restated on the figures its output prints on set 29’s tree (record l8r2’s round 6 cooler feed: 0.69 A at 5.0 V, the hold’s fans 7.50 W, the profile’s 12.90 W, E5’s line +0.555 W/K), with finding F-L7-12 for the two bases the sums mix; l5r2’s output regenerated for the page’s pin; test_l7pwr and test_l5r2 green (records/int29/apply_l7pwr_set29.py) (cd554e57)
- records: three readers brought to set 29’s merged tree (records/int29/apply_set29_readers.py): test_l8p reads every stand-in line and none is a pass now that boards A and E compose without one; l6r2’s change_chain finds the drafts L4-E9 lists from copied inputs, so DD-7’s draft follows record l8p’s PTC draft; l8r2’s board E round carries record l8p’s enable draft and its own pack return is left out of the round it is composed against (13 drafts, OK at every prefix); both outputs regenerated, test_l6r2, test_l8p and test_l8r2 60 passed (98fcd61f)
- records: Layer 5’s row LH-04b restated after L4-E9’s rounds 7 and 8 corrected LH-04’s pointer (the two stack voltages it cited are no longer printed, so the record’s script refused on set 29’s tree): restated by the record’s own mechanism with the replacing texts parsed, the contract text left as written and named finding L5-F13 for Layer 5’s next round; output regenerated, test_l5pwr 15 passed (records/int29/apply_l5pwr_lh04b.py) (1db101cf)
- records: L4-E9’s page counts row in the output’s form after R-197’s closure (a state printed only while its count is not zero), the one test the box suite failed on 48efe3b8 (records/int28b/apply_close_r197_fix.py) (cd163012)
- records: L4-E7’s panel-lead guard leaves a filed external review unread only while ARCHIVED-REVIEWS.yaml lists its path and its sha256 still matches (a changed or unlisted file is read whatever its name); L4-RC01’s same-cell counterexample and the designation’s cases as scratch-tree tests through main(); the release candidate review filed as received; the output regenerated identical, the results cache rekeyed (804e10a5)
- l7pwr: the fans’ budget restated on L4-E11 section 18’s drafted rails (set 28 F-14): VSYS_E’s and +12V_FAN’s loads parsed from apply_gen_sch_e_aux.py with ast, L4-E11’s 18a and 18b figures and record l8r2’s cooler step-up read, the converters’ losses counted; VSYS_E 1.3208 A at full speed as declared, the hold’s fans 7.15 W, every moved figure listed against round 1; D-18 and the T-H1 bill hold (559f88d3)
- records: L4-E7’s panel-lead guard keeps its citations out of the output and the results cache’s KEY: the KEY’s scan term is the input (and the IEC check) only, the output prints the input and one fixed sentence, the citations go to stderr; the guard runs at every run before the cache is read and still refuses a differing length; the tests use scratch trees only (c9376221)
- records: L4-E7’s panel-lead guard restated on the derivation’s input: each length stated beside a solar or panel lead in v2’s documents is parsed as a number with its unit and compared with a1solar’s LEAD_M (5 m, read with ast); an equal value is a consistent citation, a differing one refuses naming the file and both values; the sentence allowlist removed (589fc9cf)
- records: l8r2’s board A branch to board D renamed +3V3_A2D (board D already names its own rail +3V3_D8) and the coolers’ nets renamed CFANs_* (board E already carries FAN1/2_PWM, _SW, _TACH), through the drafts, the netlist check and its fixtures, the page’s contract texts and the output; a test that every new net is new on every board; R-176’s Q12 at 63 A by L4-E7 noted (3e98b656)
- records: L4-E11’s fan rail capacitors renumbered C142 to C148 after L4-E7’s round 2 port bank took C131 to C136 (every board E draft composed in L4-E9’s change-list order, d8dec31’s cin included; the test now reads new names and duplicate part calls, and passes with the integration’s solar guard; the cin and input-limit C65 collision noted for the coordinator) (f1467af6)
- tools: lcsc_fill.py’s table fills only codes that meet the identity tool’s requirements (eleven lines to the l6r2 selections, two X5R lines declared under rule C-D3b) and a property test runs its choice for every BOM line of the six boards through those requirements (4ebd2ef2)
- records: L4-E11’s residue after the coordinator’s check of 5d7b77e4 (the opening summary, 17a’s pin and source lines and the charger draft’s comment restated to 17a’s terms: the 566 A an extrapolation and a test target, the start into a short not bounded by printed data, its 1.5 s a timeout; the line citations re-pointed; a test that the withdrawn phrases appear only in withdrawal sentences) (d7b40538)
- records: L4-F04’s escalation rule corrected after the second worker’s recheck of set 27 (a DEMONSTRATED CONFLICT needs the measured failure of every arrangement the design admits or a bound, one arrangement’s failed test is its own; L4-E12 17.9 and L4-E9’s page, OW-1 and OW-10 reworded) and the e-paper soak set to the claimed +70 C at the glass for E5’s 6 h and E3-O’s 4 h behind the window with uncertainty and recovery criteria (R-185) (992a97c5)
- records: L4-E11 after the second worker’s recheck of set 27 (the fan rail’s parts renumbered to U22, R103 to R109 and C135 to C141 after every board E draft composed in L4-E9’s order, now a test; L4-F03 restated: the 566 A a resistive extrapolation and a test target, the start into a short not bounded by printed data, no retry duty claimed, E11-38 extended to the complete histories, the pin excursions, the wiring’s and copper’s integrity and the contact body at or under 85 C; 16d’s superseded sentence marked historical; the fan rail’s window 11.512 to 12.431 V with the 1 percent divider) (46a76240)
- records: L4-E11’s U42 ILIM resistor renamed R228 after L4-E8’s bank took R221 to R226 (L6P-F01; every board A draft under records/l4e4 to l4e11 applied to a copy, the designators each adds pairwise disjoint, now a test) and the BQ25730’s LCSC stock 0 noted as a procurement fact (L6P-F05) (fa2f52a8)
- records: L4-E9’s and L4-E11’s safe-operating-area readers take either poppler SVG serialisation (a stroke style property or attribute, a space after each comma or none); both outputs unchanged byte for byte, a test pins both forms (060c9d12)
- records: L3-N01, verify_l3am.py’s closing helper reads the verifier’s revision return as success; a positive case and the probe’s own sensitivity added, and a mutation check that a verifier accepting the stale check fails the run (a2d3f5ac)
- records: r11_dep.py compares revision A32’s full hash by its recorded prefix, not git’s abbreviated hash, whose length depends on the clone (its output unchanged; L4-E4’s pin updated) (7108d942)
- records: L4-E4’s third round for recheck astra-check-l4e4-2: each outlet bench window’s upper bound is the smaller of the fast and slow OVP minima (SLVSDG8B p.8), VBUS strictly inside, the 15 V window 12.2 to 16.2 V; the test refuses a 16.25 V excursion and accepts 16.15 V (f152d4ab)
- tests: the supersede test reads the history its copy already holds, so it holds after the tree’s own acceptance is superseded (the closing check is re-issued for the changed test file) (f1d8d840)
- records: L4-E4’s second round for check astra-check-l4e4-1: U3’s bounds include R16’s tolerance and TCR, IIN_HOST 4.70 A (code 94, 0x5E00) chosen with R11 8 mOhm and a 0.38 mOhm tap allowance, the tolerance read not typed, the outlet’s bench isolating U18’s comparator; tests for the old and new bounds (acadeeb4)
- tests: the amendment’s tests hold before and after the review findings close (copies built from the open state; the tree’s own closing check never used as a fixture) (e18b5873)
- requirements: the Layer 3 amendment’s recheck answered: the acceptance’s requirements digest defined by a principle (what states a demand or an authority is in; closure state, closure evidence, derived stage summaries and readings are out; a status projected to its normative distinction), tested on closures the registry’s validator accepts; the check header compared exactly and every changed test file compared; the recheck filed (07d104c2)
- requirements: the Layer 3 amendment’s check answered: the acceptance’s requirements digest binds the owner rulings, session choices, accepted exceptions and stage conditions, every registry field classified (B1); the findings close only with a new accepted check of the amendment bound to its reviewed revision, verified again at acceptance (B2); the check filed (003de0d7)
- records: the layer 3 amendment’s layer status script names the two dash characters it screens by their escapes, so no committed file of the amendment outside the filed review carries one (d2669a75)
- records: O-2’s bound from every enumerated LT8705A row (recheck astra-check-l4e2-2 B2): the rows read back from the sheet and classified, the setting stacked worst case and rounded down to 3.548 A, an independent check of every envelope corner from the tolerance-adjusted 16.695 V hold to 25 V that refuses above 100 W; the recheck filed (7cde8925)
- records: L4-E2’s replay counts service from the traced load flows (check astra-check-l4e2-1 B1): a service ledger whose kit balance closes with stopped-hour sun counted once, the model’s counter kept as the legacy model metric, O-2’s 100 W bound derived across the loaded input voltage (B2), M1’s label; the check filed (c8bb9da0)
- records: set 18’s evidence page bound: CON-010 and REQ-044 rebound to the page the Layer 3 closure set renders, the dry run’s two binding warnings gone, the set’s integration record (43b34e6b)
- records: set 15’s re-check answered: S-125 names the re-taken identity reading’s sha and decision 59 as written by its script, the en dash escaped, README step 4 corrected, check 2 filed (20de9ed2)
- records: set 15’s integration check answered: the three PANJIT bindings marked held back and board C’s page re-rendered (B1, B2), the minors, the set’s README and index rows, checks filed (15dac7b9)
- records: S-122 closed on set 15 by its filed check 8, CFL-016 from FAIL to PASS; CON-010 and REQ-044 rebound to the page the full render order reaches (c9b98931) (67e191fe)
- records: S-122’s scope statement says the finder drops a five-digit DS code, one list of escape classes for the statement and the follow-up item, correction 36 compares a unit only where the source states one, and the closure names the round 7 and 8 scripts (f49638a9)
- records: the follow-up item’s and S-122’s round 7 texts name the EMC test methods without a standard’s number, which the registry screen reads as a claim (b4d78b5e)
- docs: line 81’s 14.4 V node bound to board P’s declared cell node, figures compared as ordered signed values with units, the role rule’s word and load fixes, the finder’s maker numbers, correction 36’s scope wording, and the instrument’s escape classes carried by one PROCESS follow-up item (726547c8)
- docs: V2-SPEC.md line 47’s SA868 corrected to board D’s 2 W exciter (correction 36), every figure on S-122’s closing list bound to an assertion, the role rule’s blind spots closed with mutant fixtures and switchable tests, and the finder’s literature codes and net names (72f48ff1)
- docs: parts judged in the roles their sentences name, V2-SPEC.md’s A22, C7, D8 and E6 rows corrected (the AP64500 on two rails of four, the TLV75801 gate bias, seventeen LEDs, the magnetometer in the outside pod), and the part-number finder widened and probed with the netlists’ own parts (1b8104a3)
- docs: makers’ part numbers read and judged against the netlists, the seven sentences they found stale corrected (the TMDS341A, the LM5176 on E6, the WM8960, the TRACO and Amphenol rows, the DS3231M, the TUSB2046B), and S-122’s gate made to find them by what they say (82e0aa95)
- parts: round 4 of board C’s identities: a decoded code must be one entry of its row, a printed part must be the one the design names, J_PIJ2’s wire UNRESOLVED, the vendor scan on a fixed list, the two checks filed (ec340c9d)
- records: set 14’s third check answered: S-122’s closing gate made an instrument (a part-number finder probe, verdict assertions naming the generated parts, the corrected rows) and its registry sentence states exactly what it checks (d4017e07)
- parts: round 3 of board C’s identities: every UNRESOLVED reason re-read on asserted facts, J_EPD resolved on Hirose’s catalogue, decision 59 redrafted with CFL-016’s rebind, the C1 and C2 generator draft (5173490f)
- records: set 14’s re-check answered: S-122’s closing script refuses without the part-number inventory, the five sentences corrected and a check filed after 484752ba (0d2933ec)
- records: set 14’s check answered: S-122’s closure withdrawn as premature, CFL-016 FAIL on S-122 extended to part numbers and five named sentences, and bound to the three files its reading rests on (484752ba)
- docs: the supervisors’ status path and the fabric’s two board B items kept as status rows DC-07 and DC-08, D-17’s CC array as DC-09, CONOPS’s absent and owed statements judged on the netlists, and the EMCON citations moved to EMCON.md 0a.1 (0010b15a)
- records: S-120’s third issue, S-124 closing on U3’s negative SW limits too, the bound at 23.40 V with the first on-time, and the Q2 short’s order held to after ACOV (6c7b6d69)
- records: S-120’s second issue, Q7 held to the bus plus Q8’s body diode, the bound written INFERRED with its sensitivity, and S-124 closing only on the prototype (af3448fd)
- docs: CONOPS.md restored to its baseline text at 1579ea7f, its current circuit values kept in EMCON.md section 0a.1 and on the status page, and the check’s stale counts, pin rows and set 13’s e-paper rows corrected (790bd388)
- docs: the documents CFL-016 names re-read whole against set 12’s netlists, 43 stale passages corrected by a script that asserts every part they name (042faf18)
- records: set 13’s checks answered: CFL-016’s false clause withdrawn with PANEL.md’s pin map rows read and made part of S-122’s close, S-123 opened for the routed tools’ unrecorded board table (b7395d64)
- pcb-c: board C regenerated on the box with its four e-paper series resistors, read back 0 failing (5c20483b)
- tools: an EMCON toggle’s declared lug pair must be two distinct lugs, and the walk minors record cites the right check (238c3a1b)
- pcb-c: board C’s four e-paper lines take 27 ohm series resistors at the RP2040’s pins, R53 to R56, and their driver-side nets a clocked class (stream csi, CSI-D3) (2355beed)
- records: CFL-016 reads FAIL on set 12 and waits on S-122, the document re-read, after a third overclaim in its entries is withdrawn (3dd8610f)
- records: S-119’s registry closure files U3B’s item as exactly S-121, the number the integrator reserved, and refuses if S-121 is already in the registry (7da20f86)
- records: U3B drawn on U3’s 400 kHz row in TOPOLOGY.md 3b and CHARGER.md (the FET pair of decision 57, XAL1010-472ME, 191 k, 10 mOhm, 6.2 A), board A’s charging peak 13.9 W with the sense resistors counted once, and the session decision, registry closure and page scripts for the integrator (b8ce465f)
- records: s119’s reconciliation second round: U3B hour by hour (tablet-out adverse 85.8 Wh, QMX-out 116.9), the core-loss room per charger in watts hour by hour, the planes with U3B hourly, and energy_runs.py and u3b_hourly.py pinned (a31fa9da)
- board-c: the allowance note states the reference-net method and the pending count, and board C’s two SI-001 readings re-taken on it (be6b8068)
- records: the lid reconciliations re-run with U3B on the 400 kHz row: tablet-out lid 93.7 Wh typical and 85.5 adverse, QMX-out lid 125.2 and 116.6, both functions kept not met (4e6bd9ea)
- records: U3B drawn on the 400 kHz row, its efficiency 0.972 weighted over the model’s own hours (was 0.961 at the peak hour), input 6.2 A on 10 mOhm, the charge loop’s double-counted sense removed; the model, its re-check, efficiency.py’s pin and the energy runs re-issued, and U3B’s inductor checked (d5536ff0)
- docs: CONOPS section 4b and its EMCON row rewritten whole from set 12’s netlists, every gate asserted, and CFL-016’s overclaim withdrawn (0ac712dc)
- si001: an allowance’s max_mm rests only on the length rows of the reference nets it names, all from one document, and a net an allowance answers keeps the schematic reading pending the layout while no rule decides the routed check (08cd9521)
- records: Option A(i)’s lid reconciliations re-run on the restated charger rows: tablet-out lid 93.7 Wh typical and 80.6 adverse (was 87.4), QMX-out lid 125.2 and 111.6 (was 118.5), both functions kept still not met (9a9fbf26)
- board-c: the allowance note gives C24’s ratios against the scaled limits (4.3 to 30.7), and board C’s two SI-001 readings re-taken on it (23d596e5)
- records: Option A(i)’s lid charger U3B restated at 0.961 (the drafted 800 kHz row with CSD17578Q5A, its worst mode; was 0.975), the two-pack model and its closed-form re-check re-issued and the array’s energy runs re-pinned (3482d172)
- tools: RF-002’s walk takes an EMCON toggle only on its declared contact lugs, and the board key is required (3804bee4)
- energy: board A’s charger row restated from the drawn FETs of decision 57 (0.98 to 0.979, bracket 0.972 to 0.983) and chain_eta 0.9105; the energy record’s scripts re-pinned and their outputs regenerated (c1a0e591)
- records: CONOPS 4b’s RockBLOCK and E22 rows describe set 12’s gates, CFL-016 re-read and rebound on a true reason, and the set 12 check’s minors answered (de7e8d63)
- si001: the routed half holds every net an edge_allow entry names to its max_mm, and max_mm is tied to the reference lengths the entry cites, scaled to board C’s slowest layer (c79282d0)
- tools: the 191k IADPT resistor of S-117 gets its order code, and the rails census test knows S-117’s two FET datasheets (6e138018)
- si001: board C’s SI-001 decisions: an edge_allow entry answers only with its basis held and holds the layout to its declared length, eight entries on the maker’s words and reference layout (QSPI, crystal, SWD), Q3_G and EMCON_HW_DRV declared by content, and the e-paper lines’ series termination drafted (291b46cb)
- ecad: board B’s three ACT LED anode nets declared as nodes at their module rail, so the rail census reads the LED feeds the follow-up declared as loads (33f0b11a)
- ecad: the rail census’s four undeclared signal nets declared as nodes (board A’s IADPT and CH_COMP1 from TI’s pin figures, board B’s ZBA_RXD and ZBB_RXD at +3V3_ZB), board B’s module LED loads (rf2walk round 3’s follow-up), and the records bound to EMCON.md rebound to its round 3 text (3b2a281f)
- tools: RF-002’s walk takes the line’s source only from a declared EMCON toggle, board C’s SW_EMCON, and judges every other switch as an ordinary contact, with the re-check’s CX10 and CX14 as fixtures; the LED feed loads drafted as a follow-up for board B (085f6489)
- ecad: board A’s charger set to its inductor with the FET remedy (S-117, decisions 56 and 57: TI’s 400 kHz row, L2 on the XAL1010 land, IADPT and compensation, CSD17578Q5A and CSD17577Q5A), PWR-001’s pin roles, the EMC row, FW-A17 and V-A05, S-118 and S-119 opened; decision 56’s gate-drive text corrected as its re-check asked (8bb1ac27)
- ecad: board B takes the check’s minors on the FEA-002 remedies (R238 49.9k for the 5G card’s release level, R532 and R527 and U543’s timing capacitor tie for the RockBLOCK enable, the module rails’ declared loads rebuilt), and the records bound to EMCON.md rebound to its section 4d.6 (f2ce3295)
- tools: RF-002’s walk counts a gate as a line’s own source only on the board carrying the EMCON switch and solves such a gate by its own rails, so a latch of two buffers across the lines fails, with the check’s CX9 as fixtures (caa11d63)
- ecad: board C declares EMCON_HW as a node in TX_INHIBIT_n’s form, so the rail census reads the line D23 now joins to TX_INHIBIT_n as the signal it is; set 12’s regeneration script takes its boards from REGEN_BOARDS (39d80ee4)
- tools: RF-002’s walk reads the panel’s buffer behind its series resistor as the line’s own source, bounds a clamp diode’s reverse current by the other asserted line’s level, and classifies board B’s supervisor U543, with fixtures (9a468022)
- od01: test T6 reads partly on one table row, its west footprint waiting on the west RF re-plan and the open lid’s clearance with a lid pack inferred and not credited (2d74d1e9)
- ecad: boards B and C take stream d4emcon’s FEA-002 remedies: the RockBLOCK, E72 and E22 inputs gated against back-feed, the RockBLOCK enable held low in the low-supply band, the 5G card’s power-off line repeated, and board C’s EMCON line clamped to TX_INHIBIT (63508584)
- od01: the applicability of each test to Option A(i) includes the west pocket’s second block and its west RF re-plan, and the interrupted-step physics states its right reason (f7da136b)
- records: Option A(i)’s lid reconciliation takes U3’s input limit at its minimum (adverse case 87.4 Wh for the tablet-out lid, 118.5 Wh for the QMX-out lid), holds U3B at its recorded charge current, pins the model, and files its independent check (79935b57)
- od01: a heating step stopped at a limit keeps its readings as transient data and yields no conductance bound, with section 5.4, section 1 and the brief aligned; each test’s applicability to the proposed lid pack stated (cd362449)
- od01: the patch runs read and stop at H1’s edge over the o-ring nearest the resistor, and the shutdown’s limits are stated for the steady-state steps only (9c6d297f)
- od01: the package after its second end-to-end check: CH4 on the rebated band, the inside thermocouples freed before H1 is refitted for the patch runs, the aluminium tape clear of the thermostat tabs, V4 after a trip, the diodes renamed, the lead crossing named for every lead (5f0a96f5)
- od01: the package after its first end-to-end check: the thermostat chain’s two wires cross the seals apart from each other and from the heater leads, the heaters off for good before the patch runs, the air gun on the buy list, V3 in place with the o-ring edge read, the set-up’s order, a trip’s resumption and the missing small parts (6bc5660e)
- od01: the shutdown’s verification rewritten as one text after the independent check 5: V4 presses STOP/TEST with the heaters on and reads every relay contact and START, V2 proves both relays in series in both paths, V3 trips TS3 in place with H1 closed, and every step that cites V3 or V4 aligned (ddada926)
- od01: the independent check 4 answered: the checkout total of lines 1 to 14 at EUR 484.80, the request text’s nut holes at PEM’s 4.22 +0.08, K2’s self-hold contact in series with K1’s, V3 without heating inside the case, TS3 with its bracket inside the window, the gaskets gated (753b06cc)
- registry: S-117 restated from TI’s datasheet as the schematic item round 4 found (O-24): board A’s charger has no IADPT resistor or capacitor, so its start-up frequency and inductance are not established; REQ-015 waits on it, and the EMC row carries the design’s 800 kHz with the omission named (dce3e44a)
- case: Option A(i) lid pack after its check: P2 may lie over the tablet (A 39, 4S9P), P2 on 2.5 standoffs, 1.0 beside the guard caps, the lid plate per slice, the hinge Z swept, the stay sized, operator pushes, arrangement C’s mass and angles (3593f1ac)
- records: a1elec check answered in README, GAUGE.md and the log: the corrected entry figures, the single faults for D-09, the lid-size note with fnd/a1int’s re-runs and k = 3 for a 4S14P lid (2613058f)
- records: a1elec check B2, M5, M6, M7, M9 in TOPOLOGY.md: the single faults Q_LS, Q7B, Q10B and Q_E1 named for D-09, the fault-free qualifiers, the AND output’s pull-down, the shoulder-hour rule, the reworded heading, the standby drain, and the entry as generated at its minimum (22437746)
- records: a1elec check B1, M1 to M4, M8 in CHARGER.md: the front end at 43 / 50 / 57 mV, the entry requirement, R11 and U3’s IIN_HOST drafted under the minimum, the margin choices labelled, EN_FAST_5MOHM written 0b (671bd029)
- records: a1elec check B1, M3, M4, M10 in the model: the front end’s limit taken at its 43 mV minimum, the entry requirement computed (5.56 A, 115.1 W), the drafted entry pair set under that minimum, the LM5069 in current limit and the register-value ceilings (b9329339)
- case: Option A(i) lid pack: the light toggle’s height read from NKK’s own sheet (16.40, S bat on a D3 bushing) in place of a bound (a7d6b0b7)
- case: Option A(i) lid pack: the QMX DC lead’s re-route starts at its jack (X 106.3), and the case’s centre of mass is printed closed and open (9790468f)
- case: Option A(i) lid pack: the plate-side harness tie on the full face (the rebated band cannot take the lead), the tipping line’s sensitivity, the tablet tried at every place both ways, the hand counts of the other constructions (659dccf7)
- records: a1elec, U3B’s enable redrawn fail-safe so the lid charger stays in HiZ without a logic supply or a host, and the allocation law written out (1d540a53)
- records: a1elec, the lid’s discharge path held off in hardware while U3B may run, so U3B’s output cannot circulate back into the system node (8c73bb33)
- rules: the coverage map’s rule-set stamp follows DEC-001’s new registry text (a9b1e7f7412f9c0c), which T7 left at the old fingerprint and the suite’s mapping test caught (6a349980)
- od01: H1 regenerated with PEM’s 4.22 +0.08 nut hole and the relief’s position on sheet H1-1 (check PASS of 15), its upload hashes and manifest updated, check 3 filed, the package list completed with the records it cites (36522c49)
- od01: the independent check’s items answered: one gate table cited by part everywhere, TS3 wholly inside the frame window, a second relay in series and a diode across each coil, each installed thermostat shown in the chain, the fuses named, the patch runs refit H1 and repeat V3, the brief’s uncertainty rounded outward, PEM’s bulletin filed and H1’s nut hole set to its 4.22 +0.08, the relief’s position on the sheet (c71bc760)
- config: every board’s netlist pins, 25 registry records and the six layout constraint sheets re-bound to the regenerated netlists, each after a proof that only the export date and source lines differ (355ee187)
- emc: set 9’s carried items M2, M10 and M11: IF-AB-POWER’s +5V_DEV row cites its generator line, board A’s charger U3 declared as a switching source (BQ25731 in the sheet tool’s switcher list; its power-on 400 kHz against the 3.3 uH fitted opens S-117), the U41 row names its lead and the paths stop miscounting converters (bf7ec2d4)
- rules: DEC-001’s registry text and coverage row from DECOUPLING.md 8.2 (T7, stream d6dec’s apply script) with the pages re-rendered (T8); the readings await the set’s re-take after the decoupling tools changed (cc215a9e)
- case: H1 rebuilt on the CAD box with its sheet reading every plate figure from panel1450.py (same geometry, check PASS of 15), and the RFQ’s H1 hashes and the package list follow (ca1c854f)
- case: H1’s sheet H1-1 names the five receipt checks that gate its cutting, rebuilt on the CAD box with the same geometry (check PASS of 15), and the RFQ and package hashes follow (a96c52d0)
- records: OD-01 test brief, checkout list and README revised for the owner’s R4 to R6, the shutdown’s parts priced from reichelt, and PACKAGE.md listing the 66 files by path and sha256 (ac2cca80)
- records: OD-01 request for quote orders H1 to its own sheet H1-1, gives H2 one finish, corrects the HS100 mounting hole to 4.4 and adds the receipt checks R1 to R8 that gate cutting (2a32f1e0)
- case: H1’s sheet H1-1 and folder rebuilt with the HS100 mounting holes at Arcol’s L 4.4 +-0.25 (an M3 floats at least 0.5), same geometry, check PASS of 15 (62fd5dac)
- tools: the layout constraint sheets write an input’s last commit at a fixed 8 characters instead of git’s automatic abbreviation, which grows with the repository and made every sheet read as moved in a larger clone; a regression test forces a 12-character abbreviation (96e79320)
- diagrams: the netlist reader maps the SN74LV1T08 gate (TI SCLS739F Table 5-1: DBV 1 A, 2 B, 4 Y) that board B’s per-slot EMCON_HW lines pass through, which the control-lines build refused unmapped (13ec84a3)
- emc: board A’s EMC sheet declares the new buck U41 (TPS62933, RT open, 500 kHz) as a switching source, which the suite’s completeness test found missing after S-99’s circuit change (5b476e6e)
- registry: S-99 applied to the registry for board A’s D8 split (decision 55): S-99 re-stated with what stays open, S-115 (board A’s layout generator) and S-116 (board D’s codec floor) opened, the A to B and A to D interface rows and their generator lines, the wall port at 0.9142 A in the firmware contract and the assembly page, S-98’s lead-drop figure corrected in place, REQ-072’s energy note, and the eight records bound to board A’s netlist and generator rebound on judged reasons (4cd42d89)
- records: stream energy’s REQ-072 evidence note names its record from v2/, so the registry validator counts it as naming a file (66824a99)
- constraints: layout constraint sheet A re-bound to set 9’s regenerated board A: +5V_DEV and its node fall to 4.10 A typical (2.84 to 2.10 mm on an outer face) after the D8 split, the new +5V_D8IN row at 1.0 A, the wall port’s peak at 0.91 A, every moved or new row explained (30c01937)
- config: board A’s netlist pins of the decision 31 hold, the reviewed port set and the reliability list moved to its regenerated netlist after S-99’s circuit change, on proofs computed by the script: the ten added parts are the D8 split’s and none a connector, the 22 reviewed external pins on the same nets, the wear inventory unchanged (f0d16a86)
- records: stream energy, the night state is held for all 72 hours in every set, not only at night: sections 5d, 6a and 7, energy_budget.out’s labels and the decision paragraph now say what the runs do, section 7c adds the sun-following schedule (full power only while the panel alone carries it: 16 reduced hours a day in September and 14 in June with 200 Wp, sets 2 and 3 meet September and June with two packs, December none, one pack none), and both owner sheets state the reduced hours and what is off (81e19b38)
- intent: board A’s codec-floor sentences count U23’s on resistance and +5V_D8IN’s own budget (4.44 to 4.48 V at 1.0 A, under 4.35 V at the 2.0 A peak as before the split, open item S-116), U41’s share at 5.002 V, and the check’s record items with the IF-AB-POWER +5V_DEV row’s apply script (6ce71ab3)
- constraints: layout constraint sheets A and B re-bound to the regenerated candidate: the widths of board A’s +5V_S2 and +5V_DEV and their converter nodes follow S-98’s raised declared currents (+5V_S2 1.06 to 2.17 mm and +5V_DEV 2.03 to 2.84 mm on an outer face), board B’s +5V_S2 barrel counts follow its 5.63 A peak, every moved row explained (c67719fe)
- intent: board A’s TPS2596 current limits by equation 7’s true sign (the wall port 0.9142 A, +5V_DEV’s peak 6.9142 A with 0.142697 A to the loop minimum), Q32’s VBAT share 1.61 A after the D8 split, and U41’s divider 56.2k over 10.7k at 0.1 percent so its top stays under board D’s 5.23 V (daf98e4e)
- intent: board A’s D8 mezzanine leaves +5V_DEV for its own TPS62933 buck U41 on +5V_D8IN, the S-99 draft rebased onto set 8’s +5V_DEV line and applied (decision 55) (9c3c6639)
- config: the netlist pins of the decision 31 hold, the reliability list and the reviewed port set moved to boards A and B’s regenerated netlists after a proof that only their date and source lines changed (5f72cdd9)
- records: stream energy, third issue after the re-check: four universal sentences replaced by their supported scope at the tree’s documented bounds (one pack at the night state’s low carries June; the 8.4 W is the design case’s; December unmet with the cells at +5 C, met by set 3 at +20 C at the low; up to two packs examined, a third with no location found), and Route B’s sense resistor at 10 mOhm, which holds 94.9 W at every worst where 9.1 mOhm reached 104.3 W (de582c12)
- requirements: S-98 closed on the regenerated candidate by its own script (the five A to B leads AGREE, check_contracts PASS of 99, interfaces_a and interfaces_b PASS on the rewritten contract, declaration consistency only: I-03’s adequacy stays open), and the eighteen records bound to the regenerated netlists rebound after a proof that only their date and source lines changed (56b066eb)
- records: stream energy, second issue after the independent automated review: the west pocket judged with A06’s own tool (the block alone fits, its board P fits nowhere found), the solar stage’s 100 W shown to be a model assumption with two routes (the window restated, or the LT8705A’s output current loop as a designed limit), the night state on the tree’s model with its bounds and the relay’s traffic (16.20 W, 11.02 to 39.67), set 2’s margin, conditions and counter-case, and the owner’s paragraph stating that REQ-072 still fails (b3faa2bb)
- records: stream energy: the unserved load is counted in every stopped hour (it was counted only at the stopping hour), the record’s two sentences that quote it follow, and the decision paragraph is cut to 119 words (3eeb7e49)
- tools: edge_length.py’s note no longer says that a model is not in the tree when none is absent, the phrase the absent-input guard reads as a missing input; the models’ state stays in inputs.model_state (d01c4003)
- tools: ibis_fetch.py reads its two flag values through verdict.opt, so a flag given no value is answered and the suite’s guard count stays at its declared forty (d4abf5fa)
- intent: boards A and B declare the interim I-03 alignment of the A to B power leads (S-98): +5V_S2 4.2 A typical and 5.63 A peak at both ends with J_5V_S2 5.63 A and Q28 2.22 A, +5V_DEV typical 5.1 A with J_5V_DEV 3.8 A and U23 1.0 A, the notes rewritten as INTERIM with the mode figures INCONCLUSIVE and the 6.9 A peak held for S-99, and board B M7 branches U21, U40, U50, U60 at their child rails declarations (5007e971)
- requirements: S-88 (H3-02) and S-89 (H3-01) closed by their own stages on the re-taken readings of d2840081: TRN-001 PASS of 42 on board A against the reviewed set, REL-001 re-taken on every board with the repaired tool (every board INCONCLUSIVE, held by named items) (0dd3cd6d)
- records: the S-88 closure stage reads TRN-001’s re-taken reading where rules_status reads it, beside board A’s declared phase, as the stream’s second check found (B3) (197ac166)
- requirements: finding I-03 recorded after the second-worker pilot: S-98 the interim alignment of the A to B power declarations owed to the generator owners, S-99 the +5V_DEV coincident peak above the LM5176 average limit with REQ-018 waiting on it, and the contract’s contact rating rewritten from the held JST VH catalogue (690833d5)
- reviews: decision 31’s review after its fresh check: the reviewed set closes the third shape of moving a declared entry (S-88, H3-02), the fourteen registry items linked from their records with a refusing closure stage for S-88, the labels say claimed where nothing was judged, E-F3 is the model’s bound, the ledger page and the five parts corrected, and the contract, sources and configuration-input changes as apply scripts (7623f4d4)
- requirements: the third check’s carried items for set 7: S-92 names both voltages of the SA_PTT_n divider and what bench E-01 does not measure, FEA-002 waits on S-92 and S-93, and S-97 records the walk report’s three-ground cap as a tool item (b83676d5)
- requirements: CON-010’s dependency items read from the walk itself after the re-check: S-92 carries the SA868 row’s three grounds and S-93 board A’s two rows’ four, a script asserts that every part the walk’s undecided grounds name is in an item the record waits on, REQ-032 waits on S-65, CFL-006 and FEA-005 on S-86, and the streams’ check results are filed (2420c766)
- tools: checkpoint, a class whose maker publishes no figure holds its board, every open item of the reliability list holds a reading or the list is refused, jack, RJ45 and plug join the word net, board B’s bench headers are owed, the list cites no unmerged table and carries the revisions its documents state (4a01581d)
- requirements: the fresh check of the set 6 integration answered: CON-010 waits on S-92 and on the new item S-93 (the LM5176’s unstated gate drive in shutdown behind board A’s two undecided rows), S-65 and S-86 are linked where they had been disposed, S-81 is closed on its own condition, S-94 asks for the re-read of REQ-030, REQ-032 and REQ-071, and the closure record separates circuit, declaration and instrument changes as the re-take attributes them (cf0a4eda)
- requirements: CON-010 re-decided from the readings by a stated predicate (0 failed on every board since SC-67, the SA868’s row undecided: INCONCLUSIVE, waiting on the new item S-92), S-88 and S-89 carry the limits their readings are under, and every open item has a record waiting on it or a justified disposition, which the validator now demands (36828685)
- rules: the evidence page’s head sentence and its limitation notices are read from the requirements registry, not typed: baseline_state and the feasibility records decide why the foundations are incomplete, an open item’s limits_reading marks the readings it limits on the evidence page and on each board page, and the marks leave with the item (22e7e2c1)
- tools: port_protect.py refuses a declared port whose pins carry no supply or signal, and reports every connector pin that no entry of the declaration covers (be7aaf39)
- tools: reliability.py judges a part’s identity, not the description of what it does, so a logic gate that enables a socket’s supply is no wear part (c11c01c9)
- boards: board D’s flyback diode ordered with its sheet, board P’s supplies declared with the fuse gate bounded by TI’s 6 V drive, BAT-001’s table brought to the drawn circuit (7d0a81a2)
- board-c: TX_INHIBIT_n fails safe with the panel unpowered (R14 2.2k, R50 10k), PWR-001 declarations with +3V3 covering EPD_VCC, and the RAIL_SENSE divider (1c13eb50)
- board-b: EMCON forces the RockBLOCK’s ENABLE low, holds the radio switches off in their gates’ supply band and drives each card rail’s enable from its slot’s own 5 V (04967ae1)
- contracts: board E5’s INT-001 reads its own dock contract, judged against board A’s current netlist (fda98756)
- requirements: REQ-044’s re-take note cites its evidence for R-BAT not being engaged, so the trace page passes the claims screen (ea8f81e5)
- pcb-d,pcb-e: declare the supplies PWR-001 refused, sense the tracker’s current on its bottom leg, and carry VIN_RAW across the dock on power pins with board A’s half (14471269)
- pcb-b: every supply of board B declared for PWR-001 from its maker’s sheet, decision 42’s class and basis on every decoupling entry, the TPS23861’s RSENS and RDRAIN and the LG290P’s V_BCKP capacitors drawn (45d0fb91)
- pcb-a: the PoE and USB-C enables get their own EN/UVLO node, the EMCON gates run behind their own eFuse, and PWR-001 reads PASS on board A (e742551c)
- tools: RF-002 reads board C’s SN74LVC1G57 lamp gate as the NOR its wiring selects, any other wiring UNDECIDED (d97cd986)
- handover: the snapshot’s commit timeline lists every cited commit git resolves, an all-digit short id included (0598e8e5)
- pcb-b: the bank fabric breaks before it makes on a locked sequence, and EMCON runs on each module’s own rail and removes the 5G supply in hardware (4e8d18c1)
- battery: the pack’s charge and discharge temperature windows carry round 8’s thresholds, inside the cell limits by the gauge’s error budget (d8a95f3c)
- pcb-e: the blind-mate float clamps become one bar with twelve cavities, D-07’s at X 46 among them, and the docs record board E’s round 8 (897b6c29)
- pcb-p: pack headers order the JST parts the catalogues list, supply filters declare class A, FET bypass pair read from TI (325a866f)
- pcb-c: one-way EMCON read, hardware EMCON lamp and per-pin decoupling with the maker’s clause on every entry (1be7b93c)
- tools: PWR-001 and SI-001 are judged on the committed netlist, and PWR-001 fails closed on every supply, a lead from an eFuse included (c3b9f94d)
- v2: board E declares its raw bus from both feeds, classes every decoupling capacitor and fits the four its makers ask for, regenerated with parity (7ce797c4)
- v2: board D powers its transmit chain only while its EMCON gates are in range, reads the PA flange temperature, and fits the TPA6132A2’s 2.2 uF (b99b8646)
- v2: board A gates its PA and HF rails on both EMCON lines, with decision 42’s decoupling and the part codes its makers list (a23d87fc)
- parts: jlc_certify reads the declared condition 1 mismatches, and a land identifies a row only where its words place the other part away from it (68626f36)
- routing: the router watcher reads every import warning before it answers, refuses unknown ones and confirms the import against the DSN (b7c9cd3a)
- v2: boards A and B draw their ten one-way clamps with a cathode pin, and all six boards are regenerated with parity (1f7ba8d1)
- tools: the eight schematic-phase writers record by sha the artefact they judge, and the re-take projection sees it (9bbfff6c)
- tools: the router’s modal warning is found by its window title, because an idle JVM never reads as stalled (4876cb50)
- tools: one-way clamps are judged by their polarity, the pack SMBus lead becomes a cross-board contract and maker-named lands join the rotation checklist (da13acdb)
- v2: board P’s secondary over-temperature returns on its own thermistor and the battery protection packet is ready for a qualified reviewer (d0db2f49)
- v2: boards A, B and D take their round-4 and round-6 circuit corrections, regenerated with parity and every difference traced (09521e07)
- v2: boards C, D, E and P take the round-4 circuit corrections, regenerated with parity and every difference traced (247db699)
- tools: SCH-002 compares part values and lands, certification demands the part the row and its land name, and the box installs pdftoppm (32d9b197)
- tests: the blocked-land fixture no longer overwrites the lcsc_fill evidence rules CMP-002 and SUP-001 read (d1d04424)
- tests: three fixtures wrote their verdicts into the tree’s own evidence and displaced PLN-001 on a host with KiCad (51acf44e)
- rules: GND-002 stops waiting on decision 29 and its four board changes become session work (448ba594)
- tools: a locked via is carried by its net’s copper, not by every zone containing it (bcdb3d0c)
- tools: sense_reach with no subject wrote PASS of 0 (aabb087f)
- tools: sense_reach reported daylight between two segments that cross (1bade582)
- tools: a hurt round of the barrel fixer reverts itself, not every round before it (b0aa514c)
- tools: hardset says when its unrouted number is KiCad’s own list cap (6900cbcb)
- tools: a pre-lay group’s pairs come from the board, not from a capped report (6a745179)
- tools: the fence reads its flags through the guard and hands the guard a function (8651260a)
- e: CELL_F’s cluster skew is the measurement E36 gives, not E21’s (904856eb)
- tests: the fanout fixture’s rail gets the pour that makes its via a crossing (f5060ba2)
- tools: a one-layer site is reported and never counted or given a cluster, and a surface pad’s layer is copper (a4e989d8)
- tools: dc_drop rates and models every barrel at via_current’s plating, the fabricator’s 18 um, never its own 25 (dab0d648)
- tools: stale_readings honours
--out-dir, with the fixture that proves the verdict lands where the flag says (87a1154c) - tools: rail_barrels plans each site on the board as it stands after the sites before it; two neighbours had planned onto each other’s cells (0d5f2d6c)
- tools: rail_crossings merges adjacent pads of one net on one part into one land; board E’s FET source lands read as the busbar-class sites they are (e48eb109)
- pcb-e: TRK_OUT’s declared load is the pass FET Q2 and not the ideal-diode controller U4; schematic, netlist, sidecar and intent regenerated at E17 with it; the chains at HEAD and the D31 and A92 closers recorded (1b310183)
- tools: rail_crossings treats a plated hole as its own crossing; board P’s four declined sites were wire lands and fuse pins asked for barrels (a02bf321)
- tools: rail_crossings names a net that lies on one layer at generation, whose crossing only the router can make; P11 and C26 re-read at HEAD (e8d79a08)
- tools: the stub router finds the pieces it laid by uuid, because BOARD.Add prepends a track and the tail slice was the oldest copper (23ef2f23)
- tests: the crossing fixture reads the judge’s own line, and boards A and E record their chains at HEAD (ddcae08c)
- tools: pads of one number are one land in the crossing judge, and the barrel fixer’s busbar cap is on the barrels it draws (bec2b40a)
- tools: the pour-island judge takes a site on the island’s own outline as on it, and board D’s C23 takes its fixed seat beside U6 pin 26 (7852fce5)
- tools: a crossing of mixed drills is judged on what its barrels carry, not at its smallest hole; D30 round 1 lands at one open (a2c9c154)
- tests: six rules the box suite found, two of the hour’s own and four failing unseen since 20 September (c73aa8d6)
- ecad: a pour born without a via refuses the placement, with the allow idiom beside it (2e46d78b)
- ecad: a barrel on another net’s pad is refused, and board A’s rail runs reach their load banks (65cc9048)
- region-room: the room report names the board the tree names, and board E’s floor plan has its numbers (4063e328)
- routeflow: the slow-host timeout stretch reaches a production run, and A86 answers its prediction (916ef3f6)
- pi-003: board D’s crossing is answered at generation, and a tool says when it is handed the snapshot (9c4bd0ae)
- tools: a via is a transition only where the net changes layer, and board E’s worst site does not (e86455a7)
- tools: the estimate stops counting rules that have nothing open (eef02313)
- tools: a barrel round that does not improve the worst ratio ends the pass (960fe0fb)
- chain: the placed-board stop runs the placement’s own judge (333703d3)
- tools: a segment of a path has no enable of its own (59a70a85)
- evidence: the assembly rule is judged per board and one verdict was answering for seven (e183035a)
- tools: the barrel stage’s summary reports the board that stands (28650318)
- tools: one power-via site that hurts no longer reverts the sites that help (688f478a)
- tools: a staged file sat two hours stale, and a seated capacitor is no longer moved by the later pass (b046c002)
- tools: the seat map grows a region by the overflow its board declares (22fff43d)
- tools: the seat map carries the copper the generator has already laid (084b957e)
- tools: the reservation was making a second footprint for a capacitor the generator had already seated (46c2745c)
- pcb-a: four decoupling capacitors were in a region at the other end of the board (6765107c)
- tools: boards A and B ran the decoupling pass before any part was placed (dda4225b)
- evidence: the four readings that were owed exactly are re-taken and all four decided nothing (ec6dbccb)
- routeflow: a run refuses to start without room to write its result (958ea08d)
- tools: a via site is judged against a pad’s copper, not a circle of its size (e8b6b062)
- boards: settled by counting, board D’s blocking via is the ground grid’s after all (336829a2)
- boards: the ground-grid attribution is withdrawn too, and what is settled is less (67163a65)
- boards: correction, board D’s block is the fanout’s and not rail_barrels’ (da934ecb)
- tools: a solved-current file names its board by sha, and the reader says when they disagree (9a6bbde1)
- boards: correction, the counts in that reading are not about that board (faf5dd1c)
- tools: a locked via is not always a power-copper barrel, and the suggester now says which (32b3400b)
- tools: os.abspath does not exist, and a silent except made it look like a generator that placed nothing (f9587f18)
- tools: the barrel suggester owed two things and board E paid three chain runs to find them (44c0c157)
- evidence: sweep 32, every citation resolved against its own document for the first time (5febf0d6)
- evidence: sweep 31, the stackup gate judged again, and four more tools that fail for a document this tree lacks (149f70ad)
- evidence: sweep 30, the set re-measured on netlists that match their generators (d8a31dff)
- ecad: the six netlists regenerated, and a reading that lacked its input could displace one that had it (20e2d037)
- evidence: the Kelvin readings taken on boards E and P, beside their own boards (20c1e711)
- intent: board P’s coulomb counter reads ten percent of copper, and two rows I wrote this morning cannot be measured at all (5e0b259c)
- evidence: board B’s mechanical rule was failing on a reading nineteen hours old, and the PD outlet’s corridor exists (c477d310)
- evidence: nine of board A’s ten measurable current-sense taps are not Kelvin connections (3618274a)
- intent: the set declares twenty current-sense shunts and the Kelvin report had been told about four (bdc0844a)
- intent: the charger’s other shunt was never declared to the Kelvin report (1e05e376)
- tests: a guard the run could satisfy by running (90b1355e)
- tools: a thermal site refused by the pad’s own copper is not a gap (01332ed5)
- tools: the fanout tested its stubs against tracks and not against copper (56bae102)
- place: revert TI item 6, which is not free, and name what it costs (5ad730cb)
- record: the A49 against A50 comparison reverses at two layers (b3011127)
- place: the escape row is free and every pad on board A has one (e6eb154c)
- finish: the stage’s wall was smaller than one search, and A47 proved it by being cut (8932de0a)
- boards: the two CELL+ readings re-taken against their declared share (03b4588e)
- intent: CELL+ crosses A and E, and its budget is split from what each board measures (df20156d)
- tools: an undeclared net on a power path is the worse case, and the set has twenty-four of them (40bf30b5)
- boards: board A’s power readings re-taken under the 23-rail declaration, and PI-002 goes to FAIL (c63ece61)
- intent: board A’s eight remaining DC conductors are rails, and one path’s watts are counted once (74ca348a)
- gen: board A, the HF crossing gets the barrels its 2.00 A asks for (8fadd29f)
- rules: an empty RF reading says WHICH of its two causes it is (18f18dea)
- tools: derate never reads its intent from the file it was given, and a crash goes where it was told (a9217a9a)
- intent: the charger’s output is a rail, and the committed board puts 10 A in a conductor rated 0.40 (306d8ce7)
- rules: a part is judged on the WORST of everything declared about its net (40020325)
- evidence: the six intent declarations are committed, as the provenance sidecars were (40e67f5a)
- intent: the charger’s input bus is a rail, and asking it found 4.81 A in a 0.5 mm inner track (a9445ab7)
- decl: the charger’s LOW side is a Kelvin tap too, and the error is the router’s to set (ff25ad30)
- rules: two rules that could not ask in a staged tree said the tree was wrong (a3fe647f)
- rules: the density rule asks what the per-rail decision READS, not what it is called (63bbd030)
- tools: dc_drop called the verdict module by a name its own function assigns (956be965)
- tools: the reading selection asks rule by rule, as freshness has since 17 September (43fbcab9)
- tools: the drop-back stands down when the stage is at its wall (fd05e681)
- tools: a closing stage cut at its wall saved nothing, so the tool is told the wall (4a8bdc5e)
- tools: a board that declares pre-lay groups requires the per-group chain of its own tree (4725bf58)
- boards: E23’s pre-lay evidence was overwritten group by group, so ‘all six pinned’ is unsupported (3377589d)
- tools: the aimed drops go one at a time, because dropping the suspect set together over-drops (ead771ce)
- boards: correction, board A’s finish closes on a 0.05 grid and the violation never happens there (6278b703)
- tools: the drop-back runs inside a timed stage, so it gets a clock of its own (9d2447de)
- tools: a cap in nodes is not a cap in time, and one pair ate board E’s whole closing stage (ca88dbfe)
- tools: without a per-net budget the alphabet decides which opens are even tried (a2b38ceb)
- boards: the closers’ clearance margin was ten micrometres where the grid needs fifty; A44 goes 19 open to 10 (937a7790)
- tools: the drop-back measured a board it never refilled, and four more defects it found on A44 (7d62183d)
- boards: pinning all six switch nets does not hold ANA-001 across a placement regeneration (cd62d10e)
- tools: a same-line rule missed the bare via width in ANA-001’s own instrument (43aac419)
- boards: board P’s switching list had a candidate it never mentioned, and measuring it costs the reading nothing (3e750e25)
- tools: the drop-back judged nothing on its first live run and said nothing about it (2427907d)
- tools: a dot is a bridge only if the things it touches are not already joined (0d81dd7d)
- tools: tab is IFS whitespace, so a pre-lay group without a clearance lost its fields (b519dab4)
- tools: seven more tools read their flags through verdict.opt, ratchet 63 to 40 (fefc5e0b)
- tools: dc_drop and place_audit read their flags through verdict.opt, ratchet 70 to 63 (18d40bc5)
- tools: hardset reads its flags through verdict.opt, and the ratchet comes down to 70 (f19614ba)
- a: the third arm takes the last knob out, so board A declares none (d7196353)
- a: the pour setting is measured not to matter, so it comes back out of the declaration (3aeb6bb6)
- tools: correction to 5a3828c9, the 0.000 mm was an artefact and the landing is what proves a closure (a0e3e48f)
- tools: a board-wide count is not a test of one closure on a net of twenty islands (5a3828c9)
- tools: every pre-lay group keeps its own verdict and its own log (7b346b9d)
- tools: the order note’s phase guard had never looked at four of the seven boards (219dcfd0)
- tools: a quote folder declares the input it lacks, and a stale one names the two phases (5f370da3)
- tools: a verdict’s evidence was spelling the board’s name out one letter at a time (adaddf88)
- gen-e: CELL_F’s cluster is sized on the site’s own total and its measured skew (f3e3d269)
- tools: a declaration nothing reads is not a declaration, and three boards had written one (8bfeb559)
- board-a: restore the eleven RF drops A49’s groups had replaced, which is board A’s whole answer to RF-001 (fe1ef45a)
- tools: a board that declares sensitive nodes and an empty switch list with no reason has not been looked at, so it is INCONCLUSIVE and not a pass (4efbb345)
- tools: the crossing judge’s window stays where it was and the fixer fits inside it, declining a cluster it can only half lay (77da2bf1)
- tools: the crossing judge’s window covers the cluster its own answer takes, so a site the chain has answered stops reading short (37669b9a)
- tools: the barrel fixer is advisory on every path, because PI-003 is decided after the route and a fixer that stops a route for a declared placement item is a blocker (833f73d6)
- tools: a gate that dies on a signal is tried once more before it blocks, and a barrel site must pass the hole test as well as the copper one (e5af76be)
- tools: a through barrel lands in every pour it crosses, so the board is refilled before the DRC judges it (ee52a2f9)
- tools: a refused barrel site names the counterparty the DRC hit, not only the violation type (439cf2ed)
- tools: the barrel lattice grows out of the barrel already on the site, judged by this project’s one site test; A48 does not answer PI-003 and B23 answered three of board B’s six by itself (1ff8d121)
- tools: a barrel added beside one that is there is the SAME via, the obstacle map is every net’s copper and not its pads, and a refused site names what it hit (f56f760b)
- tools: verdict.guard calls its function with argv, so a zero-argument lambda crashes every run; the house form is checkable on the runner now (6febb27e)
- tools: a missing argument is answered, not raised, and the checklist has the one path its reader looks in (bda82bc5)
- tools: the two reports that lay nothing are readers, not undeclared closers (29ecfd73)
- gates: a run told where to write leaves the tree alone, and the mesh keeps the pad potentials it solves (9b6db6bb)
- rules: the coverage map named a rule set this project does not have, and a rule holds the two together (905cf864)
- gates: DOC-002 is judged per board, so six boards stop failing for a note about a board they are not (0e748a42)
- tools: a generated document whose own inputs are absent is refused, never rewritten empty (6839455f)
- tools: a pre-lay lays LOCKED copper, or the router rips it up and the predictor calls the board routed (7c023f20)
- tools: the barrel work list carries the stage’s name, or the chain’s own filter drops it (1125328f)
- tests: the pour rule reads its whole block and requires the obstacle to be on by default (d8e53fd2)
- tools: a pour is an obstacle to a closure and not to a pre-lay, which is why three boards’ pre-lays laid nothing (9caa1637)
- evidence: the return-path screen re-taken on all six boards; board B names one net where it named eleven and no verdict changed state (396668db)
- tools: a reference perforated by another conductor’s vias is not an absent reference, and board D pre-lays the net no closer can reach (4770458e)
- tools: the suite refuses to change this tree’s own evidence, and the hardset fixture writes where it belongs (648b18a0)
- evidence: board P’s pack-protection reading, 45 checks with one failure on the requirement’s own words (2169d68f)
- evidence: RET-004 re-taken with its examination on five boards; ten of board A’s flagged vias belong to RET-003 (110667af)
- tools: the crash guard on ref_change could not run, because the writer it needs was imported inside main (99da7161)
- tools: RET-004 examines every via it flags against RET-003, which is what its own requirement asks (dc815df5)
- evidence: PI-003 re-taken as one set on boards B and E; 34 barrels on B and 5 on E named with their currents (f66f81ab)
- tools: a barrel the mesh solved and found over its rating decides PI-003, whatever the rest of the board is missing (8c8ff0a3)
- tools: the stripline caution counts its own table, and the impedance rules get their own file (a3d577be)
- tools: a site whose barrel is the generator’s own gets a different instruction, and co-located sites are one transition (8274f7cc)
- tools: the suggested axis is the one measured to keep the most room, not the larger displacement (a2fc398b)
- tools: a stitch knows its own pitch and its own drill, so it refuses two holes too close (63abf38e)
- pcb-e: the wider hole is the dock block’s alone, the source cluster’s 0.8 mm pitch cannot take it (62f90187)
- tools: name every barrel over its rating, not only each rail’s worst (87f62e36)
- rules: the transmit inhibit chain gets its own verdict, so a pack polarity can no longer fail it (e0a594ba)
- rules: a verdict that decides several rules says what it measures for each of them (fe790251)
- rules: the routed-board gate decides the route, not whether the fabricator can make the board (3f669615)
- ecad: board E’s Kelvin seats move to the clear row, the placed board reads hard 0 (15f4cf8e)
- tools: every deciding gate in the coverage map leaves a reading when it raises, and a netlist-only sensitive-node reading is inconclusive (2eeb0ccb)
- ecad: board D’s power via returns to 0.8/0.4, the wide one cost nine connections to answer an advisory rule (4b41f37d)
- tools: hardset carries the crash guard under its label’s verdict name, the last gate without one (1b842693)
- tools: a partition group that does not import stops the chain instead of merging a board without it (384a9bb4)
- tools: the partition’s stage two re-partitions with the caller’s regions; the DSN class-pair clearance is measured and refused on E17 (d3eb381c)
- ecad: the Default class row comes from one tuple in the A and B generators too; E and P record the class-table finding (9f3e3672)
- ecad: one net-class table per generator feeds both the board and the project file (D13 was routed with the 0.8/0.4 via, B22 its panel rail at 0.25 mm); the partition import removes tracks without staling the board; via_parallel reaches past 3 mm (a1ea7294)
- tools: the nine module-level gates install a crash hook that writes INCONCLUSIVE naming the exception (ea7b8fe8)
- gen: board E’s DC_HS band is one zone from three rectangles; three same-net bands at one priority read zones_intersect at their corners (f4176773)
- tools: the partition merge, the plain route and the continuation restore via drills from their sessions too (1b4a6f0b)
- tools: via_parallel judges each round by the set’s worst barrel and puts a worsening round back; a barrel already in a via field is refused (E12 laid 39 and made VIN_RAW worse) (7f300f58)
- gen: the SENSE via note had swallowed the class registration on D, E and P; the suite’s swallowed-line rules caught it (46d2a608)
- tools: a session import leaves every via’s drill undefined and the class’s drill took the ring off E12’s pre-laid vias; the drills are read back from the session’s padstack names at every import (a81dbd01)
- gen: the SENSE class via carries the 0.20 mm ring boards D, E and P declare (0.7/0.3); P’s duplicate SENSE class removed (6aba9ca5)
- tools: twelve gates run under verdict.guard, so a crash before the writer is an INCONCLUSIVE verdict naming it rather than an absence (2d9d2b87)
- tools: the impedance gate crashed on a pair with an unrouted leg and left no verdict; verdict.guard turns a gate’s crash into INCONCLUSIVE; board B’s antenna paths get an RF class from B23 (c1ec804b)
- tools: place_audit declines a routed board: a placement rule judged on router copper is judged on the wrong artefact (19 collisions read over B21’s placed 10) (0afef758)
- rules: SCH-005 is conditional on a schematic (E5 has none); board B’s evidence re-taken on the adopted B21 tree, pin_map_lands PASS of 930 (11580f7f)
- tools: pruned_gate unpacked five fields from a seven-column list and would have raised in the first finish that reached it; its fixture pair (d13a66af)
- tools: the pair pre-router’s site test asked every via for a bare width; the rule now reaches pair_router (e739df4c)
- tools: a tab is the part’s own largest pad by a margin, not any square-ish pad (877f0a62)
- tools: the class-pair rule covers KiCad’s comma-joined class names (04113716)
- pcb-a: the eleven RF drops laid by the generator on F.Cu at 0.14 mm, which is 50 ohm on this stackup (286be0f0)
- pcb-b: the panel 5 V leaves the PWR class for a PANEL class at 0.8 mm (b95dacf1)
- tools: an exposed pad gets its thermal vias whatever the part’s pitch (f3daea9d)
- ecad: the six netlists regenerated under tonight’s engine, with their provenance committed beside them (dd52a347)
- tools: a verdict stamps the digests of the rules the coverage map gives it, not only the ones the gate typed (a95c36d1)
- sch: board E’s hot-swap FET had its gate and drain on two source pins (0cf64060)
- tools: solder paste is not copper, in the via-site test as well (5e62471d)
- rules: the register was counting two more finished remediations (77421967)
- tools: the closer audit knows safe_lines reads and does not repair (e7dedb36)
- tests: the new board-table rule imports json (003b9085)
- boards: the 34-pair reading came from a rectangle set that overlaps, and the legal one reads 32 (da8ee035)
- boards: board A’s pre-lay arms were written down the wrong way round (95c7f353)
- rules: a gate saying the question cannot arise on this board was being counted as nobody having looked (b190f6b1)
- tools: the ERC gate belongs to the sweep, which already runs the ERC (d4e71839)
- tools: the packer could not see a keep-out drawn inside a footprint (ae590f2d)
- rules: ten rules were judged on fewer boards than their own condition selects (2076f651)
- tools: ISO-001 is judged at the working voltage, and a board that contradicts its own fact is a question (6d2e2e2c)
- tools: a clamp two parts away, across a ground, or through a rail’s pull-up is not that conductor’s protection (cd610c83)
- rules: a verdict under an older rule set was keeping a current reading out (90d8885c)
- docs: the decisions page states the denominator the gates are using (e1a9d240)
- gates: the exposed-port rule names the board it judged (1d312b06)
- gates: the deliverable rule was answered for six boards by board P’s folder (fb24e854)
- rules: two BLOCKERS applied to no board at all, and one of them holds board A (159af108)
- certify: a run about one board was rewriting the set’s certification table (158cefa9)
- certify: a board’s parts are certified from the folder it declares, never from the newest (09be6a6a)
- ecad: the six committed netlists came from schematics this tree does not hold (9f4d45fe)
- boards: three boards declared a phase their tree does not hold (de498bdc)
- rules: a run about one board was answering the set’s completeness question (9f916781)
- holds: the hold names every board its decision holds, not one of the three (df872bc9)
- place-audit: a pad with copper on it is reached, whoever laid the copper, and board D’s placement passes (0a315cc7)
- tools: the last three anonymous gates name their board (aaa40aa8)
- routeflow: a supervisor killed by its own cap takes its router with it (dd63061e)
- routeflow: the finished board of a round is kept, not only the routed one (34e34373)
- board-c: the grid DOES buy the return vias, and board C joins decision 32 (cd5ccf42)
- tools: a guarded stage that did not run to completion is not a pass (95d8db60)
- rules: the board that declares a conductor leaving the case is in scope for the rule about it (31ac7bd9)
- tools: a gate given a board’s netlist names that board (bea5bd53)
- tools: the phase directory is read from the profile again, and the readiness says which board it is about (705ee564)
- tools: a reading taken with less input never replaces one taken with more, said once for every tool (13e14a28)
- tools: a route’s prediction is graded against the board the router produced (000ad82a)
- tools: a derived copy must not decide a net’s class by its own filename (8722858e)
- tools: the placement carry can never end a finish (47fafba6)
- tools: the unjudged contracts are counted, and the suite is green again (b6cc9eca)
- tools: a contract that names an absent board is unjudged, not that board’s failure (b2bec85f)
- tools: a verdict that judges a pair of boards names neither as the board (5c299ee7)
- generators: board P’s project file said 0.127 where its board says 0.16, and the project file decides (678a4918)
- tools: a swap is geometrically neutral and not net-neutral; an absent table is an absent input (95b087a1)
- generators: a legend that points at another board names the board, not one of its phases (dacf5791)
- tools: every verdict names the board the gate was given (69bf9b0e)
- tools: a sense line beside its own FET is geometry; beside it for ten millimetres is a routing decision (e848f383)
- tools: a blade fuse is judged against the blade fuse maker’s own derating, not the Cermet row (a2355956)
- tools: the placement’s evidence is carried to the routed board only after proving it belongs (680b87b9)
- tools: a DRC judgement names the board it read, not just the report (2451d98a)
- tools: a rotation is asked only of a part the assembler places (5836f7b9)
- rules: an anti-pad is a hole in a reference, not a point outside its edge (3098bb50)
- ecad: a number in the interface sheet that appears in none of its own quotes (9ba11e05)
- tools: the board fixtures had never run where KiCad is, and running them found five defects (bf3209d6)
- tools: a phase given on the command line must be the one the board file declares (6485729d)
- tools: a board with no part declares its zero, instead of another board’s verdict standing in for it (b912db60)
- tools: the return-gap report judges by the gate’s own bar, and board C’s eighteen runs have a cause (7a933ba0)
- tools: a prevention measured and refused is an answer, which is the rule this gate was not applying (c24e9e66)
- tools: an absent intent file is an absent input, and the contracts are current again on every board (069c1551)
- rules: prematurity is not failure, and one board’s wrong part was failing two rules on all seven (f15995a2)
- tools: a reading taken with less input never replaces one taken with more (d5b517d6)
- tools: a check with no input writes no verdict, because an incidental run was destroying evidence (fb3ee362)
- ecad: board C declares the phase it was cut at, and a folder ahead of the declaration is now a failure (d1ab6dc1)
- rules: a document set that converges in one write, and the rule that checks it was skipping (7fbc1323)
- board-c: the public tables name C24, and the 25 MHz crystal cannot reach a BOM (4c885072)
- tools: a missing tool is a refusal where it happens, not a missing file three stages later (9040463b)
- board-c: the last three codes, and a declaration that covered nothing (e7459323)
- board-c: the four codes and the two declarations its deliverable was refused for (51bb8dbc)
- ecad: a board’s letter is not a slice of its name, and the guard was reading e1 (f708dfe8)
- ecad: the stub router aimed at copper that was already connected to its source (8d1ad129)
- ecad: the closer rule’s per-board test follows the measurement it was written against (0a1e5c2d)
- ecad: two of the three unprevented repairs are prevented, measured across 25 finishes (5822b665)
- sweep: the two new gates clear their own stale verdicts (bc0dd656)
- ecad: the sensitive-node guard segfaulted at the save and said nothing (4adc495c)
- ecad: board A’s eleven RF paths take an outer layer, where their own width is 50 ohm (7bc87c55)
- ecad: a declared zero of exposed ports is an answer, and it was counting as a question (5287189c)
- ecad: the tool that re-walks the provenance chains had never been run (f252952f)
- ecad: the tool written this morning for the rails that are too thin was in no chain (c6521f93)
- ecad: a quoted word moved three failures into the wrong rule (83e236ef)
- ecad: three of board A’s over-current hand-overs already have the barrels, and the report asked for more (535a7ded)
- ecad: a 6 MHz line was certified against a 25 MHz part, on both crystals of board D (715e0358)
- ecad: being a transmission line is physics, and the rule was calling it a defect (143fba5f)
- ecad: the panel’s two button leads left the case with no clamp on them (498e5dea)
- eta: three rules said they were waiting for a source and they are waiting for a ruling (1100c9dc)
- partition: the default is the mode that works (9bad4bdd)
- sweep: the sweep judges the boards the repository holds, not the last push (e4dd8961)
- rules: a board that controls no impedance and says so is a declared zero (6409df37)
- tools: three boards were reported as carrying no stackup, and they carry one (ce21ebcb)
- rules: the shield strategy waits on a ruling, not on a tool (adad5d15)
- eta: the rotation verification is the ordering session’s, not this one’s (aae1aa03)
- rules: the interface verdict is per board, not one for the set (8bfb0508)
- routeflow: a finish refusal a route cannot change stops the run (7aab1c84)
- boards: six suppressors stood off less than the line they protect (921a8a6d)
- rules: a zero a board declares is an answer, and the placement’s evidence travels with the board (17700680)
- ecad: board A’s charger sense filters get a seat at the pins and a code (dc1652b9)
- board-d: every USB device on this board is full speed, so the 90 ohm target does not apply (f1f89fa3)
- sensitive: a clearance is a same-layer question, and running under a switch node is a different one (25be1df3)
- board-a: the charger’s sense pairs reach their pins through the filter its datasheet asks for (5b222ef6)
- copper: a cut-up pour is refused only when the net has nowhere else to carry the current (d88baf9d)
- intent: the mezzanine rail’s budget comes from the tightest consumer’s datasheet, not from a habit (344c5df0)
- dc_drop: print the bar at the precision it is judged at (62725aec)
- sweep: the folder of the declared phase, and no verdict at all for a gate that could not run (6d47e277)
- tools: the board letter comes from the board table, because pcb-e1-dock is board E (65746b37)
- tools: a netlist names the generator that wrote it, so a contract stops judging another tree’s design (a7dbf452)
- tools: a designator’s prefix is its letters, so a test point is not a tantalum (a5a4f080)
- eta: two dependency cycles in the gap register, absorbed in silence by the number being reported (90a599c4)
- agent: the arm width was a literal one, and a template that declared none was narrowed in silence (2129a27a)
- pair-router: an existing via was invisible to the search for a new via site (7272cedd)
- ports: name the active part that takes the transient, not only that one exists (4d790165)
- route: the dialog watchdog was watching a process whose CPU never moves (15f5c695)
- route: the modal-dialog watchdog reached one launcher of five, and the other four include the parallel route (e418c164)
- finish: the DRC’s own cost line was landing in the number that decides whether a re-route is kept (c80f5387)
- sweep: the DRC report travels with the board, so it stops describing a different one (1c9a3d7e)
- contracts: a contract declares which boards it is about, and its failure lands on those boards (1af8cbc8)
- route: the optimiser is bounded in seconds, and the autoroute’s own session survives it (f4678e3f)
- rules: six rules reported that nothing verifies them while their own entry said the gap was the source (6d128ce9)
- rules: board E5’s evidence was looked for in a board retired on 4 September (e1803800)
- rules: a verdict named for one board was demanded of six, so a rule verified on all of them reported as verified on one (bbd30994)
- ecad: a prefixed finish declaration lives inside the block its prefix names (eda0e9af)
- ecad: the direct-close budget is a declaration, and board A’s is ninety minutes (cace8857)
- ecad: a pad is a fat segment, not a circle of its longest side (e773923d)
- ecad: the sum of every rail’s peak is not a board’s power (5f588fcc)
- ecad: the spacing gate crashed writing down what it measured (f4d4ea1b)
- ecad: the set’s paperwork verdict stops deciding every board’s own (9cfae0d5)
- ecad: the stitching rule reads the same spectral content the return rules do; board E5’s gate passes 27 of 27 (181aeceb)
- ecad: a rail that crosses a connector is one conductor with one budget (0710fded)
- ecad: board B’s gate follows the PCIe receive path instead of asserting the topology before the capacitors (b7375639)
- ecad: board B’s PCIe coupling capacitors get a seat, beside the switch that drives them (e0ab3051)
- ecad: a declaration must not contradict its own basis, and boards D and E are each one item from clean (fb423d76)
- ecad: board B is phase B21, and the reference is sampled beside the via and not in its anti-pad (48f689eb)
- ecad: the phase has to reach the verdict, not only the shell (1bbabf22)
- ecad: the reference is the pour under the via, not every pour that shares its layer (cbb0ad17)
- ecad: the exposed-port rule blocks what ships, not what routes (705ca02d)
- ecad: the via-current rule is a measurement until it knows which via the current crosses (8b388c88)
- ecad: the stub router could not see a filled pour, and had been searching through them since it was written (18c2339d)
- ecad: a rule that does not apply to a board stops blocking its route (ca87adbc)
- ecad: the board gate reports the intent items and the intent verdicts decide them (3a2dc88c)
- ecad: every board gate reads its copper layer count instead of carrying it (ca0d83ce)
- ecad: the gate sweep can name board E5, which had no board table at all (ee49cc32)
- ecad: the port-protection verdict carries the category that decided it (d5cf5700)
- ecad: a closure that reaches the goal cell tries to land on the copper, and says what it measured (a74afdf2)
- ecad: rule VIA-002 judges a via by the via rows and a component hole by the annular row (1cb72576)
- pcb-d: the codec’s supply and analogue nodes were classified as clocked digital (04b117d8)
- tools: boards A and B reached the router with no stackup, while their logs said it was written (8a85bbf3)
- pcb-p: the board was designed to numbers the process does not make at its own copper weight (2b28ae08)
- tools: the rail check crashed the gate at the moment it decided, and board E lost its best result (a7c75c81)
- pcb-d: the 3.3 V rail named a load on another net and its own source as a load (b6eff535)
- pcb: thirty-eight rails across five boards were never declared, so three checks were blind to them (328db6b5)
- pcb-e: board E’s two logic rails were never declared, so they were judged as signals (91822abf)
- tools: the signal classifier reads its board from the board table, not from the directory (5f52f806)
- pcb-b: the PCIe receive lines had no AC coupling capacitor, required by the module’s own datasheet (2f9a9df8)
- tools: a gate wrote no verdict at all on any host without PyYAML (69bd18fc)
- rules: evidence freshness compares instants, not text (a verdict at 23:16 UTC read as older than an epoch of 00:35+02:00); the first computed numbers are 10.2 percent verified, 4.8 failed, 85 inconclusive, NOT_READY (a3e6e342)
- chain: the placed-board DRC fails closed (it swallowed its own exit status and a five-hour route followed an UNMEASURED board) (4488bbb5)
- b: the project file’s net classes come from the generator’s own table, and no class may sit below the board minimum (B shipped USB and DIFF100 at 0.10 against 0.127); class_floor.py gates it (225a4b4b)
- tools: a stub pass that closed nothing writes nothing (A35’s round two segfaulted filling and saving an unchanged board, and the finish refused the phase) (141f4046)
- e: the ground-via grid is off for E, measured: it costs E’s route (0 hard 2 open without it, 11 hard 4 open with it) where it pays on D (8fe0fa0f)
- gate: the final gate refuses a folder that is not the phase the tree declares (all five cut folders predate the return rules and each passed by being judged against itself) (2adae44a)
- tools: the ground-via grid asks the DRC until it names no via of its own (one pass left 104 of C’s inside rule areas) (543b0d20)
- gate: rule 1 counts every filled zone as a reference plane (the name-prefix list missed E’s In2 power pours: E10 read 18 nets over for tracks on solid copper); return_gaps fills first (8aa1ccef)
- b: PLACE_COUPLE_GAP back to 2.4: on the production pass 2.6 lays 31 where 2.4 laid 35, and one arm cannot resolve a knob inside the pass’s own scatter (fd83ae72)
- agent: the clock on the template note (6fa843d5)
- agent: a B template’s pair pass is the board’s own first pass (pair_env plus pair_passes[0]); the five placement cycles ran without two declared knobs (5a095355)
- tools: the plane-pad predictor refuses a pad with NOWHERE to go (no free via site within 1.5 mm, or a track keep-out over it), not a pad the route has not reached yet (A36’s placed board had 244 of those) (f48ed5c9)
- tools: return_via names which of its two site conditions refused a via’s candidates (9bccbba4)
- agent: the cycle stamp is converted to the verdict clock’s form once (6923e9dc)
- agent: the reviewer is handed only this cycle’s verdicts, never the loop’s own or an earlier cycle’s (tier 2b’s finding on the fourth live cycle) (0dc0ed5b)
- pair: every timed wrapper sits where its names exist; a rule proves the package’s module-level names resolve in import order without pcbnew (6ba26cf4)
- pair: the timed search wrappers belong to the search module; the first split left them past the geometry anchor and the package failed to import on the box (2c4b7b50)
- agent: the runner’s exit code is its verdict code; a FAIL over a complete row set is the rows’ business, not an incomplete cycle (5de684b9)
- gates: return_via reads the board’s minimum clearance (KiCad 9 has no GetDefault); return_report measures both rules per layer on a routed board (b32ddd92)
- agent: the evidence cohort keys the tools by their tree content, not the commit they were checked out at (14a0692c)
- agent: a cycle is complete or it is nothing (runner status, one row per arm), ILLEGAL is unmeasured, the verdict is the arms’ and the review a count, evidence scoped to its cohort, artefacts per cycle, the exit-status contract of a pass, no stale counts, six-type benchmark rows quarantined, the experiment lock a claim; eight rules skip on a code-only checkout (bc0f5765)
- gates: the final gate fails closed (a seven-board manifest, quote folders and open certification fail the set, unjudged is never PASS) with an executed truth table; drc.sh’s cost line runs; the ledger appends under a lock; a prediction of zero is a prediction; a Skip helper for artefacts a checkout lacks (7eaecace)
- routeflow: A36 and B20 profiles come when their boards are re-finished; a board’s phase equals its newest profile’s (e551bd38)
- a: the PA head keep-out stops short of the output caps’ ground pads, whose escapes it was refusing (d84050eb)
- a: the PA head keep-out covers the pads’ own band, not the island margin where the caps’ ground escapes run (0805cc0a)
- tools: finish.sh’s second prune pass lost its fi for one commit; every shell tool is parsed by the suite now (ede7f17a)
- a: A35: the PA rail head keeps the router off its island, and the finish prunes dead stitch vias a second time after the rail prune (A34’s two gate items) (d1d3fcdb)
- cloud: the box setup installs scipy, without which dc_drop reads every rail UNRESOLVED (found on box 51119564) (4da53c7d)
- pcb-b: B19’s schematic regenerated on the column-banded page: 62 pins and 23 labels the seam had separated are connected again, netlist identical to the 14 Sep one on every net and node line, ERC gate PASS (221d9c1a)
- pcb-b: the three fan PWM pull-ups R151, R251, R351 are back: a stock note appended on 14 Sep had swallowed their call; a rule refuses a comment carrying a call (24bd564e)
- tools: the banded schematic page bands by the part’s column, never by an item’s own coordinate: B19’s wide symbols lost their labels across the seam (e74f14e5)
- tools: the box clone is full depth; a shallow clone left every driver waiting for a hash it could not name (15 Sep 2026, box 51119564) (fb324b4d)
- release: the fab notes of C17, D11, E9 and P4 read their impedance line off the board’s own class: C and E declare no target, D’s pairs are 0.3 mm / 0.2 mm (b3e6d4e3)
- tools: export_jlc’s impedance line closes its parenthesis; the previous commit did not export at all (f743c123)
- tools: the fab note’s impedance line comes from the board’s own USB class and its declared target; C17 asked the fab to tune pairs that declare none, and 0.2/0.15 was a constant (1152b57e)
- sch: the six schematics regenerated on pages that hold them (A 2074 x 1230 mm in two bands, B 2074 x 1710); every netlist identical to the committed one apart from its source path (12e3c93f)
- sch: the schematic page holds the drawing: the row of columns is folded into bands under a user page, so the PDF is no longer an empty A0 frame (A’s drawing was 2.8 m wide, B’s 3.9 m) (d348eecf)
- a: the VBUS20 leg keep-out leaves a band round every foreign pad row inside the leg, so the fanout keeps its stubs (6d12a836)
- a: the VBUS20 leg keep-out is shortened at the end nearer R16, decided by distance (700ff635)
- a: the VBUS20 leg keep-out stops 2.5 mm short of R16, whose sense escapes leave along that edge (1337ca0b)
- tools: the A33 profile’s clean flag is its own; validate 20 of 20 (ccbb064f)
- tools: the A33 profile’s finish cuts A33 (6ff03462)
- tools: the router launcher dismisses a modal warning Freerouting holds for a click; B19 sat three hours on ’normalization of net failed’ under Xvfb (ecaa1cc6)
- tools: rail_prune reads every piece before the first connectivity build (the wrappers go stale after it); A32: 327 router pieces off twelve rails, VBAT 124 of them (612ef941)
- tools: rail_prune judges tracks and vias only; an arc has no start and end to put back (79cd801c)
- tools: a stub closure is no wider than the track end it joins and takes the board’s minimum via under 0.25 mm; A32’s last open asked a 0.5 mm class track through a QFN’s escape field (18d9d993)
- tools: B’s profiles expect the one gate line their board declares; a profile’s gate count is its board’s declaration, by rule (082af88a)
- c: the backer legend carried a literal C7 and the final gate refused C17’s folder for it; the phase reaches the silk only through the chain; the public rows and the order row name C17 (c9c4ff62)
- tools: a measurement writes an advisory verdict the supervisor does not read as the stage’s; the pair-copper DRC before the prune and a declared-off predictor are measurements (6af8ce99)
- c: a hole is not a BOM line: the two camera holes leave the BOM, kisch.part carries in_bom (fd004486)
- tools: a stub router with nothing to close leaves before pcbnew’s teardown can crash it; C17’s second re-finish died there at exit 139 (be3ce342)
- c: C17 routed to 0 hard and 0 unrouted with the test points beside their nets; the sounder, the headset jacks and the camera holes declared, the EMCON buffer’s code read back (872e9e89)
- tools: MISSING is a list; the previous commit called update on it and three contract fixtures failed (f8bda6eb)
- tools: an empty pin map is a missing board, and B runs no gate on its mechanical board (fe31d099)
- pcb-b: a board that declares a coupled fraction is judged on the routed board by length, not held on a count; B19 routes twelve passes (0acfd228)
- pcb-c: the test-point columns clear the switches’ courtyards, which run 2.3 mm past their cut-outs (ba55f30d)
- pcb-c: the two e-paper test points are in one region list, not two (9233833c)
- pcb-c: the test points join FIXED before the loop that places it, so the region lists skip them (7fdb3afe)
- pcb-c: the test points are placed by the one FIXED loop, not twice (210110e5)
- pcb-a: A32 closes the three gaps A30’s route bridged with 0.5 mm inner tracks (804c15c3)
- tools: a track goal in the stub router is the track’s own copper, not a disc around the DRC’s point (d479c63c)
- pcb-a: the slot island keep-out stops at the finger’s foot (3ce5f833)
- routeflow: a worse round is not finished, and every exit restores and finishes the best board (8b32e7e8)
- pcb-a: the VBAT slot islands’ via columns carry a track keep-out (102203a8)
- pcb-c: the committed C profiles pin the clone, not the scratch tree a driver built (d3487115)
- tools: the closure ladder gets a wall-clock budget, because every shape costs a board DRC (a148f9cf)
- tools: the stub router writes unbuffered, so a search that is cut leaves its line (3137a76f)
- pcb-a: the HF head island is the capacitor column, not the bounding box of four scattered pads (4abcf59e)
- tools: the cross-board contracts read the declared phase directory, not the newest arm (1c023f0d)
- pcb-a: no keep-out on the VBUS20 island, and the two attempts at one are why (3c278b22)
- pcb-a: the gap between two of these capacitors is the next one’s ground pad (f558d0df)
- pcb-a: the VBUS20 keep-out is the pad row’s band, not the island’s outer margin (2bafa908)
- pcb-a: the VBAT hand-over vias find their own clear stretch of the trunk (376b2446)
- pcb-a: A29, four rails measured on A28’s own copper and every one is a layer transition (1ebde9fa)
- order: a maker and a part number inside parentheses name the part (ce799f31)
- tools: a via and a track end at one point are one point, with one layer set (9a8ac742)
- tools: an island pair is named as it is tried, and the refusal list is no longer cut at fourteen (058a457b)
- tools: a closure is searched at the clearance the net’s class asks for (2d97286b)
- tools: a closure is tried on every layer its two anchors share (ae82b3e8)
- pcb-b: the pair’s own two tracks at a layer change are a fold test, not a clearance test (703b1205)
- tools: every trial board of a closure is built in its own process (91e94133)
- tools: a refused closure is offered the other pairs of the same two islands (a5054a0e)
- pcb-a: the length matcher is offered the pair’s locked copper alongside its unlocked pieces (e0d2ff07)
- pcb-b: the pair’s layer change is judged against its partner before it is laid (23c51eca)
- order: a bare board has no BOM, so it cannot have a BOM status (d44ac1ae)
- tests: the leg-match rules read the equaliser’s whole body and its local side test (783b7f7c)
- pcb-a: the bump’s side is the nearest partner piece, not the partner’s centroid (b801d711)
- pcb-a: the leg match measures the whole net, tries smaller bumps and names what refused them (18205b42)
- pcb-a: the leg equaliser takes the pair’s net objects, not its names (8cf890f6)
- tools: a pair laid end to end by the pre-router has no unlocked copper, so the length gate is given its locked copper (b5fab2c2)
- tools: the final gate takes its stem from the gerber zip and is declared a reader on the pin (2297de18)
- order: a class row stays unanswered whatever an allow list says, and B’s phase copy carries its board’s declaration (3ba16d87)
- order: the certification reads the boards’ own allow lists too: 513 of 517 rows settled (42c45386)
- pcb-b: the controllers’ SWD lands are declared: copper on our own board, no part fitted (b426548f)
- pcb-b: the three fan connectors carry the JST part the schematic names (6c6b9664)
- tools: the meander ladder goes down to a quarter of a millimetre, where A’s free space is (49982a18)
- pcb-c: the stub router gets a window that can hold C’s last connection (a62d8fdb)
- pcb-c: the continuation’s ceiling comes from C’s measured pass rate, not from 80 passes in 900 seconds (df05c8de)
- tools: direct_close measured a trial board at KiCad’s unconnected cap, and the finish never saw it crash (31d3836d)
- pcb-a: the VBAT comb walks round the charger’s via column instead of being cut by it (eaa12ca2)
- pcb-e: the VIN_RAW In2 pour takes the empty strip north of its own via heads (2d6fb803)
- tools: an island gets six candidate spots before it is left open, which is E8’s last connection (116e6139)
- ecad: the finish refills before the gate and the rail checks: E8’s CELL_F reads MET on the board it is cutting (37fcb743)
- gates: a supplementary ground pour on a routing layer is not judged by its coverage (fd1d9067)
- tools: stitch_prune refuses an unfilled board, where every via reads as abandoned (473c78a6)
- pcb-b: the pair’s end emissions are asked about the partner before they are laid, and the approach moves when the last hop is the violation (3cee8d7c)
- pcb-a: A26 power copper: the PA band reaches its shunt, VIN_RAW’s head gets its second layer, VBUS20 leaves VBAT’s trunk, the HF run steps round J_AB2 (f49aad38)
- tools: an option a usage line offers must be read; dc_drop draws the picture it has promised since 8 September (802a36f1)
- ecad: the stub stage must not leave a board more open than it found it (64b0ede6)
- ecad: a netlist older than its schematic describes a board that no longer exists (6b352d3b)
- ecad: the barrel ratio is reported, not gated, because it does not converge (6afaf8df)
- ecad: two barrels per source track on P3, six per FET (32230ecf)
- ecad: E7’s source pad takes ten barrels, not six (7dace395)
- ecad: P3’s vias go where the crossing is, in the FET’s own source tracks (f2fdcc3c)
- ecad: P3’s two failing bands give up the second layer, because the crossing was the problem (53136635)
- ecad: P3’s bands go to 3.6 mm so either layer can carry the rail (8b1834b1)
- ecad: IOCA grows north, not west, and the two rails get what they still needed (d05e324c)
- ecad: D’s band reaches C7’s pad instead of stopping short of it (935f306f)
- ecad: the board files declare A25 and C11, which their new profiles cut (7e1b74e9)
- ecad: B’s ground return is not always at the part that supplies it (84ac794d)
- ecad: D’s rail trunk went through J_HARN1’s pin field (5979a119)
- ecad: a via tangent to the copper it joins is not joined to it (91a0122e)
- ecad: P3’s layer crossing happens at one end, so the vias go three across at 1.0 mm (793b2724)
- ecad: E7’s block lands each had one 0.4 mm via for 2 A, and its source pad had no copper on its own layer (b193670b)
- ecad: P3’s stitch vias go across the band, not only along it (701d8480)
- ecad: P3’s barrels were the neck and nothing had ever judged them (2a75c5e2)
- ecad: the stackup reader wanted one line per layer and KiCad 9 writes five (4ea58803)
- ecad: the via rule asserts the property, not the spelling it was written against (4f9a705b)
- ecad: the via pass read dT before the loop assigns it (2730bd44)
- ecad: VBUS20’s island was cut and the current found an inner track; the HF island squeezed its own gate drive (f7d063e9)
- ecad: the USB net class was built on C, D and E and never registered, inside a comment (9573f79b)
- ecad: board B’s BOM, 44 uncoded lines answered and two defects behind them (43fc7c6c)
- ecad: E7’s source pad gets a second row of power vias (a542da46)
- ecad: the first VBUS20 copper bought two hard items and no current (760f0f88)
- ecad: board A’s placement generator could not run, and nothing said so until a chain tried (932c0a70)
- ecad: P3’s pack current enters its band through three 0.6 mm tracks; decision 23 puts a number in front of ruling 9 (826fe267)
- ecad: a rail’s source is the power path, not the part that controls it (d67e3d49)
- ecad: a cell a pour fills is full copper, and a track inside its own pour is not a lone conductor (d5bf211b)
- ecad: clamp a conductor to the current its rail is given, refuse only the gross excess (44a4e939)
- ecad: the conductor current was a potential difference across a path the conductance did not describe (1d0b3a5c)
- ecad: every rail names where its current goes, and a rail without loads is refused at declaration (ddba354a)
- tools: tier 2b caught a fix that was written and never applied, and two more (080d67e7)
- tools: a rail whose loads are undeclared is not judged, and that is half the density failures (cea40e7c)
- ecad: the import note leaves the project folder, which must match what was proved (b2066a36)
- order: a manufacturer’s prefix is the same part, and every LED row carries a code (0de207f5)
- tools: the current-density bar is lenient, not strict, and twelve rails exceed it (4f8191bc)
- tools: the stub router’s class lookup was dead twice over (87979f17)
- tools: straighten normalises the net class once, and the map is off limits (f4f93b82)
- tools: which class a net is in, answered once; two readers had it wrong (b9ecc2f2)
- order: the fab note reads the copper weight and the stackup off the board (0c50eb79)
- tools: a routeflow run whose tools and board come from different trees is refused (a725de82)
- tests: the new packer knob is registered, and the rule that guards it says what it guards (42e69749)
- place: B’s PoE inlet is placed, not packed, and seven violations go with it (9bd7feb5)
- place: board B’s region overflow is ZERO, owner ruling 13 (5afe48cb)
- place: eleven of board B’s twelve regions are sized, and the instrument had a third defect (e31db0a8)
- place: nine of board B’s twelve overflowing regions are sized, owner ruling 13 (499e98ca)
- e5: the dock block’s board carries a stackup, and it is the 2 oz one (216c1c73)
- p: a finish declaration that the finish cannot see switches nothing on (53114b80)
- order: A’s SMA rows named the device at the far end of the pigtail (808eec85)
- order: owner ruling 10’s own fill rule could never fire (90603de2)
- p: board P declares the stitch pruner, with the via it removes measured (2ea1cbf5)
- escape: solder paste is not copper, and it was refusing every thermal via (ae7f75e2)
- order: the panel and dock parts nobody had written a purchase route for (1186e391)
- order: a socket on the board is not the lead that plugs into it (5f198f77)
- place: a region that cannot hold its parts blocks instead of warning (09cae517)
- order: the shelf packer walks over the parts that are already there (eab5eaf3)
- order: every connector land that JLCPCB stocks names its own part (1f81dac4)
- placement: a through-hole collision is named, not stepped around, and decision 11 (5971737c)
- pipeline: the red team’s route-supervisor and artefact findings (b1872cc9)
- agent: the red team’s experiment-integrity findings, all of them (16930385)
- placement: the shelf packer had no obstacle awareness, and a band is not an obstacle (5be4d8ad)
- repo: the build VM’s hostname was in four public files (af18d16f)
- escape: the exposed-pad thermal vias laid copper without asking anything (dd65191c)
- prefanout: a margin against the board must be the board’s own (78746f6d)
- escape: a nearness window measured from a pad’s centre misses a pad that is wide (361f0834)
- footprints: both TI mux lands read a centreline dimension as an overall one (af581ee4)
- docs: the layer verdict was KEEP and read as endorsement; it is NOT_FREED (c8548c9b)
- tools: the runner is the judge and there is only one (916df8ed)
- tools: a knob this run cannot execute is refused like a knob nobody reads (8fe44f8b)
- tools: the five findings tier 2b made against the legality change (b89de0af)
- tools: the pair count alone is a gameable objective, and a flag is not a threshold (fca26d4f)
- tools: the seven findings tier 2b made against the change that introduced it (2d596199)
- preroute: the refusal position carries no parentheses, which would have cut the reason in half (d076600e)
- handoff: the order notes name the phases the tree actually ships (e5565c49)
- parts: A24’s remaining codes, and the eFuse ILM resistors get a resistance (da970aff)
- intent: CELL+ declares its load, and the rail goes from 2.21 percent to 0.08 (55dd8014)
- tools: the stub router takes its connectivity count lazily (137e9a57)
- tools: the straightener leaves the nets of a differential pair class alone (1100a060)
- tools: a meander is locked copper (62833088)
- tools: a via standing in a pad of its own net is not dangling (55e4c7af)
- tools: the legend pass stamps the phase the finish was given (27badf60)
- tools: the phase comes from the board file and full.sh exports it (d97ff30f)
- tools: the stub router reads its plane nets from the board, not from a hard-coded string (63d0f1a2)
- tools: the legend pass no longer writes a stale phase and a stale stackup onto the silk (e7d0c27d)
- preroute: PAIR_END_STRICT judges the copper laid WITHOUT asking a map, not the map (c69b9f46)
- tools: the stub router checks that a closure closed anything, and takes it off when it did not (caff1de7)
- tools: direct_close anchors to the piece the DRC named, not the nearest copper to its position (08df9e0d)
- tools: direct_close works on the pair the DRC named, at the positions it named (dfee3134)
- tools: the DRC refuses a board whose project file is not beside it (7dfbfb67)
- tools: the pair report reads the whole-pair refusals, and prints what it still cannot read (ce2209a7)
- tools: the continuation route gets the plane treatment its own route was given (574bb6dd)
- tools: one shell-side answer to which Freerouting jar runs, and the per-pass session on every capped run (d5526085)
- tools: C’s continuation route runs up to 15 opens, which is the case it was written for (c91dd8f8)
- chain: a board the pair gate refuses gets its DRC before the block, and the entry guard is worth plus one (dba44c60)
- preroute: the via diameter helper cannot raise out of a diagnostic (5944c545)
- route: correct the note, C10’s router was alive; the display race stands on its own (682b46ee)
- route: the last two routers take a named display, and the rule reads code rather than comments (f022bf2c)
- route: every router takes a named display, and no script kills every Xvfb on the host (de1516cd)
- gen-a: the charger’s switching capacitors are placed at their inductor, not by the packer (a131abd5)
- gen-a: FES moves up so CHQ keeps its height and its capacitors stay off the inductor (501804f6)
- gen-a: the ESD at 90 degrees lays A’s third pair, J_AB2 into a clear window, CHQ off the inductor (b7785994)
- tests: the window the entry rule reads covers the comment that explains it (880817aa)
- tests: the entry-region rule follows the shape it guards (e3953bae)
- preroute: a blocked cell in the entry region is put to the geometry before the pair is refused (bb78d5a8)
- preroute: a skip parameter landed in the helper above the one it was meant for (fcef7a7e)
- gen-a: the wall port’s ESD sits at its connector, not 86 mm away (b35acfd5)
- preroute,gen-a: a via is measured with its layer; J_AB2 turned round to untwist the wall pair (2497bd76)
- gen-a: J_AB2 into a window the rod-nut gate accepts (19d7ee69)
- gen-a: one source for the IDC land, so J_MEZZ1 stops carrying the stock pads (d9a92828)
- preroute: the entry exemption asks the pads-only map, and appendix 32.135 (053b4e34)
- preroute: the cross-net test names the counterparty and leaves the verdict to the DRC (65ac9977)
- preroute: the cross-net gate exempts the pair’s own two nets (c902faad)
- gen-a: two placement regions overlapped and put the charger FETs under the front end’s resistors (432f75d2)
- preroute: the trim takes only pieces wholly inside its radius (1c5290de)
- preroute: a fan’s own pad field is a map that exempts pads and no track (ddb9ef4f)
- preroute: a fan’s last 1.2 mm is excused only where the pair’s own pad is, and the dive’s fan is judged like any other (4b1fa4cf)
- preroute: the own-copper test uses the fold bar, and each of the four guards has a knob (1dd87969)
- preroute: a twist is declared only where the pads really are on opposite sides (43cd93c9)
- preroute: the own-legs gate judges each layer by its own width and each via by its own radius (cc2381e6)
- preroute: the merged polyline is judged for the fold merging can create (ca296605)
- preroute: the mutual leg test is a fold detector, not a second clearance test (B19 22 of 48 against 9) (32f2b97b)
- ecad: the narrow-pad IDC lands are in the library and declared by the boards that use them (45d144b3)
- preroute: the dive’s N fan and the direct legs are judged against the partner’s copper (67126a1d)
- preroute: the two offset legs of a pair judged against each other; the IDC land is a per-board measurement (814313ac)
- preroute: a pair may not short its own partner: the fan and the sub-cell stub ask before they lay (d86bfb6f)
- tools: a blocked LCSC code can be wrong on one land and right on another (41218a66)
- pre-router: the station swap crosses the hub side by construction, measured (4911f0de)
- docs: every section from 32.118 on carried tomorrow’s date (d4811348)
- a: A’s schematic regenerated for the harness pin map, and the contract passes again (69c1c1c5)
- docs: the B19 arm counted the tool’s own SWAP and DIVE lines as failures (d4c74e27)
- tools: a footprint’s origin is pin 1, and the pre-router read it as a centre (e65b023c)
- a,d: a pair cannot leave an inner row of a 2.54 mm IDC header, measured (9b067d18)
- tools: the deliverable gate could not see the declaration the project actually uses (26db7f5b)
- tools: the stitch pruner is declared per board and off everywhere (653e4b46)
- tools: three from a review of the board-mutating tools (b4d6a915)
- routeflow: a restored best board gets its finish, or it is only half kept (18088cad)
- e: the phase copy carried a stale allow list, and that is what refused a clean E (6b46487f)
- tools: the stitch pruner was judged against zero, so it could never help a board that was not already clean (3c84daca)
- routeflow: keep the best routed board of a run, because a remedy can make one worse (c2719e97)
- tools: the stub router emitted a straight run as one segment per two cells, and that is what refused E (cc8f5acf)
- routeflow: the journal and the provenance named the stock jar while the patched one ran (871d6d3f)
- routeflow: every profile pinned the STOCK jar, which bypassed the refusal added for exactly that (3ea4d4f5)
- tools: stitch_prune had its safety test the wrong way round (3ef07bca)
- e: the allow line for E’s sensor headers matched nothing, and a dead allow line is named now (f4634fec)
- tools: a code is wrong FOR A PART, not in general, and the rejection was keyed on the code alone (312e4cbb)
- tools: P3’s three pack connectors get their LCSC codes, and a round starts with a clean verdict channel (65f3a48b)
- routeflow: the horizon was computed and never passed to the collector (71ee5e8a)
- verdict: one clock, because the horizon was comparing local time against UTC and excluded nothing (2ac71067)
- routeflow: a stage is judged only by the verdicts it wrote (f8028979)
- tools: a board missing from the tree is an inconclusive contract set, not eleven broken contracts (6459e9e7)
- routeflow: correction, the generator-log rule did not fire on the profile it was written for (86d5308f)
- routeflow: c7 and c8 declared a generator log no chain writes, and validate now checks that (b39784e7)
- tools: hardset’s verdict honours the stage it was always given, so a pre-route board stops failing for being unrouted (db6b5206)
- routeflow: the router lock refusal names the knob that lifts it (2b26633e)
- tools: three from a review: an escaped quote ended a parse, a resolve ran twice, a stop named a log nobody would read (8ed2ffdf)
- tests: test_finish_order used sys.executable without importing sys (10a9112d)
- tools: netlist_board read KiCad’s unconnected-pin placeholder as a net and blocked B19 (7e1e9f20)
- tools: the order set describes the board it ships: make_handoff resolves the phase from the tree (48300b7e)
- tools: the finish dispatch runs from the ecad directory, and a rule says so (9cd7563d)
- route: the stock-jar fallback is a decision now, not a silence (a21b4ee8)
- preroute: the leg test gets its own knob, so an arm stays one variable (4b5e964d)
- preroute: an entry-station end whose legs cannot leave it is not an end (9785c7d6)
- preroute: the corridor end-chooser tests the legs, not only the stubs (cc42e951)
- straighten: a work budget, because it is quadratic and it stopped a finish for an hour (8e090a03)
- impedance: a declared zero is a pass, an undeclared zero is inconclusive (658602aa)
- preroute: refuse a board whose pair classes cannot be read; test the corridor end where the stub starts (79e557ea)
- preroute: the map mode joins the counter that already existed, rather than a second one (27d32326)
- tools: a random UUID decided which escapes fit; the laying passes have a stable order now (474530d7)
- tools: the placed snapshot is written for every board, not only the ones with pairs (218d4381)
- tools: the last unbounded wait, and the stale B5 board that any glob picked first (1f4cc937)
- parts: the VBAT bulk and the 145 MHz filter inductors, both unbuildable as drawn (ab8f0fcd)
- generators: a comment must not swallow the calls after it, now a gate (776fbfce)
- gates: three gates that could not fire, and the BOM blanks fall from 320 to 23 (a7c37972)
- parts: two Coilcraft part numbers that do not exist, and the jellybean search that hid them (39e2c786)
- parts: eight wrong LCSC codes in shipped BOMs, found by the certifier reading each row’s own text (12a037d3)
- tools: the coverage scan read only the schematic generators, and four real parts were named elsewhere (16ae1b99)
- tools: the deliverable DRC histogram has never printed, its pattern was a grep error (25a36c5f)
- tools: no silent fallbacks in the pre-router, an exact heuristic, and the chain carries the pair configuration (6d8b3251)
- tools: the hard set is one set in the shell too, and a broken attempt can no longer read as a routing failure (f85f4fc1)
- tools: close the fix-propagation matrix across the six finishes (f2a82f53)
- tools: the stripline comparison was two different geometries, and the record’s 74 ohm finding falls with it (a61f8437)
- tools: the DRC report is an output, not a file that happens to be there (a80b1d29)
- tools: every finish’s wait has a deadline and refuses rather than waiting forever (1867470a)
- tools: the pre-router’s re-exec is for the script, never for an importer (82b1a359)
- tools: dc_drop says what it does, prints the budget it used, and refuses a mesh it did not solve (8a213b15)
- tools: the rasterisation cache belongs to its grid, and the adaptive grid refuses to run under a negotiated plan (e6235ea6)
- ecad: the six schematic generators share one engine and ic() is strict on every board again (d1a79480)
- tools: the P board shares the engine’s part list from the first part, not from halfway down (bac47068)
- tools: regrade the benchmark by board and mark every six-type verdict; the negotiator returns what the laying pass did (915c6fe1)
- tools: one hard set for every gate, the baseline keyed by board, failure propagated, preflight before the spend (596c163f)
- tools: the negotiator keeps the least contested plan, not the one with the most corridors (f43741ed)
- tools: a negotiated corridor owns its ends, the laying pass does not re-choose them (7099725b)
- tools: the negotiator counts its sections and says what it planned (06c9905c)
- ecad: B’s fine-pitch margin goes back to 1.6, measured against the corrected corridor slack (24577513)
- tools: A’s placement gets the new spare-line test point (b0365987)
- tools: a pair whose legs cross gets the escape-via second chance, like a failed section (7d92fe2d)
- tools: the pre-router’s corridor slack is 0.12 mm, measured: 38 of 113 pairs at 0.25, 49 at 0.12 (6612235f)
- ecad: B’s fine-pitch escape margin is 2.6 mm, measured: 194 pads with no escape at 1.6, 69 at 2.6 (06d5a9d3)
- tools: the B placement gives the wide escape margin only to the QFN and QFP rows, as C and E already do (80fb64d0)
- tools: every chain with a pre-router keeps the placed board before it (5241ea1b)
- tools: rip-up is off by default: measured, it lays 224 times and ends with 29 of 113 against the greedy pass’s 38 (55bdd7a3)
- tools: a station walled in along the P to N normal falls back to the sweep instead of returning a blocked corridor end (925358fb)
- tools: the escape-via entry is a per-pair fallback, not a mode: it gains 27 pairs on B19 and costs D10 two (10e63903)
- tools: pour coverage, use the KiCad 9 intersection call so the board clip actually applies (f9689d45)
- tools: pour coverage is measured against the outline inside the board, not the drawn rectangle (eb6cc9c8)
- ecad: the spare ribbon line keeps a test point on A and none on B, where it no longer lands (5ad9f17b)
- ecad: every ribbon differential pair sits in one column of its header, ground pins on both sides (b9d114d6)
- tools: the B chain keeps the placed board before the pre-router, the input every pre-router measurement needs (0689611b)
- tools: pre-router: a corridor end must be a cell both legs can still reach their pads from (11cb305c)
- tools: pre-router: strip a station’s escape by following the chain out of the pad, not by a 3 mm radius (f94ed160)
- tools: pre-router: cut the self-intersections out of an offset leg, which is what made the two legs of nine B19 pairs cross (48d410ef)
- tools: partition stage two, sequential mode: the merged board is stage1, and a stale session or log of a previous pass is cleared (9ad22834)
- tools: the partition reconcile judges the stub router’s closures like every other finish does (0ea86c9b)
- tools: calibrate the pair expansion budget, and the mitre change is measured as neutral (780f71b4)
- tools: a right-angle corner takes the arc, not the mitre, in the pair legs (3bca9bae)
- tools: the pair budget is counted in expansions, because a clock made the pass non-reproducible (242cf0dc)
- tools: stub_accept refuses a closure that costs more copper than the net is worth (ded6c702)
- tools: the stub router no longer asks a pad for a polygon on a layer it is not on (d936ceeb)
- pcb-b: the voted logic takes the QMX bay’s underside instead of crowding the controller pockets (6f2eeff6)
- pcb-b: R500 was listed twice when the voted logic was split three ways (457a65f1)
- pcb-b: the placement predictor went from one collision to twenty three, and the cause was mine (aa36b90b)
- tools: the pair pre-router reports each pair as it happens, not only when the pass ends (7094f726)
- tools: the B19 chain runs the pair pre-router with a 300 second budget per pair (5075c1ce)
- sch: A22’s device rail is declared at the current B16 now draws from it (e4b9da6b)
- sch: a bank now outlives its module: hub, both host selects and the hub core leave the slot rail (1342882c)
- ecad: three controller pockets instead of one band, both ends of each CAN fabric terminated, the gate follows the ring (82e4f6da)
- ecad: the two host-select muxes get their TI land patterns and the TMUXHS4212 its missing ground pins (39ae7551)
- tools: the deliverable gate stops reading a board’s own name as a stale phase, and bare lands as missing from the CPL (4a8a5ea1)
- sch: the fabric’s capacitors clear the SIM blocks at C86 to C91; the generator builds and the ring reads back correct (751c6e80)
- sch: the four USB bridges leave the slot rails, three floating FET gates get their pull-downs, the panel controller is on slot 1’s hub (9adc85d3)
- tools: the body notch is only as deep as the window needs, and the notch test reads the courtyard, not the silk (447a3397)
- sch: the E comment goes on its own line, it had swallowed TP13 and two pull-ups; C becomes C10 for the recessed face (cd72c170)
- cad: the monitor sits IN the plate with its glass level with the aluminium, per the standing ruling; a gate for proud display surfaces (1e176190)
- tools: D defined pour() twice and the live one never removed pour islands; P had no island removal at all (076a31d5)
- cad: the face re-spaced around the Xenarc, which is 19 mm taller than the display it replaced; a gate for two things on the plate (9a52fad3)
- tools: a corridor keeps its own ends free of the behind-station mask and starts from an open block, not the first pocket that fits (10b0e02a)
- sch: E’s Geiger series resistor is in the path it was drawn for; contract 16 refuses an in-line part that is in line with nothing (26a26891)
- tools: the dense fanout sample tests tracks only, not the pad lane; a D placement candidate can be swept from the environment (5ea43910)
- tools: the pre-router never leaves its two legs crossing; the stagger rule applies to pad rows, not to two-pad passives; appendix 32.83 (860f8c51)
- tools: the fanout stub is sampled every 0.2 mm, not at two points; a stub’s A* frees a disc at both ends, which are its own net’s copper (1d3295be)
- tools: the escape stagger never lands on the router’s own limit; the pairs claim copper before the fanout; pour_stitch armed in every finish (031a1391)
- tools: restore gen_sch_d.py, my rail-note edit had cut 350 lines out of it; the 3 percent budget is one line now (dc5d5e94)
- tools: repair the D rail note, and the E dock’s only pair is a full-speed link with no impedance target (e6975fb4)
- tools: the D hub’s port 3 resistors move 1.5 mm east; the 3.6 mm hop from U4 pin 19 had no path on any layer (0b38c098)
- tools: the D mezzanine rail carries the budget its loads need, 3 percent, with the load list as the reason (08af5739)
- tools: the escape-fan box was only ever the inflate, so the protection never ran; built from the courtyard edges now (7ac58916)
- tools: the second decoupling pass keeps out of escape fans; measured as the cause of the lost escapes, not the reservation (29ae81cd)
- tools: the fan a reserved slot must avoid belongs to every escaped IC, not only 0.4 mm parts (ab4b6733)
- tools: a reserved decoupling slot never sits in a fine-pitch part’s escape fan, and the block imports its own os (04d34ce5)
- tools: the new EMCON pull-downs get a place beside the gates they protect (c9dffeed)
- hw: EMCON has one driver and one sense, low silences everywhere, and a missing panel inhibits; the PoE feed loses its 24.9 ohm series resistor (8afa0d13)
- release: the 23 wrong LCSC codes reach the deliverable BOMs; verify_deliverable refuses a blocked code from now on (dbd1abc0)
- tools: the pair pre-router reads footprint-local keep-outs; it was laying pairs straight through them (5ced9b87)
- tools: a net class clearance below the board minimum is refused; it cost A23 twenty five clearance violations between pair legs (b5da269c)
- tools: two laid runs crossing is left on the board for the gate, never resolved by deleting half a pre-routed pair (a7e99c0a)
- tools: prune the escape, never the pre-routed pair leg; among the locked items in a violation take the shortest (5985c181)
- tools: the sounder driver column sits in the measured 6.2 mm gap between the sounder and the jack courtyards (6d2457b3)
- tools: the sounder driver column clears the sounder’s own solder lands as well as the jack (dba80139)
- tools: an escape that shorts its own part’s neighbouring pad is the escape geometry, not the placement; counted on its own line (168b1aeb)
- tools: the sounder driver column sits clear of the jack hole and the sounder keep-out (af5ec78d)
- tools: the sounder driver sits at the sounder; on C8 it was 294 mm away and BZ_K was the one net nothing could close (408a05fe)
- routeflow: B17’s pass ceiling comes from B16’s measured curve, 16 passes in a seven hour budget, not 100 (47ab0e7b)
- tools: the in-pad fanout via holds its clearance to existing tracks, not only to pads and vias (33577a3e)
- tools: a pair’s last fan into its pads is tested and routed, not laid blind over other nets’ escapes (877a8377)
- tools: a pruned escape blocks the chain only when another part’s pad caused it; the C panel USB link is full speed and declares no impedance target (22d37178)
- tools: the C panel rail carries the budget its loads actually need, 5 percent, with the reason in the intent (a59b01c9)
- tools: no straight tail run into a 0.4 mm row station; its escape vias are the section’s ends, as the corridor predicate already said (75ebebaa)
- tools: the pair debug print applies the same station exemption as the check it explains, and names the run and the distance (2d1d7212)
- routeflow: A23’s pass ceiling comes from a measured pass rate, 18 passes in a five hour budget; 120 could never finish and cost two rounds (aa190fc0)
- tools: escape_prune names the violation and the counterparty for every pad it strips; the same-depth pair escape is withdrawn on measurement; the P board declares its three gauge supply pins (423aa071)
- tools: declare the six PTT and EMCON gate bypass capacitors on the D board; correct the record that said they were absent (9375f03b)
- tools: a differential pair’s two pads share their escape depth, so the pair leaves the row together; alternating depths left 0.6 mm where a 100 ohm pair needs 0.65 (1bec1153)
- tools: the panel board gets three hours for its thirty passes, which at 4.5 minutes a pass do not fit in ninety minutes (d5788f30)
- tools: the panel board routes 30 passes, not 100; at 4.5 minutes a pass it could never reach its ceiling and a session is only written when the job ends (a71f80d2)
- tools: the pair pre-router follows the same row rule as the escape pass, so a leg into a card socket ends at the escape via instead of aiming at a pad behind a wall of them (8c08adf3)
- tools: a solder jumper is copper, not a part JLC places, so it joins the bench prefixes of the deliverable check (6c2bb3d7)
- tools: the board gate honours bypass-allow.txt too, so a recorded decoupling exception does not fail every board silently twice (b88bef0c)
- tools: the pad-to-plane pass refills and re-reads the board first, so it sees the items it exists for (1d4ff54e)
- tools: withdraw the per-class layer rule, measured: C8 never finished a pass with it and auto-routed in 14 minutes without it, and the router does not honour it anyway (02a3f893)
- tools: repair escape.py, a comment landed inside the attempt-list expression and broke the file (fb69f71e)
- tools: the depth stagger fires only where it has clearance margin; at 0.4 mm with a 0.45 via it left 0.075 mm and put four violations on A23’s charger (8e471b0a)
- tools: the fine escape scheme takes a 0.5 mm part only when its row is long; on every short one it put the vias 0.075 mm from their neighbours (4e65d9f6)
- tools: A23’s dock copper keeps its track keep-out off the header’s escape area, which is why two routes ran to their limit without a session; the 0.5 mm rows take the proven fine-pitch escape scheme by pitch instead of by a hard-coded reference (529cbf9b)
- tools: the pad-to-plane closure accepts one via at a time, so a good closure is not thrown away with a bad one (3ee9f542)
- tools: D9’s port-4 terminations north-east of the hub on the front, clear of its courtyard and the pull-down column (08f8eeeb)
- tools: D9’s unused hub port terminations sit at the pins instead of 9 mm away on the back, which is what left HUB_DM4 open through two rounds (c4208483)
- release: P2 retitled from P1 on its silk and its deliverable rebuilt, the first to pass all 35 properties of verify_deliverable (it had lost meshsat.pretty and the full BOM to the copy bug) (3d84d477)
- tools: the deliverable copy named two BOMs the same file, so under set -e the finish ended before meshsat.pretty and before verify_deliverable ever ran; every finish now tests finish_board.sh’s own status instead of tail’s (fa0f0291)
- tools: every board’s silk carries the phase its chain builds and the deliverable gate refuses another (P2 shipped stamped P1, D9 would have shipped stamped D8); solder wire lands are bench parts; the order index and the D legend rules drop the DMR858M, which left the device set on 6 September (6ab8ee13)
- tools: C8’s +5V rail carries its schematic loads in the intent and the RAIL class goes back to 0.5 mm (the lumped 0.6 A asked for 1.0 mm and the router wrote no session in 90 min or 3 h) (b7fa59b4)
- tools: pair pre-router: hop layers carry only the dives and the stubs’ hops, never a corridor run (D9’s USB_D8 took 42 mm of In2 at 137 ohm); the chains name them (84c0a7d6)
- tools: pair pre-router: a via site is the cleared cell’s centre, not the polar sample beside it (441f8e9a)
- tools: pair pre-router: the dive tries the next via site when the stub into the pad finds no path (666575fb)
- tools: pair pre-router: the maps are rebuilt after an in-section swap and before the stub pass; the N fan runs 0.5 mm on before its turn when the P leg dives (60d954e4)
- tools: pair pre-router: the raster cache keys on the pad position (a swapped resistor kept its old raster and a stub shorted its pad), a pull-down across the other leg is stubbed by a dive; D9 R28 north of R27 clear of the crystal (46c7546b)
- tools: pair pre-router: an SMD station’s corridor end sits where its own layer is free; the stub and via helpers live above the section loop (the stub pass found them undefined after a direct-leg section); the blocked direct leg is named in debug (7ec24697)
- tools: A23 VIN_RAW copper round the dock header’s second row on B.Cu, F.Cu and In3 (the riser through the row filled as two pieces); the D and C chains give the pre-router In2 as the dive layer (6c05dc88)
- tools: 33 LCSC codes that resolved to wrong or unstocked parts at JLCPCB corrected in the schematic generators and the fill table, codes only (owner ruling, appendix 32.72) (402cbdfe)
- tools: D9: the USB1 resistor row 4.4 mm from the codec pad tips so both stations’ entry runs fit (35beb3d4)
- tools: P intent names the current sinks (the mesh split 10 A over the sense pads); a stitch via outside the fill with no track is a note (a5f07c60)
- tools: pair pre-router keeps the board minimum clearance between its legs; through-hole pin pairs are entry stations (51ee3c49)
- tools: P2 power class 0.5 mm for the router’s sense and test-point links (the current is in the locked bands) (0e2bad74)
- tools: the D9 profile’s nested names (525efc18)
- tools: routeflow routes in the profile’s project directory (a copy directory), the D9 finish and profile, the pair pre-router in the A chain (baf443cb)
- tools: jitter campaign: expand the profile’s tilde jar path, a 9999 score is no session (c08a7bbc)
- tools: the jitter campaign moves the passives only and gets one directory per sample; pruned escapes warn in the predictor (8b6d805f)
- tools: re-arm the gates of the audit 32.64: one hard set, ERC and zone nets block, contracts in every finish, deliverable read back, copper checks restored (42a8911e)
- tools: partition stage two: bash’s GROUPS is a read-only array, the group list is PARTS; the project file travels with every board (60852f21)
- tools: cont_route kills only its own router (absolute session path) (18be80dd)
- tools: finish_b16 runs the DRC the knot removal reads (67fb26fe)
- ecad: ground pads of a part with an exposed pad join it along their own axis (the ring of 0.4 mm escape vias fences the plane on every layer); the C7 gate counts vias only where a keep-out forbids them (d1ad76de)
- ecad: D8 silk legend names the south edge for the PA leads (post-route text swap, deliverable rebuilt) (3a516638)
- render: pigtails to the dock clamps under the battery row, the official MeshSat mark on the plate, dock views as cutaways (owner, 6 Sep 14:45) (2e74f667)
- face: the e-paper window moves up 8 mm so 8.6 mm of plate separates its lens pocket from the display glass pocket (owner, 6 Sep 14:45); plate set regenerated (f3c204c5)
- pcb-c: In1 stays a solid plane on C6 outside the two driver clusters (In1 track keep-outs with windows, the B15 pattern); gate checks them (fceb081b)
- render: level views hide each board’s parts with it; the connector plate close-up from outside; 39 views (601fbf69)
- render: the 1450 lid sits on the rim (no 25.4 mm drop), antenna ports drawn as jacks with only the recorded Iridium patch and GNSS puck, the view set weighted to the inside (24eb975a)
- tools: C6 profile back to the configuration that routed clean (2.4.1, In1 routable, no plane); the plane variants shorted or left opens (a6f2186f)
- tools: autoroute settings go into the DSN, never a -dr file (it dropped the design’s clearances); the C gate’s via drill floor follows the layer count (86ff9108)
- pcb-c: the four-layer backer takes JLC’s 0.4/0.2 via floor (6f389cb9)
- tools: route_one kills only its own router (absolute session paths); a twin experiment’s clean-up killed B15’s routes (9a8e2268)
- tools: one experiment per project directory (project lock, fail closed); the B14 and B15 experiments get their own directories; driver groups (7f063fd6)
- tools: routeflow reruns a route that died within a minute (tool failure, not a measurement); cloud box needs the full JRE for 1.9.0; JVM cap 5 GB (fc0969da)
- pcb-b: the pair report covers every differential pair, so the matcher meanders the DSI pairs too (d3e62af2)
- pcb-b: B15 finish uses the coarse stub grid for the long open connections (2bcb8423)
- pcb-c: C6 route congestion: outer-edge keep-out band, a second placement region on the bottom strip, single-thread 80-pass route, coarse stub grid (efaf44ff)
- tools: finish scripts report a stub router crash instead of filtering it away (23562b61)
- pcb-b: hole and nut keep-outs on every copper layer of the six-layer stack; route_audit via width by layer (7a5d741a)
- pcb-c: C6 e-paper header along X at Y 108, sounder lands to the sides, sounder courtyard sized to the through-body (f9fe44ee)
- pcb-c: C6 side strips to X 120 so the LED column clears the edge; the gate measures the LED dome and the plate outline (23c52346)
- pcb-c: BackerScrew footprint labels formatted, footprint self-test, the C chain stops when a generator does not save (6a57c8f3)
- pcb-c: the C6 chain’s inner log no longer clobbers the run log (d9bb87e0)
- cad: the wall bulkheads are not stack (458fdb87)
- pcb-b: In1 stays solid everywhere but under the CM5 breakout window, where both inner layers are needed (cc7c5969)
- pcb-b: B14 PCIe pairs length-matched by meanders on PCIe_TX_N and PCIe_RX_P (0.00 mm), deliverable re-exported (501c894c)
- tools: the clean flag of the A21 and B14 finishes ends with a newline and is read with cat (a bare read reported every clean board as open) (1e8e9bad)
- pcb: A21 and D7 boards retitled to their phase and date, deliverables re-exported (70f170d0)
- tools: post-route title swap for a routed board; phase and date strings of the A, B and D generators brought to A21, B14 and D7 (d5e16b5d)
- pcb-a: the gate accepts a column split by its own foot when every piece touches it (d8a07fc7)
- pcb-a: the gate reads each feed fill on its own layer (a074b911)
- pcb-a: locked copper spines through the island necks and the inductor taps (ad5c61c2)
- pcb-a: the output islands and inductor taps go to the router as planes instead of keep-outs (91d90f25)
- pcb-a: bus_a21 clears obstacles by their real via radius (581781af)
- pcb-a: bus_a21 uses the KiCad 9 net code accessor (db54938a)
- pcb-a: F.Cu keep-outs on the output and inductor islands, the converters’ enable line as a locked In1 bus, CELL_N link in the PWR class (87be0223)
- pcb-a: the bootstrap capacitors are moved after packing, not fixed twice (ae5311fe)
- pcb-a: the south feed vias clear the fuse pin hole (2b1d8d79)
- pcb-a: bootstrap capacitors under their converters, boost feet under the node bar only with In1 in parallel, B.Cu south segments (b386b323)
- pcb-a: boost feeds on In2 and B.Cu in parallel with a wide foot under the node bar, six tap vias per inductor, no keep-out on the rail taps (444c115c)
- pcb-a: the PI corridor 2 mm further north, off R18’s LED rail pad (c61b8605)
- pcb-a: the comma a line comment swallowed in the boost feed list (62d0f383)
- pcb-b: the B14 finish refuses an open or dirty board (8555a528)
- pcb-a: the boost 1 In2 column clears U22’s BST1 escape via; pad entries under 0.7 mm are not links (3f0085d8)
- pcb-a: A21 rail collectors north of the inductors, boost feeds on In2 with inductor tap islands, fanout ties locked, adjacency in the gate (bee3129b)
- pcb-a: A21 rail bands north of the boost row with track keep-outs, a continuity gate on the routed board, bands out of the DSN again (2618faae)
- pcb-a: A21 top-side output islands on the three converters, stitched to the rail bands; the router keeps bands and islands as conduction areas (0aef3ac5)
- pcb-d: the V8 bands at distinct priorities (a zones_intersect note on the D7 deliverable) (d6213480)
- pcb-a: the A21 bands overlap only at distinct priorities; the node’s fuse tap already covers F2 (bee0253a)
- pcb-a: the A chain fans the rails and boost inputs out into the bottom bands (4b4b2700)
- pcb-a: A21 rails and boost inputs on bottom copper bands with their pads fanned out, classes at 1.0/0.8/0.6 mm, the sense line out of the bank class (d96993fd)
- pcb-d: boost loop pads fanned out into the B.Cu pours, CELL class 0.8 mm so the router closes the loop (83ff0fba)
- pcb-a: the project-file class list carries the BANK clearance too (two literal lists) (5ac11d4f)
- pcb-d: B.Cu pours carry V8 and VIN_CELL (the router could not close the 1.2 mm boost loop), the north region off the edge clearance (b651cc99)
- pcb-a: BANK class clearance 0.15 (the cell node meets 0.15 mm pad gaps on the LTC2954 and the escape stubs) (22ab63f3)
- tools: net-class patterns emitted in both name forms on every board (the slash of root-sheet labels defeated them), six optimiser threads per route attempt, pattern coverage in the B gate (b74f542b)
- pcb-d: the D gate reads slashed net names; the expander region 1 mm wider (1ede2768)
- tools: the M.2 socket rows take the tip-via escape scheme; envelope check to the courtyard (21ea21a0)
- pcb-d: D7 content checks only on the placed board and run again after placement; the new resistors in the core region (e75d64dd)
- pcb-b: the placement comment had swallowed six fixed connectors on the FIXED line (22133bde)
- tools: escape stubs for fine-pitch connectors too (the M.2 socket), coarse J parts still skipped (c7eafbc4)
- pcb-b: M.2 socket placed with the card along +X (the placer centres the courtyard), the gate reads the slashed net names (ca3223d4)
- pcb-d: pull-downs on the channel-code inputs, stale D6 strings in the title block, comments and ASSEMBLY, the polled tty and the analogue-channel rule in PANEL (f2a266e7)
- pcb-b: the CM5 PCIe lane wired to the M.2 socket (it fell into the NC fallback), the card buck on the Pi rail by ruling, PCIe connectivity guard in the gate (ee394128)
- pcb-b: the two new rail flags placed on the power sheet; 32.37 clock label (d0c9bac4)
- pcb-b: B14 M.2 site 3 mm east, clear of the LTE envelope (54008fca)
- release: E5 block with the underside legend inside the edge; order and review sets (632f48d3)
- ecad: E5 underside legend moved inside the board edge (1e6b48dc)
- release: E5 block with the moved legends; order and review sets (61249249)
- ecad: E5 block legends shortened and moved off the board edge and the corner holes (fdfe7e8e)
- release: E5 block rebuilt with the outlined power targets on the pulled footprint; order and review sets (be349de9)
- release: A20 and E4 relabelled GNSS post-route, E5 block with one outline around the power targets; deliverables, order and review sets rebuilt (91d716a9)
- ecad: the E5 target footprint’s second silk ring removed as well (eac5bcc9)
- ecad: GNSS label in the dock generator and assembly table; E5 power targets outlined once instead of merged rings (73e2276d)
- pcb-b: B13 project board after the reordered finish (03715c09)
- pcb-d: D6 at 0.14 mm class clearance and 0.20 mm hole clearance; the 0.4 mm escape branch also gated on the hole clearance (60bf4ca9)
- tools: stub router keeps 0.3 mm hole to hole from every via and drilled pad, B13 finish cleans before the stub router and refills the planes before its check, the post-fix keeps T-junction feet (480ffc6f)
- ecad: B13 post-route joins, the 0.4 mm escape scheme only on boards set up for it, J_LEDS1 clear of the 2x9 header on A20, D6 at the 0.127 clearance floor (6f24646b)
- pcb-b: restore C18 and C19 on the RockBLOCK channel (a comment had swallowed them); docs and records for the Compute Module 5 set (6b12b6fc)
- ecad: keyed and D-flat holes carry a footprint keep-out past their routed outline instead of an unplated ring (524bb371)
- tools: clean-up keeps a track another track branches from; the seals DXF is one file (f5d52db0)
- ecad: keyed and D-flat panel holes carry a copper-free ring past their routed outline for the router (0b4fd85e)
- tools: C5 gate accepts the frame screws’ courtyard and the track-free gasket band (af6fe56b)
- ecad: C5 keyway toward the operator, gasket band closed to tracks, chain stops on a gate failure (b6d37b1a)
- tools: dangling-via clean-up keeps a via that a same-net track passes over (c194ba69)
- tools: fan escape knees step 0.15 mm so long rows keep their splay length (e3a64bba)
- tools: fine-pitch fan escapes nest their knees so a 0.4 mm row’s second pin clears the first pin’s turn (49deda45)
- tools: fine-pitch escape fallback uses a 0.7 mm via row so the splays stay clear at shallow depth (cbfaf000)
- tools: fine-pitch escape retries shallower via rows when a neighbour sits past the row (99fefea9)
- tools: fine-pitch escapes are locked for the router and retry with a narrower lane rule when a neighbour sits past the row (668edb89)
- tools: stub router starts an inner-layer source with its joining via (dda3f72a)
- tools: stub router drops the closing via on an inner-layer goal even when the path already changed layer (2d3afeca)
- tools: zone gate flags only overlapping same-priority zones; the node riser gets its own priority (b27c8c3c)
- tools: strict net lookup for zones only; chains stop on a failed placement; finish refuses an unrouted board (3c2202a3)
- ecad: pours resolve local-label nets, never a phantom; taps above bars; zone-net gate; per-board fab README (242be79c)
- docs: APEM locks in the panel schematic text and order notes, serialisation wording per 32.21, solar accessory line (bb5bdf8a)
- case: template labels pinned to the sheet in the mirrored back-wall view (693af08a)
- tools: stub router keeps the hole clearance rule off drilled pads; wall cut-out template generator (23a5ca07)
- ecad: R58 and R19 back as statements, the inline comments had swallowed them (d204dac5)
- ecad: 30 V polyfuse on the heating pad feed, crystal caps coded, one code per value (949a7998)
- ecad: TPS2065C sits on a SOT-23-5 land, buyable JEITA values, crystal caps matched, SMCJ15A on the SMC land; LCSC codes for the respin values (7b5e450f)
- release: handoff stops when a deliverable folder has not reached this clone (c96d421c)
- ecad: the B rails are labels like A’s, no power:+5V_M1 symbol exists (7bc8358c)
- ecad: B names its module rail +5V_M1 like A; contract check knows the cross-connector aliases (18e93d45)
- ecad: dock block 43 x 25 with corner standoffs, split power bands and plated wire lands (b37ac2ba)
- ecad: inner layers stay routable on A19; E5 block gets plated wire lands and column tracks (71096c28)
- tools: escape reads net class clearances from the project file (ac083dc0)
- tools: escapes keep the net class clearance between stubs of different nets (f6f7dc70)
- tools: escapes and fanout ignore rule areas that allow vias (ccfe3f7b)
- ecad: A19 node copper as pre-route pours around the pins and jacks, no tracks on the inner layers, charger escapes restored (b7f5cd21)
- ecad: dock strip placement pass 3 (ae06e6a1)
- ecad: block board fills its zones after a reload (25852119)
- ecad: dock strip gate helper and placement pass 2 (91c19149)
- ecad: A19 placement round 5, charger regions north and south of the IC, escape skip list (00d403b8)
- ecad: A19 placement round 4 (e586e0e8)
- ecad: A19 placement round 3 (2349b4de)
- ecad: A19 placement round 2, sites clear of the GPS puck and its slots, regions resized (a0050413)
- ecad: A19 schematic emitter restored, dock block clear of the rod nut, site 2 allowed under the ribbon rectangle (1c2be06e)
- ecad: drop the empty PCB-A feed section from the B12 schematic layout (409a7a2a)
- handoff: panel switch and coupler part numbers in the bench-fit strings of the order notes (36158970)
- handoff: order notes name the bench-fitted inductors and the dock connector, and list the parts left out of the JLC files (7b81a60f)
- ecad: the grid router and the checked closer accept PTH pads (no layer in the DRC text); A17’s SDA gap was skipped (0dbfb0f0)
- ecad: node bars also avoid vias of other nets (A17 MEZZ_CELL column shorted two vias) (7cb0453f)
Performance
- tools: the escape pass asks each part alone only for the openings it closes again, not for every capacitor of the other side (8ca4587a)
- boards: the layer set was the whole of it, and board A’s closer declares two layers now (6ed96f54)
- stub_router: the obstacle map is built once and STUB_MAP_CACHE is on by default (2e412057)
- tools: the closer’s obstacle map is built once for the board and topped up (5dcf583a)
- pcb-c: the pre-lay is measured twice and declared for no board; C14’s board stands at 0 hard and 2 unrouted (4ad40c4f)
- pcb-a: A30 routes A29’s copper with the via-cost remedy from the first round (15fe7ae1)
- pcb-c: the rip-up cost measured at 10 and it is far worse, so C14 goes back to C11’s recipe (1a94ca8f)
- pcb-b: the class-aware obstacle map is declared for B, worth +2 of 113 (96a77e84)
- pcb-b: the layer-change pre-lay test is measured, costs 14 pairs, and goes behind its own knob, off (3af400f4)
- pcb-b: the leg matcher is off by default: it costs B ten pairs and fits nothing on A (888f3ec8)
- pcb-a: a wider pair corridor, where USB_D8’s two legs come out matched by themselves (633dacf0)
- pcb-b: the corridor covers its own legs on B: 71 of 113 against 65 (e02dff9a)
- pcb-b: the corridor slack re-measured on today’s tools: 0.08 lays 65 of 113 where the declared 0.06 lays 54 (010d58c5)
- b: ten points of the corridor slack, and it is a curve rather than a scatter (7a7231dd)
- b: the corridor slack swept again, 0.06 lays 57 of 113 against 47 (4626229a)
- pre-router: the stub search takes the compiled kernel, on where numba is (54db53e4)
- pre-router: the stub search can take the compiled kernel, off until measured (e6cb7ca5)
- pre-router: count the calls beside the seconds, and the stub search is the pass (935fcb96)
- pre-router: name the half of a pass that nothing had ever measured (22f1d769)
- e: cap E’s optimiser, which ran 20 minutes past a completed autoroute (884fc32e)
- e: raise E’s pass ceiling to 250, because the last open is a different net every round (91c10afb)
- tools: straighten merged one junction per full re-index, which is what stopped E7’s finish (874bab42)
- preroute: index the copper by net, because the per-pair pass was still walking the whole board (05f49178)
- preroute: count the board’s copper once instead of rebuilding it per pair (07188c36)
- tools: the pre-router’s station matching stops being factorial above the cliff (d11ccbca)
- tools: the corridor search as a pure function of arrays, compiled, and tested against the original (2905c01b)
- tools: rasterise the pre-router’s occupancy maps with one vectorised point-in-polygon call (702609b3)
- tools: the pair pre-router gets a wall-clock budget per pair, so a pass always ends (46c4f182)
- tools: pair pre-router rasterises each pad and zone once per grow value for the whole run (354f18ef)
revA (2026-09-03)
Features
- v2: Rev A release, JLCPCB order folder and review prints (65dc0047)
- v2: vendor reference CAD and datasheets (d2e13a60)
- v2: KiCad carrier set sources, generator tools and design records (b4961fc3)
- v1: tesseract and parallax build records and FreeCAD plate model (7ba085b8)
V1: tesseract and parallax (built April 2026, records published 2026-09-03)
Two hand-built kits, bench and demo units, in use. They differ only in the satellite modem (tesseract: RockBLOCK 9603 SBD; parallax: RockBLOCK 9704 IMT).
As built
- Raspberry Pi 5 with a Geekworm X1202 UPS, LilyGO T-Call A7670E cellular, u-blox GPS, Quansheng UV-K5(8) with an AIOC for APRS, ESP32-S3 LoRa for Meshtastic, RTL-SDR v4, ZigBee CC2652P, DCF77 receiver, 3.7 inch e-paper, Raspberry Pi Touch Display 2
- Three HDPE plates on M3 rods in an IP67 case with SMA bulkheads
- Per-kit BOM, GPIO pinouts, FreeCAD plate model and a build guide (parts, case drilling, plates, harness tables, provisioning, checks)