Skip to content

Latest commit

 

History

History
1031 lines (820 loc) · 28.8 KB

File metadata and controls

1031 lines (820 loc) · 28.8 KB

Spec Pipeline Workflow - Documentação Completa

Versão: 1.0 Criado: 2026-01-28 Autor: @architect (Aria) Epic: Epic 3 - Spec Pipeline Status: Ativo


1. Visão Geral

O Spec Pipeline e um workflow orquestrado que transforma requisitos informais em especificações executaveis. Ele e parte da infraestrutura Auto-Claude ADE (Autonomous Development Engine) e implementa um fluxo de 5 fases principais que se adaptam dinamicamente baseado na complexidade do requisito.

1.1 Propósito

  • Transformar descricoes informais de usuarios em especificações formais e estruturadas
  • Garantir qualidade e consistencia atraves de gates de validação
  • Adaptar o nivel de profundidade baseado na complexidade detectada
  • Produzir artefatos rastreavies desde requisitos ate implementação

1.2 Principios Fundamentais

Principio Descrição
No Invention Nenhuma informação inventada - apenas derivação dos inputs
Traceability Todo statement deve rastrear para um requisito ou pesquisa
Adaptive Phases Fases ajustadas automaticamente pela complexidade
Quality Gates Validacao obrigatoria antes de avancar

2. Diagrama do Workflow

2.1 Fluxo Principal

flowchart TB
    subgraph TRIGGER["Gatilhos"]
        T1["*create-spec STORY-ID"]
        T2["story_created<br/>(autoSpec.enabled)"]
    end

    subgraph PREFLIGHT["Pre-Flight Checks"]
        PF1["story_exists<br/>Verificar/criar diretorio"]
        PF2["no_existing_spec<br/>Evitar sobrescrita"]
        PF3["agents_available<br/>Verificar configuracao"]
    end

    subgraph PHASE1["Fase 1: Gather Requirements"]
        direction TB
        G1["@pm (Morgan)"]
        G2["Elicitação Interativa<br/>9 categorias de perguntas"]
        G3["requirements.json"]
        G1 --> G2 --> G3
    end

    subgraph PHASE2["Fase 2: Assess Complexity"]
        direction TB
        A1["@architect (Aria)"]
        A2["Avaliar 5 dimensoes:<br/>Scope, Integration, Infra,<br/>Knowledge, Risk"]
        A3["complexity.json<br/>SIMPLE | STANDARD | COMPLEX"]
        A1 --> A2 --> A3
    end

    subgraph PHASE3["Fase 3: Research Dependencies"]
        direction TB
        R1["@analyst (Atlas)"]
        R2["Context7 + EXA<br/>Validar dependencias"]
        R3["research.json"]
        R1 --> R2 --> R3
    end

    subgraph PHASE4["Fase 4: Write Specification"]
        direction TB
        W1["@pm (Morgan)"]
        W2["Gerar spec.md<br/>Sem invencao"]
        W3["spec.md"]
        W1 --> W2 --> W3
    end

    subgraph PHASE5["Fase 5: Critique Specification"]
        direction TB
        C1["@qa (Quinn)"]
        C2["Avaliar 5 dimensoes:<br/>Accuracy, Completeness,<br/>Consistency, Feasibility,<br/>Alignment"]
        C3{"Verdict"}
        C4["APPROVED"]
        C5["NEEDS_REVISION"]
        C6["BLOCKED"]
        C1 --> C2 --> C3
        C3 --> C4
        C3 --> C5
        C3 --> C6
    end

    subgraph PHASE5B["Fase 5b: Revise (COMPLEX)"]
        REV1["@pm (Morgan)"]
        REV2["Aplicar feedback<br/>e auto-fixes"]
    end

    subgraph PHASE6["Fase 6: Create Plan"]
        direction TB
        P1["@architect (Aria)"]
        P2["Gerar implementation.yaml<br/>Subtasks atomicas"]
        P3["plan.json"]
        P1 --> P2 --> P3
    end

    subgraph COMPLETION["Conclusão"]
        DONE["Pipeline Complete"]
        ARTIFACTS["Artefatos Gerados"]
    end

    T1 --> PREFLIGHT
    T2 --> PREFLIGHT
    PREFLIGHT --> PHASE1
    PHASE1 --> PHASE2
    PHASE2 --> PHASE3
    PHASE3 --> PHASE4
    PHASE4 --> PHASE5
    C4 --> PHASE6
    C5 --> PHASE5B
    PHASE5B --> PHASE5
    C6 -.-> |"Escalar para @architect"| HALT["HALT"]
    PHASE6 --> COMPLETION

    style TRIGGER fill:#e1f5fe
    style PREFLIGHT fill:#fff3e0
    style PHASE1 fill:#e8f5e9
    style PHASE2 fill:#fce4ec
    style PHASE3 fill:#f3e5f5
    style PHASE4 fill:#e8f5e9
    style PHASE5 fill:#fff8e1
    style PHASE5B fill:#ffebee
    style PHASE6 fill:#e0f2f1
    style COMPLETION fill:#c8e6c9
