← Commit history
adom_codex.py+1−1
@@ -3,7 +3,7 @@ import argparse,json,os,platform,shutil,subprocess,sys,time,urllib.request,urlli from pathlib import Path from http.server import SimpleHTTPRequestHandler,ThreadingHTTPServer ROOT=Path(__file__).resolve().parent-VERSION='0.1.1'+VERSION='0.1.2' def context():  ch=Path(os.environ.get('CODEX_HOME',Path.home()/'.codex'))  return {'app':'adom/codex','version':VERSION,'container':{'system':platform.system(),'kernel':platform.release(),'hostname':platform.node(),'cwd':os.getcwd()},'tools':{n:shutil.which(n) for n in ['codex','adom-wiki','adom-cli','adom-bridge']},'instructionsInstalled':(ch/'skills/codex-adom/SKILL.md').exists(),'hostTarget':'Not inferred; select and verify through Adom Bridge','hydrogenControlConfigured':(Path.home()/'.adom/hydrogen-control-url').exists()}
package.json+1−1
@@ -4,7 +4,7 @@   "type": "app",   "title": "Codex",   "brief": "Codex in Adom Hydrogen: ecosystem setup, dock dashboard and live engineering demos.",-  "version": "0.1.1",+  "version": "0.1.2",   "description": "Adom ecosystem setup and a Hydrogen dashboard for Codex. Installs a managed instruction entry point and context helper, mounts the shared newbie panel, and presents verified Astra KiCad routing demonstrations. Codex Desktop bridge is planned.",   "org": "adom",   "needs_sudo": false,
page.json+1−1
@@ -4,7 +4,7 @@   "type": "app",   "title": "Codex",   "brief": "Codex in Adom Hydrogen: ecosystem setup, dock dashboard and live engineering demos.",-  "version": "0.1.1",+  "version": "0.1.2",   "hero": {     "type": "image",     "path": "screenshots/hero.png"
skills/codex-adom-routing-video/SKILL.mdadded+29
@@ -0,0 +1,29 @@+---+name: codex-adom-routing-video+description: Use when recording live CAD trace-routing demos through Adom Bridge and preparing trimmed, accelerated, captioned videos for users or the wiki.+---+# Live routing videos++Parent skill: codex-adom. Read the installed adom-bridge-recording skill for the current recorder contract. For the proven second KiCad demo recipe and local evidence paths, read references/second-demo.md.++## Record the real editor++Discover the target, editor HWND, active board, development bridge version and revision. Prepare an isolated board copy and fit it for viewing. Foreground once when the user requested a visible demonstration; preserve their control afterward. Do preparation before recording where possible.++Use Adom Bridge's native window recorder: desktop_record_window_start with the actual hwnd, fps, audio preference, bounded maxDurationMs and reason. Save its recordingId. Start/stop in try/finally, and save the final path. Capture the intended window, not an unrelated browser recorder or the whole desktop.++Log routing calls and their start/end timestamps. Inspect semantic errors, update revisions after each mutation, and validate the finished native board. The KiCad demo dry-ran each complete net and then committed those exact segments/vias visibly. That does not establish that every partial intermediate board passes DRC. Adapt to the actual Fusion bridge contract instead of assuming KiCad verbs exist there.++## Edit for a team audience++Preserve the raw take. Find action intervals from the recording and call log, then visually verify boundaries. Remove idle startup, calculations and validation waits as appropriate. State that waits were removed; this is edited playback, not elapsed runtime.++Accelerate retained action with setpts=(PTS-STARTPTS)/3, then use a consistent output frame rate. Display a persistent 3x speed label. Caption the actual geometry calculation, bridge verbs and measured result; identify Codex Astra running in Adom Hydrogen and distinguish generated geometry from reference reconstruction or external autorouting.++Use a readable layout: preserve the CAD screenshot's proportions, reserve space for captions, and avoid covering important routing. H.264/yuv420p MP4 with faststart is a useful delivery format. A 4-5 second final hold gives viewers time to read the result.++Validate the output with a full decode and sampled sequential frames, not only a successful encoder exit. Check first action, transitions, final copper, captions, duration, dimensions and actual speed. Retain an edit manifest with source intervals, speed and caption timing.++## Deliver where the user watches++Use pull_file to bring the host recording into the container for editing. Use send_files to deliver the finished MP4 back to the intended host. If asked to open it, use host shell_execute/file association and verify the player window. Read codex-adom-operation-results for approval and result handling; a container path or xdg-open does not open the user's Windows player.
skills/codex-adom-routing-video/references/second-demo.mdadded+36
@@ -0,0 +1,36 @@+# Second KiCad video: the 24-net crossover++This was a constructed fixture, not an arbitrary-board autorouter. For i=0..23, j=(7*i) mod 24 selects an output column. Rows are y=52+2.54*i mm; columns x=65+2.54*j mm. Front copper carries horizontal runs and back copper vertical runs. Each net branches to a third pad and uses two layer-changing vias. Width 0.30 mm, via diameter 0.60 mm, drill 0.30 mm.++Measured final board: 24 nets, 72 pads, 120 segments, 48 vias. KiCad reported zero DRC errors and zero unconnected items, plus three synthetic-library warnings. These are this fixture's results, not promises about another board.++## Original scripts and evidence in the shared development container++All paths below are in /home/adom/project/work/routing/team-demo/:++- make_crossbar.py and crossbar-plan.json: fixture and routing plans.+- record_crossbar.py: live recording, per-net preview, individual segment/via commits, revision checks, final validation, save, stop and pull.+- crossbar-report.json: timestamped verb calls and responses.+- before.json, after.json, validated.json: measured evidence.+- find_action.py, action-ranges.json: finding and retaining action intervals.+- render.py: common FFmpeg/ASS layout and editing pipeline.+- render_complex.py: second video's caption sequence, retained intervals and 5-second final hold.+- 02-astra-crossbar-24-3x.ass and .edit.json: exact captions and edit provenance.+- video-verification.json: video checks.+- 02-astra-crossbar-24-3x.mp4: delivered clip, about 30.83 seconds.++These are historical, machine-specific examples. Read and adapt them; do not run their hardcoded HWNDs, board paths or routing mutations on another editor. They are not installed as executable package commands.++## Recording and editing details++The native recorder used desktop_record_window_start at 30 fps, audio false, maxDurationMs 600000. kicad_routing_state verified the empty board and dev bridge. Each kicad_route_net dryRun checked a whole planned net; its exact segments/vias were then committed individually using expectedRevision and validate:false, with roughly 0.3 seconds between visible commits. After each net, state was refreshed. kicad_routing_validate checked the completed board, and Ctrl+S saved it through the background KiCad command path. Finally the recording was stopped by recordingId and pulled into the container.++The raw video contained about 166 seconds of frames. The edit retained verified action intervals, accelerated their concatenation 3x, and held the last frame 5 seconds. For the original constant-30-fps source, the select expression was followed by setpts=N/(30*TB) to eliminate gaps, then setpts=(PTS-STARTPTS)/3 and fps=30. For a variable-frame-rate source, use timestamp-aware trim/concat instead of assuming 30-fps frame spacing.++The composition fitted CAD into a 1440x900 region, preserved aspect ratio, and padded to 1920x1080 with a heading, side explanations and bottom ASS captions. FFmpeg came from imageio_ffmpeg installed in /home/adom/project/work/routing/video-deps. Check that dependency before reusing the scripts.++One gotcha: the final clone hold came AFTER burning ASS captions. The final-result caption therefore starts 0.2 seconds before the action ends so the cloned frame contains the result text. Inspect the end to avoid freezing an outgoing caption over the final result.++The user asked for trimming idle opening footage, 3x routing, explanatory captions and a team-shareable video. No narrated audio was used. The completed files were transferred to C:/Users/john/Documents/Adom Routing Demos/ and opened through the Windows file association via Adom Bridge.++For Fusion, substitute its proven native routing/read-back verbs and report its own validation evidence. Do not borrow KiCad's DRC claims or call the video an independent autorouting demonstration unless the geometry was actually independently planned.
skills/codex-adom/SKILL.md+2
@@ -28,3 +28,5 @@ An explicit path planner is not automatically a general autorouter. Label copied For host video playback, approvals and job results, read `../codex-adom-operation-results/SKILL.md`. For Hydrogen screenshots and hero exports, read `../codex-adom-showcase/SKILL.md`.  Wiki source publication, installed skill files, and instructions already loaded in a running AI thread are separate states. Verify all three when sharing a new skill. For an existing thread, provide the explicit skill path and ask it to read it; do not assume package installation retroactively changes its context.++For recording, trimming, accelerating and captioning CAD routing demos, read `../codex-adom-routing-video/SKILL.md`.