Spec Framework · guia de leitura

Framework de engenharia de produto para agentes de IA

Documentação como infraestrutura de engenharia

O Spec Framework é um método — e um CLI — que faz produto, especificação, planejamento, execução e auditoria funcionarem como um único pipeline rastreável, em vez de pedir a uma IA para "implementar uma feature" a partir de contexto solto. Cada mudança nasce de um problema real e chega ao código com rastreabilidade completa. O contrato canônico está em FRAMEWORK.md.

Problema Visão Estratégia Domínio Objetivo Feature Caso de uso Especificação Plano Grafo Tarefas Código Validação Auditoria

Primeiros passos

Instale a CLI, escolha sua situação atual e siga o caminho indicado.

1. Instale a CLI

Escolha o comando do seu sistema operacional. Ele baixa e verifica a versão mais recente da CLI. Nenhum projeto será criado durante a instalação.

Windows (PowerShell)

irm https://raw.githubusercontent.com/JonatasFreireDev/spec-framework/master/scripts/install.ps1 | iex

Linux / macOS

curl -fsSL https://raw.githubusercontent.com/JonatasFreireDev/spec-framework/master/scripts/install.sh | sh

Depois de instalar, execute spec-framework init somente no projeto que deseja preparar.

2. Escolha seu ponto de partida

Execute o comando abaixo e responda às perguntas do wizard. Ele ajudará você a escolher a opção que melhor representa o que existe hoje.

spec-framework init ../meu-produto

O ponto de partida define como o produto entra no framework. Ele não aprova documentos automaticamente e não remove validações das etapas seguintes. Consulte a referência de starting points e o mapa modular de artifacts para ver a composição inicial.

new-product · padrãoTenho uma ideia, mas o produto ainda precisa ser definido.

Use quando ainda não existe um produto operando nem uma entrega bem delimitada. Você começará esclarecendo o problema, a visão e a estratégia antes de criar features.

Exemplo: uma equipe quer criar uma plataforma para nutricionistas e pacientes, mas ainda precisa definir o público, o problema principal, a experiência e as métricas de sucesso.

Primeiro caminhoProblem → Vision → Product Principles → North Star → Strategy → Domain
Primeiro gateProblem revisado e aprovado.

Atenção: uma ideia, pesquisa ou oportunidade inicial ajuda a escrever a fundação, mas não substitui sua revisão e aprovação.

existing-productJá existe um produto real, com usuários ou operação.

Use quando o produto está em produção e há evidências como releases, métricas, suporte ou clientes. Primeiro registre a realidade atual; depois defina a direção futura.

Exemplo: um SaaS com clientes e releases frequentes, mas sem uma descrição confiável do público atual, das capacidades existentes e da estratégia.

Primeiro caminhoProduct Baseline → Strategy → Domain
Primeiro gateProduct Baseline aprovado com evidências operacionais.

Atenção: escolha esta opção pela existência de um produto em operação, não apenas porque existe um repositório com código.

existing-implementationTenho código, mas não sei exatamente qual produto ele representa.

Use para protótipos, projetos legados ou repositórios herdados sem evidência clara de operação. O código será analisado como evidência, não como verdade aprovada.

Exemplo: um repositório com backend, telas e banco de dados, mas sem certeza de lançamento, público ou comportamentos intencionais.

Primeiro caminhoImplementation Assessment → Problem → Vision → Principles e North Star → Strategy
Primeiro gateImplementation Assessment revisado e aprovado.

Atenção: o assessment registra o que o código demonstra e também o que não pode ser concluído a partir dele.

existing-documentsTenho PRDs, Jira, Confluence ou outros documentos para importar.

Use quando os documentos são a principal fonte disponível. A CLI cria um inventário e um mapeamento para revisão. Nada vira verdade do produto automaticamente.

Exemplo: visão e estratégia no Confluence, epics e critérios de aceitação no Jira, ou uma pasta com PRDs e documentos de arquitetura.

Primeiro caminhoInventário → Mapeamento → Revisão de conflitos → Materialização como draft
Primeiro gateRevisar mapping.json e conflicts.md antes de materializar.

Atenção: uma epic nem sempre representa uma Feature e uma story nem sempre representa um Use Case. O mapeamento precisa de revisão humana.

existing-featureQuero entregar uma única feature, pequena e bem definida.

Use quando o problema, o resultado esperado e os limites da entrega já estão claros. Esse caminho evita reconstruir toda a estratégia para uma mudança realmente proporcional.

Exemplo: adicionar pagamento via PIX ao checkout, com escopo, integração e métrica de sucesso conhecidos.

Primeiro caminhoFeature Brief → Domain → User Goal → Feature → Use Case → Specification
Primeiro gateFeature Brief aprovado e vinculado à feature alvo.

Atenção: não use quando a mudança envolve vários domínios, novo modelo de negócio ou uma alteração ampla de público e estratégia.

audit-onlyQuero encontrar gaps sem alterar o produto.

Use para diagnóstico ou consultoria sem autorização de escrita. Aprovações, imports, workspaces, movimentos e outras alterações ficam bloqueados.

Exemplo: uma avaliação de documentação, decisões, segurança e evidências de QA antes de autorizar qualquer mudança no produto.

Primeiro caminhoInspecionar → Validar → Reportar gaps → Encerrar
Primeiro gateNão há gate de escrita; o modo permanece somente leitura.

Atenção: continuar dos achados para trabalho de produto exige uma mudança explícita do ponto de partida.

3. Leia o Bootstrap e peça ajuda ao agente

Depois do init, o arquivo product/BOOTSTRAP.md explica o caminho escolhido para o seu produto. Leia esse arquivo antes de preencher documentos ou executar outros comandos.

