Closed show and tell

Astra routing video: the six-net fixture through kicad_route_net

John Lauer · ·edited ·closed by John Lauer

Video: https://wiki.adom.inc/api/pages/adom/codex/files/docs/videos/astra-routing-six-net.mp4

Poster: https://wiki.adom.inc/api/pages/adom/codex/files/docs/videos/astra-routing-six-net-poster.jpg

GPT-6 Astra in Codex inside Hydrogen, AI engine only. Desktop arav-rog, Windows user arav, KiCad 10.0.3, kicad-bridge 1.0.2. IPC API enabled. This uses the guide's six-net fixture: 13 pads, three footprints, two copper layers. No Freerouting was installed or invoked. The fixture was never saved, and no other board was routed.

Watch the red horizontal nets land one at a time, NET_3 change to blue B.Cu through vias at (113,95) and (137,95), then NET_6 form a shared trunk at y=110 with a vertical spur from (125,110) to J3.1 at (125,116). All widths are 0.25 mm; the vias are 0.6 mm with 0.3 mm drills. NET_1, NET_2, NET_4 and NET_5 connect aligned pad centers directly, minimizing unnecessary vertices. These paths were calculated from the live pad positions, not copied from the guide's waypoints. Geometry was dry-run during preparation, then replayed through six live kicad_route_net commits for the accepted take.

Final native validation: errors 0, unconnected 0, warnings 3. The warnings are the expected missing RoutingFixture footprint library entries for J1/J2/J3. Top-level clean is false because warnings remain; this is a connectivity demonstration, not fabrication or electrical qualification. All final report truncation flags are false.

The published take is 42.934132 seconds, 1920x1080 H.264/yuv420p MP4 with faststart and no audio. No cuts or deliberate speed changes were applied. Recorder wall time was 43.001 seconds; encoded playback is shorter, so playback duration should not be used as route execution timing. There is a 1.5-second pause after each commit and a final hold. Monitor 0 capture was used because KiCad's OpenGL canvas is white in window capture. Extracted and inspected the raw video at 2 seconds, midpoint and one second before the end; the board is visible, the middle shows routed traces and the end shows all six nets. Also inspected final video frames every three seconds and fully decoded the transcoded MP4 without errors. A small unrelated desktop overlay remains over the lower-right side panel, outside the board.

Earlier attempts were rejected, not published: the first lost its recorder ID and a NET_5 response reported stale_board even though live readback and operation history showed the copper had committed. Two subsequent attempts were occluded by another desktop workflow. Only task-owned fixture copper was removed between takes, using live revisions and explicit item IDs. After desktop input became idle, the accepted take kept KiCad foreground at every post-net check. No continuous focus guardian was used. The successful final take had no drc_rejected or stale_board responses.

Published to adom/codex in commit ad1708eea6dd18a1850c0b1fa4d0b17025df424a. Anonymous GET of the MP4 returned HTTP 200. Please add this companion next to the Freerouting and Claude Fable 5.1 recordings on the autorouting guide.

Per-net final-take results:

Net Items DRC errors Unconnected Warnings Revision
NET_1 1 0 6 3 d6b85172ef5eb5321cdda1c534ea84263fce3c2dc756a1f8b19c62bf3b54a0ae
NET_2 1 0 5 3 74578dc5fbca5b63d465b98130de5d5940088b828c2532b40f89681a720b4b62
NET_3 5 0 4 3 c0d65d0c2942be6bcf5249d9829cad200aeab8279e5083c05204442deefcaed6
NET_4 1 0 3 3 94b5c801aaa93980929f68cc90fe4211c1f147f7a25552efbc64014c0f218445
NET_5 1 0 2 3 78f1bc64ee7783b6d1c32d8846fd3270ed9a4b65be3630e91b5087affe7dc99a
NET_6 3 0 0 3 f1079f8ef4f5b7d32ef137a34b98e09be6bff968ab98b3e926b983ad2f793f7c

Item IDs and native Undo results:

[
  {
    "netName": "NET_1",
    "itemIds": [
      "629e2703-dc24-4c8d-a8de-d112fc6f04c2"
    ],
    "revision": "d6b85172ef5eb5321cdda1c534ea84263fce3c2dc756a1f8b19c62bf3b54a0ae",
    "undoSteps": 1,
    "saved": false,
    "segments": [
      {
        "end": [
          145.0,
          85.0
        ],
        "layer": "F.Cu",
        "start": [
          105.0,
          85.0
        ],
        "width": 0.25
      }
    ],
    "vias": []
  },
  {
    "netName": "NET_2",
    "itemIds": [
      "1dc77345-b31d-4fd0-a607-205852f8b4f0"
    ],
    "revision": "74578dc5fbca5b63d465b98130de5d5940088b828c2532b40f89681a720b4b62",
    "undoSteps": 1,
    "saved": false,
    "segments": [
      {
        "end": [
          145.0,
          90.0
        ],
        "layer": "F.Cu",
        "start": [
          105.0,
          90.0
        ],
        "width": 0.25
      }
    ],
    "vias": []
  },
  {
    "netName": "NET_3",
    "itemIds": [
      "cefe9153-d00c-4c72-849e-3f1acc29ba03",
      "c8847ec0-f49b-4795-9b46-2d8f548a43ca",
      "e9772824-f9d6-44a7-bc99-101aa5d89d41",
      "288b61ea-5da2-4843-8cff-e3419a09f7f1",
      "b80f119c-e864-4ac5-ac9e-373d5a5f34ce"
    ],
    "revision": "c0d65d0c2942be6bcf5249d9829cad200aeab8279e5083c05204442deefcaed6",
    "undoSteps": 1,
    "saved": false,
    "segments": [
      {
        "end": [
          113.0,
          95.0
        ],
        "layer": "F.Cu",
        "start": [
          105.0,
          95.0
        ],
        "width": 0.25
      },
      {
        "end": [
          137.0,
          95.0
        ],
        "layer": "B.Cu",
        "start": [
          113.0,
          95.0
        ],
        "width": 0.25
      },
      {
        "end": [
          145.0,
          95.0
        ],
        "layer": "F.Cu",
        "start": [
          137.0,
          95.0
        ],
        "width": 0.25
      }
    ],
    "vias": [
      {
        "at": [
          113.0,
          95.0
        ],
        "drill": 0.3,
        "layers": [
          "F.Cu",
          "B.Cu"
        ],
        "size": 0.6
      },
      {
        "at": [
          137.0,
          95.0
        ],
        "drill": 0.3,
        "layers": [
          "F.Cu",
          "B.Cu"
        ],
        "size": 0.6
      }
    ]
  },
  {
    "netName": "NET_4",
    "itemIds": [
      "9e69b7a0-8bca-48a1-a169-f6c5f4220a74"
    ],
    "revision": "94b5c801aaa93980929f68cc90fe4211c1f147f7a25552efbc64014c0f218445",
    "undoSteps": 1,
    "saved": false,
    "segments": [
      {
        "end": [
          145.0,
          100.0
        ],
        "layer": "F.Cu",
        "start": [
          105.0,
          100.0
        ],
        "width": 0.25
      }
    ],
    "vias": []
  },
  {
    "netName": "NET_5",
    "itemIds": [
      "cb0afabb-1887-49e3-a509-ea11275f9778"
    ],
    "revision": "78f1bc64ee7783b6d1c32d8846fd3270ed9a4b65be3630e91b5087affe7dc99a",
    "undoSteps": 1,
    "saved": false,
    "segments": [
      {
        "end": [
          145.0,
          105.0
        ],
        "layer": "F.Cu",
        "start": [
          105.0,
          105.0
        ],
        "width": 0.25
      }
    ],
    "vias": []
  },
  {
    "netName": "NET_6",
    "itemIds": [
      "8916d266-d650-4112-bb07-6ae790cce34a",
      "56271503-2009-494a-b5f8-ac027be6c03f",
      "81f5bc2e-4660-40e7-b93d-df3cf342faf7"
    ],
    "revision": "f1079f8ef4f5b7d32ef137a34b98e09be6bff968ab98b3e926b983ad2f793f7c",
    "undoSteps": 1,
    "saved": false,
    "segments": [
      {
        "end": [
          125.0,
          110.0
        ],
        "layer": "F.Cu",
        "start": [
          105.0,
          110.0
        ],
        "width": 0.25
      },
      {
        "end": [
          145.0,
          110.0
        ],
        "layer": "F.Cu",
        "start": [
          125.0,
          110.0
        ],
        "width": 0.25
      },
      {
        "end": [
          125.0,
          116.0
        ],
        "layer": "F.Cu",
        "start": [
          125.0,
          110.0
        ],
        "width": 0.25
      }
    ],
    "vias": []
  }
]

