# Tasks — Project Intelligence Layer

## Rastreabilidade
- Orquestração: Project Intelligence Layer
- Slug: project-intelligence-layer
- Origem: docs/project-intelligence-layer/03-techspec.md
- Estado atual: recorded
- PRD aprovado: docs/project-intelligence-layer/02-prd.md
- Tech Spec aprovada: docs/project-intelligence-layer/03-techspec.md
- Fonte canônica local: docs/project-intelligence-layer/traceability-map.yaml
- Próximo artefato recomendado: docs/project-intelligence-layer/05-refinement.md

## Backlog

### T-01 — Configurar contratos de CLI e config da camada de inteligência

**Resultado verificável:** o CLI expõe os novos subcomandos sem quebrar `context recommend` e `memory learn`.

**Escopo:**

- Adicionar `Command::Intelligence`.
- Adicionar `ContextCommand::Build`.
- Adicionar structs de args para `context build`, `intelligence learn`, `intelligence status` e `intelligence health`.
- Adicionar `IntelligenceConfig` com defaults compatíveis em `src/domain/providers.rs`.
- Manter `memory` intacto.

**Arquivos prováveis:**

- `src/main.rs`
- `src/domain/providers.rs`
- `sdd.config.example.yaml`
- `sdd.config.yaml`

**Evidência esperada:**

- `./target/debug/sdd context --help` lista `build` e `recommend`.
- `./target/debug/sdd intelligence --help` lista `learn`, `status` e `health`.

### T-02 — Criar inventário determinístico de fontes e hashes

**Resultado verificável:** o SDD inventaria artefatos da orquestração, fontes globais permitidas e hashes SHA-256.

**Escopo:**

- Reusar `STAGE_FILES` para fontes em `docs/<slug>/`.
- Ler `traceability-map.yaml`.
- Incluir fontes globais pequenas e textuais: `AGENTS.md`, `CLAUDE.md`, rules, `sdd.config.yaml`, `docs/_project-intelligence/*`.
- Excluir diretórios volumosos ou sensíveis.
- Persistir `SourceRecord` em `.sdd/intelligence/sources.index.jsonl`.

**Arquivos prováveis:**

- `src/main.rs`
- possível `src/domain/intelligence.rs`
- `tests/cli.rs`

**Evidência esperada:**

- Teste cobre `source_artifact`, `hash`, `stage` e exclusões.

### T-03 — Evoluir ingestão de learnings sem quebrar `memory learn`

**Resultado verificável:** `sdd intelligence learn` cria registros derivados enriquecidos, e `sdd memory learn` continua compatível.

**Escopo:**

- Extrair rotina compartilhada para learnings.
- Preservar `.sdd/memory/learnings.jsonl`.
- Adicionar `.sdd/intelligence/learnings.jsonl`.
- Incluir `kind`, `tags`, `confidence`, `status` e `derived`.
- Aplicar `runtime::redaction::redact_text` em summaries.

**Arquivos prováveis:**

- `src/main.rs`
- `src/runtime/redaction.rs`
- `tests/cli.rs`

**Evidência esperada:**

- `sdd memory learn --name "Project Intelligence Layer"` ainda gera índice compatível.
- `sdd intelligence learn --name "Project Intelligence Layer"` gera JSONL enriquecido.

### T-04 — Implementar stale detection e precedência mínima

**Resultado verificável:** aprendizados com `source_hash` divergente são marcados como `stale`, e o Context Pack aplica precedência entre fontes.

**Escopo:**

- Recalcular hash das fontes no momento do status/build.
- Marcar registros derivados como `stale` quando a origem mudou.
- Implementar precedência: ADR aprovada, Tech Spec aprovada, PRD aprovado, Tasks, Execution/Review, Memory, índice derivado.
- Registrar conflitos no manifesto.

**Arquivos prováveis:**

- `src/main.rs`
- possível `src/domain/intelligence.rs`
- `tests/cli.rs`

**Evidência esperada:**

- Teste altera artefato após ingestão e observa `stale`.
- Teste com conflito simples registra conflito no Context Pack.

### T-05 — Implementar `sdd context build`

**Resultado verificável:** o comando gera Context Pack por stage com manifesto auditável.

**Escopo:**

- Aceitar `--name`, `--stage`, `--json`, `--write`, `--dry-run` e `--root`.
- Rankear fontes por stage usando pesos determinísticos.
- Renderizar Markdown com as seções definidas na Tech Spec.
- Escrever em `.sdd/intelligence/context-packs/<slug>/<stage>.md` quando `--write`.
- Imprimir o conteúdo no stdout quando `--write` não for usado.

