Planos · agentic-dev-boilerplate
00 empezá acá

Un repo donde la IA trabaja dentro del plano.

Agentic Dev Boilerplate es el punto de partida para equipos que quieren que un agente de IA conduzca el ciclo de desarrollo entero: definir el producto, montar el stack, refinar el backlog, implementar cada historia y desplegarla. Esta página te orienta en media hora: qué piezas existen, cómo se invocan y dónde termina el trabajo del dev y empieza el de QA.

Claude Code · OpenCode · Codex una skill se invoca por nombre + modo plan antes de código, siempre

Arranco un proyecto

Querés un repo nuevo con todo cableado (credenciales, harness, skills) o instalar la capa agentic en una app que ya existe.

→ 02 Arrancar

Uso el repo a diario

Ya está instalado. Necesitás saber qué skill pedir para cada cosa.

→ 11 Quiero X, hago Y

Soy PM, PO o QA

Te importa cómo viaja una historia y qué recibís al final.

→ 05 Una historia de punta a punta
01 la idea

Una sola copia de cada instrucción, leída por tres harnesses

El repo tiene una única fuente de reglas, AGENTS.md con sus secciones en .agents/instructions/, y una única carpeta de workflows, .agents/skills/. Claude Code, OpenCode y Codex leen las dos. AGENTS.md es el núcleo que carga en cada sesión; cada sección se lee cuando el pedido la necesita. Claude Code entra por CLAUDE.md, que es solo un import de una línea (@AGENTS.md), y por .claude/skills, un alias generado. Nada se duplica: lo que difiere entre harnesses (formato de MCP, API de hooks) vive en adaptadores finos.

La segunda idea es la del nombre de la casa, Planos: el agente escribe un plan antes de escribir código. Un plan de implementación por historia, un plan maestro de diseño, un desglose de épica. El plan se revisa, después se construye.

El detalle de cómo una fuente alimenta a los tres harnesses está en la página publicada Una fuente, tres harnesses.

02 arrancar

Maneras de empezar

Camino Cuándo Qué corrés
Scaffolder (recomendado) Proyecto nuevo, sin historia de git que conservar bunx create-agentic-dev@latest <repo>
Use this template en GitHub Querés el repo creado desde la UI de GitHub clonar, después bun install y bun setup
Clonar el boilerplate Vas a contribuir al boilerplate mismo bun install y bun setup
App existente Ya tenés una aplicación andando y querés sumarle la capa agentic sin pisar nada bunx create-agentic-dev --adopt dentro de la app, después /project-adoption en una sesión del agente

bun setup es el instalador: primero un chequeo previo que no escribe nada, después elegís los harnesses, cablea el .env para cada servidor que declara .mcp.json, instala las skills de la comunidad y genera las superficies por harness. Cuando la terminal tiene pantalla, la corrida se ve en una página local que abre sola: las fases en una línea de tiempo, cada pregunta como una tarjeta y un reporte final con lo que quedó pendiente. La terminal muestra siempre el log completo, y bun setup --headless deja todo en la terminal. Si algo queda a medias, bun run setup:doctor te dice qué falta y dónde se arregla. Para abrir el agente corré su propio binario en la carpeta del proyecto (claude, opencode o codex) o usá su app de escritorio. No hay script envoltorio: nada carga el .env en el proceso del agente, así que ningún secreto llega al shell de la IA. Cada servidor MCP lo lee por su cuenta con el loader de .env.

Un proyecto creado desde el boilerplate se mantiene al día con bun sync. El updater sincroniza lo que es del boilerplate y nunca pisa lo que es del proyecto: junta todas tus respuestas antes de escribir el primer archivo, y su reporte final (en la misma página local, o en la terminal con --headless) trae la tabla por superficie y un prompt de paridad para las filas que necesitan tu decisión.

Antes del primer bun setup necesitás Bun y al menos uno de Claude Code, OpenCode o Codex. El resto, el instalador te lo señala cuando lo necesita. Guía de problemas del instalador: INSTALLER.md.

03 las tres piezas

Skills con modos, scripts y variables

Skill

Lo que el agente sabe hacer

Un workflow en .agents/skills/<nombre>/. Se invoca por su nombre; si tiene varios modos, por nombre más modo.

Script

Lo que la máquina ejecuta

