Codumentor logo Codumentor

Developer Plugin

The Developer Plugin registers an agentic_developer tool that the main agent can delegate implementation tasks to. Given a detailed plan, the developer subagent autonomously reads files, edits code, and runs shell commands to carry out the implementation.

Overview

The Developer plugin:

  1. Registers the agentic_developer tool for the main agent via onPromptAssemble
  2. The tool spins up a subagent with a dedicated developer system prompt (agentic_developer_system_prompt.jinja2)
  3. The subagent has access to: knowledge_search, read_file, shell, replace_in_file, write_file
  4. The subagent's working directory is scoped to the current conversation's source context

Configuration

plugins:
  - module: codumentor.plugins.developer
    class: DeveloperPlugin
    args:
      enabled: true
      target_agents: "main"    # Only expose to main agent (default)

Configuration Parameters

Tool Usage

The main agent calls agentic_developer with an implementation plan:

agentic_developer(
  plan="Add input validation to the UserService.create() method.
        1. Check that email is not empty and is a valid format.
        2. Check that username is between 3 and 50 characters.
        3. Raise ValueError with a descriptive message for each case.
        4. Add unit tests in tests/test_user_service.py."
)

The developer subagent then:

  1. Reads the relevant files to understand the current code
  2. Makes the required edits using replace_in_file or write_file
  3. Optionally runs tests or build commands via the shell tool
  4. Returns a summary of what was changed

How It Works

On each onPromptAssemble call, the plugin builds the subagent's tool list from the current config (honoring disabled_tools from context) and creates or updates the AgenticDeveloperTool instance. The tool definition is injected into the prompt's tool list if not already present.

The subagent runs in its own context window so that implementation details don't pollute the main conversation.

Notes