Declarative argument contracts for seam CLIs #147

Closed
opened 2026-08-15 14:33:46 +00:00 by john · 1 comment
Owner

Source: deep dive, broader design B3
Verdict: AGREE - proposal

Claim as reviewed

The repository has strict and permissive flag readers, but each CLI chooses manually and unknown flags are often ignored. A small declarative parser could define required values, defaults, duplicates, enums and mutating-target flags in one place, eliminating the present-but-valueless class across seams.

At HEAD f354864 (v3.3.0)

Two readers exist side by side at cadence-core/bin/lib/seam-input.mjs:45-60 and :63-89; the choice is per-call-site and currently wrong in the mutating seams.

Note

Weigh against the zero-dependency constraint and against simply switching the mutating seams to flagValue, which is a much smaller change and closes the reported defect on its own.

**Source:** deep dive, broader design B3 **Verdict:** AGREE - proposal ### Claim as reviewed The repository has strict and permissive flag readers, but each CLI chooses manually and unknown flags are often ignored. A small declarative parser could define required values, defaults, duplicates, enums and mutating-target flags in one place, eliminating the present-but-valueless class across seams. ### At HEAD f354864 (v3.3.0) Two readers exist side by side at `cadence-core/bin/lib/seam-input.mjs:45-60` and `:63-89`; the choice is per-call-site and currently wrong in the mutating seams. ### Note Weigh against the zero-dependency constraint and against simply switching the mutating seams to `flagValue`, which is a much smaller change and closes the reported defect on its own.
john added this to the v3.5.4 milestone 2026-08-15 15:09:29 +00:00
john modified the milestone from v3.5.4 to v3.5.5 2026-08-18 10:23:30 +00:00
Author
Owner

Closed by v3.5.5 (ARG-06, verified against the shipped tree).

Closed by v3.5.5 (ARG-06, verified against the shipped tree).
john closed this issue 2026-08-19 20:59:56 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: crenshawdev/cadence-archived#147
No description provided.