Loading

2.2 Fluxo por Complexidade

flowchart LR
    subgraph SIMPLE["SIMPLE (score <= 8)"]
        S1["Gather"] --> S2["Spec"] --> S3["Critique"]
    end

    subgraph STANDARD["STANDARD (score 9-15)"]
        ST1["Gather"] --> ST2["Assess"] --> ST3["Research"] --> ST4["Spec"] --> ST5["Critique"] --> ST6["Plan"]
    end

    subgraph COMPLEX["COMPLEX (score >= 16)"]
        C1["Gather"] --> C2["Assess"] --> C3["Research"] --> C4["Spec"] --> C5["Critique 1"] --> C6["Revise"] --> C7["Critique 2"] --> C8["Plan"]
    end

    style SIMPLE fill:#c8e6c9
    style STANDARD fill:#fff9c4
    style COMPLEX fill:#ffcdd2
Loading

2.3 Diagrama de Sequência

sequenceDiagram
    autonumber
    participant U as Usuario
    participant PM as @pm (Morgan)
    participant AR as @architect (Aria)
    participant AN as @analyst (Atlas)
    participant QA as @qa (Quinn)
    participant FS as File System

    U->>PM: *create-spec STORY-42

    Note over PM: Fase 1: Gather
    PM->>U: Perguntas de elicitacao (9 categorias)
    U->>PM: Respostas dos requisitos
    PM->>FS: Salvar requirements.json

    Note over AR: Fase 2: Assess
    AR->>FS: Ler requirements.json
    AR->>AR: Avaliar 5 dimensoes de complexidade
    AR->>FS: Salvar complexity.json

    alt Complexidade != SIMPLE
        Note over AN: Fase 3: Research
        AN->>FS: Ler requirements + complexity
        AN->>AN: Pesquisar via Context7 + EXA
        AN->>FS: Salvar research.json
    end

    Note over PM: Fase 4: Write Spec
    PM->>FS: Ler todos os artefatos
    PM->>PM: Gerar spec.md (sem invencao)
    PM->>FS: Salvar spec.md

    Note over QA: Fase 5: Critique
    QA->>FS: Ler spec + requirements
    QA->>QA: Avaliar 5 dimensoes de qualidade
    QA->>FS: Salvar critique.json

    alt Verdict = APPROVED
        Note over AR: Fase 6: Plan
        AR->>FS: Ler spec aprovado
        AR->>AR: Gerar plano de implementação
        AR->>FS: Salvar plan.json
        AR->>U: Pipeline Complete!
    else Verdict = NEEDS_REVISION
        QA->>PM: Retornar com feedback
        PM->>PM: Aplicar correcoes
        PM->>QA: Submeter revisao
    else Verdict = BLOCKED
        QA->>AR: Escalar para revisao arquitetural
    end
