# Classificação de Risco - Orquestrador Autônomo de Demandas SDD

## Rastreabilidade
- Orquestração: Orquestrador Autônomo de Demandas SDD
- Slug: orquestrador-autônomo-de-demandas-sdd
- Stage: risk
- Estado atual: recorded
- Origem: entrada humana inicial + leitura local do projeto (`sdd.config.yaml`, `pipeline.html`, `src/tui/`).
- Próximo artefato: visão de produto (etapa 1).

## Classificação de risco
- Nível: **high**
- Justificativa: a feature introduz **execução autônoma de código** por agentes (cria worktrees, escreve código, commita), **integrações externas** (Jira, Confluence, Slack, repo provider) com manuseio de segredos, e um **processo de longa duração** que observa a fila de demandas. É cross-layer (CLI Rust + orquestrador durável + adapters + execução em worktree + TUI) e mexe na superfície de automação do próprio harness. Não é `critical` porque é ferramenta interna de engenharia, sem dados de usuário final em produção, e porque os checkpoints humanos + worktrees isolados contêm o raio de explosão — mas a sub-capacidade de execução autônoma é o ponto crítico que exige os gates mais fortes.

## Fatores
- `external_dependency`: Jira, Confluence, Slack e repo provider (Bitbucket/GitHub) via MCP/API — hoje **não configurados** (`systems.chat=none`, `work_tracker=markdown`).
- `security_sensitive`: tokens/credenciais de integrações, autoria de aprovação (quem pode aprovar via Slack/CLI), redação de segredos em artefatos e logs.
- `infra`: processo observador da fila de longa duração, fila durável e retomada de estado.
- `cross_layer`: CLI + orquestrador durável + adapters de integração + execução em worktree + TUI.
- `data_contract`: schema do item de demanda, contrato dos artefatos SDD, `traceability-map.yaml`, payloads de webhook.
- `brownfield_unknowns`: estende módulos existentes (`orchestration.rs`, `parallel.rs`, `execution.rs`, `runner.rs`).
- Não há migração de banco; o estado é persistido em arquivos (`docs/<slug>/`, fila local).

## Decisões calibradas pelo risco
- **Refinamento: OBRIGATÓRIO** — disparado por `external_dependency` (política `risk_policy.require_refinement_for`).
- **Agent Teams: OBRIGATÓRIO** em Tech Spec, Execução e Revisão — disparado por `cross_layer`, `security_sensitive`, `data_contract`, `brownfield_unknowns` (política `risk_policy.require_agent_team_for`).
  - Reviewers especialistas mínimos: `architecture-reviewer`, `security-reviewer`, `data-contract-reviewer`; `performance-reviewer` quando a fila/observador afetar throughput.
- **Deploy checkpoint: OBRIGATÓRIO** — disparado por `infra` (política `risk_policy.require_deploy_checkpoint_for`).

## Checkpoints
- PRD (é isto que queremos construir?)
- Tech Spec (a arquitetura do orquestrador durável faz sentido?)
- Refinamento (obrigatório — flags, dependências externas e ordem de implementação)
- Revisão / merge (antes de cada merge, com evidência)
- Deploy / ativação (antes de ligar o modo autônomo em repositório real)

## Evidências mínimas
- Testes (`cargo test`) verdes para parser da fila, máquina de estados durável e planejamento de worktrees.
- `cargo clippy -- -D warnings` e `cargo check` limpos.
- Evidência de redação de segredos (nenhum token em artefatos/logs) — `src/runtime/redaction.rs`.
- Prova de pausa/retomada do workflow durável em um checkpoint (estado persiste e retoma).
- Execução autônoma sempre em worktree isolado, com diff revisável antes do merge.
- Aprovação humana explícita registrada (Slack ou CLI) com autoria e timestamp.
