User-reported: './punk-getzig.cmd' from a spaced checkout failed with
'C:\repo\jn\program: The term ... is not recognized' while punk-runtime
worked. Root cause: punk-getzig_wrap.toml still used the pwsh '-c'
command-string launcher, which tokenizes a spaced script path - punk-runtime
received the 'cmd.exe /c powershell ... -File' fix during G-119 (its wrap
toml carries the comment) and punk-getzig never did. Adopting the same
launcher surfaced three latent payload issues, all fixed in
src/scriptapps/bin/punk-getzig.ps1:
- Resolve-Path -RelativeBasePath is pwsh 7.4+ - replaced with the
Push-Location + -Relative spelling (PS5-compatible)
- Invoke-WebRequest without -UseBasicParsing NullReferences on PS5 (IE
parsing engine); all three call sites fixed, with progress suppressed
around the large distribution download (PS5 -OutFile slowdown)
- Invoke-Expression "$zigexe version" splits spaced paths under ANY
powershell (latent even on pwsh) - both sites now use the call operator
Payload growth pushed :exit_multishell across a 512-byte boundary; the
punk-runtime-style '(512B spacer)' comment added to punk-getzig.bash and the
polyglot regenerated (checkfile ERROR-free). Verified in the
'C:/repo/jn/program files/punkshell' checkout: full fetch (community-mirror
latency ordering, local punkbin mirror, minisign verify, extract, ZIG
VERSION: 0.16.0) and the already-installed branch; main-repo argless run
clean. Sources and regenerated bin/punk-getzig.cmd committed together per
the wrap workflow (no roundtrip pin exists for punk-getzig - candidate noted
in the completion report).
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Scriptset (src/scriptapps/bin) and the generated bin wrapper renamed; the
untracked bin/getzig.ps1 twin replaced by punk-getzig.ps1 (byte-copy of the
.cmd - launchability convenience for cmd.exe-or-powershell starts). Payload
improvements: self-references updated, and the ziglang.org release URL now
derives its version from the single $releasearchive pin (was a separately
hardcoded 0.15.1 vs the 0.15.2 archive). Re-wrapped via scriptwrap multishell;
checkfile ERROR-free (the two boundary-scan warnings are the documented-normal
polyglot ones). bin/AGENTS.md gains the punk- naming policy section
(exceptions: dtplite/sdx/kettle wrappers, getpunk; sweep of bits/runtime/
tclargs/selfsign is G-097).
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com