punk::lib 0.6.0: tclparser_tcl stub replaced by delegation to
punk::tclparser; new tclparser_prefer (memoized auto c|tcl dispatch via
namespace-local parse aliases, forcible); tclscript_info and
tclword_to_scriptlist route through it; a+ -using debug puts commented
out (crashed plain tclsh); tclword_to_scriptlist PUNKARGS argdoc added.
New suites: tclparser_engine.test (20 oracle-verified pins + dispatch,
runs everywhere) and tclparser_parity.test (77-case recorded corpus +
range-walk + entry-point parity, capability-gated, oracle dir via
PUNK_TCLPARSER_ORACLE_DIR). 23/23 under tclsh 8.7a6 and 9.0.3; lib
subtree green (8.7 compat.test lpop failure proven pre-existing).
Real 8.6.13 (punksys kit): corpus parity clean; \xHH model corrected -
TIP 388 2-hex cap holds on 8.6 too, version-conditional removed from
the engine. Plain-tclsh fallback demo green both gens (auto_path
cleared): prefer->tcl, tclword_to_scriptlist correct incl nested
array-index command substitutions, output identical to the c path.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
New module punk::tclparser 0.1.0 (zero-dependency): parse
command/getstring/countnewline over byte-view scanning (modified utf-8),
same result shapes and error messages as the tclparser C library.
Deliberately does not provide package 'parser' (capability probe).
Parity vs fork oracle dlls: edge corpus 234 comparisons clean per gen;
recursive organic sweep over lib/args/ansi/textblock/tclparser sources =
50005 (Tcl 8.7a6) and 49928 (Tcl 9.0.3) command-parses, 0 fails, all
~330 error-parses per gen message-identical. Generation differences
modelled version-conditionally: \xHH 2-hex cap (8.7+), Tcl 9 bare '('
rejection in array indexes, Tcl 9 nested-brace ${name} scanning.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Activation freshness survey (goals_xref score G-070) found no new
overlaps; strong hit G-019 already Related in G-070 - reciprocal
back-pointer added to G-019 Notes. goals_lint clean (84 active / 70
archived).
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Completion increment: fork pushed by the user; pin
16d2f460b89dfd819aa08ceb97dfebf37b9fa55a; ready-to-land
sources.config/zon records made concrete for both suites (zig-fetch
hash tclparser_punk-0.1.0-aKPixmovFABEMo61xgv1YjUqdgqe41ZiB-EucAgmM-We);
'zig build dual' re-verified via the lazy zon pins alone; kit-shell
load + parse round trips recorded (punk902z Tcl 9.0.2, punksys Tcl
8.6.13) PLUS beyond-acceptance ix86 runtime verification under the
32-bit verification kits (punkluck86 8.6.10, punk91ix86 9.1b0, WoW64)
- combined dll coverage Tcl 8.6.10/8.6.13/8.6.18 + 9.0.2/9.0.5/9.1b0,
x64 and ix86.
Achieved flip per the GOALS.md maintenance rules (acceptance met in
full, judged against the detail file; flagged in the session report -
the goal went proposed->achieved without an active phase): index entry
moved to GOALS-archive.md; reference sweep applied - G-070 (Scope both
tiers, Context, Related line gain the achieved/archive marker),
G-069/G-101/G-130 Notes gain pointers to the archived file (G-130's
also records the ix86 runtime verification its verification kits
enabled). The detail-file move goals/ -> goals/archive/ lands as the
adjacent pure-rename commit.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
G-154 (proposed): fork-as-upstream tclparser build lane at
c:/repo/jn/tclparser_punk - tcltk-depot parser 1.9 porting baseline
with the aspect chiselapp fossil lineage as a second byte-frozen
snapshot, dual-generation stubs dlls (tcl9tclparser19.dll /
tclparser19t.dll) dual-arch under the pinned zig 0.16.0, upstream
114-case testsuite gate. Seed increment verified green 2026-08-02
(fork commits 7c18555 + 16d2f46): builds via suite-matching lazy zon
tcl pins AND standalone, dual step, gate transcript Total 114
Passed 112 Skipped 2 Failed 0 both generations. Detail file carries
the upstream-landscape survey, draft suite consumption records, and
remaining acceptance items (push+pin, kit-shell load transcript).
G-070: Scope (both tiers), Acceptance reference clause and Context
repointed from the never-materialised TEMP_REFERENCE tclparser tree
to the fork repo (snapshots + dll oracle + corpus seed); Related
note to G-154 added.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
- GOALS.md: "Goals-system: v2" front matter; canonical "Goals system versions"
section; Scope structure rule (elements separated by '; ' at top level,
commas only inside parens/braces); Child DOX Index note in root AGENTS.md
- goals_lint.tcl: new finding for top-level commas in Scope lines
(paren/brace depth-aware)
- goals_xref.tcl: repo-local configuration via goals/xref.conf (path roots,
stop words, file extensions, reference containers, module dirs,
bare_path_roots, prefix_anchors); defaults byte-identical to previous
behaviour (verified on this tree)
- goals/AGENTS.md: cross-repo goal references drop the G- prefix; xref.conf
documented in Verification
- Scope delimiter normalisation across GOALS.md, GOALS-archive.md and all
detail files, live and archived: 224 lines, top-level commas only;
conservation verified (goals_xref report byte-identical pre/post, diff
hunks are Scope lines only). Archived tier converted under explicit user
approval; sanctioned exception recorded in GOALS-archive.md.
Assisted-by: harness=opencode; primary-model=openrouter/moonshotai/kimi-k3; api-location=openrouter.ai
Both user-approved drafts arising from the G-045 tclparser assessment:
- G-069: dev-time lint cross-checking punk::args record-splitter boundaries
against tclparser parse command where the binary is available -
dialect-aware comparison (-& pre-join, ANSI strip), capability-gated,
zero new runtime dependencies for punk::args.
- G-070: pure-Tcl implementation of the tclparser parse-command API scoped
to what punk::lib consumes, parity-verified against the C library over a
probe corpus; replaces the tclparser_tcl error stub with
prefer-C/fallback-pure dispatch. Reference source to be user-provided
under TEMP_REFERENCE with recorded provenance.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com