UAT: No built-in plugins shipped with core — PluginManager.discover() finds zero plugins in default installation #5731

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

Bug Report

Feature Area: Plugin Architecture — Built-in Plugins
Priority: Backlog (non-critical for MVP, but needed for complete plugin ecosystem)

What Was Tested

Analyzed pyproject.toml for [project.entry-points."cleveragents.plugins"] section and searched the codebase for any built-in plugin registrations.

Expected Behavior (from spec)

The spec (§Extensibility, §Tool Extensibility) describes built-in tools:

"Built-in tools: Core file operations (read_file, write_file, edit_file, delete_file, move_file, list_files, search_files), plan operations (create-subplan), and system operations are provided as built-in tools grouped into built-in skills."

These built-in tools and skills should be registered as built-in plugins via the cleveragents.plugins entry point group, making them discoverable through the standard plugin mechanism. This would allow:

  1. Users to see what's built-in via agents plugin list
  2. The plugin system to manage built-in tool lifecycle
  3. Built-in tools to be disabled/overridden by user plugins

Actual Behavior

pyproject.toml has no [project.entry-points."cleveragents.plugins"] section. Calling plugin_manager.discover() returns an empty list in a default installation:

manager = PluginManager()
plugins = manager.discover()  # Returns []

Built-in tools are registered directly in the tool registry via BuiltinToolAdapter and BuiltinSkillAdapter, bypassing the plugin system entirely. There is no connection between the plugin architecture and the built-in tool/skill system.

Code Location

  • pyproject.toml — no [project.entry-points."cleveragents.plugins"] section
  • src/cleveragents/infrastructure/plugins/manager.pydiscover() (lines 191–216)
  • src/cleveragents/tool/ — built-in tools registered independently of plugin system
  • src/cleveragents/skills/ — built-in skills registered independently of plugin system

Impact

  1. Inconsistent architecture: Built-in capabilities bypass the plugin system, creating two separate registration mechanisms.
  2. No visibility: agents plugin list (when implemented) will show zero plugins even though many built-in capabilities exist.
  3. No lifecycle management: Built-in tools cannot be disabled/enabled through the plugin lifecycle.
  4. Incomplete plugin ecosystem: Third-party plugin authors have no reference implementation to follow.

Steps to Reproduce

  1. Inspect pyproject.toml — no [project.entry-points."cleveragents.plugins"] section
  2. Call PluginManager().discover() — returns empty list
  3. Inspect src/cleveragents/tool/ — built-in tools registered via BuiltinToolAdapter, not via plugin entry points

Suggested Fix

  1. Add entry points to pyproject.toml for built-in plugins:
[project.entry-points."cleveragents.plugins"]
"builtin-tools" = "cleveragents.tool.builtins:BuiltinToolPlugin"
"builtin-skills" = "cleveragents.skills.builtins:BuiltinSkillPlugin"
  1. Create BuiltinToolPlugin and BuiltinSkillPlugin classes that implement the ToolProviderExtension and SkillProviderExtension protocols respectively.

  2. Auto-discover and activate built-in plugins at application startup.


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

## Bug Report **Feature Area**: Plugin Architecture — Built-in Plugins **Priority**: Backlog (non-critical for MVP, but needed for complete plugin ecosystem) ### What Was Tested Analyzed `pyproject.toml` for `[project.entry-points."cleveragents.plugins"]` section and searched the codebase for any built-in plugin registrations. ### Expected Behavior (from spec) The spec (§Extensibility, §Tool Extensibility) describes built-in tools: > "**Built-in tools**: Core file operations (`read_file`, `write_file`, `edit_file`, `delete_file`, `move_file`, `list_files`, `search_files`), plan operations (`create-subplan`), and system operations are provided as built-in tools grouped into built-in skills." These built-in tools and skills should be registered as built-in plugins via the `cleveragents.plugins` entry point group, making them discoverable through the standard plugin mechanism. This would allow: 1. Users to see what's built-in via `agents plugin list` 2. The plugin system to manage built-in tool lifecycle 3. Built-in tools to be disabled/overridden by user plugins ### Actual Behavior `pyproject.toml` has no `[project.entry-points."cleveragents.plugins"]` section. Calling `plugin_manager.discover()` returns an empty list in a default installation: ```python manager = PluginManager() plugins = manager.discover() # Returns [] ``` Built-in tools are registered directly in the tool registry via `BuiltinToolAdapter` and `BuiltinSkillAdapter`, bypassing the plugin system entirely. There is no connection between the plugin architecture and the built-in tool/skill system. ### Code Location - `pyproject.toml` — no `[project.entry-points."cleveragents.plugins"]` section - `src/cleveragents/infrastructure/plugins/manager.py` — `discover()` (lines 191–216) - `src/cleveragents/tool/` — built-in tools registered independently of plugin system - `src/cleveragents/skills/` — built-in skills registered independently of plugin system ### Impact 1. **Inconsistent architecture**: Built-in capabilities bypass the plugin system, creating two separate registration mechanisms. 2. **No visibility**: `agents plugin list` (when implemented) will show zero plugins even though many built-in capabilities exist. 3. **No lifecycle management**: Built-in tools cannot be disabled/enabled through the plugin lifecycle. 4. **Incomplete plugin ecosystem**: Third-party plugin authors have no reference implementation to follow. ### Steps to Reproduce 1. Inspect `pyproject.toml` — no `[project.entry-points."cleveragents.plugins"]` section 2. Call `PluginManager().discover()` — returns empty list 3. Inspect `src/cleveragents/tool/` — built-in tools registered via `BuiltinToolAdapter`, not via plugin entry points ### Suggested Fix 1. Add entry points to `pyproject.toml` for built-in plugins: ```toml [project.entry-points."cleveragents.plugins"] "builtin-tools" = "cleveragents.tool.builtins:BuiltinToolPlugin" "builtin-skills" = "cleveragents.skills.builtins:BuiltinSkillPlugin" ``` 2. Create `BuiltinToolPlugin` and `BuiltinSkillPlugin` classes that implement the `ToolProviderExtension` and `SkillProviderExtension` protocols respectively. 3. Auto-discover and activate built-in plugins at application startup. --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: uat-tester
HAL9000 added this to the v3.5.0 milestone 2026-04-09 09:05:18 +00:00
Author
Owner

Label compliance fix applied:

  • Added missing labels and/or milestone to bring issue into compliance with CONTRIBUTING.md

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

Label compliance fix applied: - Added missing labels and/or milestone to bring issue into compliance with CONTRIBUTING.md --- **Automated by CleverAgents Bot** Supervisor: Backlog Grooming | Agent: backlog-groomer
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#5731
No description provided.