O Bootstrap mostrao que o seu ponto de partida significa, qual é o próximo passo, quais arquivos o agente deve ler e qual gate depende da sua decisão.
Peça ao agente“Leia product/BOOTSTRAP.md e me conduza pelo próximo passo. Faça as perguntas necessárias, leia os arquivos indicados e proponha o conteúdo antes de escrever.”
Regra simpleso agente ajuda a entender e preencher drafts; aprovações e materializações continuam dependendo de uma confirmação humana explícita.

Se você não souber qual é o próximo passo, pergunte ao Framework Guide depois de ler o Bootstrap. Ele consulta o estado real do repositório antes de orientar.

O que é, na prática

Não é um gerador de arquivos. É um contrato entre produto e engenharia.

Em vez de o agente decidir sozinho o que construir, tudo passa por uma cadeia explícita — do Problema à Tarefa — onde cada elo só existe porque o anterior o justifica. Cada caso de uso vira uma Especificação antes de qualquer linha de código, e toda a árvore vive num diretório product/ versionado como um grafo de conhecimento: estado, decisões e histórico navegáveis por máquina, não só uma pasta de documentos soltos.

Quatro princípios sustentam tudo

Produto primeiro

Toda decisão técnica precisa manter rastreabilidade até uma necessidade real de produto.

Especificação como fonte de verdade

Histórias de usuário servem para comunicação; quem governa a implementação é a Especificação.

Gates de aprovação

Agentes propõem; mudanças de escopo, arquitetura, risco ou compromisso passam por aprovação humana explícita.

Grafo, não só pastas

Cada artefato tem id, pais, filhos, dependências e consumidores — navegável por máquina, não só por humano.

Modelo conceitual — do problema à tarefa

Os treze elos da cadeia, na ordem em que um deriva do outro. Nenhum nasce sem o anterior.

Problema

Define a dor, a oportunidade e o contexto de mercado. É a raiz de justificativa do produto.

Visão

Define o produto que se quer construir, para quem, por que agora e quais princípios guiam as decisões.

Estratégia

Define posicionamento, segmentos, métricas, trade-offs, roadmap e critérios para avançar ou pausar.

Domínio

Agrupa uma área coerente do negócio, como users, events ou payments. É o centro da documentação funcional — não existe pasta global de features.

Objetivo do usuário

O objetivo estável do usuário dentro de um domínio: "entrar em um evento", "encontrar pessoas". Substitui a noção genérica de "capacidade".

Feature

Solução concreta que atende a um objetivo. Features podem entrar, sair, evoluir, ser fatiadas ou substituídas.

Caso de uso

Interação verificável da feature — o ponto onde produto e engenharia se encontram para gerar uma Especificação implementável.

Especificação

Fonte de verdade para implementação: produto, fluxo, UI, APIs, dados, permissões, analytics, segurança, acessibilidade, erros, edge cases, observabilidade e aceite.

Design

Traduz a Especificação em experiência verificável. Sem interface, usa o status estruturado not_applicable com justificativa real. Página própria →

Engineering Proposal + Review

A solução técnica pretendida, descrita e revisada de forma independente antes do plano — obrigatória em Tier L. Página própria →

Plano de Implementação

Estratégia técnica: sequenciamento, fases, dependências, riscos, fatias, migrações, testes e rollout — sem escrever código.

Grafo de Execução

As tarefas como um DAG: cada nó é uma unidade executável com dependências explícitas e um path para seu arquivo canônico.

Tarefa

Unidade executável derivada da Especificação e do Grafo — pequena o bastante para implementar, testar, revisar e reverter. Vive em arquivo próprio; tasks.md é só índice.

Mecânica do método

Rigor Tier

S — baixo risco: especificação, tasks e testes. M — fluxo normal: soma design, plano e grafo. L — crítico: soma Engineering Proposal + Review, analytics, auditoria, QA Evidence e Security Review. Auth, permissões, pagamento, PII, upload ou UGC disparam Tier L automaticamente; S e M sobem de exigência quando há um engineering_trigger estruturado.

Identidade e slug

Todo artefato com pasta própria declara slug imutável em context.md. IDs são únicos dentro do escopo do pai; mover um artefato exige spec-framework move, que reescreve links mecânicos e reporta menções em texto livre.

Sistemas compartilhados

Produtos com fundações recorrentes podem declarar um Design System (tokens, componentes, padrões) e um Engineering System (arquitetura, ownership, qualidade) — ambos versionados, pinados por entrega e incapazes de aprovar qualquer coisa sozinhos. Veja os contratos de Engineering Systems e lifecycle e aprovações.

Decisões (DEC-*)

Mudanças de arquitetura, regra de negócio, segurança, permissões ou estratégia difícil de reverter viram registros DEC-* indexados em .product/decisions.json. Decisões de design ficam em design/decisions/, de engenharia em engineering/decisions/, e as transversais em knowledge/decisions/ — prosa de decisão nunca é executável.

Para CI e auditoria, use spec-framework decisions check --strict; --json gera findings estruturados e --fix-links apenas altera links mecanicamente resolvíveis quando combinado com --yes.

A escada de entrega

Cada nível responde "quando isto precisa existir no produto" — a prioridade organiza o que vem primeiro dentro do nível.

Um produto amadurece subindo degraus: cada nível só faz sentido apoiado no anterior. Um L5 brilhante em cima de um L1 que não fecha é um produto que não existe.

L5 · Growth

Crescimento, experimentos, personalização e otimização.

L4 · Operations

Operação, suporte, observabilidade, admin e escala.

L3 · Trust & Quality

Confiança, segurança, privacidade, moderação, acessibilidade.

L2 · Core Loop

Ciclo principal que gera valor recorrente para o usuário.

L1 · Walking Skeleton

Menor fluxo ponta a ponta que prova o valor central.

L0 · Foundation

Base sem a qual o produto ou o pipeline não sustentam entregas seguras.

Priority — ordena dentro do nível

P0bloqueia o nível atual — sem isso, o nível não fecha
P1necessário para considerar o nível pronto
P2importante, mas não bloqueia a entrega do nível
P3melhoria, polimento ou otimização

