Planos · agentic-dev-boilerplate
00 · contexto del proyecto

El contexto que la IA lee antes de planear, escrito con evidencia y aprobado por ti.

/project-context genera y refresca los artefactos de contexto que las demás skills dan por hechos: los mapas de negocio (datos, features, API), el plan maestro de implementación y el roadmap de desarrollo. También arma una skill de contexto propia del proyecto para un aspecto que los mapas no cubren. Corre un modo por vez, y cuando el artefacto ya existe nunca lo pisa sin mostrarte el diff y esperar tu sí.

para quien lidera y quien desarrolla un modo por corrida lo que no se pudo verificar va a Discovery Gaps
Modo

Uno solo

El que nombras. Sin modo claro, la IA pregunta; nunca supone refresh-all.

→
Gate

Dependencias

Un gate duro faltante para la corrida. Uno blando queda anotado como hueco.

→
Fuentes

Leer todo

Código, esquema, contrato, PRD, tracker: lo que pida la referencia del modo, con las rutas y la fuente del esquema que declara stack:.

→
Candidato

Crear o actualizar

Si no existe, lo escribe. Si existe, arma el candidato y te muestra el diff.

→
Cierre

Tu sí, y verificar

Escribe solo lo aprobado y relee el resultado con el comando del artefacto.

01 · cuándo usarla

Cuando el modelo mental del proyecto falta o quedó viejo

Cada artefacto que produce es una síntesis: alguien leyó el código, el esquema y el backlog y escribió qué significa. Esta skill es la que hace esa lectura, y la vuelve a hacer cuando las fuentes cambian.

Úsala cuando

Hay que mapear, priorizar o secuenciar

  • "Mapea el dominio" · "inventario de features" · "cómo funciona el API": falta un mapa de negocio, o el código cambió y el mapa no.
  • "Plan maestro de implementación" · "qué construimos primero": orden de épicas y por qué.
  • "Roadmap de desarrollo" · "qué historia sigue": orden de tickets y qué destraba qué.
  • "Arma una skill de contexto para billing": un aspecto del producto que ningún mapa cubre y que una sesión leería mal sin reglas.
No la uses para

Lo que tiene otro dueño

  • El plan de una historia, archivo por archivo: eso es la etapa de planning de /sprint-development.
  • El catálogo completo de endpoints o los tipos del contrato: los da bun run api:sync sobre el spec OpenAPI.
  • Una skill data-context, feature-context o api-context: esos aspectos ya tienen dueño, las skills de mapa de negocio. El pedido se responde señalándolas.
  • Fechas de entrega: el plan maestro ordena trabajo, no lo estima.
02 · el mapa de modos

Cada modo es un flujo completo con su propia referencia

La IA carga solo la referencia del modo elegido y nunca abre una segunda en la misma pasada. No hay comandos de terminal para ellos: los viejos nombres (business-data-map, master-implementation-plan, dev-roadmap) sobreviven solo como frases que disparan el modo.

Modo Lee Escribe
data references/data.md business-data-context/references/business-data-map.html
features references/features.md business-feature-context/references/business-feature-map.html
api references/api.md business-api-context/references/business-api-map.html
master-plan references/master-plan.md .context/master-implementation-plan.md
dev-roadmap references/dev-roadmap.md .context/dev-roadmap.md
context-skill references/context-skill.md .agents/skills/<aspect>-context/

la tabla canónica es ## Mode routing en .agents/skills/project-context/SKILL.md; las rutas de los mapas son relativas a .agents/skills/

Los mapas viven dentro de una skill, no en .context/. Cada modo de mapa escribe solo el references/<map>.html de su skill, y lo lee y verifica con bun run context:map <skill>. La skill del mapa ya existe (la entrega bun sync); este modo nunca la crea. Qué es un mapa por dentro, cómo se lee por sección y cómo se mantiene honesto es tema del deck de las skills de contexto.
03 · el contrato

Las reglas que valen en cualquier modo

Viven en ## Compact Rules y ## Shared contract de la skill. Las compactas viajan a los subagentes a través de .agents/skills/REGISTRY.md.

