docs(plans): BEAST-01 rebuild execution ladder — rungs, artifact design, rung-0 decisions - #252
Draft
Coldaine wants to merge 4 commits into
Draft
docs(plans): BEAST-01 rebuild execution ladder — rungs, artifact design, rung-0 decisions#252Coldaine wants to merge 4 commits into
Coldaine wants to merge 4 commits into
Conversation
…gn, rung-0 decisions Companion work order to the clean-room rebuild plan on PR #247. The plan owns what survives and why; this owns how the work is sequenced so the robot is never broken: ratify, extract + memory triage, pin the world, CI proof (C2 as a standing gate), beast_hardware on the bench, C1 side-by-side, C2 fresh metal, cutover + single-commit delete, close out. Records what already exists so nobody rebuilds it: self-hosted runners, the arm64 beast-ros image build with layer caching, and the rollback-proven source-mode deploy. Recommends release-dir A/B on the robot with the container kept as CI proof of declaration completeness, staying one repo, and evidence-class triage (measurement / identity / diagnosis / procedure) for the insights DB so mis-diagnosed incidents stop passing as facts without deleting recorded history. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ev2gEVzf2qQyfpW2hyzynG
…mes the recommended vehicle Researched current Jetson/ROS deployment practice (container-vs-native on Jetson, L4T/JetPack base-image alignment, ROOTFS_AB/nvbootctrl field reports, QEMU-vs-native arm64 CI numbers) and amended the ladder where the evidence disagreed with the first draft: - Decision 3 flips to container-as-deploy-vehicle: the artifact CI proves is byte-for-byte what the robot runs, the CPU-only stack sidesteps the L4T/CUDA alignment trap today, and the rule for when GPU inference enters scope is recorded with the decision. Release-dir A/B stays as the rung-5 fallback; OS-layer ROOTFS_AB stays out of scope with its failure modes named. - Rung 3 gains the QEMU cost honesty (3-10x on compile layers) and the native-arm64-runner escape hatch. - Rung 7 states the swap in artifact terms: robot always holds last-good, rollback is one retag. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ev2gEVzf2qQyfpW2hyzynG
Contributor
|
ⓘ Your Qodo trial ends soon. Ask your workspace admin to set up billing to keep reviews running after the trial. Manage billing |
Owner discussion 2026-08-28 surfaced three preserve-list gaps the six knowledge items do not cover, plus a sequencing option and a doc rule: - Rung 0 decision 1 gains three preserve-list candidates: the camera-to-cockpit pipeline (decided by NORTH_STAR G7, which names video as a portal surface), the autonomy on-ramp Phase 1 calibration constants and ekf.yaml fusion config (measured 2026-08-14; operative values live in old-tree launch/param files Phase D deletes), and kinematics/URDF from ugv_description. - New rung 0 decision 5 (optional): run the on-ramp's Phase 2 mapping run on the old stack pre-cutover — not F13-gated, map stem is off-tree, and it gives rung 5's side-by-side a real map to compare against. - Rung 1 gains the plans-directory harvest: hazards that exist only in plan prose (rosbridge NaN, keyboard_ctrl SIGHUP, time-sync ordering, ESP32 latch) land as insights before their code dies; plans die with their target code at rung 8. The roslib-convergence plan is web-side and survives in parallel. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ev2gEVzf2qQyfpW2hyzynG
The camera preserve item gets a hardware half: the repo records first light 2026-07-31 as a working camera (RGB + aligned depth ~16 FPS, TF correct) but at USB SPEED: HIGH (USB 2.0), with the in-box cable as the presumed cause and the discriminating test (known-USB3 cable, direct Orin USB3 port, expect SUPER) written but never run. Rung 5 now runs that discriminator, checks IMU presence on this Lite revision, and lands the verdict as a measurement-class insight — clearing the unit or making it genuinely suspect before the new stack builds on it. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ev2gEVzf2qQyfpW2hyzynG
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds the execution ladder for the BEAST-01 clean-room rebuild as a companion work order to the governing plan held on #247. The plan on #247 owns what survives and why (preserve list, evidence, watch-outs); this document owns how the work is sequenced: nine rungs (ratify → knowledge extraction + memory triage → pin the world → CI proof →
beast_hardware→ C1 side-by-side → C2 fresh metal → cutover + single-commit delete → close out), with the invariant that the robot is never broken below rung 7 and every rung is revertible.It also records, so nobody rebuilds them, the pieces that already exist: self-hosted runners (
moosegoose-general,moosegoose-n5-large), the arm64beast-rosGHCR image build with buildx/GHA layer caching, and the rollback-proven source-modebeast-pulldeploy (2026-08-14 supervised rollout).Rung 0 names the five owner decisions that gate execution, with recommendations: merge #247 (with DB-cited numbers, including resolving the 8.332 vs 8.368 V pack-trip discrepancy), decide
ugv_cockpit(recommend temporary shim with expiry), pick the artifact form, keep one repo (re-evaluate after cutover), and optionally run the autonomy on-ramp's first real mapping run on the old stack pre-cutover so rung 5's side-by-side has a real map to compare against. Rung 1 adds the evidence-class triage of the insights DB (measurement / identity / diagnosis / procedure) so mis-diagnosed incidents stop passing as facts without deleting recorded history.The second commit is a research pass over current Jetson/ROS deployment practice (container-vs-native on Jetson, L4T/JetPack base-image alignment,
ROOTFS_AB/nvbootctrlfield reports, QEMU-vs-native arm64 CI build numbers). It moved the artifact-form recommendation to container as the deploy vehicle — the artifact CI proves is byte-for-byte what the robot runs, and the CPU-only stack sidesteps the L4T/CUDA alignment trap today, with the GPU-era base-image rule recorded alongside the decision. Release-dir A/B stays as the rung-5 fallback; OS-layerROOTFS_ABstays out of scope with its failure modes named. Rung 3 gains the QEMU cost figures and the native-arm64-runner escape hatch.The third commit folds in owner-discussion findings from 2026-08-28: three preserve-list candidates the six knowledge items do not cover (the camera-to-cockpit pipeline, decided by NORTH_STAR G7 naming video as a portal surface; the autonomy on-ramp Phase 1 calibration constants and
ekf.yamlfusion config, whose operative values live in old-tree files Phase D deletes; kinematics/URDF fromugv_description), the optional pre-cutover mapping run as decision 5, and a plans-directory harvest rule at rung 1 — hazards that exist only in plan prose (rosbridge bare-NaN,keyboard_ctrlSIGHUP, time-sync ordering, ESP32 velocity latch) land as insights before their code dies, and plans die with their target code at rung 8.Branch Scope
PR Shape
Independent Review
ROOTFS_AB/nvbootctrlfield reports, QEMU-vs-native arm64 CI measurements) rather than a code reviewer, which is the review that section needed. The third commit's additions come from an owner discussion cross-checked against the tree (ugv_visionentry points,build_first.shallowlists, the on-ramp plan's executed-phase record).Documentation
docs/plans/2026-08-27-beast-rebuild-execution-ladder.md(new work order, then research and owner-discussion amendments),docs/plans/README.md(index row, per the plans-directory convention).docs/deploy.md,docs/beast-ops.md,AGENTS.md— the ladder assigns their updates to rung 8 (close-out) rather than editing them ahead of executed work;docs/NORTH_STAR.mduntouched by design.docs/plans/with an index entry; no owner doc claims changed state.Superseded Docs / Cleanup
Validation
git diff --check(clean); manual verification of every repo-state claim in the document against the tree (workflow names, runner labels, cache config in.github/workflows/beast-ros-image.yml, deploy state indocs/deploy.md, feat(beast): autonomy stack overhaul - explore_lite, tuned Nav2/SLAM params, base_node limits #245's post-plan changes,ugv_main/ugv_elsepackage inventory and build allowlists); external-practice claims checked against multiple independent sources before landing.Risk / Rollback
🤖 Generated with Claude Code
https://claude.ai/code/session_01Ev2gEVzf2qQyfpW2hyzynG