14 fichas de personaje para entender el ecosistema. 4 agentes que tomas tú · 3 subagentes que invoca el Director · 1 prompt clave del flujo · 5 skills que se cargan solas · y las reglas pasivas que están siempre activas.
{req}.architecture.md con 14 secciones obligatorias. Puede descomponer un requisito grande en sub-specs paralelas o secuenciales.RED → GREEN → REFACTOR por fase, con commit message preparado al final de cada una.{req}-phase-N-complete.md por cada fase y {req}-complete.md al final.al_build tras cada cambio.skill-debug para bugs raros, skill-performance para optimizar, skill-api para APIs. Construye y valida en bucle.skill-estimation automáticamente. Sabe descomponer integraciones, migraciones NAV→BC, AL extensions, y traducirlas en esfuerzo ponderado.al-conductor vía runSubagent. Es la Fase 1 (Planning) del pipeline TDD. Tú nunca lo llamas directamente.skill-api, skill-events, etc.) y qué patrón aplicó de cada uno. El Reviewer lo cruza después para verificar trazabilidad.al-conductor. Es la Fase 2 (Implementation) del pipeline. Devuelve al Director un summary estructurado con objetos creados, tests creados, build status.al-conductor. Es la Fase 3 (Review) del pipeline TDD. No implementa fixes — solo audita y devuelve feedback con severidad: CRITICAL · MAJOR · MINOR.{req}.architecture.md y produce {req}.spec.md: inventario de objetos AL con IDs concretos, data model, signatures de procedures, event integration, pages, tests Given/When/Then, permission sets. Implementable directo.app.json idRanges antes de asignarlos. Si no hay arquitectura previa, también funciona en LOW complexity como blueprint directo.@workspace use al-spec.create. Puedes invocarlo tú directamente — no es un agente, es una plantilla guiada con prompts y tools.OnBefore/OnAfter con IsHandled, diferencia IntegrationEvent vs BusinessEvent.al-architect al diseñar arquitectura de eventos · al-developer al implementar subscribers · al-implement-subagent dentro del pipeline del Conductor.APIPublisher, EntityName, ODataKeyFields = SystemId, DelayedInsert = true, header-lines con part(), bound actions con Microsoft.NAV, webhooks de subscripción.v1.0 obsolete → v2.0 estable → beta para preview de breaking changes.al-architect al diseñar contratos de API · al-developer al implementar endpoints · al-implement-subagent dentro del pipeline TDD.IncludedPermissionSets, granula RIMD en tabledata, crea permissionsetextension para roles BC estándar, declara permisos indirectos en codeunits.D en setup tables sin justificación.al-developer al generar permission sets · al-implement-subagent al cerrar una fase con nuevos objetos · al-review-subagent al verificar cobertura.SetLoadFields antes de Get/Find, SetRange/SetFilter antes de FindSet, CalcSums en lugar de loops, temp tables para procesado intermedio, FlowFields cacheados.repeat..until, y otros antipatrones.al-architect al planificar tablas grandes · al-developer al optimizar · al-implement-subagent al implementar fases con tablas heavy · al-review-subagent al auditar.addafter/addbefore/modify/moveafter, FastTabs, FactBoxes, promoted actions con actionref.StyleExpr para condicionar formato, Visible para ocultar grupos, Editable según estado del registro, Importance para priorizar campos. Y avisa: máximo 3-4 FlowFields en List pages.al-architect al diseñar UX · al-developer al implementar pages · al-implement-subagent al crear pages dentro del pipeline TDD..instructions.md en .github/instructions/ con un front-matter applyTo que indica a qué tipos de archivo aplicar. GitHub Copilot y Claude Code los cargan automáticamente al editar un archivo que matchea el pattern.al-guidelines — principios generales · al-code-style — formato y comentarios · al-naming-conventions — 26-char limit, prefijos · al-performance — SetLoadFields, filtering · al-error-handling — Error/ErrorInfo, no Confirm en API · al-events — patrón Pub/Sub · al-testing — Given/When/Then, codeunit subtype Test.
applyTo: "**/*.al" (o el pattern correspondiente). VS Code detecta el archivo abierto, matchea contra los patterns, e inyecta las reglas como contexto al modelo. Cero comandos por tu parte.