Regras que evitam roadmap por sensação

Delivery Level não é promessa de data. Ele responde apenas "quando isto precisa existir", nunca "quando será entregue".

Priority só se compara dentro do mesmo nível. Um L3/P0 pode ser crítico para confiança, mas ainda não passa na frente de um L1 que fecha o walking skeleton.

Dependência pode puxar uma entrega para um nível anterior — desde que a rationale explique o porquê, campo obrigatório em Domínio, Objetivo, Feature, Caso de Uso, Especificação, Plano, Grafo e Tarefa.

Mudar level ou priority altera compromisso de entrega e precisa passar por um gate de aprovação — não é um campo livre para o agente reescrever.

As skills

Especialistas com responsabilidade única — modos como create audit evolve

Cada skill declara uma única responsibility, lê o AGENTS.framework.md, FRAMEWORK.md, os context.md relevantes e as decisões aprovadas antes de agir, e para diante de aprovação humana pendente, conflito ou limite de tentativas. Todas operam nos mesmos quatro modos:

createproduz o primeiro artefato
updaterefina preservando contratos aprovados
auditdetecta estado obsoleto ou inseguro
explainresume estado e próximo passo

Fundação

Estabelecem por que o produto existe — antes de qualquer domínio ou feature.

Problem Discovery AI
Descobre dores, oportunidades e evidências de mercado.
Vision AI
Cria ou revisa visão, princípios e north star.
Strategy AI
Define posicionamento, segmentos, métricas e roadmap.
Domain Architect AI
Modela domínios e fronteiras do negócio.
User Goal AI
Modela objetivos estáveis do usuário dentro de um domínio.
Artifact Importer AI
Inventaria fontes, propõe mappings rastreáveis e materializa somente drafts explicitamente aprovados.

Design de produto

Transformam objetivos de usuário em features, casos de uso e experiência verificável.

Journey AI
Mapeia jornadas do usuário através de features.
Feature AI
Cria e evolui features que atendem um objetivo.
Use Case AI
Detalha interações verificáveis de uma feature.
UX/UI AI
Define fluxos, estados, wireframes e sistema de design.
UX Review AI
Revisão independente e somente-leitura do Design contra Especificação, fontes visuais, Design System e acessibilidade.
Design System AI
Cria, adota, evolui e audita o Design System compartilhado — fundações, tokens, componentes e padrões — antes de serem consumidos por um Design de caso de uso.

Especificação e planejamento

Convertem intenção em contratos: especificação, solução técnica, plano e DAG de tarefas.

Specification AI
Escreve o contrato central de implementação.
Engineering System AI
Mantém o Engineering System compartilhado (engineering-system.md + .yaml): arquitetura estável, ownership de módulos e dados, padrões e qualidade.
Engineering Proposal AI
Descreve a solução técnica pretendida de uma entrega — fronteiras, dados, integrações, rollout — sem sequenciar tarefas.
Technical Discovery AI
Mapeia requisitos ao código existente, riscos, dependências e ao Architecture Gate antes da proposta técnica.
Implementation Planner AI
Traduz a especificação em estratégia técnica.
Execution Graph AI
Converte o plano num DAG de tarefas paralelizável.
Task AI
Gera tarefas pequenas, testáveis e rastreáveis.

Engenharia e validação

Implementam e verificam — cada verificador é independente de quem produziu o que ele verifica.

Code Runner AI
Implementa uma tarefa aprovada por vez, em TDD, sem commitar.
Bug Fixer AI
Reproduz, corrige e valida defeitos dentro do escopo e dos gates aprovados.
QA AI
Valida comportamento, testes, edge cases e evidências.
Engineering Review AI
Veredito independente e somente-leitura sobre a Engineering Proposal, antes do Plano de Implementação. Não substitui Code Review, QA nem Security Review.
Code Review AI
Revisão somente-leitura de completude, aderência e qualidade.
Security Review AI
Avalia autenticação, privacidade, abuso e risco residual.
Threat Modeler AI
Modela ameaças e mantém o registro de segurança do produto.
Commit Crafter AI
Cria commits locais atômicos por concern, sem push.
PR Finalizer AI
Prepara ou abre PR com evidências, sem merge.
Command Planner AI
Transforma comandos pretendidos em planos R0/R1 revisáveis, sem executá-los.
Command Executor AI
Executa somente planos de comando aprovados e persiste evidência de resultado.
Release Publisher AI
Publica releases aprovadas, verifica checksums e executa smoke pós-publicação.

Auditoria

Analisam e reportam; não criam conteúdo de produto por padrão.

Gap Finder AI
Procura o que está faltando.
Conflict AI
Procura contradições entre artefatos.
Dependency AI
Encontra dependências implícitas.
Impact Analysis AI
Mede o efeito de uma mudança na árvore.
Evolution AI
Sugere melhorias candidatas.
Documentation AI
Mantém contexts, índices e templates sincronizados.
Product Historian AI
Registra decisões relevantes do produto.

Orquestradores

Camada de governança: controlam fluxo, ordem, gates e handoffs — nunca autoram artefato de especialista nem executam comando.

Framework Guide
Porta de entrada conversacional do CLI: traduz o objetivo da pessoa no comando seguro mais próximo, explica o gate ativo. Nunca autoria artefato nem aprova.
Product Orchestrator
Coordena Foundation, contratos proporcionais de entrada e o handoff inicial para domínios e entregas.
Documentation Orchestrator
Coordena sincronização de contexts, índices, templates, relatórios e documentação pública.
Domain Evolution Orchestrator
Leva metas aprovadas até a seleção humana de uma feature candidata.
New Feature Orchestrator
Impacto → Feature → Casos de Uso → Especificação → Design → Plano → Grafo → Tarefas.
Existing Product Import Orchestrator
Importa PRDs e epics existentes com aprovação humana antes de materializar.
Audit Orchestrator
Roda auditorias em lote: gap, conflito, dependência, impacto.
Evolution Orchestrator
Agrupa melhorias candidatas em um plano de evolução aprovável.
Execution Scheduler
Calcula ondas paralelas determinísticas a partir do DAG, writeScope e leases. Não executa nada.
Delivery Orchestrator
Roteia um workspace pelos orquestradores permitidos usando estado, handoffs e checkpoints; reporta tudo pelo modelo consolidado de dashboard. Nunca autoria artefatos.
Integration Orchestrator
Integra localmente, em ordem de DAG, commits de task já aprovados por Code Review e QA; exige Integrated QA.
Release Orchestrator
Checagem final: QA, review, security review e evidências antes de liberar.

