UAT: agents tool add Rich output missing Config: path and Created: timestamp — spec-required fields absent #1475

Open
opened 2026-04-02 19:18:58 +00:00 by freemo · 4 comments
Owner

Background and Context

The specification (docs/specification.md, agents tool add section) defines the Rich output format for the agents tool add command. The expected output includes two distinct panels — a Tool Registered panel and a Capability panel — plus a confirmation line. The current implementation in src/cleveragents/cli/commands/tool.py renders a single panel that is missing several spec-required fields and structural elements.

This was discovered during UAT testing of the agents tool add command flow.

Current Behavior

The _print_tool() function in src/cleveragents/cli/commands/tool.py renders a single Rich panel containing: Name, Namespace, Short Name, Description, Source, Type, Timeout, Capability, Resource Slots, and Lifecycle.

The following spec-required elements are absent:

  1. Config: field — the path to the YAML config file used to register the tool
  2. Created: timestamp — when the tool was registered
  3. A separate Capability panel (the spec shows capability in its own panel, not inline within the main panel)
  4. The ✓ OK Tool registered confirmation line printed after the panels

Additionally, _print_tool() does not receive the config file path as an argument, and ToolRegistryService.register_tool() does not return a created timestamp.

Expected Behavior

Per the specification, agents tool add --config ./tools/run-migrations.yaml should produce:

╭─ Tool Registered ────────────────────────────╮
│ Name: local/run-migrations                   │
│ Description: Run database migrations         │
│ Source: custom                               │
│ Config: ./tools/run-migrations.yaml          │
│ Created: 2026-02-09 10:15                    │
╰──────────────────────────────────────────────╯

╭─ Capability ─────────────────────╮
│ Writes: true                     │
│ Write Scope: database:migrations │
│ Checkpointable: true             │
│ Checkpoint Scope: transaction    │
│ Side Effects: schema_mutation    │
╰──────────────────────────────────╯

✓ OK Tool registered

Acceptance Criteria

  • agents tool add Rich output includes a Config: field showing the path to the YAML config file passed via --config
  • agents tool add Rich output includes a Created: timestamp (formatted YYYY-MM-DD HH:MM) showing when the tool was registered
  • The Capability information is rendered in a separate Rich panel titled Capability, not inline in the main panel
  • A ✓ OK Tool registered confirmation line is printed after the panels
  • _print_tool() accepts the config file path as a parameter
  • ToolRegistryService.register_tool() returns (or the result object includes) a created_at timestamp
  • All existing agents tool add tests continue to pass
  • New Behave scenarios cover the Config: and Created: fields and the separate Capability panel
  • All nox stages pass; coverage ≥ 97%

Supporting Information

  • Code location: src/cleveragents/cli/commands/tool.py_print_tool() and add() functions
  • Service location: ToolRegistryService.register_tool() — must return created_at
  • Spec reference: docs/specification.mdagents tool add Rich output format
  • Discovered during: UAT testing, Session 3 (2026-04-02)

Metadata

  • Branch: fix/tool-add-rich-output-config-created-fields
  • Commit Message: fix(cli): add Config and Created fields to agents tool add Rich output
  • Milestone: v3.7.0
  • Parent Epic: #374

Subtasks

  • Update ToolRegistryService.register_tool() to return a created_at timestamp in its result
  • Update _print_tool() signature to accept config_path: str and created_at: datetime parameters
  • Update add() command to pass config_path and created_at to _print_tool()
  • Add Config: field to the Tool Registered Rich panel in _print_tool()
  • Add Created: field (formatted YYYY-MM-DD HH:MM) to the Tool Registered Rich panel in _print_tool()
  • Refactor _print_tool() to render Capability data in a separate Rich panel titled Capability
  • Add ✓ OK Tool registered confirmation line after the panels in add()
  • Tests (Behave): Add/update scenarios asserting Config: and Created: fields appear in Rich output
  • Tests (Behave): Add/update scenario asserting Capability is rendered in its own panel
  • Tests (Behave): Add/update scenario asserting ✓ OK Tool registered confirmation line
  • Tests (Robot): Add/update integration test for agents tool add Rich output structure
  • Verify coverage ≥ 97% via nox -s coverage_report
  • Run nox (all default sessions), fix any errors

Definition of Done

This issue is complete when:

  • All subtasks above are completed and checked off.
  • A Git commit is created where the first line of the commit message matches the Commit Message in Metadata exactly (fix(cli): add Config and Created fields to agents tool add Rich output), followed by a blank line, then additional lines providing relevant details about the implementation.
  • The commit is pushed to the remote on the branch matching the Branch in Metadata exactly (fix/tool-add-rich-output-config-created-fields).
  • The commit is submitted as a pull request to master, reviewed, and merged before this issue is marked done.
  • All nox stages pass.
  • Coverage ≥ 97%.

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

## Background and Context The specification (`docs/specification.md`, `agents tool add` section) defines the Rich output format for the `agents tool add` command. The expected output includes two distinct panels — a **Tool Registered** panel and a **Capability** panel — plus a confirmation line. The current implementation in `src/cleveragents/cli/commands/tool.py` renders a single panel that is missing several spec-required fields and structural elements. This was discovered during UAT testing of the `agents tool add` command flow. ## Current Behavior The `_print_tool()` function in `src/cleveragents/cli/commands/tool.py` renders a single Rich panel containing: Name, Namespace, Short Name, Description, Source, Type, Timeout, Capability, Resource Slots, and Lifecycle. The following spec-required elements are **absent**: 1. `Config:` field — the path to the YAML config file used to register the tool 2. `Created:` timestamp — when the tool was registered 3. A **separate Capability panel** (the spec shows capability in its own panel, not inline within the main panel) 4. The `✓ OK Tool registered` confirmation line printed after the panels Additionally, `_print_tool()` does not receive the config file path as an argument, and `ToolRegistryService.register_tool()` does not return a created timestamp. ## Expected Behavior Per the specification, `agents tool add --config ./tools/run-migrations.yaml` should produce: ``` ╭─ Tool Registered ────────────────────────────╮ │ Name: local/run-migrations │ │ Description: Run database migrations │ │ Source: custom │ │ Config: ./tools/run-migrations.yaml │ │ Created: 2026-02-09 10:15 │ ╰──────────────────────────────────────────────╯ ╭─ Capability ─────────────────────╮ │ Writes: true │ │ Write Scope: database:migrations │ │ Checkpointable: true │ │ Checkpoint Scope: transaction │ │ Side Effects: schema_mutation │ ╰──────────────────────────────────╯ ✓ OK Tool registered ``` ## Acceptance Criteria - [ ] `agents tool add` Rich output includes a `Config:` field showing the path to the YAML config file passed via `--config` - [ ] `agents tool add` Rich output includes a `Created:` timestamp (formatted `YYYY-MM-DD HH:MM`) showing when the tool was registered - [ ] The Capability information is rendered in a **separate** Rich panel titled `Capability`, not inline in the main panel - [ ] A `✓ OK Tool registered` confirmation line is printed after the panels - [ ] `_print_tool()` accepts the config file path as a parameter - [ ] `ToolRegistryService.register_tool()` returns (or the result object includes) a `created_at` timestamp - [ ] All existing `agents tool add` tests continue to pass - [ ] New Behave scenarios cover the `Config:` and `Created:` fields and the separate Capability panel - [ ] All nox stages pass; coverage ≥ 97% ## Supporting Information - **Code location**: `src/cleveragents/cli/commands/tool.py` — `_print_tool()` and `add()` functions - **Service location**: `ToolRegistryService.register_tool()` — must return `created_at` - **Spec reference**: `docs/specification.md` — `agents tool add` Rich output format - **Discovered during**: UAT testing, Session 3 (2026-04-02) --- ## Metadata - **Branch**: `fix/tool-add-rich-output-config-created-fields` - **Commit Message**: `fix(cli): add Config and Created fields to agents tool add Rich output` - **Milestone**: v3.7.0 - **Parent Epic**: #374 --- ## Subtasks - [ ] Update `ToolRegistryService.register_tool()` to return a `created_at` timestamp in its result - [ ] Update `_print_tool()` signature to accept `config_path: str` and `created_at: datetime` parameters - [ ] Update `add()` command to pass `config_path` and `created_at` to `_print_tool()` - [ ] Add `Config:` field to the Tool Registered Rich panel in `_print_tool()` - [ ] Add `Created:` field (formatted `YYYY-MM-DD HH:MM`) to the Tool Registered Rich panel in `_print_tool()` - [ ] Refactor `_print_tool()` to render Capability data in a **separate** Rich panel titled `Capability` - [ ] Add `✓ OK Tool registered` confirmation line after the panels in `add()` - [ ] Tests (Behave): Add/update scenarios asserting `Config:` and `Created:` fields appear in Rich output - [ ] Tests (Behave): Add/update scenario asserting Capability is rendered in its own panel - [ ] Tests (Behave): Add/update scenario asserting `✓ OK Tool registered` confirmation line - [ ] Tests (Robot): Add/update integration test for `agents tool add` Rich output structure - [ ] Verify coverage ≥ 97% via `nox -s coverage_report` - [ ] Run `nox` (all default sessions), fix any errors --- ## Definition of Done This issue is complete when: - All subtasks above are completed and checked off. - A Git commit is created where the **first line** of the commit message matches the Commit Message in Metadata exactly (`fix(cli): add Config and Created fields to agents tool add Rich output`), followed by a blank line, then additional lines providing relevant details about the implementation. - The commit is pushed to the remote on the branch matching the **Branch** in Metadata exactly (`fix/tool-add-rich-output-config-created-fields`). - The commit is submitted as a **pull request** to `master`, reviewed, and **merged** before this issue is marked done. - All nox stages pass. - Coverage ≥ 97%. --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-uat-tester
freemo added this to the v3.7.0 milestone 2026-04-02 19:19:04 +00:00
freemo self-assigned this 2026-04-02 19:25:11 +00:00
Author
Owner