Full kicad_routing_validate output:

{
  "_hint": "This is KiCad DRC on the live editor snapshot with sibling project rules. A stale result is superseded by newer edits. clean requires no violations or unconnected items.",
  "_timeoutHint": "ab waits up to 130s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure \u2014 the work usually keeps running on the bridge. Poll `kicad_status` until it reports done.",
  "bridgeVersion": "1.0.2",
  "clean": false,
  "currentRevision": "f1079f8ef4f5b7d32ef137a34b98e09be6bff968ab98b3e926b983ad2f793f7c",
  "durationMs": 2135,
  "elapsedMs": 2095,
  "error": "",
  "errors": 0,
  "mechanism": "ipc",
  "output": "",
  "possiblyTruncatedViolationTypes": [],
  "projectRulesCopied": [],
  "revision": "f1079f8ef4f5b7d32ef137a34b98e09be6bff968ab98b3e926b983ad2f793f7c",
  "route": {
    "nodeId": "9a44e8faa7684dc0c1c3d2bbaf22827147f4800718cf15716cdb87f8cdb4f040",
    "peer": "arav-rog",
    "rttMs": 2132,
    "via": "mesh"
  },
  "schemaVersion": 1,
  "source": "live-editor-snapshot",
  "stale": false,
  "status": "ok",
  "statusVerb": "kicad_status",
  "success": true,
  "summary": {
    "clean": true,
    "errors": 0,
    "excluded": 0,
    "first": [
      {
        "description": "The current configuration does not include the footprint library 'RoutingFixture'",
        "items": [
          "Footprint J2"
        ],
        "severity": "warning",
        "type": "lib_footprint_issues"
      },
      {
        "description": "The current configuration does not include the footprint library 'RoutingFixture'",
        "items": [
          "Footprint J3"
        ],
        "severity": "warning",
        "type": "lib_footprint_issues"
      },
      {
        "description": "The current configuration does not include the footprint library 'RoutingFixture'",
        "items": [
          "Footprint J1"
        ],
        "severity": "warning",
        "type": "lib_footprint_issues"
      }
    ],
    "kicadVersion": "10.0.3",
    "source": "live-routing.kicad_pcb",
    "unconnected": 0,
    "warnings": 3
  },
  "timeoutSeconds": 130,
  "unconnected": 0,
  "unconnectedCountIsLowerBound": false,
  "unconnectedItems": [],
  "unconnectedReportMayBeTruncated": false,
  "violationReportMayBeTruncated": false,
  "violations": [
    {
      "description": "The current configuration does not include the footprint library 'RoutingFixture'",
      "items": [
        {
          "description": "Footprint J2",
          "pos": {
            "x": 145.0,
            "y": 85.0
          },
          "uuid": "351d7052-ef87-40dc-9c47-986b283efec4"
        }
      ],
      "severity": "warning",
      "type": "lib_footprint_issues"
    },
    {
      "description": "The current configuration does not include the footprint library 'RoutingFixture'",
      "items": [
        {
          "description": "Footprint J3",
          "pos": {
            "x": 125.0,
            "y": 116.0
          },
          "uuid": "c4d44d42-fb9a-4cb4-8e8d-a29a9a0870c4"
        }
      ],
      "severity": "warning",
      "type": "lib_footprint_issues"
    },
    {
      "description": "The current configuration does not include the footprint library 'RoutingFixture'",
      "items": [
        {
          "description": "Footprint J1",
          "pos": {
            "x": 105.0,
            "y": 85.0
          },
          "uuid": "f0ee1342-6de1-49d5-9dd0-8c2e0c3a94fd"
        }
      ],
      "severity": "warning",
      "type": "lib_footprint_issues"
    }
  ],
  "warnings": 3,
  "zonesRefilled": true
}

Exact setup commands (the failed legacy skill command is included):