**Arquivos prováveis:**

- `src/main.rs`
- `tests/cli.rs`
- `docs/USAGE.md`

**Evidência esperada:**

- `sdd context build --name "Project Intelligence Layer" --stage techspec --write` gera arquivo com `Manifesto de contexto`.

### T-06 — Implementar `sdd intelligence status`

**Resultado verificável:** status mostra quantidade de fontes, learnings, stale sources, conflitos e último erro.

**Escopo:**

- Ler `.sdd/intelligence/*.jsonl`.
- Produzir saída humana e JSON.
- Não falhar quando os índices ainda não existem; retornar contadores zerados.
- Redigir erros persistíveis.

**Arquivos prováveis:**

- `src/main.rs`
- `tests/cli.rs`

**Evidência esperada:**

- `sdd intelligence status --json` retorna JSON válido com `sources_indexed`, `learnings`, `stale_sources`, `conflicts` e `last_error`.

### T-07 — Implementar `sdd intelligence health`

**Resultado verificável:** health expõe sinais objetivos sobre lacunas de artefatos, memória e obsolescência.

**Escopo:**

- Detectar orquestrações sem `08-memory.md`.
- Detectar artefatos obrigatórios ausentes.
- Detectar índices stale.
- Detectar PRD/Tech Spec presentes e não aprovados pelo traceability map quando possível.
- Produzir JSON por severidade.

**Arquivos prováveis:**

- `src/main.rs`
- `src/tui/orchestration.rs`, apenas se reusar parser existente for mais seguro.
- `tests/cli.rs`

**Evidência esperada:**

- Projeto com orquestração incompleta retorna sinais de health sem quebrar o comando.

### T-08 — Atualizar docs, skills e superfícies de cliente

**Resultado verificável:** documentação e superfícies instaláveis descrevem Context Packs e inteligência sem contradizer memory/artifact store.

**Escopo:**

- Atualizar `README.md`, `docs/USAGE.md`, `docs/ARTIFACT-STORE.md` ou documento novo específico.
- Atualizar skills relevantes em `plugins/orchestration/skills/*`.
- Espelhar para `.agents`, `.claude`, `.trae`, `.opencode` e clients somente quando a superfície gerada exigir consistência.
- Preservar PT-BR com acentos em texto humano.

**Arquivos prováveis:**

- `README.md`
- `docs/USAGE.md`
- `plugins/orchestration/skills/memory/SKILL.md`
- `plugins/orchestration/skills/orchestration/SKILL.md`
- superfícies geradas correspondentes

**Evidência esperada:**

- `rg "context build|intelligence learn|Context Pack"` encontra referências consistentes nas superfícies necessárias.

### T-09 — Regressão completa e artifact evidence

**Resultado verificável:** a entrega passa nos checks do projeto e gera evidência SDD.

**Escopo:**

- Rodar testes focados durante as tasks.
- Rodar `cargo test`.
- Rodar `cargo clippy -- -D warnings`.
- Validar artefatos SDD.
- Registrar execução em `06-execution.md`.

**Arquivos prováveis:**

- `tests/cli.rs`
- `docs/project-intelligence-layer/06-execution.md`

**Evidência esperada:**

- Comandos de validação registrados em Execution.

## Dependências

- T-01 desbloqueia todos os novos comandos.
- T-02 desbloqueia T-03, T-04, T-05, T-06 e T-07.
- T-03 desbloqueia status enriquecido e compatibilidade com `memory learn`.
- T-04 deve vir antes de T-05 para evitar Context Pack usando learnings obsoletos como verdade.
- T-05 é a primeira entrega visível para o usuário final.
- T-06 e T-07 podem ser implementadas depois de T-05.
- T-08 deve acontecer depois de estabilizar a interface CLI.
- T-09 fecha a execução.

## Critérios de aceite

```gherkin
Funcionalidade: CLI de inteligência
  Cenário: Listar comandos novos
    Dado que o binário sdd foi compilado
    Quando eu executar sdd intelligence --help
    Então os comandos learn, status e health devem aparecer
```

```gherkin
Funcionalidade: Context Pack
  Cenário: Gerar contexto para uma etapa
    Dado que existe a orquestração Project Intelligence Layer
    Quando eu executar sdd context build --name "Project Intelligence Layer" --stage techspec --write
    Então um arquivo deve ser criado em .sdd/intelligence/context-packs/project-intelligence-layer/techspec.md
    E o arquivo deve conter Rastreabilidade, Contexto essencial e Manifesto de contexto
```