Issue triaged by project owner:

  • State: Verified
  • Priority: Medium (already assigned) — Output formatting deviation from spec. The command works but the Rich output is missing spec-required fields.
  • Milestone: v3.7.0 (already assigned)
  • MoSCoW: Should Have — The spec defines Config path, Created timestamp, separate Capability panel, and confirmation line as required output elements. While the tool registration itself works, the output does not match the spec. This is important for spec compliance and user experience but not a functional blocker.
  • Parent Epic: #374

Valid UAT bug. Requires both CLI changes (_print_tool() signature) and service changes (ToolRegistryService.register_tool() returning created_at).


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

Issue triaged by project owner: - **State**: Verified - **Priority**: Medium (already assigned) — Output formatting deviation from spec. The command works but the Rich output is missing spec-required fields. - **Milestone**: v3.7.0 (already assigned) - **MoSCoW**: Should Have — The spec defines Config path, Created timestamp, separate Capability panel, and confirmation line as required output elements. While the tool registration itself works, the output does not match the spec. This is important for spec compliance and user experience but not a functional blocker. - **Parent Epic**: #374 Valid UAT bug. Requires both CLI changes (`_print_tool()` signature) and service changes (`ToolRegistryService.register_tool()` returning `created_at`). --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
Author
Owner

MoSCoW classification: MoSCoW/Could Have

Priority classification: Priority/Medium

Rationale: The agents tool add Rich output is missing Config: path and Created: timestamp — these are spec-defined display fields for the confirmation panel. The command functions correctly (tool is added successfully). Missing display fields are UI polish. Could Have.


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

MoSCoW classification: **MoSCoW/Could Have** Priority classification: **Priority/Medium** Rationale: The `agents tool add` Rich output is missing `Config:` path and `Created:` timestamp — these are spec-defined display fields for the confirmation panel. The command functions correctly (tool is added successfully). Missing display fields are UI polish. Could Have. --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
Author
Owner

Label compliance fix applied:

  • Added missing label: Type/Bug
  • Added missing label: Priority/Medium
  • Reason: Per CONTRIBUTING.md, every issue must have exactly one Type/* and one Priority/* label. This UAT bug issue was inferred as Type/Bug and Priority/Medium based on its content.

Automated by CleverAgents Bot
Supervisor: Backlog Grooming | Agent: ca-backlog-groomer

Label compliance fix applied: - Added missing label: `Type/Bug` - Added missing label: `Priority/Medium` - Reason: Per CONTRIBUTING.md, every issue must have exactly one `Type/*` and one `Priority/*` label. This UAT bug issue was inferred as `Type/Bug` and `Priority/Medium` based on its content. --- **Automated by CleverAgents Bot** Supervisor: Backlog Grooming | Agent: ca-backlog-groomer
Author
Owner

Label compliance fix applied:

  • Removed conflicting orphaned labels and ensured valid labels are set
  • Reason: Per CONTRIBUTING.md, each issue must have exactly one State/*, Type/*, and Priority/* label using the valid label set.

Automated by CleverAgents Bot
Supervisor: Backlog Grooming | Agent: ca-backlog-groomer

Label compliance fix applied: - Removed conflicting orphaned labels and ensured valid labels are set - Reason: Per CONTRIBUTING.md, each issue must have exactly one `State/*`, `Type/*`, and `Priority/*` label using the valid label set. --- **Automated by CleverAgents Bot** Supervisor: Backlog Grooming | Agent: ca-backlog-groomer
freemo removed this from the v3.7.0 milestone 2026-04-07 02:11: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.

Reference
cleveragents/cleveragents-core#1475
No description provided.