---
name: kairos:commitar
description: >
  Commits atômicos por spec com mensagem referenciando assertions validadas.
  Um commit por spec. Commits convencionais com referência de conformidade.
  Use quando o usuário disser "kairos commitar", "commit da spec", "commitar
  com assertions".
argument-hint: "[opcional: mensagem personalizada]"
user-invocable: true
disable-model-invocation: true
---

# KairOS — Commit Atômico por Spec

## Etapa 1: Identificar spec ativa

Verifique `.kairos/state/.active-spec` ou analise as mudanças pendentes.

## Etapa 2: Verificar pré-condições

- [ ] Build passa
- [ ] Testes passam (se configurado)
- [ ] Assertions da spec validadas
- [ ] Nenhum arquivo fora do escopo modificado

Se alguma pré-condição falha, sugira `/kairos:corrigir` antes.

## Etapa 3: Preparar apenas arquivos do escopo

Se spec ativa, preparar apenas arquivos do escopo.
Se sem spec, preparar mudanças relevantes.

## Etapa 4: Commit com formato KairOS

```
{tipo}({escopo}): {descrição} [spec-{NNN}]

Assertions validadas:
- [{ID}] {regra} ✅
- [{ID}] {regra} ✅

Refs: {referências legais aplicáveis}
```

### Exemplo

```
feat(lgpd): implementar consentimento granular [spec-003]

Assertions validadas:
- [LGPD-004] Consentimento com finalidade específica (Art. 8, §4º) ✅
- [LGPD-005] Revogação facilitada (Art. 8, §5º) ✅
- [LGPD-006] Opt-out tão fácil quanto opt-in (Art. 6, IV) ✅

Refs: LGPD Art. 8, §4º; Art. 8, §5º; Art. 6, IV
```

## Regras

- UM commit por spec — nunca misture specs
- NUNCA faça commit com assertions CRITICAL falhando
- SEMPRE liste assertions validadas no corpo do commit
- Tipos válidos: `feat`, `fix`, `refactor`, `test`, `docs`, `chore`
- Se o usuário forneceu mensagem personalizada, use-a como título

## Idioma

TODAS as mensagens em Português do Brasil.
