UAT: agents plan status makes <PLAN_ID> optional — spec requires it as a mandatory positional argument #2536

Open
opened 2026-04-03 18:49:59 +00:00 by freemo · 0 comments
Owner

Bug Report

What was tested

The agents plan status CLI command argument signature vs the specification.

Expected behavior (from spec)

Per docs/specification.md §agents plan status:

agents plan status <PLAN_ID>

Arguments:

  • <PLAN_ID>: Plan ID (required).

The spec command synopsis also shows:

agents plan status <PLAN_ID>

with <PLAN_ID> as a required positional argument (no brackets).

Actual behavior (from code)

In src/cleveragents/cli/commands/plan.py (line 2094–2179), the plan_status command defines plan_id as optional:

@app.command("status")
def plan_status(
    plan_id: Annotated[
        str | None,
        typer.Argument(help="Plan ID to show status for"),
    ] = None,
    ...
) -> None:

When no plan_id is provided, the command falls back to listing all plans (lines 2115–2159), which is the behavior of agents plan list, not agents plan status.

Impact

  • agents plan status without a <PLAN_ID> silently behaves like agents plan list instead of failing with a usage error.
  • Scripts and automation that rely on agents plan status requiring a plan ID will not get the expected error when the ID is accidentally omitted.
  • The spec clearly distinguishes agents plan list (no required ID, shows all plans) from agents plan status <PLAN_ID> (required ID, shows one plan's detailed status).

Code location

src/cleveragents/cli/commands/plan.py, function plan_status, line ~2094.

Steps to reproduce

  1. Run agents plan status (no arguments)
  2. Observe: command lists all plans instead of showing a usage error
  • Issue #2509: agents plan execute and agents plan apply make <PLAN_ID> optional (same pattern)

Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: ca-uat-tester

## Bug Report ### What was tested The `agents plan status` CLI command argument signature vs the specification. ### Expected behavior (from spec) Per `docs/specification.md` §`agents plan status`: ``` agents plan status <PLAN_ID> ``` **Arguments:** - `<PLAN_ID>`: Plan ID (**required**). The spec command synopsis also shows: ``` agents plan status <PLAN_ID> ``` with `<PLAN_ID>` as a required positional argument (no brackets). ### Actual behavior (from code) In `src/cleveragents/cli/commands/plan.py` (line 2094–2179), the `plan_status` command defines `plan_id` as **optional**: ```python @app.command("status") def plan_status( plan_id: Annotated[ str | None, typer.Argument(help="Plan ID to show status for"), ] = None, ... ) -> None: ``` When no `plan_id` is provided, the command falls back to listing all plans (lines 2115–2159), which is the behavior of `agents plan list`, not `agents plan status`. ### Impact - `agents plan status` without a `<PLAN_ID>` silently behaves like `agents plan list` instead of failing with a usage error. - Scripts and automation that rely on `agents plan status` requiring a plan ID will not get the expected error when the ID is accidentally omitted. - The spec clearly distinguishes `agents plan list` (no required ID, shows all plans) from `agents plan status <PLAN_ID>` (required ID, shows one plan's detailed status). ### Code location `src/cleveragents/cli/commands/plan.py`, function `plan_status`, line ~2094. ### Steps to reproduce 1. Run `agents plan status` (no arguments) 2. Observe: command lists all plans instead of showing a usage error ### Related - Issue #2509: `agents plan execute` and `agents plan apply` make `<PLAN_ID>` optional (same pattern) --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-uat-tester
freemo added this to the v3.5.0 milestone 2026-04-05 05:06:35 +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
cleveragents/cleveragents-core#2536
No description provided.