Loading

3. Steps Detalhados

3.1 Fase 1: Gather Requirements

Atributo Valor
Step ID gather
Phase Number 1
Agente @pm (Morgan)
Task spec-gather-requirements.md
Elicit Sim - requer interação do usuario

Inputs

Input Tipo Obrigatório Descrição
storyId string Sim ID da story sendo especificada
source enum Não Fonte: prd, user, existing
prdPath string Não Caminho para PRD se source=prd

Outputs

Output Localização
requirements.json docs/stories/{storyId}/spec/requirements.json

Processo de Elicitação (9 Categorias)

mindmap
  root((Elicitação))
    Funcionais
      Q1: O que o sistema deve FAZER?
      Follow-ups sobre usuarios e triggers
    Restrições
      Q2: Restrições tecnicas/negocio?
      Tempo, integrações, stack
    NFR
      Q3: Requisitos nao-funcionais?
      Performance, seguranca, escala
    Aceite
      Q4: Criterios de aceite?
      Formato Given-When-Then
    Suposições
      Q5: Suposições assumidas?
      Riscos se estiverem erradas
    Dominio
      Q6: Entidades e relacionamentos?
      Modelo de dominio
    Interação
      Q7: Como usuario interage?
      Fluxos UX, estados
    Edge Cases
      Q8: O que pode dar errado?
      Tratamento de erros
    Terminologia
      Q9: Glossario do dominio?
      Termos especificos
Loading

Estrutura do Output (requirements.json)

{
  "storyId": "STORY-42",
  "gatheredAt": "2026-01-28T10:00:00Z",
  "source": "user",
  "gatheredBy": "@pm",
  "elicitationVersion": "2.0",
  "functional": [
    {
      "id": "FR-1",
      "description": "Permitir login com Google OAuth",
      "priority": "P0",
      "rationale": "Principal metodo de autenticação",
      "acceptance": ["AC-1"]
    }
  ],
  "nonFunctional": [...],
  "constraints": [...],
  "assumptions": [...],
  "domainModel": [...],
  "interactions": [...],
  "edgeCases": [...],
  "terminology": [...],
  "openQuestions": [...]
}

3.2 Fase 2: Assess Complexity

Atributo Valor
Step ID assess
Phase Number 2
Agente @architect (Aria)
Task spec-assess-complexity.md
Skip Condition source === 'simple' OR overrideComplexity === 'SIMPLE'

Inputs

Input Tipo Obrigatório Descrição
storyId string Sim ID da story
requirements file Sim requirements.json
overrideComplexity enum Não Override manual: SIMPLE, STANDARD, COMPLEX

Outputs

Output Localização
complexity.json docs/stories/{storyId}/spec/complexity.json

5 Dimensões de Complexidade

radar
    title Dimensões de Complexidade (1-5)
    "Scope" : 3
    "Integration" : 4
    "Infrastructure" : 2
    "Knowledge" : 3
    "Risk" : 3
Loading
Dimensão Score 1 Score 3 Score 5
Scope 1-2 arquivos 6-10 arquivos 20+ arquivos
Integration Nenhuma externa 1-2 APIs externas Orquestração multipla
Infrastructure Nenhuma mudança Nova dependencia Nova infraestrutura
Knowledge Padroes existentes Nova biblioteca Dominio desconhecido
Risk Baixo, isolado Medio, importante Critico, core do sistema

Thresholds de Classificação

Classificação Score Total Fases Ativadas Tempo Estimado
SIMPLE <= 8 gather, spec, critique 30-60 min
STANDARD 9-15 gather, assess, research, spec, critique, plan 2-4 horas
COMPLEX >= 16 + revise, critique_2 4-8 horas

3.3 Fase 3: Research Dependencies

