execverb: per-grant argv override for friendly launch verbs #151

Closed
opened 2026-06-17 22:02:29 +00:00 by coilysiren · 0 comments
Owner

The exec dialect appends the granted subcommand verbatim, so it can only express bin <subcommand> <args>. That cannot model a bare interactive launch (claude) or a flag-shaped headless call (claude -p, aider --message): the mounted leaf name and the executed argv are forced equal.

Add an argv <tokens...> grant child that overrides the appended tokens, decoupling the friendly leaf name from what runs:

  • can run launch { argv } -> bare claude (interactive)
  • can run headless { argv "-p" } -> claude -p <args>
  • can run whoami { argv "login" "status" } -> codex login status

The friendly name keeps the CLI path and dotted audit name; only the executed argv changes. Override tokens are trusted policy (like argv-prefix) and skip the flag policy; caller args are still checked. Fail-closed on a wildcard grant or a duplicate override.

Motivation: drives the ward-kdl agents <cli> launchers (claude/codex/opencode/aider/goose) in the ward repo.

The exec dialect appends the granted subcommand verbatim, so it can only express `bin <subcommand> <args>`. That cannot model a bare interactive launch (`claude`) or a flag-shaped headless call (`claude -p`, `aider --message`): the mounted leaf name and the executed argv are forced equal. Add an `argv <tokens...>` grant child that overrides the appended tokens, decoupling the friendly leaf name from what runs: - `can run launch { argv }` -> bare `claude` (interactive) - `can run headless { argv "-p" }` -> `claude -p <args>` - `can run whoami { argv "login" "status" }` -> `codex login status` The friendly name keeps the CLI path and dotted audit name; only the executed argv changes. Override tokens are trusted policy (like `argv-prefix`) and skip the flag policy; caller args are still checked. Fail-closed on a wildcard grant or a duplicate override. Motivation: drives the `ward-kdl agents <cli>` launchers (claude/codex/opencode/aider/goose) in the ward repo.
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
coilyco-flight-deck/cli-guard#151
No description provided.