whyll-agents

whyl-subagents

developmentClaude Codeby whyllima

Summary

Laravel 13 specialist agents - full-stack, model, API layer, ACL (standalone), JWT auth, audit, horizon, octane, MCP server, AI agent, and quality checker using PHP 8.3, UUID-based models, and Service-Repository pattern

Install to Claude Code

/plugin install whyll-agents@whyl-subagents

Run in Claude Code. Add the marketplace first with /plugin marketplace add whyllima/whyl-subagents if you haven't already.

README.md

WhylLima Subagents

Agentes de IA especializados para o projeto WhylLima. Cada agente é focado em uma tarefa específica para otimizar uso de tokens e dar suporte preciso ao código.

Hub: github.com/whyllima/whyl-subagents

---

Plugins disponíveis

| Plugin | Categoria | Descrição | |--------|-----------|-----------| | whyll-agents | Laravel | Builders e fixers: full-stack, model, API, endpoint, test, job, resource, seeder, event, JWT, ACL (config-driven + privilege escalation prevention), audit, AI agents, MCP servers, quality-checker e fixers. Laravel 13, PHP 8.3+, PHP attributes, domain folders, versioned API, Service-Repository. | | whyll-agents-front | Front-end | Builders para Nuxt 4: project, page, component, store, composable, API service, i18n, layout, plugin, middleware, testing, quality-checker. Stack: Vue 3, Pinia, Axios, PrimeVue 4 (design tokens), Tailwind, TypeScript, i18n. | | whyll-agents-biz | Business & Product | product-manager, ux-researcher, business-analyst, content-marketer, project-manager, scrum-master, customer-success, sales-engineer, technical-writer, legal-advisor, wordpress-master. Discovery pipeline: ideia → problema → requisitos → posicionamento. |

---

Quick Start

No Claude Code

# Adicionar marketplace
/plugin marketplace add /Users/whyl/.claude/plugins/marketplaces/whyl-subagents

# Instalar plugins
/plugin install whyll-agents@whyl-subagents
/plugin install whyll-agents-front@whyl-subagents
/plugin install whyll-agents-biz@whyl-subagents

# Usar agente Laravel
@whyll-agents:full-stack-specialist Create a complete feature for "Categories"

# Usar agente Front-end (Nuxt)
@whyll-agents-front:nuxt-project-builder Create a Nuxt project with Pinia, Axios, PrimeVue, and i18n
@whyll-agents-front:component-builder Create UserProfileCard in dashboard domain
@whyll-agents-front:store-builder Create store for managing notifications

# Usar agente Business & Product
@whyll-agents-biz:product-manager Define product idea and value hypothesis

---

Agentes disponíveis (whyll-agents – Laravel)

Builders (criar componentes)

| Agente | Propósito | Linhas | ~Tokens | |--------|-----------|--------|---------| | full-stack-specialist | Feature completa do zero | 197 | ~500 | | model-builder | Só estrutura de dados | 63 | ~160 | | api-layer-builder | API para model existente | 182 | ~450 | | endpoint-builder | Só rotas | 95 | ~240 | | test-builder | Testes PHPUnit | 152 | ~380 | | job-builder | Jobs em fila | 55 | ~140 | | resource-builder | Transformação JSON | 57 | ~140 | | seeder-builder | Dados de teste/dev | 68 | ~170 | | event-builder | Eventos e broadcasting | 79 | ~200 | | jwt-auth-builder | Autenticação JWT completa | 587 | ~1.5k | | acl-builder | Sistema ACL Modular (3 níveis) | 723 | ~1.8k | | audit-builder | Auditoria de Models | 421 | ~1k | | ai-agent-builder | AI Agents (laravel/ai) | ~150 | ~375 | | mcp-server-builder | MCP Servers (laravel/mcp) | ~140 | ~350 |

Qualidade e Fixers (auditar e corrigir)

