Skip to content

feat: orc propose — the approval queue's front door#8

Merged
Thormatt merged 1 commit into
mainfrom
feat/effects-propose-cli
Jun 12, 2026
Merged

feat: orc propose — the approval queue's front door#8
Thormatt merged 1 commit into
mainfrom
feat/effects-propose-cli

Conversation

@Thormatt

Copy link
Copy Markdown
Owner

Context

Both validation studies named the credential-separated approval queue the #1 priority — but Run.propose() was Python-only, so nothing outside a skill could stage an action. This adds the missing CLI surface (and unblocks baton's ship step).

Changes

  • orc propose EXECUTOR --params '<json>'|@file --summary TEXT -w WS [--approvers N] [--idempotency-key K] [--json] — routes through the exact guarded path skills use (executor existence → params schema → workspace allow-list), inside a traced run. Actionable denials: unknown executor lists known ids; allow-list rejection prints the exact config.toml snippet; schema violation prints the schema.
  • orc approve list --json — machine-readable queue check for scripts.
  • README: propose example + one-time allow-list bootstrap.

Known limit (documented): orc replay of a propose-run is unsupported — replaying a proposal would silently stage a duplicate effect.

Testing

11 new propose CLI tests + 1 approve-list test, all RED-first; full suite 308 passed, ruff clean.

🤖 Generated with Claude Code

Run.propose() was Python-only, so nothing outside a skill could stage
an action: the approval queue had a human review surface but no
external producer surface. orc propose routes a CLI-originated action
through the exact guarded path skills use (executor existence, params
schema, workspace allow-list — all checked before anything is
enqueued) inside a traced run, and prints the human next steps or
machine-readable JSON. Denials come back actionable: unknown
executors list the known ids, allow-list rejections print the exact
config.toml snippet, schema violations print the executor's schema.

approve list gains --json so scripts can check the queue without
scraping the rich table.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Thormatt Thormatt merged commit 4f05297 into main Jun 12, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant