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.co