UAT: agents plan tree rich output is missing Tree Summary, Child Plans, and Decision IDs panels #4417

Open
opened 2026-04-08 12:26:54 +00:00 by HAL9000 · 0 comments
Owner

Bug Report

Feature Area: Plan Correction — agents plan tree (rich output)

What Was Tested

Code-level analysis of src/cleveragents/cli/commands/plan.py (tree_decisions_cmd function, lines 3994–4121) against the spec's agents plan tree section (spec lines 14325–14422).

Expected Behavior (from spec)

The spec defines a rich output with 4 panels for agents plan tree:

╭─ Decision Tree ──────────────────────────────────────────────────────────────────────────╮
│ Plan: 01HXM8C2ZK4Q7C2B3F2R4VYV6J                                                         │
│ ├─ [prompt_definition] "Increase test coverage to 85%"                                   │
│ ├─ [invariant_enforced] "Prioritize financial transaction and user mgmt code"            │
│ ├─ [invariant_enforced] "All API calls over TCP must be mocked"                          │
│ ├─ [strategy_choice] "Prioritize auth and payments" (confidence: 0.82)                   │
│ ├─ [subplan_parallel_spawn] "Implement auth and payment modules, in parallel"            │
│ │  ├─ [subplan_spawn] "Write auth tests" → Plan: 01HXM9F1A                               │
│ │  └─ [subplan_spawn] "Write payment tests" → Plan: 01HXM9F2B                            │
│ └─ [subplan_parallel_spawn] "Write tests for remaining modules"                          │
│    └─ ...                                                                                │
╰──────────────────────────────────────────────────────────────────────────────────────────╯

╭─ Tree Summary ─────────────╮
│ Nodes: 9                   │
│ Depth: 3                   │
│ Child Plans: 2+            │
│ Invariants: 2              │
│ Superseded: 0 (hidden)     │
╰────────────────────────────╯

╭─ Child Plans ──────────────────────────────────────╮
│ ID          Phase    State                         │
│ ──────────  ───────  ─────────                     │
│ 01HXM9F1A   execute  processing                    │
│ 01HXM9F2B   execute  queued                        │
╰────────────────────────────────────────────────────╯

╭─ Decision IDs (for correction) ──────────────────╮
│ Root: 01HXM9A0B1Q2W3R5G8Z0P4Q1X8                 │
│ Invariant 1: 01HXM9A0C1R3X4S6G9Z1P5Q2Y9          │
│ Invariant 2: 01HXM9A0D2S4Y5T7H0Z2P6Q3Z0          │
│ Strategy: 01HXM9A1C2Q7W3R5G8Z0P4Q1X9             │
│ Parallel 1: 01HXM9A1D3R8X5S7H1Z2P5Q2Y0           │
│ Spawn Auth: 01HXM9A2D3Q8W4R6H9Z1P5Q2X0           │
│ Spawn Payment: 01HXM9A3E4Q9W5R7I0Z2P6Q3X1        │
│ Parallel 2: 01HXM9A4F5Q0W6R8J1Z3P7Q4X2           │
╰──────────────────────────────────────────────────╯

✓ OK Decision tree rendered

Key spec requirements:

  1. Decision tree nodes show [decision_type] with color coding and confidence for strategy_choice
  2. subplan_spawn nodes show → Plan: <plan_id> link
  3. Tree Summary panel with Nodes, Depth, Child Plans count, Invariants count, Superseded count
  4. Child Plans table with ID, Phase, State columns
  5. Decision IDs (for correction) panel listing each decision by role with its full ID

Actual Behavior (from implementation)

The implementation (plan.py lines 4075–4121) only renders the tree itself using Rich's Tree widget with a basic label format:

label = (
    f"[bold]{root_d.decision_id[:8]}[/bold] "
    f"({root_d.decision_type}) "
    f"Q: {root_d.question[:40]}"
)

Missing from implementation:

  1. No "Tree Summary" panel (Nodes, Depth, Child Plans, Invariants, Superseded counts)
  2. No "Child Plans" table showing phase and state of spawned child plans
  3. No "Decision IDs (for correction)" panel — this is critical for the correction workflow since users need to know which decision ID to pass to agents plan correct
  4. Decision type labels don't show confidence score for strategy_choice nodes
  5. subplan_spawn nodes don't show → Plan: <plan_id> link
  6. No color coding by decision type (spec shows different colors for prompt_definition, invariant_enforced, strategy_choice, subplan_spawn)
  7. No ✓ OK Decision tree rendered success message

Code Location

  • src/cleveragents/cli/commands/plan.py, lines 4075–4121 (rich tree rendering block)

Impact

The "Decision IDs (for correction)" panel is particularly important — without it, users cannot easily find the decision ID they need to pass to agents plan correct. The spec explicitly includes this panel to support the correction workflow. Users must currently use agents plan list-decisions or similar commands to find decision IDs.


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

## Bug Report **Feature Area:** Plan Correction — `agents plan tree` (rich output) ### What Was Tested Code-level analysis of `src/cleveragents/cli/commands/plan.py` (`tree_decisions_cmd` function, lines 3994–4121) against the spec's `agents plan tree` section (spec lines 14325–14422). ### Expected Behavior (from spec) The spec defines a rich output with **4 panels** for `agents plan tree`: ``` ╭─ Decision Tree ──────────────────────────────────────────────────────────────────────────╮ │ Plan: 01HXM8C2ZK4Q7C2B3F2R4VYV6J │ │ ├─ [prompt_definition] "Increase test coverage to 85%" │ │ ├─ [invariant_enforced] "Prioritize financial transaction and user mgmt code" │ │ ├─ [invariant_enforced] "All API calls over TCP must be mocked" │ │ ├─ [strategy_choice] "Prioritize auth and payments" (confidence: 0.82) │ │ ├─ [subplan_parallel_spawn] "Implement auth and payment modules, in parallel" │ │ │ ├─ [subplan_spawn] "Write auth tests" → Plan: 01HXM9F1A │ │ │ └─ [subplan_spawn] "Write payment tests" → Plan: 01HXM9F2B │ │ └─ [subplan_parallel_spawn] "Write tests for remaining modules" │ │ └─ ... │ ╰──────────────────────────────────────────────────────────────────────────────────────────╯ ╭─ Tree Summary ─────────────╮ │ Nodes: 9 │ │ Depth: 3 │ │ Child Plans: 2+ │ │ Invariants: 2 │ │ Superseded: 0 (hidden) │ ╰────────────────────────────╯ ╭─ Child Plans ──────────────────────────────────────╮ │ ID Phase State │ │ ────────── ─────── ───────── │ │ 01HXM9F1A execute processing │ │ 01HXM9F2B execute queued │ ╰────────────────────────────────────────────────────╯ ╭─ Decision IDs (for correction) ──────────────────╮ │ Root: 01HXM9A0B1Q2W3R5G8Z0P4Q1X8 │ │ Invariant 1: 01HXM9A0C1R3X4S6G9Z1P5Q2Y9 │ │ Invariant 2: 01HXM9A0D2S4Y5T7H0Z2P6Q3Z0 │ │ Strategy: 01HXM9A1C2Q7W3R5G8Z0P4Q1X9 │ │ Parallel 1: 01HXM9A1D3R8X5S7H1Z2P5Q2Y0 │ │ Spawn Auth: 01HXM9A2D3Q8W4R6H9Z1P5Q2X0 │ │ Spawn Payment: 01HXM9A3E4Q9W5R7I0Z2P6Q3X1 │ │ Parallel 2: 01HXM9A4F5Q0W6R8J1Z3P7Q4X2 │ ╰──────────────────────────────────────────────────╯ ✓ OK Decision tree rendered ``` Key spec requirements: 1. Decision tree nodes show `[decision_type]` with color coding and confidence for strategy_choice 2. `subplan_spawn` nodes show `→ Plan: <plan_id>` link 3. **Tree Summary** panel with Nodes, Depth, Child Plans count, Invariants count, Superseded count 4. **Child Plans** table with ID, Phase, State columns 5. **Decision IDs (for correction)** panel listing each decision by role with its full ID ### Actual Behavior (from implementation) The implementation (`plan.py` lines 4075–4121) only renders the tree itself using Rich's `Tree` widget with a basic label format: ```python label = ( f"[bold]{root_d.decision_id[:8]}[/bold] " f"({root_d.decision_type}) " f"Q: {root_d.question[:40]}" ) ``` **Missing from implementation:** 1. No "Tree Summary" panel (Nodes, Depth, Child Plans, Invariants, Superseded counts) 2. No "Child Plans" table showing phase and state of spawned child plans 3. No "Decision IDs (for correction)" panel — this is critical for the correction workflow since users need to know which decision ID to pass to `agents plan correct` 4. Decision type labels don't show confidence score for `strategy_choice` nodes 5. `subplan_spawn` nodes don't show `→ Plan: <plan_id>` link 6. No color coding by decision type (spec shows different colors for prompt_definition, invariant_enforced, strategy_choice, subplan_spawn) 7. No `✓ OK Decision tree rendered` success message ### Code Location - `src/cleveragents/cli/commands/plan.py`, lines 4075–4121 (rich tree rendering block) ### Impact The "Decision IDs (for correction)" panel is particularly important — without it, users cannot easily find the decision ID they need to pass to `agents plan correct`. The spec explicitly includes this panel to support the correction workflow. Users must currently use `agents plan list-decisions` or similar commands to find decision IDs. --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: uat-tester
HAL9000 added this to the v3.5.0 milestone 2026-04-08 17:42:52 +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#4417
No description provided.