Un modo por corrida. La primera palabra de los argumentos es el modo si coincide con uno; si no, sale de la frase; si tampoco, la IA pregunta. Un "refresca el contexto" a secas nunca es refresh-all.
Nunca inventa hechos de negocio. Lee cada fuente que pide la referencia, y lo que no pudo verificar va a la sección obligatoria ## Discovery Gaps del artefacto, no al cuerpo.
Nunca pisa sin aprobación. Un artefacto existente se actualiza con candidato, diff y tu sí explícito. Un mapa generado nunca se regenera entero.
El mapa viejo en markdown se lee, no se borra. Un .context/business/business-*-map.md de una versión anterior entra como insumo (la lista legacy de CONTEXT_MAP_SKILLS, en cli/lib/context-maps.ts) y queda donde estaba.
Capacidad faltante = parada en el punto de uso. Necesita db, library-docs, web-search y diagrams (las figuras de los mapas, resuelta por la presencia de la skill diagram-design). Sin una, nombra la capacidad y espera; nunca un sustituto silencioso.
Lee el bloque stack: una vez por corrida. Está en .agents/project.yaml y parametriza cada modo: app_root dice dónde está el código (una app por corrida; los otros workspaces de un monorepo quedan como Discovery Gap), database.schema_source dice si el esquema sale de la base en vivo por la capacidad db (live) o de los archivos de migración, leídos sin conexión (migrations; ahí db pasa a ser opcional), y una app que llama a Supabase directo desde su código tiene un API directo que el modo api también mapea. Sin el bloque usa los defaults de .agents/project.schema.yaml y deja un Discovery Gap que nombra bun run agents:setup --stack. Un valor null significa que la app no lo tiene: se salta y se dice.
Después de escribir, solo agrega el puntero que falte. Si el artefacto no figura en los Key paths compartidos ni en .agents/instructions/agent-project.md, lo suma en agent-project.md, nunca en AGENTS.md. Nunca escribe prosa operativa en CLAUDE.md, que es el shim generado.
El resto de los argumentos viaja tal cual. Ruta del proyecto, filtro de módulo, clave de épica o nombre de Master Sprint: lo que defina cada referencia.
04 · crear o actualizar

Si no existe, lo escribe. Si existe, te lo propone.

El modo CREATE o UPDATE no lo eliges tú: sale del estado del artefacto. Lo que cambia entre artefactos es qué parte se regenera en un UPDATE.

Artefacto Cómo detecta el estado CREATE UPDATE
Mapa de negocio bun run context:map <skill> --list: aviso de placeholder o lista de secciones Construye cada sección desde las fuentes y escribe el archivo una vez Chequeo de frescura por sección, regenera solo las secciones viejas, muestra un diff por sección y espera. Nunca cambia el id de una sección.
Plan maestro existe .context/master-implementation-plan.md? Lo genera de cero Versión nueva, resumen del diff, confirmación. Resalta lo que sube o baja de Master Sprint.
Roadmap de desarrollo existe .context/dev-roadmap.md? El documento completo Quirúrgico: regenera solo la sección de execution sprints y conserva lo escrito a mano (columna, aristas, gates, bloqueos locales).
Skill de contexto existe .agents/skills/<aspect>-context/? El andamio, después del análisis Candidato, diff, espera. Suma reglas con fecha; nunca reescribe una existente.
La IA hace

Detecta el estado, lee las fuentes, arma el candidato y lo compara con lo que hay.

Si un mapa cambió, revisa las ## Rules y los gotchas de su skill contra el mapa nuevo.

Tú decides

Si el diff entra. Sin tu sí, el artefacto existente no se toca.

Qué hacer con una regla que el mapa nuevo contradice: la IA la propone para "No longer true", nunca la borra.

Sale

Solo lo aprobado, más la sección discovery-gaps, aunque esté vacía: prueba que se buscó.

Gate para un mapa: bun run context:map <skill> --list imprime cada sección, con la fecha de la corrida en las escritas, y ningún aviso de placeholder.
05 · gates de dependencia

Un gate duro para la corrida. Uno blando deja un hueco anotado.

Cada referencia es dueña de la redacción exacta de su gate. La regla general: si sin la entrada el artefacto sería una lista de deseos, el gate es duro; si solo queda más pobre, es blando y la falta se registra como Discovery Gap.

