Skip to content

agent-spec-generate-tech-alignment ​

Shared Discovery

Resumo: Arquiteto de soluções. A partir de um PRD (SDD) ou Intent (miniSpec), propõe soluções técnicas para a feature. Em uma Fase 1, gera livremente — a partir do PRD/Intent + ancoragem no stack/ADRs — os pontos onde há solução técnica a propor (sem template, sem cota). Em uma Fase 2, lidera com a solução recomendada por ponto + alternativas viáveis com trade-offs, e registra as decisões (escolhida + rejeitadas + justificativa + trade-off) em um tech-alignment.md livre. Trava dupla: não reabre negócio/produto (o QUE/PORQUÊ vêm do PRD/Intent) nem desce a detalhe de implementação (endpoints/schemas/tabelas — isso é do TECH_SPEC/SCOPE). Compartilhado entre SDD e miniSpec via tech_alignment.path.


Quando usar ​

  • Após prd.md (SDD) ou intent.md (miniSpec) aprovado, para decidir a arquitetura antes do TECH_SPEC/SCOPE.
  • Quando há ≥ 1 decisão técnica não trivial a tomar (persistência, sincronismo, auth, contrato de integração, consistência).
  • Mesmo sem uma solução em mente — a skill propõe os caminhos, não exige que você traga a resposta pronta. Se a feature não forçar nenhuma decisão arquitetural aberta, a skill diz isso e registra os padrões herdados (não inventa pontos).

Quando NÃO usar ​


Inputs ​

