Nébula
GitHub

Engenharia

Structure

Define como o código e a documentação devem ser organizados para preservar coerência e escalabilidade.

structure.mdMARKDOWNLeitura: 4 minSeções: 21

Structure define a organização oficial de diretórios e arquivos do projeto — onde cada coisa deve existir, como nomear, como a estrutura física reflete a arquitetura lógica e como evoluir sem degradar rastreabilidade.

Fase: 4 — Design de Sistema
Pré-requisito: Docs/stack.md · Docs/architecture.md · Docs/contract.yaml aprovados
Template: Templates/Full/structure.md ou Templates/Quick/structure.md
Artefato oficial: Docs/structure.md
Próximo artefato: Docs/deploy.md · Docs/plan.md


Quando criar ou revisar

  • Antes do bootstrap estrutural do projeto (primeira task)
  • Novo módulo ou área de código identificada
  • Mudança de stack que afeta a organização de pastas
  • Conflito de localização identificado em code review
  • Adição de área de governança (Skills, Workflows, Quality)

Full vs Quick

SituaçãoTemplate
Projeto novo com múltiplas áreas (frontend, backend, infra, governança)Templates/Full/structure.md
Feature que adiciona 1-2 diretórios em estrutura já definidaTemplates/Quick/structure.md
Conflito de localização ou sobreposição de fonte de verdadeRevisar Full

Estrutura — Structure Full

O template Full tem 13 seções.

1. Identificação

Nome do projeto:
Versão do documento:
Status: [rascunho | revisando | aprovado]
Documentos base: Docs/stack.md, Docs/architecture.md, Docs/contract.yaml, Docs/deploy.md, Docs/plan.md
Data de criação:
Última atualização:

2. Objetivo do Documento

Cobre: árvore raiz do repositório, organização por área e responsabilidade, convenções de nomeação, regras de localização de código e testes, limites entre documentação e implementação.
Não cobre: implementação de casos de uso, regras visuais (Design System/Tokens), contrato funcional de endpoints.

3. Princípios Estruturais

- A estrutura física deve refletir a arquitetura lógica
- Cada pasta deve ter responsabilidade clara e único dono funcional
- Arquivos devem ser localizados por domínio, não por conveniência momentânea
- Testes, scripts e automações devem ter local próprio
- Evitar pasta genérica sem responsabilidade definida
- Evitar duplicação de fonte de verdade

4. Estratégia de Organização

Estratégia recomendada: modular por domínio + camadas internas por responsabilidade
 
Modelo operacional:
- Documentação de governança: raiz + pastas dedicadas (Skills, Workflows, Quality)
- Documentação oficial do projeto: Docs/
- Protótipos navegáveis: Prototype/
- Templates: Templates/
- Código de execução: apps/, services/, packages/ ou src/ (conforme stack)

5. Árvore Estrutural Canônica (Raiz)

.
├── README.md
├── GUIDE.md
├── Docs/
│   ├── README.md
│   ├── brief.md
│   ├── project.md
│   ├── stack.md
│   ├── user-stories.md
│   ├── pages.md
│   ├── flow.md
│   ├── design-system.md
│   ├── tokens.json
│   ├── entities.md
│   ├── architecture.md
│   ├── contract.yaml
│   ├── structure.md
│   ├── deploy.md
│   ├── plan.md
│   ├── tasks.md
│   └── control.md
├── Manual/
│   ├── 00README.md
│   ├── 01GUIDE.md
│   ├── 02AGENTS.md
│   ├── 03NO-AGENTS.md
│   ├── 04COMPONENTS.md
│   ├── 05SCENARIOS-AGENTS.md
│   ├── 06SCENARIOS-NO-AGENTS.md
│   └── 07..14 CREATE-AGENT-*.md
├── Prototype/
│   ├── 00README.md
│   ├── 01GUIDE.md
│   ├── index.html
│   ├── pages/
│   └── assets/
├── Quality/
│   ├── 00README.md
│   ├── 01GUIDE.md
│   ├── gate.md
│   ├── realistic-tests.md
│   ├── anti-mock.md
│   ├── code-style.md
│   └── dependencies.md
├── Skills/
│   ├── 00README.md
│   ├── 01GUIDE.md
│   └── *.md
├── Workflows/
│   ├── 00README.md
│   ├── 01GUIDE.md
│   └── *.md
├── Templates/
│   ├── Full/
│   └── Quick/
├── apps/                # opcional — conforme stack
├── services/            # opcional — conforme stack
├── packages/            # opcional — conforme stack
├── src/                 # opcional — conforme stack
├── tests/               # opcional — conforme stack
├── scripts/             # opcional — conforme stack
└── .github/
    └── workflows/