Atributo Valor
Step ID research
Phase Number 3
Agente @analyst (Atlas)
Task spec-research-dependencies.md
Skip Condition complexity.result === 'SIMPLE'
Tools Context7, EXA

Inputs

Input Tipo Obrigatório Descrição
storyId string Sim ID da story
requirements file Sim requirements.json
complexity file Sim complexity.json

Outputs

Output Localização
research.json docs/stories/{storyId}/spec/research.json

Fluxo de Pesquisa

flowchart LR
    subgraph Extract["1. Extrair Alvos"]
        E1["Libraries<br/>APIs<br/>Concepts<br/>Infrastructure"]
    end

    subgraph Check["2. Verificar Codebase"]
        C1["package.json"]
        C2["imports existentes"]
        C3["padroes similares"]
    end

    subgraph Research["3. Pesquisar"]
        R1["Context7<br/>(Primario)"]
        R2["EXA<br/>(Fallback)"]
    end

    subgraph Validate["4. Validar"]
        V1["technical-preferences.md"]
        V2["Conflitos?<br/>Alternativas?"]
    end

    subgraph Output["5. Output"]
        O1["research.json"]
    end

    Extract --> Check --> Research --> Validate --> Output

    style Research fill:#e3f2fd
Loading

Prioridade de Ferramentas

Ferramenta Prioridade Timeout Uso
Context7 1 (primaria) 30s Documentação de bibliotecas
EXA 2 (fallback) - Pesquisa web geral
Codebase - - Verificar implementações existentes

3.4 Fase 4: Write Specification

Atributo Valor
Step ID spec
Phase Number 4
Agente @pm (Morgan)
Task spec-write-spec.md
Constitutional Gate Article IV - No Invention

Inputs

Input Tipo Obrigatório Descrição
storyId string Sim ID da story
requirements file Sim requirements.json
complexity file Não complexity.json
research file Não research.json

Outputs

Output Localização
spec.md docs/stories/{storyId}/spec/spec.md

Constitutional Gate: No Invention

flowchart TB
    subgraph RULE["Regra Article IV - No Invention"]
        direction TB
        R1["Todo statement DEVE rastrear para:"]
        R2["FR-* (Requisito Funcional)"]
        R3["NFR-* (Requisito Não-Funcional)"]
        R4["CON-* (Restrição)"]
        R5["Research finding verificado"]
    end

    subgraph VIOLATION["Violações"]
        V1["Adicionar features nao listadas"]
        V2["Assumir detalhes nao pesquisados"]
        V3["Especificar tech nao validada"]
        V4["Criar criterios de aceite inventados"]
    end

    subgraph ACTION["Ação em Violacao"]
        A1["BLOCK"]
        A2["Remover conteudo inventado"]
        A3["OU adicionar a Open Questions"]
    end

    RULE --> |"Se violado"| VIOLATION
    VIOLATION --> ACTION

    style RULE fill:#c8e6c9
    style VIOLATION fill:#ffcdd2
    style ACTION fill:#fff9c4
Loading

Estrutura do spec.md

1. Overview
   1.1 Goals
   1.2 Non-Goals
2. Requirements Summary
   2.1 Functional Requirements
   2.2 Non-Functional Requirements
   2.3 Constraints
3. Technical Approach
   3.1 Architecture Overview
   3.2 Component Design
   3.3 Data Flow
4. Dependencies
   4.1 External Dependencies
   4.2 Internal Dependencies
5. Files to Modify/Create
   5.1 New Files
   5.2 Modified Files
6. Testing Strategy
   6.1 Unit Tests
   6.2 Integration Tests
   6.3 Acceptance Tests (Given-When-Then)
7. Risks & Mitigations
8. Open Questions
9. Implementation Checklist

3.5 Fase 5: Critique Specification

Atributo Valor
Step ID critique
Phase Number 5
Agente @qa (Quinn)
Task spec-critique.md
Gate Blocking (APPROVED/NEEDS_REVISION/BLOCKED)

