Templates e variants
Um template é o corpo
Seção intitulada “Um template é o corpo”Um template (o modelo) são as seções que um Blueprint (o plano) carrega: em ordem, sob nomes fixos, cada uma com orientação. Só o corpo; o frontmatter é gerado a partir da tabela de propriedades, e um template que carregue algum é uma falha.
Um arquivo por template em .eidos/templates/, nomeado <unit>.<variant>.md: a palavra para um dos Blueprints da coleção, depois a variant (a variante).
Directory.eidos/templates/
- spec.full.md
- spec.micro.md
- frame.architecture.md
- frame.audience.md
Variants
Seção intitulada “Variants”Os templates de uma coleção são variants de uma mesma família. Uma é a padrão. O que muda entre elas é quais seções aparecem, nunca a ordem ou os nomes.
As duas variants de spec da semente software:
spec.micro |
spec.full |
|---|---|
## Intent |
## Intent |
### Assumptions |
### Assumptions |
### Implementation Notes |
|
## Open Questions |
## Open Questions |
## Behaviors & Acceptance Criteria |
## Behaviors & Acceptance Criteria |
### Functional · ### Performance · ### Design · ### External interface · ### Quality attributes |
|
## Out of Scope |
## Out of Scope |
## Dependencies · ## Testing · ## Constraints & Decisions |
micro é a menor spec que vale a pena escrever: por que existe, o que você vai receber, o que ela não fará. Testes e dependências podem esperar; escopo, não.
Um Blueprint em uma variant que não é a padrão diz isso no frontmatter, variant: micro. Ausente significa a padrão. A validação verifica um Blueprint contra a variant que ele nomeia, então uma variant mais leve nunca é apontada por seções que só uma mais completa tem.
Fazendo um Blueprint crescer
Seção intitulada “Fazendo um Blueprint crescer”- Escreva-o como
microcedo, quando há mais pergunta do que resposta. - Acrescente as seções mais completas conforme elas merecerem o lugar: uma dependência real, uma decisão de fato tomada.
- Defina
variant: full(ou tire a propriedade) quando ele tiver crescido até lá.
Duas convenções
Seção intitulada “Duas convenções”Uma família de templates por coleção. Se metade das suas specs precisa de seções diferentes, isso é uma variant ou uma coleção diferente, nunca um segundo template contrabandeado para dentro da mesma.
Um template documenta as próprias convenções. Os nomes das seções, a sua ordem e qualquer rotulagem vivem no arquivo do template. O padrão rege coleções, templates, variants e propriedades; nunca rege uma seção. É por isso que ## Intent não aparece em lugar nenhum do EIDOS.md: é a palavra da semente software.
Como é um arquivo de template
Seção intitulada “Como é um arquivo de template”# {{title}}
## Intent
_Why this exists: the problem and who has it. This is the stable part: if Intentchanges substantially, you probably have a different spec._
### Assumptions
_What you're taking as given, not yet confirmed._
## Open Questions
_What you don't yet know and still need answered._
## Behaviors & Acceptance Criteria
_What it does, as observable outcomes. Label each **AC1:**, **AC2:**, …_
- **AC1:** <!-- the first observable outcome -->
## Out of Scope
_Explicit non-goals. The first thing to write, not the last._{{title}} é o único marcador. As linhas em itálico são orientação para apagar conforme você preenche cada seção.
Documentos de nível superior não têm template
Seção intitulada “Documentos de nível superior não têm template”Um documento de nível superior (uma Visão, um Roadmap) é único: escrito uma vez, revisado no lugar. Sem template, sem variants, sem validação. Um template ganha o seu lugar sendo carimbado de novo.
Na CLI: eidos new --variant <name> renderiza o corpo a partir daquele template; eidos check relata as seções que ele declara e faltam no corpo.