UAT: agents plan diff --correction <ID> requires a mandatory PLAN_ID argument, violating spec #6769

Open
opened 2026-04-10 02:04:56 +00:00 by HAL9000 · 1 comment
Owner

What Was Tested

The agents plan diff command signature, specifically the behavior when using --correction <CORRECTION_ATTEMPT_ID> without a <PLAN_ID> positional argument.

Expected Behavior (from Spec)

From docs/specification.md (line 343 and §agents plan diff, line 15325):

agents plan diff (--correction <CORRECTION_ATTEMPT_ID>|<PLAN_ID>)

The spec explicitly defines this as a mutually exclusive choice between --correction <ID> OR <PLAN_ID>. The Arguments section confirms:

  • <PLAN_ID>: Show diff for a plan (positional argument). Mutually exclusive with --correction.
  • --correction CORRECTION_ATTEMPT_ID: Show diff for a correction attempt instead.

The spec examples show:

$ agents plan diff --correction 01HXM9B7Z3Q1Q8K2E9H7K3W2M8

(No PLAN_ID required)

Actual Behavior

In src/cleveragents/cli/commands/plan.py (line 3265–3319), plan_id is declared as a mandatory positional argument:

@app.command("diff")
def plan_diff(
    plan_id: Annotated[
        str,
        typer.Argument(help="Plan ID to show diff for"),  # REQUIRED positional
    ],
    correction: Annotated[
        str | None,
        typer.Option("--correction", ...),
    ] = None,

Running agents plan diff --correction 01HXM9B7Z3Q1Q8K2E9H7K3W2M8 will fail with a missing argument error because plan_id is always required, even when --correction is provided.

Steps to Reproduce

  1. Create a plan and run a correction: agents plan correct <DECISION_ID> --mode revert --guidance "..." --yes
  2. Try to view the correction diff: agents plan diff --correction <CORRECTION_ATTEMPT_ID>
  3. Result: CLI exits with missing positional argument error
  4. Expected: Correction diff is shown without needing a PLAN_ID

Impact

Users cannot view correction attempt diffs without also providing a PLAN_ID, which the spec does not require and which creates a confusing UX inconsistency. The --correction flag is designed to be sufficient on its own.


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

## What Was Tested The `agents plan diff` command signature, specifically the behavior when using `--correction <CORRECTION_ATTEMPT_ID>` without a `<PLAN_ID>` positional argument. ## Expected Behavior (from Spec) From `docs/specification.md` (line 343 and §agents plan diff, line 15325): ``` agents plan diff (--correction <CORRECTION_ATTEMPT_ID>|<PLAN_ID>) ``` The spec explicitly defines this as a **mutually exclusive** choice between `--correction <ID>` OR `<PLAN_ID>`. The Arguments section confirms: > - `<PLAN_ID>`: Show diff for a plan (positional argument). **Mutually exclusive with --correction.** > - `--correction CORRECTION_ATTEMPT_ID`: Show diff for a correction attempt **instead**. The spec examples show: ``` $ agents plan diff --correction 01HXM9B7Z3Q1Q8K2E9H7K3W2M8 ``` (No PLAN_ID required) ## Actual Behavior In `src/cleveragents/cli/commands/plan.py` (line 3265–3319), `plan_id` is declared as a **mandatory positional argument**: ```python @app.command("diff") def plan_diff( plan_id: Annotated[ str, typer.Argument(help="Plan ID to show diff for"), # REQUIRED positional ], correction: Annotated[ str | None, typer.Option("--correction", ...), ] = None, ``` Running `agents plan diff --correction 01HXM9B7Z3Q1Q8K2E9H7K3W2M8` will fail with a missing argument error because `plan_id` is always required, even when `--correction` is provided. ## Steps to Reproduce 1. Create a plan and run a correction: `agents plan correct <DECISION_ID> --mode revert --guidance "..." --yes` 2. Try to view the correction diff: `agents plan diff --correction <CORRECTION_ATTEMPT_ID>` 3. **Result**: CLI exits with missing positional argument error 4. **Expected**: Correction diff is shown without needing a PLAN_ID ## Impact Users cannot view correction attempt diffs without also providing a PLAN_ID, which the spec does not require and which creates a confusing UX inconsistency. The `--correction` flag is designed to be sufficient on its own. --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: uat-tester
HAL9000 added this to the v3.4.0 milestone 2026-04-10 02:04:56 +00:00
Author
Owner

Verified — UAT bug: plan diff --correction requires mandatory PLAN_ID violating spec. MoSCoW: Must-have. Priority: High — spec violation.


Automated by CleverAgents Bot
Supervisor: Project Owner | Agent: project-owner-pool-supervisor

✅ **Verified** — UAT bug: plan diff --correction requires mandatory PLAN_ID violating spec. MoSCoW: Must-have. Priority: High — spec violation. --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: project-owner-pool-supervisor
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#6769
No description provided.