Importante

A árvore acima é a raiz canônica do framework. Para o projeto específico, expandir as pastas de código executável (apps/, services/, src/) com a estrutura real de módulos derivada da Docs/architecture.md.

6. Responsabilidade por Pasta

PastaResponsabilidade
Docs/Fonte de verdade de governança, execução e qualidade do projeto
Manual/Guias operacionais de uso do framework com e sem agentes
Prototype/Protótipos HTML de validação de interface e fluxo
Quality/Políticas obrigatórias de qualidade, gate e anti-mock
Skills/Conhecimento reutilizável por domínio técnico
Workflows/Fluxo operacional por tipo de mudança
Templates/Modelos oficiais de artefatos Full e Quick
apps/ services/ packages/ src/Implementação de produto
tests/Testes automatizados por nível (unitário, integração, e2e)
scripts/Automações executáveis (build, teste, verificação, release)
.github/workflows/Pipelines de CI/CD

7. Convenções de Nomeação

7.1 Arquivos

Raiz:                  README.md, GUIDE.md
Pastas de governança:  00README.md, 01GUIDE.md
Artefatos em Docs/:    nomes curtos em minúsculo (project.md, plan.md, tasks.md)
Skills:                nome.md
Workflows:             nome.md
Templates Full:        nome-curto.md | .yaml | .json
Templates Quick:       mesmo nome do Full em Templates/Quick/

7.2 Pastas

Governança (raiz):     PascalCase — Docs/, Skills/, Workflows/, Quality/, Templates/
Código executável:     kebab-case ou lowercase — src/, apps/, services/, packages/
Módulos de domínio:    kebab-case seguindo o nome da entidade/domínio

7.3 IDs de Rastreio

Tasks:      TASK-001, TASK-002, ...
Fases:      FASE-01, FASE-02, ...
Milestones: M1, M2, M3, ...
Entidades:  ENT-001, ENT-002, ...
Páginas:    PG-001, PG-002, ...
Fluxos:     FL-001, FL-002, ...

8. Regras de Localização de Conteúdo

- Documento de governança não entra em pasta de código
- Documento oficial do projeto fora de Docs/ é inválido
- Script operacional não fica em pasta de testes sem justificativa
- Contrato de API é exclusivo de Docs/contract.yaml
- Nenhum conteúdo duplicado sem declaração explícita de fonte de verdade
- Protótipo de UI fica exclusivamente em Prototype/ — não em src/ ou apps/

9. Regras de Criação e Edição

Primeira task obrigatoriamente bootstrap_estrutural:
  - Criar a árvore completa prevista para o projeto
  - Incluir todos os arquivos de governança (README nos diretórios)
  - Criar GUIDE.md e estrutura de Docs/
 
A partir da segunda task — apenas edição:
  - Task de edição só modifica arquivos existentes
  - Jamais criar novo arquivo em task com política de edição
  - Novas pastas ou arquivos exigem task com política bootstrap_estrutural
 
Comprometimento por task:
  - Cada task concluída gera exatamente 1 commit
  - Toda task registra: hash, arquivos tocados, Quality Gate

10. Regras de Qualidade Estrutural

- Estrutura deve ser verificável por script ou checklist
- Alteração estrutural atualiza structure.md e, quando necessário, plan.md/tasks.md
- Não concluir task com Quality Gate reprovado
- Manter compatibilidade de dependências conforme Quality/dependencies.md

11. Regras para Dev e AI