| Agente | Propósito | Linhas | ~Tokens | |--------|-----------|--------|---------| | quality-checker | Audita código e gera prompts | 131 | ~330 | | controller-fixer | Remove lógica do Controller | 88 | ~220 | | service-fixer | Garante Repository e Resources | 75 | ~190 | | repository-fixer | Converte DB:: para Model | 61 | ~150 | | model-fixer | Traits, UUID e relacionamentos | 57 | ~140 | | formrequest-fixer | Validação create/update | 50 | ~125 | | resource-fixer | Campos explícitos, datas ISO | 54 | ~135 |

Resumo de Tokens (Laravel)

| Categoria | Agentes | Total Linhas | ~Tokens | |-----------|---------|--------------|---------| | Builders | 14 | ~2.970 | ~7.4k | | Fixers | 7 | ~520 | ~1.3k | | Quality | 1 | ~130 | ~330 | | Total | 22 | ~3.620 | ~9k |

> Nota: Estimativa baseada em ~2.5 tokens/linha de markdown/código.

---

Agentes disponíveis (whyll-agents-front – Front-end Nuxt 4)

Builders

| Agente | Propósito | |--------|-----------| | nuxt-project-builder | Projeto Nuxt 4 do zero com PrimeVue 4 design tokens | | page-builder | Páginas com file-based routing, layout props, route groups | | component-builder | Componentes Vue SFC com PrimeVue 4 (Select, DatePicker, Tabs) | | store-builder | Pinia stores com SSR safety e undefined defaults | | composable-builder | Composables + shared/utils/ + createUseFetch | | api-service-builder | Camada API: Axios → Proxy → Nitro + createUseFetch | | i18n-manager | Locales e traduções | | layout-builder | Layouts, Drawer, Menu, dark mode via .p-dark | | plugin-builder | Plugins Nuxt com usePreset/updatePreset | | middleware-builder | Route middleware, auth guards, route groups | | testing-builder | Vitest + Vue Test Utils + Pinia testing |

Qualidade

| Agente | Propósito | |--------|-----------| | quality-checker | Audita código Nuxt 4 + PrimeVue 4 compliance |

Convenções (Front-end)

| Convenção | Padrão | |-----------|--------| | SFC Order | <script setup><template><style scoped> | | PrimeVue 4 | Auto-importado via @primevue/nuxt-module. Utilities: FilterMatchMode de @primevue/core/api | | PrimeVue 4 Names | <Select>, <DatePicker>, <ToggleSwitch>, <Drawer>, <Popover>, <Tabs> | | PrimeVue 4 Theme | Design Tokens via presets (Aura, Lara). Sem CSS imports. Dark mode .p-dark | | PrimeVue 4 Fluid | fluid prop ou <Fluid> wrapper (não .p-fluid class) | | Nuxt 4 Dir | app/ como srcDir, shared/ para cross-context, #server alias | | Data Fetching | shallowRef por padrão, undefined defaults, singleton por key | | Error Handling | .then().catch() para async. try/catch só para ops síncronas críticas | | SSR Safety | import.meta.client, <ClientOnly>, typeof window !== 'undefined' | | i18n | useI18n() + t() para todo texto. Estratégia no_prefix | | State | Pinia stores para estado complexo; composables para lógica UI | | Styling | Tailwind + :deep() para PrimeVue overrides. CSS layers para coexistência | | Path Alias | @/app/, #sharedshared/, #serverserver/ |

---

Agentes disponíveis (whyll-agents-biz – Business & Product)

| Agente | Papel no pipeline / Uso | |--------|---------------------------| | product-manager | Gera e valida a ideia (o quê e por quê) | | ux-researcher | Confirma se o problema é real (dor do usuário) | | business-analyst | Traduz a ideia em requisitos e viabilidade | | content-marketer | Posicionamento e narrativa | | project-manager | Planejamento e entrega | | scrum-master | Processo ágil | | customer-success-manager | Retenção e sucesso do cliente | | sales-engineer | Demos e adoção técnica | | technical-writer | Documentação | | legal-advisor | Conformidade e riscos | | wordpress-master | Conteúdo e WordPress |

