Skip to content

<div style="display: none;" hidden="true" aria-hidden="true">Are you an LLM? You can read better optimized documentation at /guides/claude/agent-catalog.md for this page in Markdown format</div>

Agent Catalog

See also: System Overview | Repo Flexibility | Usage Guide | Developer Overrides

TL;DR

12 subagents, each wrapping one or more skills. All work in both main and client repos (with different file paths). Two agents are read-only (code-reviewer, schema-analyzer). The git-commit-message skill is invoked directly without a subagent.


Generator Agents (Write Access)

domain-generator

  • Purpose: Generates complete Domain + REST layers (Entity, Repository, Service, Controller, Resources) from database schemas
  • Skills: schema-analyzer, domain-rest-generator
  • Repo: Both
  • Main repo path: src/Domains/ + src/Rest/ (namespace Advisable\)
  • Client repo path: custom/Domains/ + custom/Rest/ (namespace Custom\)
  • Client bootstrap: If CUSTOM_DIR=missing or CUSTOM_PSR4=missing, scaffolds the entire custom layer: creates directories, adds PSR-4 mapping to composer.json, runs composer dump-autoload, creates container.php files, registers modules
  • Client override pattern: Creates Custom\ class and registers DI alias to replace Advisable\ service

rest-crud-writer

  • Purpose: Adds POST/PUT/DELETE write endpoints to existing read-only Domain+REST layers
  • Skills: rest-crud-generator
  • Repo: Both
  • Main repo: Edits files in src/Domains/ and src/Rest/
  • Client repo: Edits files in custom/Domains/ and custom/Rest/. For upstream overrides, creates Custom class extending the Advisable one with DI alias
  • Client bootstrap: References domain-generator's bootstrap steps if custom layer missing

migration-writer

  • Purpose: Generates Phinx database migration files (CREATE TABLE, ALTER TABLE, data patchers)
  • Skills: migration-generator
  • Repo: Both — migrations always go in database/migrations/ regardless of repo type
  • No repo-aware differences — same location in both repos

test-writer

  • Purpose: Generates PHPUnit 10.5 test classes
  • Skills: test-generator
  • Repo: Both — tests always go in tests/Unit/
  • No repo-aware differences — same location in both repos

container-writer

  • Purpose: Generates/updates Symfony DI container configuration files
  • Skills: container-config-generator
  • Repo: Both
  • Main repo: Per-module container.php files in src/Domains/{Context}/ and src/Rest/{Context}/
  • Client repo: Shared custom/Domains/container.php and custom/Rest/container.php (append, don't create per-module). Standalone modules get their own custom/{Module}/container.php
  • Client override pattern: Register Custom\ class + alias to Advisable\ class
  • Client bootstrap: Creates custom dir, PSR-4 mapping, dumps autoload if missing

job-writer

  • Purpose: Generates scheduled job classes implementing JobCommand
  • Skills: job-generator
  • Repo: Both
  • Main repo: ecommercen/job/libraries/Adv{Name}.php or ecommercen/{module}/jobs/Adv{Name}.php
  • Client repo — three placement options:
    1. application/libraries/ — simple standalone jobs (default, no namespace needed)
    2. application/modules/{module}/libraries/ — jobs tied to a specific HMVC module
    3. custom/{Module}/Jobs/{Name}.php — PSR-4 under Custom\, ONLY when extending/overriding upstream jobs or when the job belongs to a custom domain module already in custom/
  • Client smart behavior:
    • Simple background task → application/
    • Job for existing custom domain in custom/custom/{Module}/Jobs/
    • Job for a custom domain that doesn't exist yet → stops and reports back to orchestrator that domain needs to be created first
    • Override/extend upstream job → scaffolds custom/ if needed, then creates there

patcher-writer

  • Purpose: Generates two-part data patcher scripts (Phinx migration + patcher class)
  • Skills: patcher-generator
  • Repo: Both — migration in database/migrations/, patcher in patches/
  • No repo-aware differences — same locations in both repos

feed-writer

  • Purpose: Generates marketplace feed output classes (XML exports)
  • Skills: feed-output-generator
  • Repo: Both
  • Main repo: src/Feeds/Output/Output{Name}Xml.php (namespace Advisable\Feeds\Output)
  • Client repo — two placement options:
    1. application/libraries/feeds/Output{Name}Xml.php — standard client feeds (default, legacy style)
    2. custom/Feeds/Output/Output{Name}Xml.php — ONLY when extending/overriding an upstream feed or when client already uses custom/ and prefers it
  • Client smart behavior:
    • New feed → application/libraries/feeds/ (simplest)
    • Override upstream feed → scaffolds custom/ if needed

legacy-developer

  • Purpose: Specialist for legacy CodeIgniter/HMVC code (controllers, models, libraries, modules)
  • Skills: None (standalone — uses its own knowledge of CI3 patterns)
  • Repo: Both
  • Main repo: Develops in ecommercen/ (modules, core)
  • Client repo: Develops in application/ (controllers, models, libraries). Never touches ecommercen/
  • Key knowledge: Controller hierarchy, model base classes (Adv_base_model vs Crudmodel), HMVC module structure, Registry pattern, DI bridge via di()

docs-updater

  • Purpose: Updates AdvEshop documentation
  • Skills: update-docs
  • Repo: Both — main repo updates docs/, client repo updates docs/client/

Read-Only Agents (No Write Access)

code-reviewer

  • Purpose: Reviews code against AdvEshop v4 conventions
  • Skills: code-reviewer
  • Repo: Both
  • Access: Read-only — never uses Write or Edit tools
  • Review scope: Namespace alignment, DI registration, route registration, OpenAPI annotations, base class usage, MUI handling, security issues, type safety
  • Output format: Structured findings categorized as ERROR / WARNING / INFO with file:line references

schema-analyzer

  • Purpose: Parses SQL DDL and produces structured metadata for domain generation
  • Skills: schema-analyzer
  • Repo: Both
  • Access: Read-only — never uses Write or Edit tools
  • Output: JSON metadata with table definitions, column types, PHP mappings, relationships, MUI detection

Direct Skill (No Agent Wrapper)

git-commit-message

  • Purpose: Generates commit messages from staged changes
  • Invocation: Directly via git-commit-message skill (no subagent — too lightweight to justify context overhead)
  • Repo: Both