O fluxo de Design

Nasce depois da Especificação aprovada. Termina num gate humano, antes do Plano de Implementação.

Design não é "fazer uma tela bonita" — é traduzir a Especificação aprovada numa experiência verificável, com origem e maturidade explícitas, fontes rastreadas por versão, e revisão independente antes do gate humano. Quando o caso de uso não tem interface, design.md ainda existe: registra Not applicable com a justificativa.

Duas dimensões independentes

origin_mode — de onde vem

generatecriada do zero a partir da Especificação
evolveuma interface existente é intencionalmente alterada
adoptfonte externa versionada é autoritativa (Figma, Penpot, imagens)

maturity — quão pronto está

contractdescrição textual dos estados e regras — o mínimo compatível
wireframeestrutura de layout sem estilo final
mockupvisual quase final, ainda não interativo
prototypenavegável, simula a experiência real

Uma fonte marcada visual_canonical só é autoritativa para apresentação e interação — decisões aprovadas e a Especificação continuam mandando em comportamento, segurança, privacidade e regra de negócio. O fluxo de Engenharia é o espelho técnico deste: mesmo modelo de origem, versão pinada e revisão independente.

Design System — fundação compartilhada, opcional

Produtos com telas recorrentes podem declarar um Design System canônico em design/system/: um contrato humano (design-system.md) e uma fonte mecânica de tokens (tokens/tokens.json), versionados semanticamente. Ele documenta fundações, componentes (anatomia, variantes, estados, acessibilidade) e padrões — mas não substitui a Especificação nem aprova o Design de um caso de uso.

Todo Design que consome o sistema precisa pinar o id/versão aprovado e registrar quais tokens, componentes, padrões e desvios usou. Mudanças que quebram compatibilidade exigem impacto, migração, depreciação e plano de rollback documentados antes de remover algo aprovado.

design/
  system/
    context.md
    design-system.md      contrato humano
    foundations/
    tokens/
      tokens.json          fonte mecânica
      themes.json
    components/
    patterns/
    sources/
    evidence/

Do gate de Especificação ao gate humano

Origem
UX/UI AIFixa origin_mode e registra fontes

Escolhe generate, evolve ou adopt — nunca promove uma referência a canônica por inferência. Toda fonte ganha autoridade, localização e versão ou hash imutável.

Cobertura
UX/UI AIMapeia telas a REQ/AC

Compara telas e estados contra os identificadores estáveis REQ-*/AC-* da Especificação e, se houver, contra o Design System declarado.

Pin
Design System pinado

Se o produto declara um sistema, o Design registra id/versão aprovados e os tokens, componentes e padrões consumidos — sem introduzir nada novo em silêncio.

Revisão
UX Review AIVerificação independente, somente leitura

Revisa identidade/autoridade/versão das fontes, cobertura de REQ/AC, estados (vazio, carregando, sucesso, erro, permissão negada), acessibilidade e fidelidade — nunca corrige nem aprova. Devolve approved, approved_with_notes ou blocked.

Aprovação
Gate humano de Design

Uma revisão limpa segue para aprovação humana explícita. Achados blocked voltam para UX/UI AI.

Handoff
Technical Discovery → EngenhariaRecebe o Design aprovado

Sem Design aprovado — ou com status estruturado not_applicable e justificativa — o fluxo não segue para Technical Discovery. Dali, quando aplicável, vêm Engineering Proposal e Engineering Review antes do Plano de Implementação.

Adapters — opcionais, nunca autoritativos sozinhos

Figmaimporta nós versionados como fonte canônica
Penpotalternativa open-source ao Figma
Impeccableadapter opcional de avaliação visual

Ferramentas e serviços de design são adapters — eles nunca substituem design.md nem o aprovam. Evidência importada ou gerada não é aprovação.

A gestão é supervisionada: adapters list/status/doctor são somente-leitura; adapters install exige versão explícita e --yes, mostra o comando exato do provedor antes de executar, e nunca reporta uma instalação falha como pronta. Nenhum adapter é obrigatório para a validação do framework.

O fluxo de Engenharia

O que o Design é para a experiência, o Engineering System é para a arquitetura: contrato compartilhado, versão pinada, revisão independente. Contrato técnico →

Sem um contrato estável, cada entrega redescobre a arquitetura a partir do código — e agentes chegam ao plano de implementação sem ninguém revisar a solução técnica pretendida. O Engineering System compartilhado registra o conhecimento estável de como o produto é construído e operado, e cada entrega relevante passa por uma Engineering Proposal com Engineering Review independente antes do Plano de Implementação.

Engineering System — conhecimento estável, versionado

Vive em engineering/, é opcional e declara origin_mode (generate/evolve/adopt) e versão semântica — o mesmo modelo do Design System. engineering-system.md é o contrato humano; engineering-system.yaml, o catálogo mecânico que os validadores leem.

Cada área (contexto de sistema, módulos, dados, qualidade, runbooks) declara uma maturidade que descreve a evidência disponível — nunca concede aprovação. Decisões de produto continuam sendo registros DEC-*; o sistema referencia, não substitui. É o espelho técnico do fluxo de Design: mesmo modelo de origem, versão pinada e revisão independente.