InputOrigemObrigatório?
Caminho do prd.md (SDD) ou intent.md (miniSpec)Usuário (arg 1)Sim
Descrição técnica em texto livre do que você já imaginaUsuário (arg 2)Não — se vier, entra como uma das alternativas; se não, a skill propõe do zero
PRD/Intent + discovery (pre-refinement.md, pre-alignment.md, *handoff*.md)VarreduraSim
CLAUDE.md + .claude/rules/* + ADRs ativas (docs/adr/INDEX.md)AncoragemSim

A skill detecta o framework pelo nome do arquivo (prd.md → SDD; intent.md → miniSpec). Se não conseguir, pergunta.

Outputs ​

ArtefatoPath resolvidoConsumido por
tech-alignment.mdtech_alignment.path → /docs/specs/features/{feature}/{version}/tech-alignment.mdagent-spec-sdd-generate-tech-spec (SDD), agent-spec-minispec-generate-scope (miniSpec)

Path único e compartilhado entre os dois frameworks. Os consumidores tratam as decisões registradas como prioridade sobre suas próprias propostas e pré-leem o campo Variante como sugestão de default.


A trava dupla (o território da skill) ​

⚠️ Armadilha comum

A skill vive no meio de dois limites. Antes de levantar qualquer ponto, faça a pergunta de calibragem: "isso é uma escolha técnica de arquitetura?"

  • Limite superior — negócio/produto não entra. O QUE a feature faz e o POR QUÊ já foram decididos no PRD/Intent/pre-refinement. A skill não pergunta nem decide regra de negócio, escopo, prioridade ou política comercial. Forçar pontos para preencher cota leva direto a perguntas de negócio disfarçadas — o sintoma clássico de drift. Dependência de produto não resolvida → "Pontos em aberto", nunca decisão da skill.
  • Limite inferior — implementação não entra. Endpoints, schemas, tabelas, campos, arquivos, middlewares são do TECH_SPEC/SCOPE.

E a diferença entre propor e inventar é o ancoramento:

  • ✅ Propor (ancorado): "Para o cache local, vejo 3 caminhos dado o stack: (A) SQLite — o projeto já usa em X; (B) in-memory com TTL; (C) reusar o Redis do módulo Y. Recomendo C porque já está provisionado."
  • ❌ Inventar (sem âncora): cravar uma tecnologia que o projeto não tem, sem justificativa e sem marcar como hipótese.

Propor soluções — o método ​

A skill propõe: para cada ponto onde a feature força uma escolha de arquitetura, lidera com a solução recomendada e — quando há mais de um caminho viável — mostra 2-3 alternativas com exemplo, trade-off e viabilidade contra o projeto. Pergunta é exceção (dúvida técnica sobre o que existe ou confirmação), não default.

Um ponto só qualifica quando há ≥ 2 abordagens viáveis e o stack/ADRs/padrões não determinam já a resposta. Se já determinam → é restrição herdada. Se a feature não força nenhuma escolha → zero pontos é resposta válida.

💡 Dica

Simplicidade e escopo são princípio-guia. A recomendação default é sempre a mais simples que resolve o que a feature pede (KISS/YAGNI). A ancoragem no codebase serve a isso: reuso do que já existe (módulos, libs, infra provisionada) vence tecnologia/abstração nova — que só entra quando o existente comprovadamente não atende, marcada como hipótese. Nada mirabolante e nada de refactor/troca de stack fora do escopo: débito que a skill notar fora do escopo vai para "Pontos em aberto" como observação, nunca como proposta. Espelha a doutrina de executor-discipline (Simplicidade Primeiro / Mudanças Cirúrgicas) — a decisão tomada aqui é o que o executor vai implementar.


As 2 fases ​

Fase 1 — Gera os pontos livremente + direção recomendada ​

A skill lê o PRD/Intent + a ancoragem e gera livremente os pontos onde a feature força uma escolha de arquitetura — sem template e sem cota fixa. Cada ponto vem acompanhado da direção que a skill recomenda. Há um único checkpoint propositivo (não um questionário): "posso aprofundar nesses termos? faltou algum ponto técnico, ou há dúvida sobre o que já existe?". Se não houver ponto aberto, a skill diz isso e segue.

Fase 2 — Solução recomendada por ponto + alternativas ​

Para cada ponto, a skill lidera com a solução recomendada e — quando existe mais de um caminho viável — mostra 2-3 alternativas, cada uma com exemplo concreto + prós/contras + viabilidade (reusa X / requer Y novo / conflita com ADR-NNN). Decisão óbvia/determinada pelo projeto vira decisão direta (sem leque). Conflito com stack/ADR vira ponto de discussão técnica, não descarte silencioso.


Fronteira com ADR ​

Alcance da decisãoTratamento
Feature-scoped (default)Registrada no tech-alignment.md
Transversal / evergreen (vira padrão, afeta ≥ 2 features)A skill sinaliza e recomenda /agent-spec-adr-create "<titulo>" — não cria a ADR (a skill ADR revalida os critérios). O tech-alignment referencia a ADR

Espelha o padrão de agent-spec-challenge-spec: skills nunca criam ADR direto.


Limites duros ​

  • SEM reabrir negócio/produto (limite superior): proibido perguntar/decidir regra de negócio, escopo, prioridade, política comercial, comportamento de usuário. Dependência de produto não resolvida → "Pontos em aberto", não decisão da skill.
  • SEM detalhe de implementação (limite inferior): proibido endpoints, payloads/schemas, status codes, arquivos, campos/tabelas, middlewares, estrutura de pacotes, estratégia fina de testes. As soluções são arquiteturais, não de implementação.
  • SIMPLES E NO ESCOPO (KISS/YAGNI): recomenda a solução mais simples que resolve; prioriza reuso sobre tecnologia/abstração nova; nada mirabolante; nenhum refactor/troca de stack fora do escopo da feature.
  • SEM narrativa do refinamento ("o usuário deve poder…") — declaração técnica direta.
  • Alto nível — decide a forma da solução, não os detalhes. Tipicamente 40-100 linhas; qualidade das soluções > compressão.

Estrutura do tech-alignment.md (documento livre, sem template) ​

Não há template rígido — a skill escreve o documento livre (prosa ou bullets) e não força seções vazias. Ele deve conter, no mínimo, para o TECH_SPEC/SCOPE conseguir herdar:

Conteúdo mínimoO que registra
Metadadosfeature, versão, framework, variante, documento de entrada, discovery, ADRs consultadas, data, status
Contexto técnicoreescrita afiada do problema — vocabulário de arquiteto, invariantes
Soluções técnicas decididaspor ponto: solução recomendada/escolhida, alternativas avaliadas (quando houver), motivo, trade-off aceito (ou "decisão direta")
Candidatas a ADRdecisões transversais com /agent-spec-adr-create sugerido (se houver)
Restrições e invarianteso que qualquer implementação deve respeitar — inclui padrões herdados quando não há decisão aberta
Pontos em abertodecisões técnicas a critério do arquiteto + dependências de produto não resolvidas (sinalizadas, não decididas)

Fluxo de execução ​

  1. Detecta o framework pelo nome do arquivo (prd.md/intent.md).
  2. Resolve tech_alignment.path ({feature}/{version} extraídos do path do PRD/Intent).
  3. Ancoragem — lê PRD/Intent (QUE/PORQUÊ fechados) + discovery + stack + ADRs ativas.
  4. Fase 1 — gera os pontos livremente do PRD/Intent + ancoragem, já com a direção recomendada; um checkpoint propositivo.
  5. Fase 2 — lidera com a solução recomendada por ponto, mostra alternativas e converge.
  6. Consolida e registra as decisões (documento livre); marca candidatas a ADR.
  7. Salva como tech-alignment.md no path resolvido.

Gates invocados ​

Nenhum.

Templates / assets usados ​

  • Nenhum. O documento é gerado livre (sem template) — ver "Estrutura do tech-alignment.md" para o conteúdo mínimo.

Exemplo de uso ​

bash
# Com ideia inicial (entra como uma das alternativas):
/agent-spec-generate-tech-alignment docs/specs/features/pagamentos/v1/prd.md \
  "penso em REST + JWT, retry com backoff no PSP"

# Sem ideia (a skill propõe os caminhos do zero):
/agent-spec-generate-tech-alignment docs/specs/features/pagamentos/v1/prd.md
[Detecção: SDD (prd.md)]  [Ancoragem: Go + chi + Postgres; ADR-003 (auth via JWT)]
[Fase 1 — pontos gerados do PRD + direção recomendada]:
  D1. Estratégia de retry no PSP            → proponho backoff exponencial
  D2. Idempotência de cobrança              → proponho chave natural por pedido
  D3. Persistência do histórico de transações → proponho reusar Postgres existente
  (checkpoint propositivo: aprofundar nesses termos? faltou algum ponto técnico?)
[Fase 2 — D1]: recomendada backoff exponencial; alternativas (fila com DLQ / circuit breaker)
  + exemplo + trade-off
[Registro]: D1..D3 com escolhida/rejeitadas/trade-off (documento livre)
Candidatas a ADR: 1 (idempotência de cobrança — transversal) → /agent-spec-adr-create
✅ tech-alignment.md salvo

Skills relacionadas ​

Configuração via framework-paths.md ​

Paths usados: tech_alignment.path (único, compartilhado SDD + miniSpec). Veja Path Templates.

AgentSpec Framework · Spec-driven com IA sobre Claude Code