```gherkin
Funcionalidade: Learnings derivados
  Cenário: Aprender a partir de artefatos
    Dado que existem artefatos em docs/project-intelligence-layer
    Quando eu executar sdd intelligence learn --name "Project Intelligence Layer"
    Então .sdd/intelligence/learnings.jsonl deve conter registros com source_artifact, source_hash, status e derived
```

```gherkin
Funcionalidade: Compatibilidade com memory
  Cenário: Manter memory learn funcionando
    Dado que a camada de inteligência foi adicionada
    Quando eu executar sdd memory learn --name "Project Intelligence Layer"
    Então .sdd/memory/learnings.jsonl deve continuar sendo gerado
```

```gherkin
Funcionalidade: Health local
  Cenário: Reportar lacunas objetivas
    Dado que uma orquestração ainda não possui memory final
    Quando eu executar sdd intelligence health --json
    Então o JSON deve reportar um sinal sobre memory ausente sem falhar o comando
```

## Definition of Done

- CLI novo documentado e coberto por testes.
- `context recommend` continua funcionando.
- `memory learn` continua funcionando.
- Índices derivados carregam `source_artifact`, `source_hash`, `status` e `derived`.
- Context Pack tem manifesto auditável.
- Health usa sinais objetivos e não bloqueia projeto incompleto.
- Redaction aplicada antes de persistir conteúdo derivado.
- Artefatos em `docs/project-intelligence-layer/` validados por schema.
- Nenhuma mudança local não relacionada é revertida.

## Estratégia de testes

- Começar por testes CLI pequenos em `tests/cli.rs` usando diretórios temporários.
- Validar help output antes da lógica interna.
- Criar fixture mínima com `docs/<slug>/01-idea.md`, `02-prd.md`, `03-techspec.md` e `traceability-map.yaml`.
- Testar `--json` com strings esperadas para evitar acoplamento excessivo ao formato.
- Testar stale detection alterando o conteúdo de um artefato depois do primeiro learn.
- Rodar:

```bash
cargo test
cargo clippy -- -D warnings
./target/debug/sdd validate-artifact tasks docs/project-intelligence-layer/04-tasks.md
```

## Ordem sugerida

1. T-01 — Configurar contratos de CLI e config.
2. T-02 — Criar inventário determinístico de fontes e hashes.
3. T-03 — Evoluir ingestão de learnings sem quebrar `memory learn`.
4. T-04 — Implementar stale detection e precedência mínima.
5. T-05 — Implementar `sdd context build`.
6. T-06 — Implementar `sdd intelligence status`.
7. T-07 — Implementar `sdd intelligence health`.
8. T-08 — Atualizar docs, skills e superfícies de cliente.
9. T-09 — Regressão completa e artifact evidence.

Refinement é recomendado antes da execução porque o backlog toca CLI central, config, testes, docs e superfícies espelhadas.

## Prompts Agent

### T-01 — Configurar contratos de CLI e config

#### Prompt Agent
Você é um agente de código executando uma task SDD isolada no workspace.

Origem:
- PRD: `docs/project-intelligence-layer/02-prd.md`
- Tech Spec: `docs/project-intelligence-layer/03-techspec.md`
- Tasks: `docs/project-intelligence-layer/04-tasks.md`

Objetivo:
- Expor os contratos CLI e config da Project Intelligence Layer sem implementar ainda toda a lógica interna.

Escopo:
- Incluir: structs de args, enum de comandos, defaults de config e ajuda CLI.
- Não incluir: ranking completo, stale detection ou health final.

Arquivos prováveis:
- `src/main.rs`: adicionar comandos e roteamento mínimo.
- `src/domain/providers.rs`: adicionar `IntelligenceConfig` com defaults.
- `sdd.config.example.yaml`: documentar defaults.
- `sdd.config.yaml`: manter compatível com o repo atual.

Regras e constraints:
- Preserve alterações locais existentes.
- Não quebre `sdd context recommend`.
- Não quebre `sdd memory learn`.
- Preserve PT-BR com acentos em docs e mensagens humanas.

Validação:
- `cargo test` focado quando houver teste.
- `./target/debug/sdd context --help`
- `./target/debug/sdd intelligence --help`

Saída final:
- Resumo, arquivos alterados, comandos executados, evidências, decisões, riscos e pendências.

### T-02 — Criar inventário determinístico de fontes e hashes

#### Prompt Agent
Você é um agente de código executando uma task SDD isolada no workspace.