Modo Gate duro (para) Gates blandos (Discovery Gap)
data ninguno: se invoca sola PRD y SRS bajo .context/ (sugiere /project-foundation)
features ninguno el mapa de datos
api sin spec OpenAPI, sin backend con rutas para escanear y sin API directa a Supabase el mapa de datos, el mapa de features
master-plan un mapa de datos generado el mapa de features
dev-roadmap al menos una épica con historias hijas en el tracker sus links de dependencia (sin ellos avisa y arma un grafo ralo, con las historias sin arista en un TODO de mapeo), el mapa de datos, master-design-plan.md, master-implementation-plan.md
context-skill lo que la skill va a cubrir tiene que existir: un mapa, un módulo, un contrato ninguno
"Mapa generado" se mide, no se suponebun run context:map business-data-context tiene que imprimir secciones. Un aviso de placeholder cuenta como "no hay mapa", nunca como un sistema vacío.
El mensaje de parada es literalUn gate duro corta con el texto exacto de su referencia, que nombra el paso que falta (por ejemplo, correr /project-context data antes del plan maestro).
Blando no es opcional en silencioLa corrida sigue, avisa, y la limitación queda escrita en el artefacto con la sugerencia de qué modo correr después.
06 · refresh-all

Todo el contexto, en un orden que no se negocia

Solo corre si lo pides explícitamente. Cada paso cierra su propia validación y su propia aprobación antes de que se cargue la referencia siguiente.

data

Primero, porque los demás lo usan: features y api lo leen, el plan maestro lo exige.

features

Cruza cada entidad del mapa de datos con su cobertura CRUD.

api

Apunta sus recorridos a entidades del mapa de datos y a features del mapa de features.

master-plan

Convierte los mapas en un orden de épicas por valor, bloqueo y urgencia.

dev-roadmap

Baja ese orden a tickets, con el grafo de dependencias del tracker.

Se detiene

Ante una parada dura o un no

  • Un gate duro que falla corta la cadena entera.
  • Un diff que rechazas también: no salta al paso siguiente.
  • Un gate blando faltante no la corta: queda como Discovery Gap, como en cada modo suelto.
Fuera de la cadena

context-skill nunca entra

  • Andamiar una skill de contexto es una decisión por aspecto, no un refresco.
  • /project-foundation, en su fase de Discovery, corre los mapas en el mismo orden (data → features → api) y deja el plan maestro para el final.
07 · modos data, features, api

Cada mapa, una mirada distinta sobre el mismo sistema

Cada mapa responde una pregunta distinta y cita a los otros por id de sección en vez de copiarlos. La regla de oro de todos: sintetizar, no volcar. El esquema lo sirve la base en vivo; el mapa escribe qué significa.

data · "dónde vive X y qué lo toca?"

Mapa de datos

Lee esquema, RLS y migraciones (por la capacidad db o, con schema_source: migrations, desde los archivos de migración), más backend, frontend, PRD y SRS. Escribe entidades con su rol de negocio, quién lee y escribe cada tabla, las migraciones que cambiaron el significado de una entidad, todos los flujos importantes (sin tope), máquinas de estado, procesos automáticos e integraciones.

features · "qué puede hacer el sistema?"

Mapa de features

Una feature es cualquier capacidad: endpoint, acción de UI, proceso de fondo, integración. Escribe el catálogo por dominio con su estado, la matriz CRUD por entidad, rutas, UI, integraciones y flags. Si el PRD y el código discrepan, gana el código y la diferencia va a Discovery Gaps.

api · "cómo opera el negocio a través del API?"

Mapa del API

Narrativo, no un catálogo de endpoints: modelo de auth por niveles, recorridos de negocio críticos trazados de punta a punta, arquitectura detrás del API e integraciones con su modo de falla visible. Lo que el spec OpenAPI ya expresa se enlaza, no se repite.

todos · antes de la primera figura

Figuras con diagram-design

Chequeo de la capacidad diagrams en el punto de uso. Cada hecho que muestra una figura también está en el texto: la IA lee solo el texto. Si la skill no está, para; nunca un SVG o un ASCII dibujado a mano en su lugar.

Cuando un mapa cambia, la judgment layer también se revisa. Después de escribir, la IA contrasta las ## Rules y references/gotchas.md de la skill del mapa con lo nuevo y propone cambios. Y si una skill de contexto del proyecto se apoya en ese mapa, ofrece correr context-skill en UPDATE: los hechos acaban de cambiar y ya hay un humano mirando un diff.
08 · modo master-plan

Qué construir, en qué orden, y por qué ese orden importa