A aprovação do sistema é composta: contexto, contrato humano, catálogo, arquitetura, padrões, qualidade, runbooks e evidência são hasheados em ordem determinística de caminho — mudar qualquer contrato compartilhado invalida a aprovação e exige reaprovação humana.

engineering/
  context.md
  engineering-system.md    contrato humano
  engineering-system.yaml  catálogo mecânico
  architecture/            contexto, módulos
  standards/
  quality/                 modelo + fitness functions
  runbooks/
  evidence/

Escala de maturidade por área — evidência, não aprovação

baselinesó artefatos de produto
mappedmapeada ao código real
governedcom decisões e padrões
verifiedverificada por gates
operatedoperada com runbooks

Da Especificação aprovada ao Plano

Descoberta
Technical DiscoveryMapeia o real

Liga os requisitos aplicáveis ao codebase real e ao conhecimento estável em engineering/. Estado atual, não solução.

Arquitetura
Architecture Gate

Referencia uma decisão DEC-* aprovada, ou registra Not required com justificativa concreta.

Solução pretendida
Engineering Proposal AIDescreve a mudança

engineering-proposal.md: fronteiras, ownership de dados, integrações, dependências, operação, testes, rollout e desvios do sistema pinado. Linka o conhecimento estável em vez de duplicá-lo; não sequencia tarefas. Pina a versão do Engineering System ou declara explicitamente que não há sistema configurado.

Veredito
Engineering Review AIRevisão independente, somente leitura

Avalia arquitetura, decisões, ownership, dependências, atributos de qualidade, operação e testabilidade. Não edita a Proposal, não aprova decisões de produto e não substitui Code Review, QA ou Security Review. O veredito registra o hash SHA-256 da Proposal atual — qualquer mudança a torna obsoleta.

Planejamento
Implementation Planner AISó avança com Review aplicável aprovada

Com a solução revisada, o plano sequencia fases, fatias e riscos — e o fluxo segue para Grafo, Tarefas e Code Runner.

Quando Proposal + Review são obrigatórias

Rigor Tier Lsempre — junto de analytics, auditoria, QA Evidence e Security Review
Rigor Tier S ou Mquando o context.md declara ao menos um engineering_trigger estruturado

Lista fechada de triggers — a automação lê exatamente estes valores e nunca infere aplicabilidade a partir de prosa:

new_dependency
external_integration
data_ownership_change
migration
architecture_boundary_change
deployment_change
security_boundary_change
operational_change

Produtos existentes continuam válidos até um caso de uso ser migrado ou cair na regra do Tier L — o upgrade nunca cria registros de aprovação nem sobrescreve conteúdo de engenharia do adotante.

Gates de aprovação

Nenhum artefato avança sem um estado claro e, a partir de approved, um registro de aprovação com hash do conteúdo. Contrato completo →
draft proposed approved in_progress implemented validated released

materialized é um estado específico do Execution Graph: indica que os arquivos canônicos de tasks e o índice gerado já existem; não é um estado geral de artifacts.

Cada transição tem um preço

O estado diz o que o artefato é; o que interessa é o que ele exige para avançar. Marcadores âmbar são os gates que mais bloqueiam.

draft
Artefato criado, ainda incompleto

Para virar proposed: estar completo o bastante para revisão. Não exige registro de aprovação, mas não avança se o gate do pai estiver incompleto.

proposed
Pronto para revisão humana ou de auditoria

Para virar approved: um humano aprova explicitamente — nasce um registro em .product/history/ com artifact_id, content_hash, approved_by e data. Daqui em diante, todo avanço exige registro.

approved
Pode alimentar a próxima etapa

Para virar in_progress: uma tarefa aprovada — ou uma exceção explícita de protótipo/rascunho.

in_progress
Sendo implementado

Para virar implemented: evidência estruturada de working-tree — branch, base commit, changed paths, diff hash, testes e resultado dos gates. Commit ainda não é exigido.

implemented
Código ou artefato produzido

Para virar validated: QA Evidence sem bloqueios, Code Review sem blocker/required_fix — ambos sobre o mesmo diff hash — e Security Review aprovado quando há código, dados, permissões ou risco de privacidade. Depois, Commit Crafter registra os commits.

validated
Verificado com evidência real, não-placeholder

Para virar released: Release Orchestrator, auditoria sem bloqueios, riscos residuais aceitos, e rollback/monitoramento definidos.

released
Chegou ao usuário ou ambiente alvo

Fim de linha feliz. Os outros dois destinos possíveis: deprecated (não deve mais guiar implementações) e superseded (substituído por artefato mais recente).

Regras de transição que mais travam agentes

Code Runner pode produzir código e evidência técnica, mas não commita, não faz push, não faz merge, não cria registro de aprovação e não aprova QA.

Para uma tarefa individual, Code Review e QA precisam aprovar o mesmo diff hash atual antes de validated — qualquer mudança no código invalida as duas aprovações.

Bug Fixer reproduz o defeito com um teste que falha antes de corrigir, corrige a causa raiz com mudança mínima e deixa um teste de regressão permanente.

Uma fonte visual canônica (visual_canonical) precisa de versão ou hash imutável; estados obrigatórios faltando, conflito não resolvido com a Especificação, ou desvio de fidelidade não revisado bloqueiam o Design de avançar.

Quando o produto declara um Design System, o Design de um caso de uso em proposed ou posterior precisa pinar seu id/versão aprovado e não pode introduzir token, componente ou padrão compartilhado silenciosamente.

Artefato inaplicável precisa do status estruturado not_applicable com justificativa real — "Not applicable" solto no texto nunca satisfaz o gate.

Engineering Review aprovada registra o hash SHA-256 da Proposal atual; qualquer mudança na Proposal torna a Review obsoleta. A aprovação do Engineering System é composta: mudar qualquer contrato compartilhado exige reaprovação humana.

Entregas com superfície visual exigem evidência visual proporcional — captura local ou artefato de CI — mais verificação básica de acessibilidade (role/label, foco, alvo de toque, contraste).