Comandos deterministas en package.json: sync con Jira, gates, setup. Las skills los llaman; vos también podés.

Variable

Lo que es de tu proyecto

.agents/project.yaml guarda la identidad y la política del proyecto; .env guarda las credenciales. Ninguna skill las inventa.

Cómo se invoca una skill

Harness Forma
Claude Code /project-context data
OpenCode, Codex en prosa: "cargá project-context, modo data"

No hay archivos de comando. Una skill con varios modos los lista en su propia sección ## Mode routing, y esa sección es la única lista. Muchas skills se cargan solas cuando tu pedido coincide con su descripción: "abrí un PR" carga /git-flow-master sin que la nombres. La decisión está registrada en ADR-0006.

El catálogo no está en esta página

La lista de skills cambia con cada release, así que no se copia acá. El catálogo es .agents/skills/REGISTRY.md, generado por bun run skills:registry: una entrada por skill con su propósito y sus reglas compactas. En tu proyecto, abrí tu propia copia; la del boilerplate está en GitHub. El ruteo por tarea (qué skill para qué pedido) está en .agents/instructions/agent-context-map.md y .agents/instructions/agent-skills-and-mcps.md.

Para leer el registro conviene saber que hay cuatro clases de skill: de workflow (conducen una fase entera, como /sprint-development), de contexto (guardan un mapa del negocio), utilitarias (envuelven una CLI, como /acli) y el núcleo agentic-dev-core, que no se invoca: guarda la doctrina que citan las demás.

04 el ciclo de vida

De la idea al producto mantenido

Fase Cadencia Skill Deja
Fundación una vez /project-foundation modelo de negocio, PRD, SRS, glosario de dominio, primeros ADR, mapas del negocio (delegados a /project-context)
Sistema de diseño una vez (tokens) y por historia (pantallas) /design-system DESIGN.md; después, mockups por historia encargados a una herramienta de diseño y ratificados por un humano
Scaffolding una vez /project-bootstrap backend, frontend, OpenAPI, auth, entornos, tipos de Supabase
Backlog continuo /product-management épicas e historias en Jira con criterios de aceptación refinados
Sprint por historia /sprint-development plan, código, PR revisado, deploy a staging, historia en Ready For QA
Mantenimiento cuando cambia algo /project-context (modos data, features, api, master-plan, dev-roadmap) mapas del negocio, plan maestro y roadmap al día

Alrededor del ciclo hay skills de apoyo que no son una fase: /unit-testing para TDD dentro de una historia, /testability-guide para la página que recibe QA, /pr-review-lead para revisar el PR de otra persona, /project-adoption para que el agente entienda una app que ya existía, /jira-administration para la configuración de Jira y /autonomous-delivery para corridas programadas sin nadie en la línea. Qué hace cada una, en REGISTRY.md.

05 una historia de punta a punta

Cinco etapas, y la última tiene una puerta

  1. ETAPA 1PlanPlan de implementación, publicado en el campo de Jira de la historia.
  2. ETAPA 2ImplementaciónCódigo, tests, tipos y lint en verde.
  3. ETAPA 3Code reviewPR abierto; un revisor independiente marca severidades.
  4. ETAPA 4StagingMerge con tu OK y deploy verificado por SHA.
  5. ETAPA 5 · PUERTAProducciónSolo con QA en verde y aprobación del negocio.

Lo conduce /sprint-development. Cada etapa alimenta a la siguiente, así que nunca corren en paralelo; el paralelismo vive adentro de una etapa. El merge nunca es automático: lo pedís vos. Bajo una estrategia sin rama de integración (como solo-main), el "staging" de la etapa 4 es el Preview deployment de la rama del PR.

Los estados que ve el equipo en Jira

Ready For Dev→ In Progress→ In Review→ Ready For QA→ QA y release

El fin de la etapa 1 mueve la historia a In Progress; abrir el PR la lleva a In Review; el deploy verde a staging la deja en Ready For QA. Si la automatización de Jira no dispara la transición, la skill la dispara y vuelve a leer el estado. Ninguna skill de desarrollo mueve una historia más allá de Ready For QA: probarla y liberarla es de QA y de quien hace el release. La tabla completa por tipo de issue vive en .agents/skills/agentic-dev-core/references/artifact-lifecycle.md.

