Skip to content

[Feature]: Add Plan First, auto-review, and delegation controls to the CLI #1188

Description

@bobo-xxx

Preflight checklist

What problem does this solve?

The headless CLI can create or resume a Session and submit a prompt, but it cannot select several execution controls available in the Open Science interface:

  • Start a turn using Plan First
  • Enable or disable auto-review
  • Bind a Specialist when creating a Session
  • Control whether the main agent may create subagents

For example, the following CLI run cannot currently request Plan First or auto-review:

open-science run \
  --project "Analysis" \
  --prompt-file task.md \
  --wait

Users must open the interface and configure these options manually. This limits unattended, scripted, and benchmark-driven workflows and can cause CLI-created Sessions to behave differently from Sessions created interactively.

--approval-profile auto does not solve this problem. It controls tool permissions and is unrelated to automatic review.

Proposed solution

Expose stable Session and turn controls through open-science run.

Suggested interface:

open-science run \
  --project "Analysis" \
  --prompt-file task.md \
  --plan-first \
  --auto-review \
  --specialist <id-or-name> \
  --subagents allow \
  --wait \
  --jsonl

Plan First

Add:

--plan-first

The submitted prompt should use the existing Plan First turn intent.

When the generated Plan requires approval:

  • The run should enter an explicit awaiting_plan_approval state.
  • --json and --jsonl should expose the Session ID, Plan identity/version, and available actions.
  • Waiting for approval should not be treated as run failure or completion.
  • A parked Plan should not expire merely because the CLI process exits or remains idle.

Provide commands or equivalent API operations for completing the lifecycle, for example:

open-science plan show <session-id>
open-science plan approve <session-id>
open-science plan revise <session-id> --feedback "..."
open-science plan discard <session-id>

The exact command names can follow the project's preferred CLI structure.

Auto-review

Add:

--auto-review
--no-auto-review

Auto-review for CLI runs must be owned by the daemon/runtime and must not depend on an Open Science renderer or browser being open.

For a new Session, the explicit flag should set its initial auto-review state. For an existing Session:

  • An explicit flag should update the Session setting.
  • Omitting both flags should preserve the Session's saved setting.

The existing configured reviewer model and review policy can remain the default. Reviewer-model selection can be added separately if it requires another stable public contract.

Review progress and results should be included in --jsonl events and reflected in the final run result.

Specialist selection

Add:

--specialist <id-or-name>

This should bind a Specialist when creating a new Session using the existing internal Specialist identity.

Because the Specialist is a Session-level binding, using --specialist with an incompatible existing --session should return a clear validation error rather than silently switching or ignoring it.

Subagent policy

Add an explicit delegation policy, for example:

--subagents allow
--subagents deny

This would control whether the main agent may use Open Science's existing delegated-work capability. It should not require users to predefine individual child tasks; the agent may still decide when and how to delegate.

For automation:

  • Delegated-work lifecycle events should be available through --jsonl.
  • The run result should distinguish active, completed, failed, and cancelled delegated work.
  • Cancelling a run should use the documented Open Science cancellation policy for its child work.
  • Permission requests and questions raised by delegated agents should appear as explicit waiting states rather than an unexplained timeout.

General behavior

  • CLI help and documentation should distinguish permission profiles, auto-review, Plan First, Specialists, and subagents.
  • Unsupported combinations should fail with exit code 2 and a clear usage message.
  • Structured outputs should remain stable and machine-readable.
  • Behavior should be covered on Windows, macOS, and Linux.

Alternatives considered

Configure everything through the interface first

This prevents a workflow from being fully reproducible from a command or automation script.

Encode the behavior in prompt text

Instructions such as "create a plan first" or "use subagents" are not equivalent to application-owned Plan First, review, Specialist, and delegation controls.

Use --approval-profile auto

Permission approval and auto-review are separate features. Changing the permission profile does not enable review or Plan First.

Expose all interactive settings immediately

This issue is limited to Plan First, auto-review, Specialist selection, and delegation policy. Attachments and per-run model/backend selection are already tracked in #363.

Additional context

Current Open Science internals already contain much of the required runtime behavior:

  • Plan First is represented by the existing plan-first turn intent.
  • Session creation accepts a Specialist identity internally.
  • Open Science supports delegated work through host.delegate.
  • Auto-review already exists as a Session setting, although its current trigger path is associated with the interactive workspace.

The main missing piece is a stable CLI and Task API contract that exposes these capabilities without requiring the interface to remain open.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions