UAT: Invariant IDs use raw ULID format instead of spec-required inv_ prefixed format in all output modes #6528

Open
opened 2026-04-09 21:15:19 +00:00 by HAL9000 · 0 comments
Owner

Bug Report

Feature Area

Invariants & Automation Profiles

Spec Reference

docs/specification.md lines 17912, 17923, 17934, 17945 (invariant add output):

│ ID: inv_01HXM9A1B  │
│ ID: inv_01HXM9A2C  │
│ ID: inv_01HXM9G3A  │
│ ID: inv_01HXM9H4B  │

docs/specification.md line 18217 (invariant remove):

$ agents invariant remove inv_01HXM9A1C

docs/specification.md lines 18150-18152 (invariant list JSON):

{ "id": "inv_01HXM9A1B", "source": "global", ... }

Expected Behavior

Invariant IDs should be displayed and accepted with the inv_ prefix (e.g., inv_01HXM9A1B). The spec consistently uses this format in all output modes (rich, plain, JSON, YAML) and in command arguments.

Actual Behavior

The Invariant domain model generates IDs as raw ULIDs without any prefix:

id: str = Field(
    default_factory=lambda: str(ULID()),
    ...
)

This produces IDs like 01KNT0PZY22SJ8F1M2491AFMGE instead of inv_01KNT0PZY22SJ8F1M2491AFMGE.

Code Location

  • src/cleveragents/domain/models/core/invariant.pyInvariant.id field (line ~55)
  • src/cleveragents/cli/commands/invariant.py_invariant_dict() function (line ~98)

Impact

  • All invariant IDs in output are raw ULIDs, not inv_ prefixed
  • Users cannot use the displayed IDs directly in agents invariant remove inv_XXXX commands
  • JSON/YAML output IDs don't match spec format

Severity

Backlog — Format/cosmetic issue. The IDs are still unique and functional.


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

## Bug Report ### Feature Area Invariants & Automation Profiles ### Spec Reference `docs/specification.md` lines 17912, 17923, 17934, 17945 (invariant add output): ``` │ ID: inv_01HXM9A1B │ │ ID: inv_01HXM9A2C │ │ ID: inv_01HXM9G3A │ │ ID: inv_01HXM9H4B │ ``` `docs/specification.md` line 18217 (invariant remove): ``` $ agents invariant remove inv_01HXM9A1C ``` `docs/specification.md` lines 18150-18152 (invariant list JSON): ```json { "id": "inv_01HXM9A1B", "source": "global", ... } ``` ### Expected Behavior Invariant IDs should be displayed and accepted with the `inv_` prefix (e.g., `inv_01HXM9A1B`). The spec consistently uses this format in all output modes (rich, plain, JSON, YAML) and in command arguments. ### Actual Behavior The `Invariant` domain model generates IDs as raw ULIDs without any prefix: ```python id: str = Field( default_factory=lambda: str(ULID()), ... ) ``` This produces IDs like `01KNT0PZY22SJ8F1M2491AFMGE` instead of `inv_01KNT0PZY22SJ8F1M2491AFMGE`. ### Code Location - `src/cleveragents/domain/models/core/invariant.py` — `Invariant.id` field (line ~55) - `src/cleveragents/cli/commands/invariant.py` — `_invariant_dict()` function (line ~98) ### Impact - All invariant IDs in output are raw ULIDs, not `inv_` prefixed - Users cannot use the displayed IDs directly in `agents invariant remove inv_XXXX` commands - JSON/YAML output IDs don't match spec format ### Severity **Backlog** — Format/cosmetic issue. The IDs are still unique and functional. --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: uat-tester
HAL9000 added this to the v3.2.0 milestone 2026-04-09 21:28:39 +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#6528
No description provided.