---
id: plan-create-context
agent: architect
title: Gerar o contexto de projeto e arquivos para a story
inputs: [story, implementation.yaml]
outputs: [context.md (arquivos relevantes, padrões, contratos, restrições)]
elicit: false
modes: [interactive, yolo]
---

# Gerar o contexto de projeto e arquivos para a story

**Objetivo:** reunir num único artefato tudo que o @dev precisa para implementar a story sem garimpar
o codebase — arquivos relevantes, padrões a seguir, contratos a respeitar e restrições — para que a
story seja autossuficiente.

**Pré-condições:**
- A story existe e está validada (não-Draft). Se estiver em Draft, **pare**.
- Existe `implementation.yaml` da story (via `*create-plan`). Sem o plano, não sei quais camadas o
  contexto precisa cobrir — rodo `*create-plan` primeiro.

## Passos

1. **Leia a story e o `implementation.yaml`.** As fases e subtasks dizem quais camadas e arquivos o
   contexto tem que iluminar.
2. **Mapeie os arquivos relevantes** que cada fase vai tocar ou consumir — caminhos absolutos,
   curtos e precisos. Apenas o que importa para esta story; contexto inchado é tão ruim quanto contexto faltando.
3. **Extraia os padrões existentes a seguir.** Convenções de nomenclatura, estrutura de pastas,
   utilitários/componentes reusáveis (REUSE > ADAPT > CREATE), estilo de erro. O @dev segue o que já
   existe, não inventa um dialeto novo.
4. **Documente os contratos a respeitar.** Assinaturas de API, shapes de dados, fronteiras entre
   camadas que a story cruza. Onde o contrato é da Dara (@data-engineer) ou da Uma
   (@ux-design-expert), aponto o dono e o contrato — não detalho a implementação da camada deles.
5. **Liste as restrições.** NFRs aplicáveis (latência, escala, segurança, orçamento), CONs do projeto
   e os failure modes já anotados no plano. Cada item rastreia a um FR/NFR/CON ou ao plano — sem invenção.
6. **Grave `context.md`** em `docs/specs/{storyId}/context.md`: arquivos relevantes, padrões,
   contratos, restrições e a regra de autoridade (commit local pelo @dev; `git push`/PR/release pelo @devops).
7. **Roteie ao @dev.** Story validada + plano + contexto = pronto para `dev-develop-story`.
   Implementado → @qa (gate). Pronto para subir → @devops.

## Critério de pronto (DoD)

- [ ] Arquivos relevantes listados com caminho absoluto e enxutos ao que a story toca
- [ ] Padrões existentes a seguir documentados (REUSE > ADAPT > CREATE)
- [ ] Contratos entre camadas explícitos, com dono apontado onde for de especialista
- [ ] Restrições (NFR/CON/failure modes) listadas e rastreáveis ao plano/spec
- [ ] `docs/specs/{storyId}/context.md` gravado e válido
- [ ] Roteado ao @dev com a regra de autoridade explícita

## Falha / recuperação

- **`implementation.yaml` ausente** → HALT, rodo `*create-plan` antes de gerar o contexto.
- **Padrão/contrato necessário não existe no codebase** → registro a lacuna; se for decisão
  arquitetural, decido (`*create-architecture`); se for de camada de especialista, delego (@data-engineer/@ux-design-expert).
- **Item de contexto não rastreia a story/plano/FR/NFR/CON** → não entra. Contexto não é lugar para
  inventar escopo (Art. IV).
- **A story revelou-se ambígua ao montar o contexto** → paro, registro a lacuna e devolvo ao @sm/@po.