Discovery pipeline: product-manager → ux-researcher → business-analyst → content-marketer. Detalhes em categories/03-business-product/README.md e DISCOVERY-PIPELINE.md.

---

Arquitetura (Laravel)

Controller (sem lógica) → Service (toda lógica) → Repository (acesso via Model) → Model
                                                                              ↓
Resposta sempre via Resource ←────────────────────────────────────────────────

Regras:

  • Controller: só delega para Service; sem try-catch, sem Log, sem queries.
  • Service: toda lógica de negócio; sempre retorna Resource.
  • Repository: usa sempre Model (nunca facade DB).
  • Resource: todas as respostas da API passam por Resource.

---

Detalhes dos agentes

full-stack-specialist

Quando usar: Criar uma feature nova do zero (banco + API).

Cria (nessa ordem): 1. Migration (UUID como PK, soft deletes, índices) 2. Model (HasFactory, HasUuids, SoftDeletes, AutoIncrementId, Auditable) 3. Repository (extends App\Repositories\Repository, queries via Model) 4. Service (extends App\Services\Service, retorna Resources) 5. Form Request (validação store/update com UUID ignore) 6. Controller (só delega para Service, sem lógica) 7. Resource e Collection 8. API Routes (Route::controller())

Exemplo:

@whyll-agents:full-stack-specialist Create a complete feature for "Categories" with name, slug, description, and status.

---

model-builder

Quando usar: Só estrutura de banco, sem camada de API.

Cria: Migration, Model (traits e relacionamentos).

Não cria: Repository, Service, Controller, Routes, Tests.

Exemplo:

@whyll-agents:model-builder Create migration and model for "Tags" with name, slug, color, and entity_uuid (belongsTo Entity).

---

api-layer-builder

Quando usar: Model já existe e precisa expor via API.

Pré-requisitos: Migration e Model existentes.

Cria: Repository, Service, Form Request, Controller, Resource, Collection, Routes.

Não cria: Migration, Model, Tests.

Exemplo:

@whyll-agents:api-layer-builder Create API layer for the existing Tag model with CRUD and getByEntity custom action.

---

endpoint-builder

Quando usar: Controller existe e só falta definir rotas.

Pré-requisitos: Controller e métodos existentes.

Cria: Rotas em routes/api.php.

Exemplo:

@whyll-agents:endpoint-builder Add routes for TagController with methods: index, show, store, update, destroy, getByEntity.

---

test-builder

Quando usar: Endpoints existem e precisa de testes.

Pré-requisitos: Controller, rotas e factory existentes.

Cria: Feature Tests (PHPUnit) – CRUD, validação, auth (401).

Importante: Usa DatabaseTransactions (não limpa o banco).

Exemplo:

@whyll-agents:test-builder Create feature tests for TagController covering all CRUD operations and getByEntity.

---

job-builder

Quando usar: Processamento em background com filas.

Cria: Jobs (ShouldQueue), config Horizon, logging no canal jobs.

Exemplo:

@whyll-agents:job-builder Create a job to sync entities with external API, with retry logic and Horizon monitoring.

---

resource-builder

Quando usar: Transformar models em respostas JSON padronizadas.

Pré-requisitos: Model existente.

Cria: JsonResource, ResourceCollection (com whenLoaded, whenCounted, datas ISO).

Exemplo:

@whyll-agents:resource-builder Create EntityResource and EntityCollection with category, tags relationships, and comments_count.

---

seeder-builder

Quando usar: Dados de teste ou desenvolvimento.

Pré-requisitos: Model e relacionamentos existentes.

Cria: Factory (definition + states), Seeder.

Exemplo:

@whyll-agents:seeder-builder Create EntityFactory with states (published, draft, featured) and EntitySeeder with 50 sample records.

---

event-builder

Quando usar: Eventos de domínio, listeners ou broadcasting em tempo real.

Cria: Events (normais e broadcastable), Listeners (sync e queued), autorização de canais (routes/channels.php).

Exemplo:

@whyll-agents:event-builder Create EntityCreated, EntityUpdated events with broadcasting to private channel and notification listener.