La capa de estrategia que se apoya sobre los mapas. Escrita con voz de ingeniero senior hablándole a un tech lead que recién llega: guía, no catálogo.

Gate y lectura

Sin mapa de datos generado, para: un plan sin mapa de entidades y flujos es una lista de deseos. Sin mapa de features, avisa y sigue. Suma PRD, SRS, glosario y el log de git para saber qué ya se entregó.

Puntaje interno

Valor para el usuario × factor de bloqueo × urgencia. El producto ubica cada unidad en Master Sprint 0 (fundacional), 1 (MVP), 2 (posterior) o la deja diferida. La tabla de puntaje no se publica: se publican las conclusiones.

Dependencias y acoples ocultos

Traza qué destraba cada ítem fundacional y marca siempre las features que comparten una entidad pero viven en épicas distintas: el origen típico de un rediseño de esquema a mitad de sprint.

App adoptada (adopted: true en .template/installer.lock.json): el plan cubre solo el trabajo que falta. Lo ya entregado entra como una tabla "Baseline (already shipped)" encima de las prioridades y no se vuelve a puntuar ni cae en ningún Master Sprint; el Master Sprint 0 es lo fundacional que queda, nunca la reconstrucción de lo que ya corre.
La IA hace

Ordena cada prioridad citando evidencia: un flujo del mapa de datos, una fila del de features, una prioridad del PRD o una integración con nombre.

Tú decides

Si el orden propuesto entra. En UPDATE, mira primero lo que sube o baja de Master Sprint: son los cambios de más peso.

Sale

.context/master-implementation-plan.md, con huecos de implementación escritos como spikes.

Nunca fechas, código, payloads ni el plan de una historia. Después de un cambio en la estructura de Master Sprints, sigue /project-context dev-roadmap.
09 · modo dev-roadmap

Qué ticket sigue, y qué lo está bloqueando

La capa de secuencia. Convierte el grafo de links de dependencia del tracker y el contexto de diseño local en un orden de ejecución. Es dueño de las aristas y los gates; nunca del estado vivo de un ticket.

# tres documentos, tres altitudes
.context/master-implementation-plan.md   épica / estrategia   "qué construir y por qué ese orden"   ← master-plan
.context/dev-roadmap.md                  ticket / secuencia   "qué destraba qué, en qué sprint"     ← dev-roadmap
.context/PBI/.../implementation-plan.md  historia / archivos  "cómo se construye un ticket"        ← /sprint-development
Sección Qué guarda En un UPDATE
Columna de épicas Qué épica va antes de cuál, forzado por la topología de entidades del mapa de datos Se conserva lo escrito a mano
Grafo de historias Cada arista dura o blanda con su razón: lo que ningún otro lugar guarda Se conserva; lo nuevo se agrega y un conflicto se marca
Execution sprints Lotes paralelos por orden topológico (Kahn) Se regenera desde el grafo vivo
Gates de mockup Historias que no arrancan hasta que llegue su mockup Se conserva
Estado vivo Una receta de consulta, nunca una tabla de estado Solo se editan a mano las listas locales: bloqueos previos al desarrollo y aristas pendientes de mapear
Orden, no disponibilidadProhibido "listo", "disponible" o "se puede arrancar ya". Se escribe "trabajable una vez que PROJ-38 esté dev-done" o "sin aristas previas". Si se puede tomar depende del estado vivo, que esta página no conoce.
Dos fechas, nunca una"Edges last updated" y "Mockup gates last updated" por separado, más la línea "Status snapshot: none". Una sola fecha haría parecer fresco al estado.
Un ciclo frena todoSi el grafo tiene un ciclo, la corrida se detiene, nombra las claves y te pide reorientar un link. Nunca rompe un ciclo sola.
Catálogo de links al díabun run jira:sync-link-types antes de ordenar: un catálogo viejo confunde dependencias con relaciones y corrompe el orden.
Ninguna arista inventadaUna dependencia que "se siente" es una señal de refinamiento: se agrega el link en el tracker y se vuelve a correr.
Quién lo usa. /sprint-development lo consulta en su Phase 0b antes de tomar un ticket, y consulta el tracker en vivo para el candidato y sus bloqueadores directos. /product-management le delega el orden de sprints: el algoritmo sigue definido en su references/sprint-sequencing.md, y la escritura pasa por este modo.
10 · modo context-skill

