---
name: kairos:especificar
description: >
  Gera artefatos de uma especificação existente ou decompõe um PRD em specs
  isoladas com assertions vinculadas e escopo de arquivos. Use quando o
  usuário disser "kairos especificar", "gerar specs", "preencher especificação",
  "completar artefatos", "decompor PRD".
user-invocable: true
disable-model-invocation: true
---

# KairOS — Especificar (Fast-Forward + Decomposição)

## Modo 1: Fast-Forward (preencher artefatos pendentes)

Gera automaticamente todos os artefatos pendentes de uma especificação em `kairos/specs/`.

1. Liste as specs ativas e identifique artefatos pendentes (vazios ou incompletos)
2. Se o usuário especificou um nome, foque nessa spec
3. Se não, pergunte qual spec deseja completar
4. Para cada artefato pendente, gere o conteúdo baseado no contexto do projeto e domínio
5. Se o domínio tiver blueprint com conhecimento, use como referência
6. Apresente os artefatos gerados e peça confirmação antes de salvar

### Artefatos

- **proposta.md**: Justificativa de negócio, problema, público-alvo
- **especificacoes/requisitos.md**: Requisitos funcionais e não-funcionais
- **especificacoes/regras-negocio.md**: Regras de domínio, edge cases, exceções
- **especificacoes/criterios.md**: Critérios de aceite testáveis (dado/quando/então)
- **especificacoes/guardrails.md**: Regras regulatórias, restrições
- **design.md**: Arquitetura técnica, componentes, fluxos
- **tarefas.md**: Checklist numerado de tarefas de implementação

## Modo 2: Decomposição de PRD em Specs Isoladas

Quando o argumento é um PRD (`kairos/specs/prd-*.md`), decomponha em specs independentes.

### Regras de Decomposição

1. Cada spec deve ser AUTOCONTIDA — executável sem conhecer as outras
2. Cada spec deve listar EXATAMENTE quais arquivos pode criar/modificar
3. Cada spec deve ter suas assertions vinculadas
4. Specs ordenadas por dependência (specs base primeiro)
5. Nenhuma spec deve afetar mais de 5 arquivos

### Formato de cada Spec

Crie arquivos `kairos/specs/spec-{NNN}-{slug}.md`:

```markdown
# Spec {NNN}: {Título}

## Dependências
- Spec {NNN-1} (se houver)

## Paralelizável com
- Spec {NNN+1} (se não houver dependência)

## Escopo de Arquivos
- CRIAR: caminho/do/arquivo.ext
- MODIFICAR: caminho/existente.ext

## Assertions Aplicáveis
| ID | Regra | Severidade |
|----|-------|------------|

## O que implementar
{Descrição precisa}

## Padrões a seguir
{Exemplos do projeto}

## Critérios de Aceitação
- [ ] {critério funcional}
- [ ] {critério de conformidade}
```

### Validação Pós-Decomposição

1. **Cobertura completa:** TODOS os requisitos do PRD estão cobertos
2. **Sem sobreposição:** NÃO há sobreposição de arquivos entre specs
3. **Assertions vinculadas:** TODAS as assertions estão vinculadas
4. **Sem ciclos:** O grafo de dependências não tem ciclos

### INDEX.md

Gere `kairos/specs/INDEX.md`:

```markdown
# Specs — {Nome da Funcionalidade}

| # | Spec | Status | Arquivos | Assertions |
|---|------|--------|----------|------------|
| 1 | spec-001-{slug} | ⏳ Pendente | 3 | 2 |
| 2 | spec-002-{slug} | ⏳ Pendente | 4 | 1 |

## Dependências
spec-002 → spec-001
```

## Idioma

TODAS as mensagens e artefatos em Português do Brasil.
