Browse Source

Goals: draft G-158 punk86-kit parity (user-approved this session)

New proposed goal consuming G-101 follow-on items 1-3: punkshell 8.6
kits bake on the suite-built mk4 head via make.tcl (sdx ladder
suite-shell rung as a shared seam with G-157 step 4, bi-class head
variant, parity bakes for kit.punk86/kit.punkbi passing existing gates,
clean-path boot comparison vs tclkit-baked siblings, no new committed
binary, third-party-tclkit disposition record). Detail file carries the
2026-08-03 overlap survey (strongest: G-157; G-131/G-130/G-110/G-116/
G-137 related; libfetch/bin siblings judged not related) and the
drafting decisions approved at review.

GOALS.md staged hunk-scoped: the concurrent uncommitted G-111
activation + modpod re-vendor working state is left untouched for its
own commit.

Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
master
Julian Noble 1 week ago
parent
commit
a028b1c178
  1. 4
      GOALS.md
  2. 84
      goals/G-158-punk86-kit-parity.md

4
GOALS.md

@ -406,3 +406,7 @@ Detail: goals/G-156-alpha-window-identifier-alignment.md
Scope: repo-wide commit policy for opaque-container VFS artifacts (metakit/cookfs kit files and similar non-zip containers); bin/sdx.kit + src/bin/sdx.kit (tracked instances); src/project_layouts/vendor/punk/project-0.1/bin/sdx.kit (layout-shipped instance, seeding replacement, binary-glob note); src/make.tcl (sdx resolution ladder materialization rung, store->modpod sync exclusions); src/buildsuites/suite_tcl86/patches/ (sdx source capture, rebuild arm); punkbin tools tier (external c:/repo/jn/punkbin download channel); root AGENTS.md (no-new-binaries rule extension); G-004 scan extension (content-signature detection)
Detail: goals/G-157-exeless-kits-materialized.md
### G-158 [proposed] punk86-kit parity: punkshell 8.6 kits bake on the suite-built mk4 head
Scope: src/make.tcl (sdx resolution ladder suite-shell rung - shared seam with G-157 approach step 4; kit wrap path; runtime_caps/kit_type_mismatch accommodation); src/buildsuites/suite_tcl86/ (build_kithead86 bi-class head variant, mk4kit_attach battery payloads); src/runtime/mapvfs.toml (suite-head runtime rows + kit entries); bin/runtime/win32-x86_64/ (uncommitted local materialization slot for the heads - publication is follow-on); src/tests/shell/testsuites/punkexe/ (bake-path characterization); bin/sdx.kit (consumed by the ladder - its committed status is G-157's contract, not this goal's)
Detail: goals/G-158-punk86-kit-parity.md

84
goals/G-158-punk86-kit-parity.md

@ -0,0 +1,84 @@
# G-158 punk86-kit parity: punkshell 8.6 kits bake on the suite-built mk4 head
Status: proposed
Scope: src/make.tcl (sdx resolution ladder suite-shell rung - shared seam with G-157 approach step 4; kit wrap path; runtime_caps/kit_type_mismatch accommodation); src/buildsuites/suite_tcl86/ (build_kithead86 bi-class head variant, mk4kit_attach battery payloads); src/runtime/mapvfs.toml (suite-head runtime rows + kit entries); bin/runtime/win32-x86_64/ (uncommitted local materialization slot for the heads - publication is follow-on); src/tests/shell/testsuites/punkexe/ (bake-path characterization); bin/sdx.kit (consumed by the ladder - its committed status is G-157's contract, not this goal's)
Goal: punkshell's punk86-class kits bake on the suite-built mk4 head through make.tcl's normal 'kit' path, so the 8.6 kit lane is self-hosted end-to-end - runtime, container engine and wrap tooling all punkshell-built - and the prebuilt third-party tclkits (tclkit86bi, tclkit-win64-dyn, tclkit-win64-dyn-8617) stop being load-bearing for it.
Acceptance: make.tcl's sdx resolution ladder gains a rung running sdx under a suite-built mk4-capable 8.6 shell, preferred ahead of the prebuilt-tclkit last resort and exercised by a real bake (one implementation shared with G-157's materialization arm - whichever goal lands it first, the other consumes it); a bi-class head variant with batteries in the runtime vfs (G-103 family payload shape) builds beside the plain head; kit.punk86 and kit.punkbi (or trial-named siblings from the same .vfs payloads) bake via make.tcl with the suite heads as runtime, passing the existing gates unweakened (G-125 boot-library gate, arch scan, punkres stamping seam, smoke); the runtime_caps probe and kit_type_mismatch check classify the heads correctly with no warn/skip on a legitimate bake; each baked kit boots on a path with no Tcl installation and resolves internal tm/auto_path trees equivalently to its tclkit-baked sibling, with the comparison recorded; no new binary is committed - the heads reach the bake from the suite output tree or an uncommitted local runtime materialization, with punkbin runtime-tier publication recorded as follow-on rather than required; and the third-party-runtime disposition is recorded - which of the three tclkits remains load-bearing for anything after the parity bakes, retirement itself staying a user decision.
## Context
The consumption arc of G-101 (achieved 2026-08-02 - see
goals/archive/G-101-tcl86-kit-container-strategy.md): that goal decided mk4,
demonstrated the whole chain end-to-end, and recorded a follow-on-to-parity
list whose items 1-3 this goal takes up. What already exists, verified there:
- The mk4 kit-head: suite_tcl86's opt-in `kithead` step builds
tclsh8.6.18-mk4-r1.exe (static shell + engine + Mk4tcl/mk4too + static
tclvfs, preinit boot from its own attached container; boot.tcl in the vfs
per the tclkit convention; tools/mk4kit_attach.tcl plays the setupvfs
role). Bare-path boot, self-wrap of a separate copy via sdx, and
dll-load-from-vfs are all measured.
- The sdx circularity is broken: sdx.kit runs under the suite-built
tclsh86t (starkit 1.3.3 + vfs::mk4 ship with tclvfs trunk; Mk4tcl 2.4.9.8
is the suite battery) and under the head itself - no tclkit in the chain.
- What is NOT yet wired is the bake: make.tcl's sdx resolution ladder still
ends at bin/sdx.kit + a prebuilt tclkit, the runtime_caps/kit_type
machinery has never seen a suite head, and no mapvfs entry names one.
The parity targets are the three 'kit'-type rows riding prebuilt tclkits in
src/runtime/mapvfs.toml today: kit.punkbi (tclkit86bi - the bi shape),
kit.punk86 (tclkit-win64-dyn-8617) and kit.punksys (tclkit-win64-dyn).
kit.punksys is deliberately unnamed in Acceptance - same mechanism as
punk86; the disposition clause covers its runtime.
Batteries for the bi shape: the head's boot puts <exe>/lib on auto_path, so
a bi variant is the attach step writing the suite's battery package dirs
(thread2.8.13, vfs1.4.2, tk + lib/tk8.6, tcllib/tcllibc) into the runtime
vfs alongside lib/tcl8.6 - the G-103 family payload shape (G-103 achieved
2026-07-22 - see goals/archive/G-103-runtime-kit-family.md), already the
attach tool's mechanism.
Gate references in Acceptance, for the record: the G-125 boot-library gate
(achieved 2026-07-27 - goals/archive/G-125-unbootable-kit-deploy-gate.md;
its vfs_boot_library_report location list is checked against the tclkit
shape at the first parity bake, per G-101's follow-on item 3) and the
punkres stamping seam (G-057 achieved 2026-07-29 -
goals/archive/G-057-kit-icon-embedding.md; G-128 achieved 2026-07-29 -
goals/archive/G-128-portable-pe-resource-stamping.md).
## Notes
- Related: G-157 - the strongest overlap (survey 2026-08-03): the same
make.tcl sdx-ladder seam (its approach step 4 folds the suite-shell rung
into its materialization arm) and it owns sdx.kit's committed status.
Coordination: ONE rung implementation - whichever goal lands it first, the
other consumes it; this goal treats bin/sdx.kit purely as an input the
ladder resolves, wherever G-157 makes it come from.
- Related: G-131 - consumption sibling: the heads are its mk4 arm
(build_kithead86/kithead.c + boot.tcl are the metakit half of its
detection), and the parity kits become the starkit-family specimens its
no-regression clause compares against.
- Related: G-130 - the win32-ix86 head (G-101 follow-on parity item 4)
arrives through this goal's family mechanism applied on that lane's
runtimes; nothing here assumes x64-only shapes.
- Related: G-110 - kit battery loads ride the mk4 copy-to-temp shape this
goal makes routine punkshell practice; its cache investigation gains the
suite head as a first-party reproduction vehicle.
- Related: G-116 - the bi-family battery contract is generation-shaped; a
suite-built tcltls would join the bi head payload when it lands.
- Related: G-137 - RT_VERSION stamping sits at the same kit-wrap seam
(G-057/G-128 icon/stamp path); the mk4 container is measured move-safe
for post-hoc stamping (G-128 record).
- Overlap survey 2026-08-03 (goals_xref paths over src/make.tcl,
src/buildsuites/suite_tcl86, src/runtime/mapvfs.toml,
bin/runtime/win32-x86_64, bin/sdx.kit,
src/tests/shell/testsuites/punkexe): G-105/G-023/G-005/G-006 sibling
adjacency only (buildsuite target dimension, binary naming, build/download
channels - the latter two arrive via G-157); G-141/G-142/G-147 bin/
path-siblings only, judged not related in substance; G-077/G-061
punkexe-test-dir neighbours only.
- 2026-08-03: drafted (user-approved this session) from G-101's follow-on
items 1-3. Drafting decisions recorded at approval: the bi variant is IN
scope (kit.punkbi parity needs it); punkbin publication is OUT
(follow-on, keeping the goal bake-focused); kit.punksys unnamed in
Acceptance per Context.
Loading…
Cancel
Save