Inputs

Input Tipo Obrigatório Descrição
storyId string Sim ID da story
spec file Sim spec.md
requirements file Sim requirements.json
complexity file Não complexity.json
research file Não research.json

Outputs

Output Localização
critique.json docs/stories/{storyId}/spec/critique.json

5 Dimensões de Qualidade

pie showData
    title Peso das Dimensões
    "Accuracy" : 25
    "Completeness" : 25
    "Consistency" : 20
    "Feasibility" : 15
    "Alignment" : 15
Loading
Dimensão Peso Verifica
Accuracy 25% Spec reflete requisitos corretamente?
Completeness 25% Todas secoes preenchidas? Tests cobrem FRs?
Consistency 20% IDs validos? Sem contradicoes?
Feasibility 15% Tecnicamente possivel? Dependencias existem?
Alignment 15% Alinhado com stack e padroes do projeto?

Lógica de Verdict

flowchart TB
    START["Iniciar Avaliacao"] --> EVAL["Avaliar 5 Dimensões"]

    EVAL --> CHECK1{"HIGH severity<br/>issues?"}
    CHECK1 -->|Sim| BLOCKED["BLOCKED"]
    CHECK1 -->|Não| CHECK2{"Average<br/>score >= 4.0?"}

    CHECK2 -->|Sim| CHECK3{"Todas dimensoes<br/>>= 3?"}
    CHECK3 -->|Sim| APPROVED["APPROVED"]
    CHECK3 -->|Não| NEEDS["NEEDS_REVISION"]

    CHECK2 -->|Não| CHECK4{"Average<br/>score >= 3.0?"}
    CHECK4 -->|Sim| NEEDS
    CHECK4 -->|Não| BLOCKED

    APPROVED --> PLAN["Ir para Fase 6: Plan"]
    NEEDS --> REVISE["Retornar para Fase 4"]
    BLOCKED --> HALT["HALT + Escalar @architect"]

    style APPROVED fill:#c8e6c9
    style NEEDS fill:#fff9c4
    style BLOCKED fill:#ffcdd2
Loading
Verdict Condição Próxima Ação
APPROVED No HIGH issues, avg >= 4.0, all >= 3 Ir para Plan
NEEDS_REVISION MEDIUM issues OR avg 3.0-3.9 Retornar para Spec Write
BLOCKED HIGH issues OR avg < 3.0 OR any <= 1 Escalar para @architect

3.6 Fase 5b: Revise Specification

Atributo Valor
Step ID revise
Phase Number 5b
Agente @pm (Morgan)
Condition complexity.result === 'COMPLEX' OR critique.verdict === 'NEEDS_REVISION'

Inputs

Input Tipo Obrigatório Descrição
storyId string Sim ID da story
spec file Sim spec.md atual
critique file Sim critique.json com feedback

Outputs

Output Localização
spec.md (updated) docs/stories/{storyId}/spec/spec.md

3.7 Fase 5c: Second Critique

Atributo Valor
Step ID critique_2
Phase Number 5c
Agente @qa (Quinn)
Task spec-critique.md
Condition complexity.result === 'COMPLEX'

Nota: Segunda critica e mais leniente em issues MEDIUM se houver melhoria demonstrada.


3.8 Fase 6: Create Implementation Plan

Atributo Valor
Step ID plan
Phase Number 6
Agente @architect (Aria)
Task plan-create-implementation.md
Condition critique.verdict === 'APPROVED'

Inputs

Input Tipo Obrigatório Descrição
storyId string Sim ID da story
spec file Sim spec.md aprovado
complexity file Não complexity.json

Outputs

Output Localização
plan.json docs/stories/{storyId}/plan/implementation.yaml

Regras de Subtasks

Regra Descrição
Single Service 1 servico por subtask (frontend, backend, database, infra)
File Limit Maximo 3 arquivos por subtask
Verification Required Cada subtask DEVE ter verificacao definida
Dependency Order Database > Backend > Frontend > Integration