Dónde se entrega a QA. Lo que QA recibe (la página /qa con el SHA del build, el deploy de staging, la historia en Ready For QA) está descrito en Cómo el dev le entrega trabajo a QA. La metodología de testing completa vive en el repo hermano, agentic-qa-boilerplate.

06 cómo trabaja el agente

Una conversación que dirige, subagentes que ejecutan

La sesión con la que hablás es el centro de mando. Leer muchos archivos, editar varios, correr verificaciones o hablar con Jira se delega a subagentes, cada uno con un briefing completo: objetivo, documentos a leer, reglas del proyecto resueltas desde REGISTRY.md, skills a cargar, instrucciones exactas, formato del reporte y reglas críticas. La plantilla es .agents/skills/agentic-dev-core/references/briefing-template.md. Un subagente ve solo su briefing, así que una regla que no viaja ahí no lo obliga.

Subagente (por defecto) Worker supervisado (opcional)
Vive dentro del turno hasta que se lo cierra
Contexto se pierde al reportar persiste; podés seguir hablándole
Git el índice de la sesión principal su propio worktree y rama, una historia por worker
Sirve para leer, mapear, verificar una historia entera hasta el PR

Los workers supervisados los coordina /orca-orchestration y solo existen si el runtime de Orca está disponible; si no, el repo ni los menciona y el trabajo corre en subagentes. Dos piezas más para trabajo largo:

  • Worktrees. Para aislar trabajo en paralelo: git worktree add, después bun run worktree:provision (copia .env, instala dependencias, crea el alias de skills), y antes de borrarlo bun run worktree:audit con --rescue.
  • Relevo de sesión. Cuando la ventana de contexto se llena, /session-handoff escribe un documento de relevo y lanza la sesión sucesora en el mismo worktree y el mismo harness.
07 cómo te habla

Primero la respuesta, después el menú

Capa Gobierna En la práctica
Concisión cuántas palabras sin relleno ni cortesías, sin plugin: sale de estas reglas y del OUTPUT STYLE; el código, los commits y los avisos de seguridad se escriben completos
Butler la granularidad un titular que resuelve tu pregunta y un menú de temas atómicos para que tires del que te importe
PM Voice el registro el titular habla del valor para el usuario, no del archivo tocado; pasa a registro técnico ante rutas, errores, seguridad o deploys
Visual Mapping la forma tablas, flujos y árboles cuando reemplazan a un párrafo

El titular abre directo con el valor, sin frase de enganche antes. El agente responde en el idioma en que le escribís; el código, los commits, los PR y los tickets van siempre en inglés. Para volver a un tono detallado alcanza con pedirlo ("habla normal"). El espejo humano del contrato es docs/ai-personality.md, y hay un deck sobre la capa comportamental.

08 git y trazabilidad

La estrategia es una variable, no un párrafo

Cómo se ramifica, se integra y se publica lo decide el bloque git_strategy de .agents/project.yaml. Toda operación de git pasa por /git-flow-master, que lee ese bloque y adapta ramas, commits, pushes y PR. El bloque llega con solo-main como valor por defecto; si nadie lo eligió para tu proyecto, la skill te ofrece la configuración inicial la primera vez que hagas algo con git.

  • Push a una rama protegida: lo resuelve git_strategy.policy.direct_push_to_protected. Con forbidden va por PR, con confirm pregunta cada vez, con allowed empuja sin preguntar.
  • Política contra el host: bun run git:policy verify compara lo declarado con lo que GitHub aplica de verdad (protección clásica y rulesets).
  • Commits forenses: todo commit de un agente termina con Worktree: y Session:, que dicen qué checkout y qué sesión lo produjeron. Ninguna línea nombra a una herramienta de IA.
  • Historia intocable: nunca se reescribe lo que ya está pusheado, nunca se fuerza un push sobre una rama compartida, y un PR nunca se mergea solo.
09 herramientas externas

Las skills piden capacidades; el harness las provee

Una skill no pide "el servidor X": declara la capacidad que necesita (library-docs, web-search, db, automation-flows, diagrams) y el agente la resuelve por el sufijo del nombre de la herramienta, con el prefijo que sea. Los servidores comprometidos en el repo son los que declara .mcp.json, con su equivalente en opencode.jsonc y .codex/config.toml. La búsqueda web se conecta a nivel del harness, nunca en esos archivos.