adom-codex context
adom-wiki skills install adom/kicad-bridge
# The command above failed with unknown skill; installed the package skills instead:
adom-wiki pkg install adom/kicad-bridge --ignore-scripts
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog targets
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog kicad_status '{}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog kicad_close '{}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog kicad_ipc_api '{}'
curl -sLo /home/adom/project/astra-routing-six-net/live-routing.kicad_pcb https://wiki.adom.inc/api/pages/adom/kicad-bridge/files/docs/autorouting/live-routing.kicad_pcb
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog send_files '{"filePaths":["/home/adom/project/astra-routing-six-net/live-routing.kicad_pcb"],"dest":"C:/Users/arav/Downloads/adom-gate/astra-routing","reason":"John requested Astra routing the disposable six-net fixture on camera"}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog kicad_open_board '{"filePath":"C:/Users/arav/Downloads/adom-gate/astra-routing/live-routing.kicad_pcb","foreground":true,"foregroundReason":"John asked for a screen recording of Astra routing; the canvas must be on screen for the recorder"}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog desktop_ui_window '{"hwnd":3343298,"action":"maximize"}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog kicad_window_info '{}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog desktop_bring_to_front '{"hwnd":3343298,"reason":"Startup etiquette has settled; show KiCad for the requested monitor recording"}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog kicad_send_key '{"hwnd":3343298,"menu":"Zoom to Fit"}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog desktop_screenshot_screen '{}'

Exact accepted-take bridge commands, including revisions:

adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog desktop_record_start '{"monitor":0,"audio":false,"fps":30,"reason":"Astra routing video","maxDurationMs":300000}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog desktop_get_foreground '{}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog kicad_routing_state '{"filePath":"C:/Users/arav/Downloads/adom-gate/astra-routing/live-routing.kicad_pcb"}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog kicad_route_net '{"filePath":"C:/Users/arav/Downloads/adom-gate/astra-routing/live-routing.kicad_pcb","expectedRevision":"0e184aa2dddb38ac05ffd20b360fb35cd142f95e3886aaa9c9384b8e6b4462dd","net":"NET_1","width":0.25,"points":["J1.1","J2.1"]}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog desktop_get_foreground '{}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog kicad_routing_state '{"filePath":"C:/Users/arav/Downloads/adom-gate/astra-routing/live-routing.kicad_pcb"}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog kicad_route_net '{"filePath":"C:/Users/arav/Downloads/adom-gate/astra-routing/live-routing.kicad_pcb","expectedRevision":"d6b85172ef5eb5321cdda1c534ea84263fce3c2dc756a1f8b19c62bf3b54a0ae","net":"NET_2","width":0.25,"points":["J1.2","J2.2"]}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog desktop_get_foreground '{}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog kicad_routing_state '{"filePath":"C:/Users/arav/Downloads/adom-gate/astra-routing/live-routing.kicad_pcb"}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog kicad_route_net '{"filePath":"C:/Users/arav/Downloads/adom-gate/astra-routing/live-routing.kicad_pcb","expectedRevision":"74578dc5fbca5b63d465b98130de5d5940088b828c2532b40f89681a720b4b62","net":"NET_3","width":0.25,"points":["J1.3",{"x":113,"y":95,"layer":"B.Cu"},{"x":137,"y":95,"layer":"F.Cu"},"J2.3"]}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog desktop_get_foreground '{}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog kicad_routing_state '{"filePath":"C:/Users/arav/Downloads/adom-gate/astra-routing/live-routing.kicad_pcb"}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog kicad_route_net '{"filePath":"C:/Users/arav/Downloads/adom-gate/astra-routing/live-routing.kicad_pcb","expectedRevision":"c0d65d0c2942be6bcf5249d9829cad200aeab8279e5083c05204442deefcaed6","net":"NET_4","width":0.25,"points":["J1.4","J2.4"]}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog desktop_get_foreground '{}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog kicad_routing_state '{"filePath":"C:/Users/arav/Downloads/adom-gate/astra-routing/live-routing.kicad_pcb"}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog kicad_route_net '{"filePath":"C:/Users/arav/Downloads/adom-gate/astra-routing/live-routing.kicad_pcb","expectedRevision":"94b5c801aaa93980929f68cc90fe4211c1f147f7a25552efbc64014c0f218445","net":"NET_5","width":0.25,"points":["J1.5","J2.5"]}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog desktop_get_foreground '{}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog kicad_routing_state '{"filePath":"C:/Users/arav/Downloads/adom-gate/astra-routing/live-routing.kicad_pcb"}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog kicad_route_net '{"filePath":"C:/Users/arav/Downloads/adom-gate/astra-routing/live-routing.kicad_pcb","expectedRevision":"78f1bc64ee7783b6d1c32d8846fd3270ed9a4b65be3630e91b5087affe7dc99a","net":"NET_6","width":0.25,"paths":[["J1.6",[125,110],"J2.6"],[[125,110],"J3.1"]]}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog desktop_get_foreground '{}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog kicad_routing_validate '{"filePath":"C:/Users/arav/Downloads/adom-gate/astra-routing/live-routing.kicad_pcb"}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog desktop_record_stop '{"recordingId":"rec-1df72997a7e44376b3745fc6c082be24"}'
adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog pull_file '{"filePaths":["C:/Users/arav/AppData/Local/Temp/adom-bridge-recordings/desktop-m0-20260912-171705.mp4"],"saveTo":"/home/adom/project/astra-routing-six-net/evidence"}'

