From f48bf7890079648c33616cc12a5ceebfa2869746 Mon Sep 17 00:00:00 2001 From: Julian Noble Date: Fri, 7 Aug 2026 13:51:55 +1000 Subject: [PATCH] G-083: activate (proposed -> active) - punk::args argument relations Activation-freshness overlap survey (goals_xref score G-083) confirmed the existing Notes already record the real relationships (G-053, G-072, G-084 - all linked). G-167's back-pointer explicitly declares a deliberate non-overlap with no sequencing constraint; remaining unlinked pairs are low-score term-only siblings with no path overlap. No new Related: lines warranted. This work is a prerequisite for G-084 (parsekey completeness), whose cross-member -multiple combination decision should be made with this goal's relations vocabulary in hand. G-053 (occurrence arity) is slotted before G-084 in the same sequence at the user's direction. Assisted-by: harness=pi; primary-model=huggingface/zai-org/GLM-5.2; api-location=unknown --- GOALS.md | 2 +- goals/G-083-punkargs-argument-relations.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/GOALS.md b/GOALS.md index 9b617376..39b2ff74 100644 --- a/GOALS.md +++ b/GOALS.md @@ -287,7 +287,7 @@ Detail: goals/G-080-ansi2html-cellgrid-mode.md Scope: src/modules/punk/mix/commandset/doc-999999.0a1.0.tm (doc.* commandset - new generation subcommands); src/scriptapps/tools/punkargs_to_doctools.tcl + punkargs_punknative.tcl (prototypes to productize); src/scriptapps/tools/fontprep/ (shared doc-set asset in link mode); src/doc tree conventions; src/tests coverage Detail: goals/G-081-argdoc-build-pipeline.md -### G-083 [proposed] punk::args argument relations: strict mutual exclusivity and parsekey-group integrity +### G-083 [active] punk::args argument relations: strict mutual exclusivity and parsekey-group integrity Scope: src/modules/punk/args-999999.0a1.0.tm (resolve/spec compiler, parse paths incl mash, arg_error/synopsis/usage renderers, errorcode vocabulary); src/modules/punk/args/moduledoc/tclcore-999999.0a1.0.tm (lsearch, clock clicks dogfood); src/tests/modules/punk/args/testsuites/args/ + testsuites/dev/ (GAP flips + new characterization) Detail: goals/G-083-punkargs-argument-relations.md diff --git a/goals/G-083-punkargs-argument-relations.md b/goals/G-083-punkargs-argument-relations.md index 36409b2d..836fce22 100644 --- a/goals/G-083-punkargs-argument-relations.md +++ b/goals/G-083-punkargs-argument-relations.md @@ -1,6 +1,6 @@ # G-083 punk::args argument relations: strict mutual exclusivity and parsekey-group integrity -Status: proposed +Status: active Scope: src/modules/punk/args-999999.0a1.0.tm (resolve/spec compiler, parse paths incl mash, arg_error/synopsis/usage renderers, errorcode vocabulary); src/modules/punk/args/moduledoc/tclcore-999999.0a1.0.tm (lsearch, clock clicks dogfood); src/tests/modules/punk/args/testsuites/args/ + testsuites/dev/ (GAP flips + new characterization) Goal: punk::args definitions can express hard mutual exclusivity - a per-argument -conflicts relation (keyed on parsekeys, checked only against received arguments so defaults never conflict) and an @opts-level strict mode making distinct-member co-occurrence within a shared-parsekey group an error - while legacy last-wins remains the default, so lsearch-class commands (grouped styles with pairwise incompatibilities like -sorted vs -glob/-regexp and -bisect vs -all/-not) parse and document faithfully without combinatorial @form explosion. Acceptance: parse raises a usage-style error with a structured errorcode (PUNKARGS VALIDATION optionconflict shape) naming both offending received arguments for -conflicts violations and strict-group co-occurrence, through both the ordinary and mash option paths with prefix abbreviations resolved before the check; define time rejects a -parsekey colliding with a distinct defined argument's name (parsekey_collides_with_defined_optname_GAP flips); legacy behaviour is untouched by default (full existing punk::args suite passes, including the pinned last-wins/prepend-defaults override idiom); the lsearch moduledoc models its documented incompatibilities with the new vocabulary and drops its "punk::args fixes required for grouped mutually exclusive options" caveat; usage/synopsis output for conflict rules is pinned by characterization tests.