From 4bb8f6eba4b0f48e0dfb0e3dad3ca1aab49c5b52 Mon Sep 17 00:00:00 2001 From: Julian Noble Date: Fri, 24 Jul 2026 02:20:38 +1000 Subject: [PATCH] G-117: record the embed-then-read-back emission design (single-source build_id) family_artifacts.tcl runs after kits are built, so the embed lands at kit-family staging and emission mounts each kit exe to READ the embedded record back - sidecar fields derive from it (identical build_id by construction; emission inherently verifies the embed exists). sha1/size stay sidecar-only; embedded filename namespaced per the G-025 reconciliation. Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com --- goals/G-117-self-describing-runtimes.md | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) 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