4. Agentes Participantes

graph LR
    subgraph AGENTS["Agentes do Spec Pipeline"]
        PM["@pm<br/>Morgan<br/>Product Manager"]
        AR["@architect<br/>Aria<br/>Architect"]
        AN["@analyst<br/>Atlas<br/>Business Analyst"]
        QA["@qa<br/>Quinn<br/>Test Architect"]
    end

    PM --> |"Fase 1, 4, 5b"| G1["Gather<br/>Write Spec<br/>Revise"]
    AR --> |"Fase 2, 6"| G2["Assess<br/>Plan"]
    AN --> |"Fase 3"| G3["Research"]
    QA --> |"Fase 5, 5c"| G4["Critique"]

    style PM fill:#e8f5e9
    style AR fill:#fce4ec
    style AN fill:#f3e5f5
    style QA fill:#fff8e1
Loading
Agente ID Nome Papel no Pipeline Fases
@pm pm Morgan Product Manager 1 (Gather), 4 (Spec), 5b (Revise)
@architect architect Aria System Architect 2 (Assess), 6 (Plan)
@analyst analyst Atlas Business Analyst 3 (Research)
@qa qa Quinn Test Architect 5 (Critique), 5c (Critique 2)

4.1 Perfil: @pm (Morgan)

  • Arquetipo: Strategist
  • Foco: Coleta de requisitos, criação de especificações, documentação
  • Principios: User-focused, data-informed, clarity & precision
  • Ferramentas: Templates de PRD, elicitacao estruturada

4.2 Perfil: @architect (Aria)

  • Arquetipo: Visionary
  • Foco: Arquitetura de sistemas, avaliação tecnica, planejamento
  • Principios: Holistic thinking, pragmatic selection, security at every layer
  • Ferramentas: Context7, EXA, análise de codebase

4.3 Perfil: @analyst (Atlas)

  • Arquetipo: Decoder
  • Foco: Pesquisa, análise de mercado, validação de dependencias
  • Principios: Curiosity-driven, evidence-based, action-oriented
  • Ferramentas: EXA, Context7, Google Workspace

4.4 Perfil: @qa (Quinn)

  • Arquetipo: Guardian
  • Foco: Validacao de qualidade, gates de aprovacao, rastreabilidade
  • Principios: Requirements traceability, risk-based testing, advisory excellence
  • Ferramentas: CodeRabbit, Browser testing, análise de spec

5. Tasks Executadas

Task Fase Agente Arquivo
Gather Requirements 1 @pm .aiox-core/development/tasks/spec-gather-requirements.md
Assess Complexity 2 @architect .aiox-core/development/tasks/spec-assess-complexity.md
Research Dependencies 3 @analyst .aiox-core/development/tasks/spec-research-dependencies.md
Write Specification 4 @pm .aiox-core/development/tasks/spec-write-spec.md
Critique Specification 5, 5c @qa .aiox-core/development/tasks/spec-critique.md
Create Implementation Plan 6 @architect .aiox-core/development/tasks/plan-create-implementation.md

6. Pré-requisitos

6.1 Pre-Flight Checks

Check Descrição Blocking
story_exists Diretorio da story existe ou pode ser criado Sim
no_existing_spec Verificar spec existente (evitar sobrescrita) Não (warning)
agents_available Agentes do pipeline estao configurados Sim

6.2 Configuração Necessaria

config:
  autoSpec:
    enabled: false        # Ativar auto-spec quando story criada
  showProgress: true      # Mostrar progresso
  verbose: true           # Logs detalhados
  maxRetries: 2           # Tentativas em caso de falha
  retryDelay: 1000        # Delay entre retries (ms)
  strictGate: true        # BLOCKED halts pipeline
  outputDir: docs/stories/{storyId}/spec/

7. Entradas e Saidas

7.1 Entradas do Pipeline