Registros de aprovação usam hash SHA-256 do arquivo inteiro, com conteúdo normalizado — garante auditabilidade e um gate mecânico, não prova criptográfica de aprovação humana.

Staleness é uma condição derivada pelo validador, não um status editável: se o artefato de origem muda, o artefato derivado fica obsoleto e não avança em nenhum gate até ser regenerado ou reaprovado.

Da task aprovada até a entrega

Sim, existe um orquestrador dedicado a isso: o Delivery Orchestrator. Ele roteia, não implementa. Contrato de runtime →

Três papéis de governança

Depois que o Grafo de Execução está approved, quem toca cada task até a entrega:

Execution Scheduler

Calcula ondas paralelas determinísticas a partir do DAG, writeScope, sharedResources e leases ativas. Planeja; não spawna agentes.

Delivery Orchestrator

Roteia o WORK-NNN entre os orquestradores permitidos usando estado persistido, handoffs e checkpoints. Nunca autoria artefato nem executa comando.

Integration Orchestrator

Reintegra localmente, em ordem de DAG, os commits de task já validados — e exige Integrated QA antes do release. Conflito para para humano.

O fluxo, task a task

Planejamento
Execution SchedulerCalcula as ondas

A partir do DAG aprovado, writeScope, sharedResources e leases ativas, define quais tasks podem rodar em paralelo. Não spawna agentes.

Governança
Delivery OrchestratorRoteia o workspace

Lê estado persistido, hashes, dono e tentativas; roteia o WORK-NNN para o próximo especialista autorizado. Nunca autoria artefato nem executa comando.

Posse da task
LeaseReivindica a task

spec-framework lease claim --work WORK-001 --task TK-001 --agent codex --isolate — posse expirável, com heartbeat, opcionalmente em worktree Git isolado.

Implementação
Code Runner AIImplementa em TDD

Uma task aprovada por vez, respeitando o writeScope declarado. Para se faltar gate, decisão ou especificação. Não commita.

Evidência
Status implemented

Registra branch, base commit, changed paths, diff hash, testes e resultado dos gates — sem exigir commit ainda.

Verificação dupla
Code Review AI + QA AIAprovam o mesmo diff hash

Code Review avalia completude, aderência e qualidade (somente leitura). QA revalida critérios de aceite, edge cases e evidência. Qualquer mudança de código invalida as duas aprovações.

Integração
Integration OrchestratorReintegra em ordem de DAG

Monta um plano de cherry-pick ordenado dos commits de task já validados, produz um diff hash integrado e exige uma rodada de Integrated QA. Conflito não se resolve sozinho — para para humano.

Registro
Commit Crafter AICommits atômicos locais

Separa por concern, segue knowledge/conventions/commits.md. Sem push.

Handoff
PR Finalizer AIPrepara ou abre o PR

Confere gates, QA Evidence, Code Review e Security Review; liga evidências ao PR. Sem merge.

Liberação
Release OrchestratorChecagem final

Gaps, conflitos, docs, specs, design, tasks, testes, QA, review e security review antes de validated → released.

Quando algo falha — roteamento fixo

Defeito confirmado, regressão ou vulnerabilidadeBug Fixer — reproduz com teste que falha antes de corrigir
Teste ausente, oco ou sem cobertura negativaQA ou o dono do teste
Implementação incompleta ou fora do contratoCode Runner
Lacuna de decisão ou regra ambíguaProduct Historian + humano

Depois de qualquer mudança de código, o fluxo reentra no QA — gate vermelho não se pula. Cada gate ou finding tem um teto de três tentativas automatizadas antes de escalar para um humano.

Exemplo: uma feature nova

O mesmo pedido de sempre — "adiciona check-in por QR code" — passando pelo pipeline.

Check-in por QR Code

"Quero que as pessoas façam check-in num evento escaneando um QR code."

Feature AI
Cria FT-023 · QR Code Check-in dentro do domínio events, ligada ao objetivo "gerenciar evento".
Use Case AI
Detalha os casos de uso: gerar QR, escanear e validar, QR expirado. Define rigor_tier: L por lidar com dado sensível de presença.
Specification AI
Escreve o contrato: fluxo, estados de UI, API de validação, permissões, eventos de analytics, riscos de segurança (QR reutilizado, replay).
UX/UI AI
Produz design.md com a tela de scanner, estados de sucesso/erro e acessibilidade.
Engineering Proposal + Review
Por ser Tier L, a entrega exige engineering-proposal.md (fronteiras, dados, integrações, rollout, pinando o Engineering System) e um veredito independente em engineering-review.md antes do plano.
Implementation Planner + Execution Graph AI
Transformam a especificação num plano técnico e num DAG: TK-001 tabelas e políticas → TK-002 serviço de check-in → TK-003 UI do scanner → TK-004 analytics.
Code Runner AI
Implementa uma tarefa por vez, em TDD, respeitando o writeScope declarado — sem commitar.
QA AI + Security Review AI
Validam critérios de aceite, edge cases (QR expirado, duplo scan) e riscos de abuso, com evidência real.
Commit Crafter + PR Finalizer
Criam commits atômicos e preparam o PR com links de evidência — sem merge.
Release Orchestrator
Checa gaps, auditoria, security review e plano de rollback antes de liberar.

O Framework Guide

A skill que rege o CLI: você descreve o objetivo, ela devolve o menor comando seguro.

Ninguém precisa decorar os comandos da referência. O Framework Guide é a porta de entrada conversacional: você descreve o objetivo em linguagem natural, ele inspeciona o estado mecânico real (via help, dashboard, status, guide, next, review, impact, gates, validate) e devolve o menor comando seguro que avança um gate válido — nunca autoria artefato, nunca infere uma aprovação, nunca pula um gate.

Prioriza leitura

Antes de qualquer mutação, prefere inspeção somente-leitura. Só recomenda escrever algo depois de ler o context.md do escopo ativo, seus pais, aprovações e staleness.