Origem:
- PRD: `docs/project-intelligence-layer/02-prd.md`
- Tech Spec: `docs/project-intelligence-layer/03-techspec.md`
- Tasks: `docs/project-intelligence-layer/04-tasks.md`

Objetivo:
- Implementar inventário local de fontes textuais e hashes SHA-256 para alimentar learnings e Context Packs.

Escopo:
- Incluir: scanner de artefatos por `STAGE_FILES`, traceability map, fontes globais permitidas e exclusões.
- Não incluir: embeddings, vector DB, MCP ou busca semântica.

Arquivos prováveis:
- `src/main.rs`
- possível `src/domain/intelligence.rs`
- `tests/cli.rs`

Regras e constraints:
- Não indexar `.env`, `.git`, `target`, `node_modules`, `dist`, `build` ou binários.
- Aplicar redaction antes de persistir conteúdo derivado.

Validação:
- Teste CLI ou unitário que confirme `source_artifact`, `hash` e exclusões.

Saída final:
- Resumo, arquivos alterados, comandos executados, evidências, decisões, riscos e pendências.

### T-03 — Evoluir ingestão de learnings sem quebrar memory

#### Prompt Agent
Você é um agente de código executando uma task SDD isolada no workspace.

Origem:
- PRD: `docs/project-intelligence-layer/02-prd.md`
- Tech Spec: `docs/project-intelligence-layer/03-techspec.md`
- Tasks: `docs/project-intelligence-layer/04-tasks.md`

Objetivo:
- Adicionar `sdd intelligence learn` com registros enriquecidos e manter `sdd memory learn` compatível.

Escopo:
- Incluir: rotina compartilhada de learnings, JSONL enriquecido e redaction.
- Não incluir: Context Pack final ou health completo.

Arquivos prováveis:
- `src/main.rs`
- `tests/cli.rs`

Regras e constraints:
- `.sdd/memory/learnings.jsonl` continua derivado e reconstruível.
- `.sdd/intelligence/learnings.jsonl` não vira fonte canônica.

Validação:
- `sdd memory learn --name "Project Intelligence Layer"`
- `sdd intelligence learn --name "Project Intelligence Layer"`
- Testes em `tests/cli.rs`.

Saída final:
- Resumo, arquivos alterados, comandos executados, evidências, decisões, riscos e pendências.

### T-04 — Implementar stale detection e precedência mínima

#### Prompt Agent
Você é um agente de código executando uma task SDD isolada no workspace.

Origem:
- PRD: `docs/project-intelligence-layer/02-prd.md`
- Tech Spec: `docs/project-intelligence-layer/03-techspec.md`
- Tasks: `docs/project-intelligence-layer/04-tasks.md`

Objetivo:
- Detectar learnings obsoletos por hash e aplicar precedência mínima entre fontes.

Escopo:
- Incluir: stale detection, status `stale`, precedência e registro de conflitos.
- Não incluir: UI, TUI ou dashboard.

Arquivos prováveis:
- `src/main.rs`
- possível `src/domain/intelligence.rs`
- `tests/cli.rs`

Regras e constraints:
- ADR aprovada tem precedência sobre memória e índices derivados.
- Índice derivado nunca substitui artefato aprovado.

Validação:
- Teste que altera artefato após learn e verifica stale.
- Teste de precedência simples.

Saída final:
- Resumo, arquivos alterados, comandos executados, evidências, decisões, riscos e pendências.

### T-05 — Implementar context build

#### Prompt Agent
Você é um agente de código executando uma task SDD isolada no workspace.

Origem:
- PRD: `docs/project-intelligence-layer/02-prd.md`
- Tech Spec: `docs/project-intelligence-layer/03-techspec.md`
- Tasks: `docs/project-intelligence-layer/04-tasks.md`

Objetivo:
- Implementar `sdd context build` gerando Context Pack Markdown por stage.

Escopo:
- Incluir: ranking determinístico, manifesto, `--write`, `--json`, `--dry-run`.
- Não incluir: embeddings, vector DB ou APIs externas.

Arquivos prováveis:
- `src/main.rs`
- possível `src/domain/intelligence.rs`
- `tests/cli.rs`

Regras e constraints:
- Context Pack deve citar fontes incluídas e excluídas.
- Respeitar `max_context_chars`.
- Preservar `context recommend`.

Validação:
- `sdd context build --name "Project Intelligence Layer" --stage techspec --write`
- Teste confirma arquivo em `.sdd/intelligence/context-packs/project-intelligence-layer/techspec.md`.

Saída final:
- Resumo, arquivos alterados, comandos executados, evidências, decisões, riscos e pendências.

