Browse Source
The -conflicts and -parsekeymode error vocabulary (inc 1, 0.19.0) and its parse-time optionconflict enforcement (inc 2, 0.20.0) now surface in usage/arg_error and synopsis output, and the lsearch tclcore moduledoc models its documented option incompatibilities with the new vocabulary. Rendering: - A per-arg -conflicts list appends a "conflicts with: <targets>" hint to the argument's help text in the usage table (targets resolved to display names via lookup_optset, so a parsekey target shows its member flag, not the raw parsekey). - A named @opts group marked -parsekeymode error is annotated "mutually exclusive (distinct members may not be combined)" in its group header; override (default) groups carry no such annotation. - The synopsis one-line form carries no conflict detail. lsearch moduledoc (tclcore): - -sorted gains -conflicts {-glob -regexp} and -bisect gains -conflicts {-all -not} (per-arg conflicts; the whole group stays -parsekeymode override so -glob/-regexp remain last-wins). - The "(documentation incomplete - punk::args fixes required for grouped mutually exclusive options and prefix calculation)" caveat is dropped from the @cmd -help. clock clicks left unchanged - its active positional-choice definition already models exclusivity (exactly-one-of) and the acceptance clause names lsearch only. relations.test extended with 8 increment-3 pins: 4 rendering (conflicts_usage_hint, parsekeymode_error_usage_group_header, parsekeymode_override_no_header_annotation, conflicts_synopsis_no_hint) and 4 lsearch adoption (lsearch_sorted_conflicts_glob + lsearch_bisect_conflicts_all raise optionconflict via errorcode substring match, lsearch_glob_regexp_last_wins stays last-wins, lsearch_caveat_dropped). Legacy untouched by default (no -conflicts/parsekeymode-error definition carries no new rendering). Full punk/args suite 371/0 (3 skipped); tclcoreparity 10/10; punk/ns 125/125. All G-083 acceptance criteria met; goal flipped to achieved 2026-08-08 and archived (detail -> goals/archive/, index -> GOALS-archive.md, reference sweep applied to G-053/G-084, deferred -requires/-implies dependency relations recorded as an open Follow-on). Project version 0.58.0 -> 0.59.0 (minor: backward-compatible behaviour additions, following the G-173 punk::path precedent). punk::args module 0.20.0 -> 0.21.0. Assisted-by: harness=pi; primary-model=huggingface/zai-org/GLM-5.2; api-location=huggingface.comaster
12 changed files with 210 additions and 22 deletions
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue