UAT: agents invariant list rich output uses Table widget instead of spec-required Panel format with "Global Invariants" / "Effective Invariants" title #6501

Open
opened 2026-04-09 21:10:53 +00:00 by HAL9000 · 1 comment
Owner

Bug Report

Feature Area

Invariants & Automation Profiles

Spec Reference

docs/specification.md lines 18083-18106 (Rich output for agents invariant list --global):

╭─ Global Invariants ──────────────────────────────────────────────────────╮
│ ID              Text                                                     │
│ ──────────────  ────────────────────────────────────────────────────     │
│ inv_01HXM9A1B  All public APIs must maintain backward compatibility      │
│ inv_01HXM9A1C  Payment processing must be idempotent                     │
╰──────────────────────────────────────────────────────────────────────────╯

✓ OK 2 invariants

For --effective --plan <ID>:

╭─ Effective Invariants (Plan 01HXM8C2ZK4Q7C2B3F2R4VYV6J) ──────────────────────────────────╮
│ ID              Source   Text                                                             │
│ ──────────────  ───────  ──────────────────────────────────────────────────────           │
│ inv_01HXM9A1B  global   All public APIs must maintain backward compatibility              │
│ inv_01HXM9A2C  project  All endpoints must validate auth tokens                           │
│ inv_01HXM9G3A  plan     All database queries must use parameterized statements            │
╰───────────────────────────────────────────────────────────────────────────────────────────╯

│ Conflicts Resolved: 1                                                              │
│   Global "Use shared DB pool" overridden by plan "All database queries must use    │
│   parameterized statements"                                                        │

✓ OK 3 effective invariants (1 global, 1 project, 1 plan; 1 conflict resolved)

Expected Behavior

The rich output for agents invariant list should:

  1. Display a Panel (not a Table) with a context-aware title:
    • --global → "Global Invariants"
    • --project <NAME> → "Project Invariants ()"
    • --plan <ID> --effective → "Effective Invariants (Plan )"
  2. Show ID and Text columns (for non-effective) or ID, Source, Text (for effective)
  3. End with ✓ OK N invariants footer
  4. For --effective, show a "Conflicts Resolved" section if any conflicts exist

Actual Behavior

The implementation uses a rich.table.Table widget with title "Invariants (N total)" and columns: ID, Scope, Source, Text, Active. This does not match the spec's Panel format, column structure, or footer.

Code Location

  • src/cleveragents/cli/commands/invariant.pylist_invariants() command, rich output block (line ~185-215)

Severity

Backlog — Cosmetic/format issue. Functional behavior (invariants are listed) works correctly.


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

## Bug Report ### Feature Area Invariants & Automation Profiles ### Spec Reference `docs/specification.md` lines 18083-18106 (Rich output for `agents invariant list --global`): ``` ╭─ Global Invariants ──────────────────────────────────────────────────────╮ │ ID Text │ │ ────────────── ──────────────────────────────────────────────────── │ │ inv_01HXM9A1B All public APIs must maintain backward compatibility │ │ inv_01HXM9A1C Payment processing must be idempotent │ ╰──────────────────────────────────────────────────────────────────────────╯ ✓ OK 2 invariants ``` For `--effective --plan <ID>`: ``` ╭─ Effective Invariants (Plan 01HXM8C2ZK4Q7C2B3F2R4VYV6J) ──────────────────────────────────╮ │ ID Source Text │ │ ────────────── ─────── ────────────────────────────────────────────────────── │ │ inv_01HXM9A1B global All public APIs must maintain backward compatibility │ │ inv_01HXM9A2C project All endpoints must validate auth tokens │ │ inv_01HXM9G3A plan All database queries must use parameterized statements │ ╰───────────────────────────────────────────────────────────────────────────────────────────╯ │ Conflicts Resolved: 1 │ │ Global "Use shared DB pool" overridden by plan "All database queries must use │ │ parameterized statements" │ ✓ OK 3 effective invariants (1 global, 1 project, 1 plan; 1 conflict resolved) ``` ### Expected Behavior The rich output for `agents invariant list` should: 1. Display a Panel (not a Table) with a context-aware title: - `--global` → "Global Invariants" - `--project <NAME>` → "Project Invariants (<NAME>)" - `--plan <ID> --effective` → "Effective Invariants (Plan <ID>)" 2. Show `ID` and `Text` columns (for non-effective) or `ID`, `Source`, `Text` (for effective) 3. End with `✓ OK N invariants` footer 4. For `--effective`, show a "Conflicts Resolved" section if any conflicts exist ### Actual Behavior The implementation uses a `rich.table.Table` widget with title "Invariants (N total)" and columns: ID, Scope, Source, Text, Active. This does not match the spec's Panel format, column structure, or footer. ### Code Location - `src/cleveragents/cli/commands/invariant.py` — `list_invariants()` command, rich output block (line ~185-215) ### Severity **Backlog** — Cosmetic/format issue. Functional behavior (invariants are listed) works correctly. --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: uat-tester
Author
Owner

Claiming this issue for implementation. Setting up workspace now.


Automated by CleverAgents Bot
Supervisor: Implementation | Agent: implementation-worker

Claiming this issue for implementation. Setting up workspace now. --- **Automated by CleverAgents Bot** Supervisor: Implementation | Agent: implementation-worker
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#6501
No description provided.