Explica antes de agir

Toda resposta guiada deixa claro o que lê, o que escreve, e qual gate/aprovação está em jogo — mostra o comando exato antes de qualquer mutação consequente.

Para em autoridade humana

Exige identidade e confirmação explícitas para comandos de aprovação. Nunca converte "concordância na conversa" em registro de aprovação de produto.

Fronteira de ativação: o Framework Guide só ativa rotas de produto quando o repositório contém um product/.product/framework.json válido, com versão concreta pinada e activation.mode: manifest-only. Mencionar "spec framework" numa conversa não ativa nada; sem manifest, as únicas rotas permitidas são explicar ou rodar o bootstrap/init pedido explicitamente. Após ativar, o dispatcher usa o Framework Guide por padrão e resolve skills especializadas do cache versionado via spec-framework skill path <skill>. Uma retomada por handoff ou checkpoint deve ser revalidada com dashboard, status, next ou guide antes do roteamento direto.

Roteia por intenção

"Não tenho nem o CLI instalado"inspecionar e rodar scripts/install.ps1 / install.sh (pipe remoto é escolha explícita do usuário)
"Quero começar um produto"init <caminho>
"Tenho um produto operando, mas o código é a principal fonte"init --starting-point existing-product → Product Baseline → Strategy
"Tenho um épico e quero entregar uma feature específica"init --starting-point existing-feature → Feature Brief com Target Feature → work
"Tenho uma implementação e preciso reconstruir o produto"init --starting-point existing-implementation → Assessment → Foundation completa
"Quero apenas auditar, sem alterar nada"init --starting-point audit-only → inspeção sem flags de escrita
"Onde meu trabalho está?"dashboard · status · next
"Trazer épicos/PRDs existentes"init --starting-point existing-documentsimport materialize
"Revisar ou aprovar artifacts"approve para um arquivo; approve-batch para Foundation, IDs ou etapa; approve-stage mantém o fluxo por workspace
"Gerar, evoluir ou adotar Design"design init/import/register + UX/UI + UX Review
"Diagnosticar ou instalar um adapter visual"adapters list/status/doctorinstall --version ... --yes
"O que muda se eu alterar essa decisão?"impact
"Preparar para implementar"gates → prontidão do Grafo → prontidão da Tarefa
"Executar comandos governados"Command Planner → Command Executor
"Isso ainda está válido?"validate
"Atualizar o framework do projeto"inspecionar manifest e versão → upgrade --yes
"Atualizar ou remover o CLI"update --check / update --yes · uninstall / uninstall --purge --yes
"Meu repo antigo tem .spec-framework/ local"migrate external-runtime --dry-run → revisar → --yes
"Preparar a entrega"Delivery Orchestrator → Commit Crafter → PR Finalizer

Exemplo de uso

"Não sei o que fazer agora, só sei que preciso adicionar check-in por QR code no evento."

Goal

Framework Guide reformula em uma frase: criar uma feature nova dentro do domínio events.

Current state

Roda spec-framework dashboard --work WORK-001 (ou descobre que não há workspace e sugere work) para ver o gate ativo antes de recomendar qualquer coisa.

Recommended route

Como é uma feature nova, aponta para o New Feature Orchestrator: Feature AI → Use Case AI → Specification AI.

Command

spec-framework work --feature FT-023 --domain events --goal manage-event --created-by "Product Owner"

Reads / Writes

domains/events/context.md e o registro de features existentes. Escreve o workspace WORK-NNN — nenhum artefato de produto ainda.

Gate

Nenhum — é navegação, não precisa de aprovação.

Next

Depois do comando, relê o estado real (não assume sucesso) e devolve o próximo passo seguro: spec-framework next --work WORK-001.

Mais exemplos

Pedido de aprovação"Já terminei a especificação, pode aprovar?"
Framework Guide

Não aceita a frase como aprovação. Roda spec-framework review --work WORK-001 --stage specification para checar se há bloqueio pendente.

Se limpo

Mostra o comando exato e pede identidade humana explícita: spec-framework approve --artifact ... --grant approved --approved-by "<seu nome>" --yes.

Se travado

Explica o bloqueio real (ex.: contrato de segurança faltando) e roteia para a skill dona — não tenta contornar o gate.

Migrar decisões antigas"Tenho decisões de antes do DEC tipado, dá pra atualizar sem editar JSON na mão?"
Framework Guide

Reconhece a intenção de migração e recomenda inspecionar antes de mutar: spec-framework decisions migrate --product-root product --dry-run.

Preview

Mostra o tipo e escopo inferidos por decisão, cria backup automático e nunca muda conteúdo ou status do DEC original.

Confirmação

Só grava depois de --interactive ou --yes explícitos — valores ambíguos ficam como item de revisão manual.

Trabalho travado"O QA reprovou minha task, o que eu faço agora?"
Framework Guide

Lê o blocker real com spec-framework task readiness --graph ... --task TK-001 em vez de adivinhar a causa.

Roteamento

Segue a política fixa: defeito confirmado → Bug Fixer; teste faltando → volta pro dono do teste; ambiguidade de regra → Product Historian + humano.

Não faz

Não tenta corrigir o código nem aprovar QA sozinho — isso é autoridade de outra skill.

Trazer PRDs de um repositório antigo"Tenho uma pasta cheia de PRDs em Markdown, dá pra importar em vez de recriar tudo do zero?"
Framework Guide

Reconhece intenção de bootstrap a partir de documentos e recomenda spec-framework init --starting-point existing-documents --source-dir ../product-docs --yes.

Resultado

Cria um inventário e um run de importação somente-análise em product/knowledge/imports/ — nenhum artefato canônico ainda.

Aprovação humana

Conflitos nunca são resolvidos em silêncio. Só depois de revisar o mapeamento: spec-framework import materialize --run IMPORT-001 --approved-by "<seu nome>" --yes.