---

jwt-auth-builder

Quando usar: Configurar autenticação JWT com single-session, refresh token, password reset.

Cria: AuthController, AuthService, AuthRepository, JwtMiddleware, FormRequests, Resources.

Detecta ACL: Verifica se existe ACL Modular ou Simple para incluir roles/permissions no me().

Exemplo:

@whyll-agents:jwt-auth-builder Setup JWT authentication with password reset and profile update

---

acl-builder

Quando usar: Configurar sistema de permissões modular com três níveis: User → Role → Module → Permission.

Arquitetura:

User ──has── Role ──has── Module ──has── Permission
              │             │
              └─────────────┘
         role_modules_permissions

Cria:

  • Migrations (modules, model_has_permissions, role_modules_permissions)
  • Models (Module, ModelHasPermission, RoleModulesPermission, Role, Permission)
  • Traits (HasNameLookup, HasModulePermission)
  • Middleware (ModelAndPermissionMiddleware)
  • Exception (NotLoggedInException)
  • Seeders (PermissionSeeder, ModuleSeeder, RoleSeeder)

Formato de permissão: {action}-{module} (ex: show-rule, index-user)

Uso em Controller:

$this->middleware('model_permission:show-entity')->only(['show']);
$this->middleware('model_permission:index-entity')->only(['index']);

Exemplo:

@whyll-agents:acl-builder Setup modular ACL system with modules: user, role, entity, campaign

---

audit-builder

Quando usar: Configurar sistema de auditoria ou verificar se models estão configurados para audit.

Cria:

  • Config audit.php customizado
  • Migration audits com UUID
  • Resolvers (IpAddress, UserAgent, Url)
  • Resources (AuditResource, AuditCollection)

Também verifica:

  • Models sem interface ContractAuditable
  • Models sem trait Auditable
  • Models com password sem $auditExclude

Exemplos:

# Setup completo
@whyll-agents:audit-builder Setup auditing system

# Verificar models
@whyll-agents:audit-builder Check audit configuration in all models

---

quality-checker

Quando usar: Auditar uma feature ou arquivos para ver se seguem o padrão.

Faz: Escaneia controllers, services, repositories, models, form requests e resources; identifica violações; gera prompts prontos para copiar e usar com os fixers.

Exemplo:

@whyll-agents:quality-checker Audit Entity feature

Saída típica: Lista de componentes com problemas + prompts no formato:

@whyll-agents:controller-fixer Fix EntityController
File: app/Http/Controllers/EntityController.php
Issues: try-catch blocks, Log:: calls, direct queries

---

Fixers (controller-fixer, service-fixer, repository-fixer, model-fixer, formrequest-fixer, resource-fixer)

Quando usar: Depois do quality-checker ou quando souber qual arquivo está fora do padrão.

Uso: Cole o prompt gerado pelo quality-checker (ou monte um semelhante com arquivo e issues).

Exemplos:

@whyll-agents:controller-fixer Fix EntityController - remove logic, delegate to Service. File: app/Http/Controllers/EntityController.php

@whyll-agents:repository-fixer Fix EntityRepository - convert DB facade to Model queries. File: app/Repositories/EntityRepository.php

---

Guia de decisão

Laravel (whyll-agents)

Precisa criar algo?
│
├── Feature nova do zero         → full-stack-specialist
├── Só banco de dados            → model-builder
├── Model existe, precisa de API → api-layer-builder
├── Controller existe, só rotas  → endpoint-builder
├── API existe, precisa testes   → test-builder
├── Processamento em background  → job-builder
├── Transformação JSON           → resource-builder
├── Dados de teste/dev           → seeder-builder
├── Eventos/real-time            → event-builder
├── Autenticação JWT             → jwt-auth-builder
├── Sistema de permissões        → acl-builder
├── Auditoria de models          → audit-builder
├── AI Agents (laravel/ai)       → ai-agent-builder
└── MCP Servers (laravel/mcp)    → mcp-server-builder

Precisa auditar/corrigir?
│
├── Auditar feature              → quality-checker (gera prompts)
└── Corrigir componente          → controller-fixer | service-fixer
                                   repository-fixer | model-fixer
                                   formrequest-fixer | resource-fixer

Front-end (whyll-agents-front)

Projeto novo do zero             → nuxt-project-builder
Nova página/rota                 → page-builder
Novo componente visual           → component-builder
Gerenciamento de estado          → store-builder
Lógica reutilizável/UI           → composable-builder
Integração com API externa       → api-service-builder
Traduções/idiomas                → i18n-manager
Layout/sidebar/menu/dark mode    → layout-builder
Plugin Vue/Nuxt                  → plugin-builder
Auth guards/redirects            → middleware-builder
Testes unitários/componente      → testing-builder
Auditar código Nuxt/PrimeVue     → quality-checker

---

Stack do projeto

Back-end (Laravel)

  • PHP: 8.3+
  • Laravel: v13
  • Auth: JWT (tymon/jwt-auth) ou Sanctum v4
  • Queue: Horizon v5
  • Real-time: Reverb v1
  • Performance: Octane v2
  • Code Style: Pint v1
  • Testing: PHPUnit ^12 / Pest ^4
  • Auditing: owen-it/laravel-auditing
  • AI: laravel/ai (AI SDK), laravel/mcp (MCP servers)

Front-end (Nuxt)

  • Nuxt: 4.4+ (SSR habilitado, app/ srcDir, shared/ directory)
  • Vue: 3.5+ (Vue Router v5)
  • State: Pinia 2.3+
  • HTTP: Axios 1.13+ / createUseFetch (Nuxt 4 native)
  • UI: PrimeVue 4.5+ (Design Tokens, @primeuix/themes)
  • CSS: Tailwind CSS 4+ (CSS layers com PrimeVue)
  • i18n: @nuxtjs/i18n 10+
  • Language: TypeScript 5.5+ (noUncheckedIndexedAccess: true)
  • Testing: Vitest + @nuxt/test-utils + Vue Test Utils

---

Convenções

| Convenção | Padrão | |-----------|--------| | Primary Key | UUID, coluna uuid | | Column Order | id (unsignedBigInteger) primeiro, uuid (PK) segundo | | Auto Increment | DB::statement('ALTER TABLE x MODIFY id ... AUTO_INCREMENT UNIQUE') | | Foreign Keys | {entity}_uuid | | Model Config | PHP Attributes: #[Table(key: 'uuid', ...)], #[Fillable([...])] | | Traits do Model | HasFactory, HasUuids, SoftDeletes | | Folder Structure | Domain-based: Controllers/{Domain}/, Models/{Domain}/, etc. | | Services | Estendem App\Services\Service | | Repositories | Estendem App\Repositories\Repository, nunca usam DB:: | | Controller | DI constructor, sem lógica; só delega para Service | | Respostas | Sempre via Resource, Collection com #[Collects] | | Rotas | Versionadas em routes/api/v1.php, permission middleware per-route | | Documentação | PHPDoc em inglês, sem comentários inline | | Formatação | vendor/bin/pint --dirty |

---

Estrutura de arquivos

