G-161 activation: multi-line banner parsing goal goes active
User-directed activation (proposed -> active, index + detail mirror).
Activation-freshness survey (goals_xref score G-161) recorded in the detail
file Notes: no related live goals - every overlap pair is unlinked with zero
path intersection (lexical noise only; interval-drafted G-163 unrelated).
goals_lint clean.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Scope: src/make.tcl (sdx resolution ladder suite-shell rung - shared seam with G-157 approach step 4; kit wrap path; runtime_caps/kit_type_mismatch accommodation); src/buildsuites/suite_tcl86/ (build_kithead86 bi-class head variant, mk4kit_attach battery payloads); src/runtime/mapvfs.toml (suite-head runtime rows + kit entries); bin/runtime/win32-x86_64/ (uncommitted local materialization slot for the heads - publication is follow-on); src/tests/shell/testsuites/punkexe/ (bake-path characterization); bin/sdx.kit (consumed by the ladder - its committed status is G-157's contract, not this goal's)
Detail: goals/G-158-punk86-kit-parity.md
### G-161 [proposed] tcltestrun failure parsing robust to multi-line test descriptions
### G-161 [active] tcltestrun failure parsing robust to multi-line test descriptions
Scope: src/modules/punk/tcltestrun-999999.0a1.0.tm (parse_testrun failure-banner state machine); src/tests/runner/ (parser characterization suite - synthetic captured-output + end-to-end failing-fixture coverage); src/tests/AGENTS.md (single-line-description contract note relaxed to style guidance once tolerated)
# G-161 tcltestrun failure parsing robust to multi-line test descriptions
Status: proposed
Status: active
Scope: src/modules/punk/tcltestrun-999999.0a1.0.tm (parse_testrun failure-banner state machine); src/tests/runner/ (parser characterization suite - synthetic captured-output + end-to-end failing-fixture coverage); src/tests/AGENTS.md (single-line-description contract note relaxed to style guidance once tolerated)
Goal: a failing tcltest whose description contains embedded newlines is reported with full fidelity - failure event with name and description, result_was/result_expected, and every subsequent event including the summary line - instead of the parser missing the multi-line opening banner, misreading the closing banner as an opener, and wedging in failure-capture state so the file degrades to warn/missing-cleanupTests with no failure detail.
Acceptance: a committed runner suite covers both a synthetic captured-output fixture (multi-line-description failure followed by passes and a summary line, parsed to the correct event set) and an end-to-end fixture .test file whose deliberately failing multi-line-description test is reported by runtests.tcl as status=FAILED with actual/expected populated and a trusted summary (summaryline_detected=1, correct totals) in BOTH single-process and multi-process modes; single-line-description failure reports keep their existing shape, verified by scriptlib/developer/runtests_parity.tcl comparing -report json output of an identical full-suite run before and after the change; the src/tests/AGENTS.md single-line-description bullet is updated to style guidance reflecting the new tolerance.
@ -38,6 +38,12 @@ lines inside test output) must keep their current behaviour for single-line case
- Overlap survey 2026-08-03: goals_xref paths over
src/modules/punk/tcltestrun-999999.0a1.0.tm, src/tests/runner and
src/tests/runtests.tcl found no intersecting live goals.
- Activation-freshness survey 2026-08-03 (goals_xref score G-161, run at the
user-directed activation): no related live goals - every overlap pair is
unlinked with zero path intersection, lexical noise only (top scores: G-085