Las reglas para leer bien un aspecto que nadie mapeó

Una skill <aspect>-context (billing, auth, una integración como stripe) es la judgment layer sobre ese aspecto. Las fuentes guardan los hechos; la skill guarda las reglas para leerlos sin equivocarse.

Antes de escribir

Lee completo lo que va a cubrir y lista cada lugar donde una sesión competente leería mal: borrados lógicos, columnas derivadas, RLS que esconde filas a un rol, estados con nombres distintos en base, API y UI, comportamiento que cambia entre staging y producción.

Filtro de tres preguntas

Si se puede regenerar, se queda en el mapa o el código. Si es un hecho, también. Solo el criterio que tiene que llegar sin que nadie lo pida se vuelve regla, con fecha y con cómo se midió. Sin medición, no hay regla.

Construir con skill-creator

SKILL.md desde la plantilla de agentic-dev-core/references/skill-scaffold.md, con metadata.kind: context, más references/gotchas.md. Si el builder no está instalado, arma el andamio desde la plantilla y lo dice en el reporte.

Gate de validación

Lo que tiene que dar verde

  • bun run skills:check: KIND-SUFFIX y STALE-PATH, estricto para una skill de contexto (cada ruta de .context/ que cita tiene que existir).
  • bun run skills:registry: el bloque nuevo aparece en REGISTRY.md con kind: context.
  • Una fila en la tabla «Project context skills» de .agents/instructions/agent-project.md, con los triggers que la enrutan. Nunca en agent-skills-and-mcps.md: bun sync lo pisa en cada actualización.
Nunca

Copiar ni salir de su lugar

  • Copiar una tabla, una lista de entidades o de endpoints de un mapa: la skill cita, no duplica.
  • Subirla al boilerplate: es del proyecto por construcción, y bun sync nunca la entrega, la pisa ni la borra.
  • Escribir en Jira o Confluence, o editar otra skill.
11 · qué le dices a la IA

Invocarla en las tres terminales

El nombre de la skill más el modo. La primera palabra después del nombre elige el modo, y el resto llega intacto a su referencia.

Claude Code

/project-context data

Barra de la skill más el modo. Sin modo, la IA lo saca de la frase o pregunta.

OpenCode

carga la skill project-context, modo master-plan

Sin barra: nombras la skill y el modo en la frase.

Codex

carga la skill project-context, modo dev-roadmap

Mismo patrón que OpenCode, CLI o Desktop.

# un mapa acotado a un módulo
/project-context data module=billing

# el roadmap de una sola épica (o un nombre de Master Sprint)
/project-context dev-roadmap {{PROJECT_KEY}}-12

# una skill de contexto propia, sobre algo que ya existe
/project-context context-skill billing

# todo, en orden, con una aprobación por paso
/project-context refresh-all

# leer un mapa ya generado: el reader, nunca el HTML crudo
bun run context:map business-data-context --section entities
12 · alrededor de esta skill

Con quién trabaja

Al entrar resuelve sus categorías complementarias (backend-db, issue-tracker, meta-skill) desde .agents/skills/REGISTRY.md.

Antes · la fundación

/project-foundation

Su fase de Discovery orquesta los modos de esta skill para dejar armado el modelo mental que las demás dan por hecho. Deck: cómo funciona project-foundation.

Antes · el backlog

/product-management

Siembra las épicas e historias que el roadmap necesita, y le delega la escritura del orden de sprints. Deck: cómo funciona product-management.

Después · cada historia

/sprint-development

Lee los mapas por sección al planear y consulta el roadmap en su Phase 0b. Deck: cómo funciona sprint-development.

Al lado · los mockups

/design-system

El mapa US→Screen de master-design-plan.md alimenta los gates de mockup del roadmap (el contrato de fidelidad de UI de AGENTS.md). Deck: flujo de mockups.

Al entrar · composables

supabase · /acli

supabase para leer el esquema vivo en los modos de mapa; /acli antes de cualquier lectura de Jira en el roadmap y el plan maestro.

Al entrar · constructores

skill-creator · diagram-design

skill-creator construye cada skill de contexto; diagram-design dibuja las figuras de los mapas.

Para leer más: .agents/skills/project-context/SKILL.md y sus referencias en references/, una por modo. La anatomía de un mapa, su lectura por sección, el chequeo de frescura y la auto-actualización están en business-context-maps.md.