### T-06 — Implementar intelligence status

#### Prompt Agent
Você é um agente de código executando uma task SDD isolada no workspace.

Origem:
- PRD: `docs/project-intelligence-layer/02-prd.md`
- Tech Spec: `docs/project-intelligence-layer/03-techspec.md`
- Tasks: `docs/project-intelligence-layer/04-tasks.md`

Objetivo:
- Implementar status humano e JSON para a camada de inteligência.

Escopo:
- Incluir: contadores de fontes, learnings, stale sources, conflitos e last_error.
- Não incluir: health detalhado.

Arquivos prováveis:
- `src/main.rs`
- `tests/cli.rs`

Regras e constraints:
- Status deve funcionar mesmo sem índices existentes.
- Erros persistíveis devem ser redigidos.

Validação:
- `sdd intelligence status --json`
- Teste com projeto sem índice retorna contadores zerados.

Saída final:
- Resumo, arquivos alterados, comandos executados, evidências, decisões, riscos e pendências.

### T-07 — Implementar intelligence health

#### Prompt Agent
Você é um agente de código executando uma task SDD isolada no workspace.

Origem:
- PRD: `docs/project-intelligence-layer/02-prd.md`
- Tech Spec: `docs/project-intelligence-layer/03-techspec.md`
- Tasks: `docs/project-intelligence-layer/04-tasks.md`

Objetivo:
- Implementar sinais objetivos de saúde da camada SDD.

Escopo:
- Incluir: memória ausente, artefatos ausentes, stale sources e artefatos não aprovados quando detectável.
- Não incluir: score subjetivo ou dashboard visual.

Arquivos prováveis:
- `src/main.rs`
- `tests/cli.rs`

Regras e constraints:
- Health não deve falhar em projeto incompleto.
- Sinais devem ser objetivos e rastreáveis.

Validação:
- `sdd intelligence health --json`
- Teste com orquestração incompleta retorna sinal de `memory` ausente.

Saída final:
- Resumo, arquivos alterados, comandos executados, evidências, decisões, riscos e pendências.

### T-08 — Atualizar docs, skills e superfícies

#### Prompt Agent
Você é um agente de código executando uma task SDD isolada no workspace.

Origem:
- PRD: `docs/project-intelligence-layer/02-prd.md`
- Tech Spec: `docs/project-intelligence-layer/03-techspec.md`
- Tasks: `docs/project-intelligence-layer/04-tasks.md`

Objetivo:
- Documentar a Project Intelligence Layer nas superfícies certas sem duplicar fonte de verdade.

Escopo:
- Incluir: docs principais e skills relevantes.
- Não incluir: mudança de marketplace, plugin novo ou refactor amplo.

Arquivos prováveis:
- `README.md`
- `docs/USAGE.md`
- `plugins/orchestration/skills/memory/SKILL.md`
- `plugins/orchestration/skills/orchestration/SKILL.md`
- superfícies espelhadas quando exigido pelo pacote

Regras e constraints:
- Preserve acentos em PT-BR.
- Não contradizer `docs/<slug>/` como fonte canônica.
- Não transformar índice derivado em fonte de verdade.

Validação:
- `rg "context build|intelligence learn|Context Pack"`
- `cargo test` se docs gerados forem cobertos por testes.

Saída final:
- Resumo, arquivos alterados, comandos executados, evidências, decisões, riscos e pendências.

### T-09 — Regressão completa e artifact evidence

#### Prompt Agent
Você é um agente de código executando uma task SDD isolada no workspace.

Origem:
- PRD: `docs/project-intelligence-layer/02-prd.md`
- Tech Spec: `docs/project-intelligence-layer/03-techspec.md`
- Tasks: `docs/project-intelligence-layer/04-tasks.md`

Objetivo:
- Validar a implementação completa e registrar evidências no artifact store.

Escopo:
- Incluir: testes, clippy, validação de artefatos e `06-execution.md`.
- Não incluir: correções fora do escopo da Project Intelligence Layer.

Arquivos prováveis:
- `tests/cli.rs`
- `docs/project-intelligence-layer/06-execution.md`

Regras e constraints:
- Não reverter mudanças locais de terceiros.
- Registrar falhas e pendências se algum comando não puder ser executado.

Validação:
- `cargo test`
- `cargo clippy -- -D warnings`
- `./target/debug/sdd validate-artifact tasks docs/project-intelligence-layer/04-tasks.md`

Saída final:
- Resumo, arquivos alterados, comandos executados, evidências, decisões, riscos e pendências.
