G-151 (annotated success render) Notes gain the six user-agreed design leans
from the 2026-08-05 shape discussion:
1. compact landing table (Argument | Source | Value) - a separate small
arg_error-styled bordered block stacked under the usage render, not
annotation of the usage table; existing -parsedargs/goodchoice marking
stays; no per-value subtables (the report itself is the bordered block;
G-088 footer docking possible later); arg-oriented rows in
declaration-section order.
2. deterministic width caps (value column ~48, total ~80), never
console-queried; configurable via the G-149 caller-option/@cmd-key
plumbing; machine returns untruncated.
3. type-aware always-marked elision: strings single-line-ized then
char-capped with '...' + '(len N)'; lists/multis element-capped with
'(+N more)'; dicts pair-capped; pre-elided at data-prep, not via table
column -maxwidth.
4. the ANSI/grapheme-safe truncate primitive homes in punk::ansi::ansistring;
punk::args layers element/pair-count elision on top.
5. serving arg_error's value-truncation todo with the same helper is a
follow-on, not acceptance.
6. rows only for value-holding arguments (received or default-in-effect).
Lean 4's precondition (user direction): survey ansistring test coverage
against codebase usage before any modification. DONE - usage-weighted survey
(VIEW ~250 sites incl 124 '-lf 1'; VIEWSTYLE/VIEWCODES/NEW ~40 interactive
sites; RANGE 8) produced 8 new characterization pins in ansistring.test,
green 71/71 on native tclsh90 (9.0.3) and tcl87:
- VIEW -lf 0/1/2 single-line-ization modes, tab/cr defaults, no-arg empty
return; always-on NUL substitution + silent unknown-option tolerance
(load-bearing for overtype's '-nul 1' CRM sites) + unpaired-option error;
8-bit C1 CSI bracketed representation and ZWSP visible-tag visuals.
- RANGE prefix/end-relative/clamping semantics, plus the truncate-relevant
facts: merged code-stack re-emission (full-range extraction is
ansistrip-identical but not byte-identical) and codes trailing the last
grapheme DROPPED (matches the source TODO) - fetch trailing state via
INDEXCODE end+1 when it matters.
- COUNT (graphemes, combining accents cluster) vs length (stripped
characters) divergence pinned on a decomposed-accent fixture.
- KNOWN-DEFICIENCY pin: VIEWCODES/VIEWSTYLE raise invalid-command in a plain
punk::ansi interp (class methods call the bare 'a+'/'a' interactive
aliases) - pinned in a fresh child interp so the verdict is independent of
runner mode; flip deliberately when the class renders alias-free.
- NEW object basics: class identity, count/length/stripped/view parity with
the ensemble surface, destroy.
Survey outcome + implementation cautions recorded under lean 4 in the G-151
Notes; src/tests/modules AGENTS.md punk/ansi bullet extended. goals_lint
clean (84 active, 86 archived). Environment note: agent-harness shells set
NO_COLOR=1, which blanks the live highlight SGRs grepstr.test pins expect
(the recorded tcl90-baseline grepstr(2)) - unset it for colour-dependent
suite runs; the new pins are colour-state independent per suite convention.
Claude-Session: https://claude.ai/code/session_0156PuejSCGjgeGb7jiABrDU
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com