diff --git a/goals/G-117-self-describing-runtimes.md b/goals/G-117-self-describing-runtimes.md index 26a0d0d8..5f755a01 100644 --- a/goals/G-117-self-describing-runtimes.md +++ b/goals/G-117-self-describing-runtimes.md @@ -83,8 +83,23 @@ hosts without a zip reader. (current local r2 is pre-v1 and unpublished; published r1 stays immutable) -> family_check -> only then punkbin r2 publication + defaults.txt flip (G-103 follow-through), with G-119 fixture-server verdict tests after that. -- Remaining for acceptance: everything in the Acceptance line (no implementation - landed yet). +- 2026-07-24 implementation design (recorded before staging work; from reading + tools/family_artifacts.tcl): family_artifacts.tcl runs AFTER kits are built (copies + finished exes, hashes them), so the embed happens at the kit-family staging step and + emission READS IT BACK: family_artifacts mounts each kit exe (tcl::zipfs::mount on + the file) and loads the embedded record, deriving the sidecar's shared fields + (build_id, origin, packager, schema...) from it - single source of truth, identical + build_id by construction, and every emission run inherently verifies the embed + exists (fail if absent). Staging generates build_id per member and writes the + embedded record WITHOUT sha1/size (finished-binary facts stay sidecar-only). + Embedded record filename namespaced per the G-025 reconciliation note. +- Remaining for acceptance: locate/extend the kit-family staging step (embed write), + family_artifacts v1 fields + mount-read derivation + '#' field comments + + -Doriginurl/-Dpackager plumbing, family_check embedded-record verification, + punk-runtime 'info' action (ps1 + bash + cmd rewrap; zip central-directory read, + cooperative-probe fallback documented), punkbin AGENTS.md schema v1 docs, suite + rebuild + r2 re-emission + wrap trial (also verifies the G-118 items 1+7 patch rev + behaviour on rebuilt kits). ## Notes