whyl-subagents/
├── README.md
├── .claude/
│   └── settings.local.json
├── .claude-plugin/
│   └── marketplace.json
└── categories/
    ├── README.md
    ├── 01-laravel/
    │   ├── .claude-plugin/
    │   │   └── plugin.json
    │   ├── full-stack-specialist.md
    │   ├── model-builder.md
    │   ├── api-layer-builder.md
    │   ├── endpoint-builder.md
    │   ├── test-builder.md
    │   ├── job-builder.md
    │   ├── resource-builder.md
    │   ├── seeder-builder.md
    │   ├── event-builder.md
    │   ├── jwt-auth-builder.md
    │   ├── acl-builder.md
    │   ├── audit-builder.md
    │   ├── ai-agent-builder.md
    │   ├── mcp-server-builder.md
    │   ├── quality-checker.md
    │   ├── controller-fixer.md
    │   ├── service-fixer.md
    │   ├── repository-fixer.md
    │   ├── model-fixer.md
    │   ├── formrequest-fixer.md
    │   └── resource-fixer.md
    ├── 02-front-end/
    │   ├── .claude-plugin/
    │   │   └── plugin.json
    │   ├── nuxt-project-builder.md
    │   ├── page-builder.md
    │   ├── component-builder.md
    │   ├── store-builder.md
    │   ├── composable-builder.md
    │   ├── api-service-builder.md
    │   ├── i18n-manager.md
    │   ├── layout-builder.md
    │   ├── plugin-builder.md
    │   ├── middleware-builder.md
    │   ├── testing-builder.md
    │   └── quality-checker.md
    └── 03-business-product/
        ├── .claude-plugin/
        │   └── plugin.json
        ├── README.md
        ├── DISCOVERY-PIPELINE.md
        ├── product-manager.md
        ├── ux-researcher.md
        ├── business-analyst.md
        ├── content-marketer.md
        ├── project-manager.md
        ├── scrum-master.md
        ├── customer-success-manager.md
        ├── sales-engineer.md
        ├── technical-writer.md
        ├── legal-advisor.md
        └── wordpress-master.md

---

Comandos úteis

# Laravel
php artisan make:migration create_entities_table --no-interaction
php artisan make:model Entity -fs --no-interaction
php artisan make:controller EntityController --api --no-interaction
php artisan make:request EntityRequest --no-interaction
php artisan make:job ProcessEntityJob --no-interaction
php artisan make:test EntityControllerTest --no-interaction
php artisan make:resource EntityResource --no-interaction
php artisan make:resource EntityCollection --collection --no-interaction
php artisan make:factory EntityFactory --model=Entity --no-interaction
php artisan make:seeder EntitySeeder --no-interaction
php artisan make:event EntityCreated --no-interaction
php artisan make:listener SendEntityNotification --event=EntityCreated --no-interaction

# Code Style
vendor/bin/pint --dirty

# Testing
php artisan test --filter=EntityControllerTest
php artisan test --parallel

# Queue
php artisan horizon
php artisan horizon:status

# Reverb (WebSockets)
php artisan reverb:start
php artisan reverb:start --debug

# Seeding
php artisan db:seed
php artisan db:seed --class=EntitySeeder

---

License

MIT

---

Hub: github.com/whyllima/whyl-subagents

Related plugins

Browse all →

whyll-agents-front

whyl-subagents

Front-end specialist agents - Nuxt 4 project builder, form-validation (vee-validate 4 + Yup with multi-step wizards), components, stores, composables, API layer, i18n, layouts, plugins and testing with Pinia, Axios, PrimeVue 4, TypeScript

Open plugin →

a2a-bridge

a2a-bridge

Bidirectional bridge between Claude Code and external AI coding agents. Exposes Claude Code as an A2A server (Gemini CLI, any A2A client) and as an ACP agent (OpenClaw, Zed, VS Code); routes outbound tool calls to Codex, OpenClaw, and Hermes adapters through a shared daemon with per-room task logs and verification-artifact support.

Open plugin →

adapty-sdk-integration

adapty

End-to-end Adapty SDK integration for mobile apps — dashboard setup, SDK install, paywall, and store configuration. Supports iOS, Android, Flutter, React Native, Unity, KMP, and Capacitor.

Open plugin →

advanced-kit

claudius-skills-marketplace

Enterprise-grade kit with 15 skills, 20 commands, 10 specialist agents for microservices, compliance, and platform engineering

Open plugin →

aeo-architecture

aeo-skill-marketplace

Design and documentation toolkit with agents for creating system architectures, C4 diagrams, ADRs, and conducting quality analysis

Open plugin →

aeo-claude

aeo-skill-marketplace

Claude development skills: Agent SDK reference, skill creation, slash command creation, Opus prompting, ultra validation workflows, team-coordinated planning, session retrospectives, and Cowork session migration/export utilities

Open plugin →