Entrada Tipo Descrição Fornecido Por
storyId string ID único da story Usuario
source enum prd, user, existing Usuario (opcional)
prdPath string Caminho para PRD existente Usuario (opcional)
overrideComplexity enum Override manual de complexidade Usuario (opcional)

7.2 Saidas do Pipeline

flowchart LR
    subgraph OUTPUT["Artefatos Gerados"]
        direction TB
        O1["requirements.json"]
        O2["complexity.json"]
        O3["research.json"]
        O4["spec.md"]
        O5["critique.json"]
        O6["plan.json"]
    end

    subgraph LOCATION["Localização"]
        L["docs/stories/{storyId}/spec/"]
        LP["docs/stories/{storyId}/plan/"]
    end

    O1 --> L
    O2 --> L
    O3 --> L
    O4 --> L
    O5 --> L
    O6 --> LP
Loading
Artefato Fase Descrição
requirements.json 1 Requisitos estruturados (9 categorias)
complexity.json 2 Avaliacao de complexidade (5 dimensoes)
research.json 3 Dependencias pesquisadas e validadas
spec.md 4 Especificacao completa executavel
critique.json 5 Resultado da avaliação de qualidade
plan.json 6 Plano de implementação com subtasks

8. Pontos de Decisão

8.1 Decisão: Pular Assess?

flowchart TB
    D1{"source === 'simple'<br/>OR<br/>overrideComplexity === 'SIMPLE'?"}
    D1 -->|Sim| SKIP["Pular para Spec<br/>(assume SIMPLE)"]
    D1 -->|Não| RUN["Executar Assess"]
Loading

8.2 Decisão: Pular Research?

flowchart TB
    D2{"complexity.result === 'SIMPLE'<br/>OR<br/>no external dependencies?"}
    D2 -->|Sim| SKIP["Pular Research<br/>Gerar minimal research.json"]
    D2 -->|Não| RUN["Executar Research"]
Loading

8.3 Decisão: Verdict da Critique

flowchart TB
    START["Critique Complete"] --> C1{"HIGH issues?"}
    C1 -->|Sim| BLOCKED["BLOCKED"]
    C1 -->|Não| C2{"avg >= 4.0?"}
    C2 -->|Sim| C3{"all dims >= 3?"}
    C3 -->|Sim| APPROVED["APPROVED"]
    C3 -->|Não| NEEDS["NEEDS_REVISION"]
    C2 -->|Não| C4{"avg >= 3.0?"}
    C4 -->|Sim| NEEDS
    C4 -->|Não| BLOCKED
Loading

8.4 Decisão: Executar Revise?

flowchart TB
    D4{"complexity === 'COMPLEX'<br/>OR<br/>verdict === 'NEEDS_REVISION'?"}
    D4 -->|Sim| RUN["Executar Revise<br/>(Fase 5b)"]
    D4 -->|Não| SKIP["Pular Revise"]
Loading

8.5 Decisão: Segunda Critique?

flowchart TB
    D5{"complexity === 'COMPLEX'?"}
    D5 -->|Sim| RUN["Executar Critique 2<br/>(Fase 5c)"]
    D5 -->|Não| SKIP["Pular Segunda Critique"]
Loading

9. Troubleshooting

9.1 Erros Comuns

Erro Causa Solução
missing_story_id Story ID nao fornecido *create-spec STORY-42
phase_failed Fase falhou durante execucao Verificar logs, usar --resume
max_iterations_reached Limite de revisoes atingido Escalr para @architect
critique_blocked Spec bloqueado pelo QA gate Revisar critique.json, corrigir HIGH issues
missing-requirements requirements.json nao encontrado Executar fase Gather primeiro
empty-functional Nenhum requisito funcional Re-executar elicitacao
context7-unavailable Context7 MCP nao responde Usar EXA como fallback

9.2 Como Retomar Execucao

O pipeline suporta retomada atraves de checkpoints:

resume:
  enabled: true
  state_file: docs/stories/{storyId}/spec/.pipeline-state.json

  checkpoints:
    - after: gather   -> requirements_gathered
    - after: assess   -> complexity_assessed
    - after: research -> research_complete
    - after: spec     -> spec_written
    - after: critique -> critique_complete

Comando para retomar:

*create-spec STORY-42 --resume

9.3 Árvore de Decisão de Erros

flowchart TB
    E["Erro no Pipeline"] --> E1{"Qual fase?"}

    E1 -->|Gather| G["Verificar elicitacao"]
    G --> G1["Usuario respondeu todas perguntas?"]
    G --> G2["requirements.json valido?"]

    E1 -->|Assess| A["Verificar inputs"]
    A --> A1["requirements.json existe?"]
    A --> A2["Formato JSON valido?"]

    E1 -->|Research| R["Verificar ferramentas"]
    R --> R1["Context7 ativo?"]
    R --> R2["EXA configurado?"]

    E1 -->|Spec| S["Verificar Constitutional Gate"]
    S --> S1["Conteudo inventado detectado?"]
    S --> S2["Traceability ok?"]

    E1 -->|Critique| C["Verificar verdict"]
    C --> C1["Issues HIGH encontrados?"]
    C --> C2["Score medio < 3.0?"]
Loading

10. Referências

10.1 Arquivos do Workflow

Arquivo Localização
Definicao do Workflow .aiox-core/development/workflows/spec-pipeline.yaml
Task: Gather .aiox-core/development/tasks/spec-gather-requirements.md
Task: Assess .aiox-core/development/tasks/spec-assess-complexity.md
Task: Research .aiox-core/development/tasks/spec-research-dependencies.md
Task: Write Spec .aiox-core/development/tasks/spec-write-spec.md
Task: Critique .aiox-core/development/tasks/spec-critique.md
Task: Create Plan .aiox-core/development/tasks/plan-create-implementation.md

10.2 Agentes Relacionados

Agente Localização
@pm (Morgan) .aiox-core/development/agents/pm.md
@architect (Aria) .aiox-core/development/agents/architect.md
@analyst (Atlas) .aiox-core/development/agents/analyst.md
@qa (Quinn) .aiox-core/development/agents/qa.md

10.3 Documentação Relacionada

10.4 Commands Rapidos

Comando Descrição Agente
*create-spec STORY-ID Executar pipeline completo -
*gather-requirements STORY-ID Apenas fase Gather @pm
*assess-complexity STORY-ID Apenas fase Assess @architect
*research-deps STORY-ID Apenas fase Research @analyst
*write-spec STORY-ID Apenas fase Write @pm
*critique-spec STORY-ID Apenas fase Critique @qa

11. Mensagem de Conclusão

Ao finalizar com sucesso, o pipeline exibe:

+==============================================================+
|  Spec Pipeline Complete                                      |
+==============================================================+

Story:       {storyId}
Complexity:  {SIMPLE|STANDARD|COMPLEX}
Verdict:     APPROVED
Score:       {score}/5

Artifacts:
   - docs/stories/{storyId}/spec/requirements.json
   - docs/stories/{storyId}/spec/complexity.json
   - docs/stories/{storyId}/spec/research.json
   - docs/stories/{storyId}/spec/spec.md
   - docs/stories/{storyId}/spec/critique.json

Next Steps:
   - Review spec.md
   - Run @dev *develop {storyId}

Metadata

metadata:
  documento: SPEC-PIPELINE-WORKFLOW.md
  versao: 1.0
  criado: 2026-02-04
  autor: Technical Documentation Specialist
  baseado_em:
    - .aiox-core/development/workflows/spec-pipeline.yaml
    - .aiox-core/development/tasks/spec-*.md
    - .aiox-core/development/agents/*.md
  tags:
    - spec-pipeline
    - workflow
    - documentação
    - aiox
    - auto-claude