Si falta una capacidad, el agente se detiene. Te dice cuál es, qué servidor la suele proveer y cómo habilitarla. Lo mismo ante un 401 o 403 de un MCP: el fallo de credenciales es silencioso en todos los harnesses, así que el agente no improvisa un desvío. Arreglás el .env y reiniciás la sesión.

Las credenciales viven en .env (plantilla en .env.example). Cada servidor MCP que las necesita arranca con el loader de .env (varlock run --filter), que lee el .env al arrancar el servidor y le pasa solo sus variables, también en un lanzamiento sin línea de comandos (app de escritorio, worker supervisado). Nada se copia a otro archivo. El host de Atlassian no es una variable de entorno: vive en issue_tracker.atlassian_url del project.yaml y se imprime con bun run jira:url.

10 dónde vive el contexto

Jira es la verdad; el repo guarda lo que no está en Jira

Lugar Qué guarda Cómo se mantiene
.context/PBI/ caché local de épicas, historias y planes de Jira gitignored; se reconstruye con bun run context:hydrate. Nunca se edita a mano: se escribe en Jira y se sincroniza
.context/PRD/, .context/SRS/, .context/business/ definición del producto, arquitectura, glosario de dominio los crea /project-foundation; el glosario solo crece
.context/ADR/ decisiones de arquitectura difíciles de revertir se agregan, se reemplazan, nunca se borran
skills business-*-context mapas del negocio en HTML: datos, features, API se leen con bun run context:map <skill>; los genera /project-context
.context/design/master-design-plan.md especificación por pantalla y mapa historia → pantalla la fase de pantallas de /design-system

Y hay una memoria que cruza sesiones: Engram, instalado por bun setup, guarda decisiones, bugs resueltos y hallazgos para que la próxima sesión no arranque a ciegas. El deck la caché PBI de Jira explica por qué .context/PBI/ no se commitea.

11 quiero x, hago y

Pedidos frecuentes

Quiero Pedile al agente
definir un producto nuevo /project-foundation
fijar paleta, tipografía y tokens /design-system
un mockup para una historia que no tiene pantalla /design-system, fase de pantallas
montar backend, frontend y auth /project-bootstrap
crear una épica o refinar criterios de aceptación /product-management
implementar una historia de Jira /sprint-development con la clave de la historia
escribir tests unitarios con TDD /unit-testing
abrir un PR, resolver un conflicto, partir un PR enorme /git-flow-master (se carga solo ante un pedido de git)
revisar el PR de alguien /pr-review-lead
la página que QA necesita para probar /testability-guide
refrescar el mapa de datos del negocio /project-context data
saber cómo se guarda una entidad bun run context:map business-data-context
alinear los Components de Jira con los módulos reales /jira-administration components
varias historias en paralelo, una sesión por historia /orca-orchestration
seguir este trabajo en una sesión nueva /session-handoff
traer los cambios del boilerplate bun sync
12 diagnóstico

Cuando algo no anda

Script Responde
bun run setup:doctor qué falta en la instalación: credenciales, harnesses, contrato multi-harness
bun run repo:check el gate completo del repo: formato, lint, tipos, variables, docs, skills
bun run agents:compat:check si las superficies generadas por harness siguen en regla
bun run docs:check links muertos y hechos volátiles en la documentación
bun run skills:check que cada skill respete su contrato
bun run vars:check que cada {{VARIABLE}} resuelva contra project.yaml
bun run jira:check que el manifiesto de Jira coincida con el catálogo de la instancia
bun run harness:env:check que no quede ninguna copia en texto plano de credenciales MCP de una instalación vieja

Los comandos exactos los define package.json. Si una guía y package.json no coinciden, gana package.json.

13 adónde seguir

Siguiente lectura según lo que necesites

Los decks

Una guía visual por skill, publicada en el hub Planos.

→ hub Planos

El porqué

La filosofía del ciclo agéntico y cómo extenderlo.

→ agentic-development-engineering.md

Las guías

Setup, MCP, git, entornos y arquitecturas, en español.

→ docs/README.md

Las reglas del agente

Lo que el agente carga en cada sesión, con el router a sus secciones. Denso, escrito para máquinas.

→ AGENTS.md

El lado de QA

Cómo se prueba lo que el dev entrega, en el repo hermano.

→ agentic-qa-boilerplate