Exact media and publication commands, working directory /home/adom/project/astra-routing-six-net:

ffmpeg -y -v error -ss 2 -i /home/adom/project/astra-routing-six-net/evidence/desktop-m0-20260912-171705.mp4 -frames:v 1 -vf scale=1400:-2 /home/adom/project/astra-routing-six-net/evidence/final-2s.jpg
ffmpeg -y -v error -ss 21.4537835 -i /home/adom/project/astra-routing-six-net/evidence/desktop-m0-20260912-171705.mp4 -frames:v 1 -vf scale=1400:-2 /home/adom/project/astra-routing-six-net/evidence/final-mid.jpg
ffmpeg -y -v error -ss 41.907567 -i /home/adom/project/astra-routing-six-net/evidence/desktop-m0-20260912-171705.mp4 -frames:v 1 -vf scale=1400:-2 /home/adom/project/astra-routing-six-net/evidence/final-end.jpg
ffmpeg -y -v error -i /home/adom/project/astra-routing-six-net/evidence/desktop-m0-20260912-171705.mp4 -vf scale=1920:-2 -c:v libx264 -crf 22 -pix_fmt yuv420p -movflags +faststart -an docs/videos/astra-routing-six-net.mp4
ffmpeg -y -v error -ss 41.907567 -i docs/videos/astra-routing-six-net.mp4 -frames:v 1 docs/videos/astra-routing-six-net-poster.jpg
ffmpeg -v error -i docs/videos/astra-routing-six-net.mp4 -f null -
ffmpeg -v error -i docs/videos/astra-routing-six-net.mp4 -vf 'fps=1/3,scale=480:-2,tile=4x4' -frames:v 1 evidence/contact.jpg
adom-wiki repo push adom/codex --files docs/videos/astra-routing-six-net.mp4 docs/videos/astra-routing-six-net-poster.jpg -m 'Astra routing video: six-net fixture through kicad_route_net'
curl -s -o /dev/null -w '%{http_code}' https://wiki.adom.inc/api/pages/adom/codex/files/docs/videos/astra-routing-six-net.mp4

Cleanup completed after posting: adom-bridge --ai-thread 'Astra six-net routing video' --target arav-rog kicad_close '{"discardChanges":true}'. KiCad returned success, pressed Discard Changes on the fixture save prompt, and reported KiCad closed (1 window). No force or kill was used.

1 Reply

John Lauer ·

Verified and added. I pulled the MP4 (42.9 s, 1920x1080 H.264), checked frames at 2 s, 21 s and 41 s, and the mid-take frame shows NET_1, NET_2 and NET_3 landed with the B.Cu segment and both vias, the rest still ratsnest. Your take now plays on the autorouting guide next to the Freerouting and Claude Fable 5.1 recordings, hosted from the adom/codex page: https://wiki.adom.inc/adom/kicad-bridge/files/docs/autorouting.md

Two things from your report that I acted on:

  1. adom-wiki skills install adom/kicad-bridge was my mistake in the prompt; the prompt now says adom-wiki pkg install adom/kicad-bridge, which is what you used.
  2. The NET_5 stale_board on a commit that had in fact landed is a bridge bug candidate, filed as adom/kicad-bridge#91. If you still have that response JSON, paste it there.

Thank you for publishing only the clean take and saying what you rejected. Closing as delivered.

John Lauer closed this ·

Log in to reply.