- Antes de editar, localizar o arquivo oficial responsável pelo conteúdo
- Não criar novos caminhos em task de edição
- Toda alteração estrutural deve ser explícita e rastreável
- Em conflito entre documentos: seguir regra de precedência do framework
- Regra de precedência: GUIDE.md > Docs/ > Manual/ > Skills/ > Workflows/

12. Checklist de Aderência Estrutural

( ) A árvore raiz está coerente com a estrutura canônica do framework
( ) Pastas de governança (Quality, Skills, Workflows) existem e estão completas
( ) Prototype/ existe para validação visual de fluxos
( ) Estrutura de código executável está definida (apps/, services/, packages/ ou src/)
( ) tests/ e scripts/ estão definidos quando aplicável
( ) Regra de bootstrap respeitada — toda árvore criada na task 001
( ) Regra de edição respeitada — nenhum arquivo novo fora de bootstrap
( ) Nenhum documento oficial salvo fora de Docs/

13. Síntese Operacional

Este documento define:
  - onde cada coisa deve existir
  - como nomear arquivos, pastas e IDs
  - como evoluir sem degradar organização
 
Este documento evita:
  - crescimento desordenado
  - acoplamento estrutural acidental
  - perda de rastreabilidade entre tasks
 
Este documento exige:
  - consistência com arquitetura (Docs/architecture.md)
  - consistência com metodologia (bootstrap antes de edição)
  - consistência com qualidade (Quality Gate antes de fechar task)

Vínculo com Fases e Milestones

FaseMilestoneEntrega estrutural
FASE 01M1Bootstrap estrutural completo e validado
FASE 02M2Implementação de funcionalidades nucleares com qualidade aprovada
FASE 03M2Consolidação técnica e cobertura de validações realistas
FASE 04M3Estabilização final e readiness para release

Prompt para gerar com agente

Atue como SystemAgent.
Objetivo: criar Docs/structure.md com base em Docs/architecture.md
 
Carregue contexto base:
- GUIDE.md
- Skills/implementation.md
- Templates/Full/structure.md
- Docs/architecture.md
- Docs/stack.md
 
Preencha as 13 seções do template Full.
Seção 5: expanda a árvore canônica com as pastas de código do projeto (apps/, services/, src/)
         refletindo os módulos definidos em Docs/architecture.md seção 7.
Seção 6: adicione responsabilidades específicas das pastas de código do projeto.
Seção 7: adapte convenções de nomeação conforme a stack definida em Docs/stack.md.
Seção 12: verificar checklist antes de dar como pronto.

Definição de pronto

O structure está pronto quando:

  1. Seção 5 tem a árvore completa incluindo pastas de código expandidas do projeto
  2. Seção 6 lista responsabilidade de cada pasta — sem "genérico"
  3. Seção 7 define convenções de nomeação por tipo de arquivo e pasta
  4. Seção 9 declara explicitamente a regra de bootstrap vs edição
  5. Seção 12 checklist preenchido e aprovado
  6. Aprovação implícita na seção 13 (síntese coerente com arquitetura)
Atenção

Structure sem a regra de bootstrap explícita (seção 9) é o erro mais custoso. Sem ela, a primeira task não sabe que deve criar toda a árvore — e o projeto começa sem estrutura definida. Isso resulta em arquivos em lugares errados que nunca são corrigidos.


Erros comuns

ErroCorreção
Artefato oficial salvo fora de Docs/Todo documento oficial do projeto vai em Docs/ — sem exceção
Saída final dentro de Templates/Templates/ é modelo — o artefato oficial vai em Docs/
Protótipo de UI em src/ ou apps/Protótipo fica exclusivamente em Prototype/
Regra de bootstrap ignoradaPrimeira task cria toda a árvore — segunda task só edita
Pastas sem responsabilidade definidaToda pasta deve ter dono funcional declarado na seção 6
Convenção de nome inconsistenteGovernança em PascalCase, código em kebab-case — sem mistura

Documentos que nascem de Structure

Docs/structure.md (aprovado)

Docs/deploy.md   — pipeline alinhado com estrutura de pastas e scripts/
Docs/plan.md     — bootstrap estrutural é a primeira fase e primeira task
Docs/tasks.md    — TASK-001 é sempre bootstrap_estrutural baseado neste documento