Appearance
<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/(namespaceAdvisable\) - Client repo path:
custom/Domains/+custom/Rest/(namespaceCustom\) - Client bootstrap: If
CUSTOM_DIR=missingorCUSTOM_PSR4=missing, scaffolds the entire custom layer: creates directories, adds PSR-4 mapping to composer.json, runscomposer dump-autoload, creates container.php files, registers modules - Client override pattern: Creates
Custom\class and registers DI alias to replaceAdvisable\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/andsrc/Rest/ - Client repo: Edits files in
custom/Domains/andcustom/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.phpfiles insrc/Domains/{Context}/andsrc/Rest/{Context}/ - Client repo: Shared
custom/Domains/container.phpandcustom/Rest/container.php(append, don't create per-module). Standalone modules get their owncustom/{Module}/container.php - Client override pattern: Register
Custom\class + alias toAdvisable\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}.phporecommercen/{module}/jobs/Adv{Name}.php - Client repo — three placement options:
application/libraries/— simple standalone jobs (default, no namespace needed)application/modules/{module}/libraries/— jobs tied to a specific HMVC modulecustom/{Module}/Jobs/{Name}.php— PSR-4 underCustom\, ONLY when extending/overriding upstream jobs or when the job belongs to a custom domain module already incustom/
- 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
- Simple background task →
patcher-writer
- Purpose: Generates two-part data patcher scripts (Phinx migration + patcher class)
- Skills:
patcher-generator - Repo: Both — migration in
database/migrations/, patcher inpatches/ - 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(namespaceAdvisable\Feeds\Output) - Client repo — two placement options:
application/libraries/feeds/Output{Name}Xml.php— standard client feeds (default, legacy style)custom/Feeds/Output/Output{Name}Xml.php— ONLY when extending/overriding an upstream feed or when client already usescustom/and prefers it
- Client smart behavior:
- New feed →
application/libraries/feeds/(simplest) - Override upstream feed → scaffolds
custom/if needed
- New feed →
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 touchesecommercen/ - 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 updatesdocs/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-messageskill (no subagent — too lightweight to justify context overhead) - Repo: Both