Feature quer virar tela"A especificação foi aprovada, como eu gero o design agora?"
Framework Guide

Confirma que a Especificação está approved antes de sugerir Design — sem isso, o comando nem existe como rota válida.

Rota

Pergunta origin_mode e aponta spec-framework design init --use-case <path> --mode generate, ou design register se houver uma fonte Figma/Penpot autoritativa.

Próximo gate

Depois de UX/UI AI produzir design.md, roteia para UX Review — Design só chega ao Implementation Planner com revisão limpa e aprovação humana.

Referência de comandos — CLI

Os mesmos comandos que o Framework Guide recomenda por trás — para copiar direto quando você já sabe o que quer.

1 · gerenciar a instalação e o runtime

# verificar e atualizar o CLI
spec-framework update --check
spec-framework update --yes
# atualizar o framework usado por este produto
spec-framework upgrade --yes
# inspecionar remoção e migrações antes de executar
spec-framework uninstall
spec-framework uninstall --purge --yes
spec-framework migrate external-runtime --dry-run
spec-framework decisions migrate --product-root product --dry-run

2 · criar um produto novo a partir do starter

# adiciona apenas product/ ao repositório; o método fica no cache versionado do usuário
spec-framework init ../meu-produto --agents codex --yes
# a instalação do CLI é separada e não abre o wizard
irm https://raw.githubusercontent.com/JonatasFreireDev/spec-framework/master/scripts/install.ps1 | iex

3 · navegar até uma feature e avançar sem "feature ativa global"

spec-framework work --feature FT-001 --domain events --goal manage-event --created-by "Product Owner"
spec-framework status --work WORK-001
spec-framework next --work WORK-001

4 · aprovar um artefato explicitamente

spec-framework approve --artifact domains/events/context.md --grant approved --approved-by "Product Owner" --yes
spec-framework gates

5 · revisar e aprovar um lote com escopo explícito

# preview: lista arquivos, hashes, ignorados, blockers e próximo gate
spec-framework approve-batch --foundation
spec-framework approve-batch --all-eligible --until specification --json
spec-framework approve-batch --foundation --approved-by "Product Owner" --interactive
# aplicar somente depois da confirmação humana explícita
spec-framework approve-batch --ids PRB-001,VIS-001 --approved-by "Product Owner" --yes

6 · operar o grafo de execução e checar prontidão de uma tarefa

spec-framework graph ready --graph domains/events/.../execution-graph.json
spec-framework graph materialize --graph domains/events/.../execution-graph.json --yes
spec-framework task readiness --graph domains/events/.../execution-graph.json --task TK-001

7 · resumir, arrendar e agendar execução governada

spec-framework resume --work WORK-001
spec-framework lease claim --work WORK-001 --graph domains/events/.../execution-graph.json --task TK-001 --agent codex --isolate
spec-framework schedule --work WORK-001 --graph domains/events/.../execution-graph.json --max-parallel 4

8 · revisar um estágio e medir o impacto de uma decisão

spec-framework review --work WORK-001 --stage tasks
spec-framework approve-stage --work WORK-001 --stage tasks --approved-by "Product Owner" --yes
spec-framework impact --decision DEC-021

9 · gerar, importar ou adotar Design; validar o Design System compartilhado

spec-framework design init --product-root product --use-case <path> --mode generate
spec-framework design register --product-root product --use-case <path> --type figma --source <url> --version <version> --authority visual-canonical
spec-framework design map --product-root product --use-case <path> --mappings mapping.json
spec-framework design audit --product-root product --use-case <path> --write-report

spec-framework design-system init --product-root product --mode generate
spec-framework design-system validate --product-root product

10 · manter o Engineering System compartilhado

spec-framework engineering-system inspect --product-root product
spec-framework engineering-system validate --product-root product
spec-framework engineering-system triggers --product-root product
spec-framework engineering-system migrate --product-root product --dry-run

11 · descobrir, diagnosticar e instalar adapters visuais opcionais

spec-framework adapters list
spec-framework adapters status impeccable
spec-framework adapters doctor impeccable --check-latest
# sem --yes é só preview; "latest" resolve para uma versão concreta antes de executar
spec-framework adapters install impeccable --version 2.3.2
spec-framework adapters install impeccable --version 2.3.2 --yes

12 · ver o estado consolidado do trabalho e migrar decisões antigas

spec-framework dashboard --work WORK-001
spec-framework status --work WORK-001 --graph --json
spec-framework decisions migrate --product-root product --interactive

13 · planejar comandos governados por risco (R0/R1) e validar

spec-framework commands plan --work WORK-001 --task TK-001 --risk R0 -- go test ./...
spec-framework validate

14 · bootstrap a partir de documentos existentes (epics, PRDs)

# cria um inventário e um run de importação, só análise
spec-framework init ../meu-produto --agents codex --starting-point existing-documents --source-dir ../product-docs --yes
# materializa artefatos de rascunho após aprovação humana explícita
spec-framework import materialize --run IMPORT-001 --approved-by "Product Owner" --yes

15 · atualizar o runtime externo e migrar repositórios legados

# atualiza o cache versionado e o manifest pinado, preservando product/
spec-framework upgrade --yes
# repositório antigo com .spec-framework/ local: preview antes de migrar
spec-framework migrate external-runtime --dry-run
# resolve o SKILL.md pinado de uma skill a partir do cache
spec-framework skill path code-runner

16 · operar o runtime resumível e a integração local

spec-framework runtime
spec-framework resume --work WORK-001
spec-framework checkpoint --work WORK-001
spec-framework handoff --work WORK-001
spec-framework integrate --work WORK-001

O CLI opera o método — cria workspaces, registra aprovações, materializa grafos, arrenda tasks — mas não invoca agentes automaticamente. Quem decide implementar continua sendo o agente (Codex, Claude, Cursor) lendo AGENTS.framework.md, FRAMEWORK.md e os context.md relevantes. A mecânica detalhada está em execution-runtime.md.