Both payloads gain a TABLE-AWARE [provenance] class reader
(provenance_class() awk helper / Get-PunkRuntimeProvenanceClass) - the
flat first-wins field scans deliberately keep reporting [artifact] class
per the documented schema-v2 ordering caveat. Display: compact
class=third-party|local tag in the plain-list metadata summary and in
list -remote's sparse identity column (suite-built stays quiet; LOCAL
record basis only - a listing does no per-row remote fetches, toml-less
and remote-only rows keep degrading as no-basis rows); info gains the
v2 fields builder/source_url/upstream_ref/retrieved in the flat table
plus a derived provenance_class row, disagreement-checked; help texts
updated to the v1/v2 wording.
bash defect fixed: 'info -platform <p>' was advertised in both help
texts but silently ignored - 'info' was missing from the option-scan
action list (punk-runtime.bash case arm). The per-name report now
honours the tier argument like the ps1 payload (proven by the
tier-named not-found path).
bin/punk-runtime.cmd re-wrapped via the documented multishell
invocation under punk905. Verification: bash -n clean; staged v2
third-party fixture smoke shows parity output in both payloads
('[tcl=9.9.9 class=third-party]' + provenance_class row);
runtimecmd_checkfile PASS (no 512B label crossing after payload
growth); runtimecmd_freshness PASS (13 fixture tests, both routes);
runtimecmd_roundtrip PASS byte-identical under the tclsh9.0.5-punk
baseline runner (plain native tclsh lacks struct::stack for tomlish -
runner-choice trap noted in the goal Progress).
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
for k in schema name class variant working_name revision target build_id origin packager project project_url license build_host_platform tcl_patchlevel sha1 size built; do
for k in schema name class variant working_name revision target build_id origin packager builder source_url upstream_ref retrieved project project_url license build_host_platform tcl_patchlevel sha1 size built; do
ev=""; sv=""
if [[-n"$embedded"]];then
ev=$(printf '%s\n' "$embedded"| sed -n 's/^[[:space:]]*'"$k"'[[:space:]]*=[[:space:]]*"\(.*\)".*/\1/p' | head -n 1)
@ -2304,6 +2337,18 @@ case "$action" in
disagreements="$disagreements $k"
fi
done
#G-123 schema v2: [provenance] class shown as its own derived row - the
#flat scan above reports [artifact] class per the documented ordering
foreach ($k in @('schema','name','class','variant','working_name','revision','target','build_id','origin','packager','project','project_url','license','build_host_platform','tcl_patchlevel','sha1','size','built')) {
foreach ($k in @('schema','name','class','variant','working_name','revision','target','build_id','origin','packager','builder','source_url','upstream_ref','retrieved','project','project_url','license','build_host_platform','tcl_patchlevel','sha1','size','built')) {
$ev = ""; $sv = ""
if ($efields.ContainsKey($k)){$ev=$efields[$k]}
if ($sfields.ContainsKey($k)){$sv=$sfields[$k]}
@ -3983,6 +4065,18 @@ function psmain {
#schema absent on one side is pre-v1 tolerance, not a disagreement
if (($ev-ne"")-and($sv-ne"")-and($ev-cne$sv)){$disagreements+=$k}
}
#G-123 schema v2: [provenance] class as its own derived row - the
#flat scan above reports [artifact] class per the documented
#ordering caveat, so this key needs the table-aware read
$pcev = ""; $pcsv = ""
if ($null-ne$embedtext){$pcev=Get-PunkRuntimeProvenanceClass($embedtext-split"`r?`n")}
if ($havesidecar){$pcsv=Get-PunkRuntimeProvenanceClass([string[]](Get-Content-Path$sidecarfile))}
for k in schema name class variant working_name revision target build_id origin packager project project_url license build_host_platform tcl_patchlevel sha1 size built;do
for k in schema name class variant working_name revision target build_id origin packager builder source_url upstream_ref retrieved project project_url license build_host_platform tcl_patchlevel sha1 size built;do
ev="";sv=""
if[[ -n "$embedded"]];then
ev=$(printf'%s\n'"$embedded"| sed -n 's/^[[:space:]]*'"$k"'[[:space:]]*=[[:space:]]*"\(.*\)".*/\1/p'| head -n 1)
@ -1024,6 +1057,18 @@ case "$action" in
disagreements="$disagreements$k"
fi
done
#G-123 schema v2: [provenance] class shown as its own derived row - the
#flat scan above reports [artifact] class per the documented ordering