Browse Source
- new goal (user-drafted 2026-08-04): when the valmin reservation seats a word that literally names a declared required option into a required value slot and the resulting optionmissing stands in the G-152 viability probe, re-parse with the stolen word(s) consumed as the option they name; pure end-of-input exhaustion after that re-seating grants viable-incomplete. Runtime seating unchanged (the trailing-flag-as-value rule is load-bearing, pinned by flagvalues_plain_then_dash) - surfaced by the G-150 batch + independent second-session review: 'i hash -t' classes the test form '(not viable)' although 'hash -t foo' is valid - a false negative, GAP-pinned in cmdhelp.test (owned by this goal; the pin flips at achievement) - overlap survey in the detail file (G-044 consumer; G-152/G-150 archived relations; args/ns family anchors dismissed as unrelated mechanisms) - G-044 Notes: records G-164 as the probe-layer answer to G-152's "completion consumer lookahead" note for the valmin-reservation class - goals_lint clean (82 active, 82 archived) Assisted-by: harness=opencode; primary-model=openrouter/moonshotai/kimi-k3; api-location=openrouter.aimaster
3 changed files with 22 additions and 0 deletions
@ -0,0 +1,17 @@
|
||||
# G-164 punk::args viability probe: alternative-allocation re-probe for reservation-stolen flag words |
||||
|
||||
Status: proposed |
||||
Scope: src/modules/punk/args-999999.0a1.0.tm (G-152 viability probe - private::get_dict_form optional 4th arg); src/tests/modules/punk/args/testsuites/args/formviability.test; src/tests/modules/punk/ns/testsuites/ns/cmdhelp.test (GAP flip) |
||||
Goal: When the valmin reservation seats a word that literally names a declared required option into a required value slot, and the resulting optionmissing stands in the viability probe (a value word consumed), the probe re-parses with the stolen word(s) consumed as the option they name; pure end-of-input exhaustion after that re-seating grants 'incomplete' (viable). Runtime seating is unchanged - the trailing-flag-as-value rule is load-bearing. |
||||
Acceptance: 'i ::punk::auto_exec::hash -t' classes the test form viable (incomplete) while show_or_set/rehash/delete/help remain not viable, and {-d} classes delete viable; no parse RESULT changes anywhere (runtime seating untouched): full args and ns subtrees green apart from the deliberate GAP flip, with flagvalues_plain_then_dash (trailing-flag-as-value) and the runtime 'missing flags' message path pinned unchanged; the GAP pin cmdhelp_GAP_multiform_flagled_testform_false_notviable flips to the viable assertion. |
||||
|
||||
## Context |
||||
|
||||
Surfaced by the G-150 batch (2026-08-04, punkshell 0.51.0): removing the help form's adhoc-option-viable marker left 'i hash -t' with every form "(not viable)" - correct for help/show_or_set/rehash/delete but a false negative for test, since 'hash -t foo' is a valid test line. Mechanism (verified live): the valmin reservation (the option-scan guard reserving remaining words for required values) seats the lone -t as the required name value without comparing it to the declared -t option; the G-152 position guard (missing-required-option suppressed only when no value words consumed) then lets optionmissing stand. Not one of G-152's documented conservatisms (those cover the multi-member clause case; the seating-based philosophy note covers trailing defined flags before unconstrained optional or restricted-choice values - this is the required-value reservation class). Independent review (second session, 2026-08-04) assessed the batch and recommended exactly this probe-layer refinement plus GAP-marking of the false negative (the GAP pin is applied in cmdhelp.test) - with the constraint: do NOT change the runtime reservation, which is load-bearing (an optional solo -x with @values -min 1 parses {-x} as a value today, pinned by flagvalues_plain_then_dash). |
||||
|
||||
## Notes |
||||
|
||||
- Related: G-044 (proposed) - punk::args-driven interactive completion; the verdict's primary consumer. Its Notes record this goal's re-probe requirement for its lookahead. |
||||
- Related: G-152 (achieved 2026-08-02 - goals/archive/G-152-punkargs-form-viability-verdict.md) - the suffix-viability verdict layer this refines; its 'deliberately seating-based' note already records that a completion consumer wanting flag-pending-value awareness needs its own lookahead - this goal is that lookahead, at the probe layer. |
||||
- Related: G-150 (achieved 2026-08-04 - goals/archive/G-150-cmdhelp-form-narrowing.md) - the batch that surfaced the false negative; its cmdhelp.test GAP pin (cmdhelp_GAP_multiform_flagled_testform_false_notviable) flips here. |
||||
- Overlap survey 2026-08-04: goals_xref paths src/modules/punk/args-999999.0a1.0.tm src/tests/modules/punk/args/testsuites/args/formviability.test src/tests/modules/punk/ns/testsuites/ns/cmdhelp.test - the args family (G-044 G-050 G-053 G-056 G-069 G-072 G-073 G-075 G-083 G-084 G-088 G-149 G-151) via the ubiquitous args-module anchor and the ns family (G-050 G-052 G-075 G-085) via the shared cmdhelp.test anchor; G-044 named above as the consumer, the rest are unrelated parse/render mechanisms. G-152/G-150 (archived) named above. |
||||
Loading…
Reference in new issue