First publication of the shellspy G-128 tool as a punkbin artifact: the
no-toolchain route for icon stamping that does not depend on the committed
twapi (fetch to <shellspy>/bin/punkres.exe; the G-057 kit-icon seam selects
it when present). Provenance: built from shellspy's vendored source
src/tools/punkres @ shellspy 0bee025e (upstream punkres git f0af880,
v0.3.1, BSD-2-Clause, first-party punkshell tool - no external lineage)
with the pinned zig-x86_64-windows-0.16.0 toolchain via 'make.tcl tool
build punkres' (test gate 33/33, ReleaseSafe). sha1
166cd17628f6f9457f927eb67d34c9f01c5c5646 (row regenerated via
src/build_sha1sums.tcl - all other artifacts SAME). Versioned immutable
name per the tools-tier convention (arch-os-version); a future version adds
a new file. No minisig: sha1sums.txt is this repo's integrity authority for
first-party tools (a maintainer-signed .minisig sidecar remains the natural
complement per the metadata notes - maintainer-gated).
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Second assembly revision of the 9.0.5 family (first content change: tclvfs
forTcl9/1.5.0), first revision carrying the G-117 schema v1 metadata: records
embedded in each artifact's attached image (punkbin-artifact.toml; build_id
identical to sidecar, packager recorded, embed-then-hash - see AGENTS.md
"Artifact metadata records"). Built by shellspy suite_tcl90 (zig 0.16.0,
ReleaseFast; provenance checkout uuids + test-gate results in the tomls;
family_check self-containment + embed verification PASS all members).
defaults.txt win32-x86_64 recommendation: tclsh9.0.5-punk-r1.exe ->
tclsh9.0.5-punk-r2.exe (same change-set per the release rule). r1 remains
immutable alongside.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Embedded-vs-sidecar record relationship (embed-then-hash; sidecar + sha1sums
stay the integrity authority; record survives kit wrapping), per-field
semantics incl origin's built-for-not-hosted-on meaning, packager's
declarative-not-verified status with minisign sidecars as the verification
complement, build_id as deterministic correlation key, and the comment-
documented extension point (G-116 tls fields extend v1). Also: stale
bin/runtime.cmd consumer reference corrected to bin/punk-runtime.cmd.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
The file was the repo's only CRLF text file (predating 4b403a3's
LF-pinned generator, likely hand-made during the 82d212f misfile move).
gitea serves blob bytes, so the fetched file's entries ended \r and the
bash payload's line-anchored hash lookup on FreeBSD failed with
"Unable to locate hash for tclkit-851-freebsd7-x86_64" despite the
entry being present and its hash correct (verified against the
artifact; build_sha1sums reports SAME for every artifact after the
conversion).
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
First punkbin publication of the G-103 family (suite_tcl90 kit-family
emission, byte-identical sha1s to the recorded goal evidence):
tclsh9.0.5-r1.exe (plain), tclsh9.0.5-punk-r1.exe (piperepl default-ON),
tclsh9.0.5-punk-bi-r1.exe (+Tk/tklib) - each with its .toml metadata
record (variant, working name, sha1, battery versions, source-checkout
provenance, toolchain, test evidence). These are the repo's first
metadata-carrying artifacts; r1 is now IMMUTABLE - any republish of
these (patchlevel, variant) pairs must use -Dfamilyrev=2.
defaults.txt: win32-x86_64 flips from tclsh902z.exe to
tclsh9.0.5-punk-r1.exe per the user's release decision (the recorded
publish-plus-flip-in-one-change-set process, validated by
build_sha1sums.tcl: 6 NEW, no CHANGED, defaults entries OK). README
recommended-runtime paragraph updated accordingly.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
punk-runtime's bash payload reads sha1sums names via bash read, which
keeps a CRLF file's trailing \r (msys grep strips it in text mode) -
a locally-present runtime then also showed as a remote-only row.
Future rewrites emit LF like platforms.txt/defaults.txt; existing
files re-emit on their next content change.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
The default a no-name 'punk-runtime fetch' retrieves is a release
DECISION, so it lives on the artifact server as hand-curated data
(never generated) - updated in the same change-set that publishes the
artifact it points at, taking effect for every deployed punk-runtime
immediately with no punkshell release. src/build_sha1sums.tcl validates
entries (warns on unknown platforms / missing artifact files) so the
publish and the recommendation cannot drift silently.
Seeded from the values previously baked into punk-runtime's payloads,
with one correction those baked values got WRONG: linux-arm's actual
artifact is tclkit-9.0.2-Linux64-arm-dyn (dotted), not the baked
tclkit-902-Linux64-arm-dyn - a no-name fetch on linux-arm has been
broken until now, which is the config-in-code failure mode this file
removes. freebsd-x86_64 deliberately has no line (its only artifact is
a legacy 8.5-era kit, not a recommendation). Documented in AGENTS.md
Local Contracts with the release process.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Raw-file consumers (punk-runtime 'platforms -remote'; third-party mirrors
using this layout) have no directory-listing capability - platforms.txt
lists the served platform folders, one canonical punkshell platform-dir
name per line ('#' comments/blanks ignored). Generated and kept current
by src/build_sha1sums.tcl (rewrite-on-change, matching the sha1sums
behaviour); os_list extended with openbsd/msys per the punkshell platform
canon, and the skip-message stale-variable reference fixed ($f ->
$dirtail). Documented in AGENTS.md Local Contracts.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Provenance: official zig 0.16.0 windows x86_64 release archive, fetched
2026-07-20 from community mirror https://pkg.hexops.org/zig (per
ziglang.org/download/community-mirrors.txt), minisign-verified against the
zig release public key before adding. Adopted pin for punkshell's
suite_tcl90 buildsuite (shellspy G-096) after the recipe's 0.16 port passed
full build + tcl-test parity; also punk-getzig's install pin.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Provenance: official zig 0.14.1 windows x86_64 release archive, fetched
2026-07-20 from community mirror https://pkg.hexops.org/zig (per
ziglang.org/download/community-mirrors.txt; ziglang.org direct timed out),
minisign-verified against the zig release public key
RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U before adding.
Pinned toolchain for punkshell's suite_tcl90 buildsuite (shellspy G-096) -
first official release in the 0.14 line validated against the suite recipe.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
The runtime is x86_64 (freebsd7-era, Tcl 8.5.1) and was sitting in freebsd-arm64/. Kept out of interest / for experiments - well below punk's supported baseline (Tcl 8.6+). sha1 unchanged (a08dd020...); sha1sums.txt regenerated for the new folder.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com