---
description: Sincronização imediata Spec → Spec Driver, chat-bruto, Forgejo e GitHub
globs: specs/**/*,chat-bruto/**/*,portal/**/*
alwaysApply: true
---

# Spec Driver — sincronização imediata (Roger)

**Spec Driver** = portal [spec.ligbox.com.br](https://spec.ligbox.com.br) + browser `/specs/` + sidebars + inventário VMs.

Sempre que **criar, ampliar ou modificar** qualquer spec (`specs/NNN-*`), **na mesma sessão**, antes de encerrar a tarefa:

## 1. Spec Kit (conteúdo)

- Atualizar artefatos SDD: `spec.md`, `tasks.md`, `plan.md`, `quickstart.md`, `contracts/` conforme a mudança.
- Em `spec.md`, secção **Decisões** / **Histórico** com o que foi decidido (data + resumo).
- Se houve discussão em chat: **salvar chat bruto** em `chat-bruto/` e referenciar na spec.

## 2. Chat bruto (obrigatório se existir discussão)

- Salvar em `chat-bruto/CHAT_BRUTO_<TEMA>_SPEC<NNN>_YYYYMMDD.txt` (e `.jsonl` se disponível).
- Atualizar ou criar `chat-bruto/CHAT_BRUTO_*_INDICE.txt` com link para a spec e ficheiros.
- Na spec, link explícito: `Ver chat bruto: chat-bruto/...`
- Copiar espelho para `obsidian-vault/ligbox-ops-platform/chat-bruto/` no CT130 quando aplicável.

## 3. Spec Driver (portal CT130) — imediato

No CT130 (`10.10.10.130`), após alterações no repo:

```bash
cd /opt/ligbox-spec-hub
./portal/refresh-spec-driver.sh
```

O script deve:
1. `generate-sidebars.sh` → `_sidebar.md`
2. `generate-specs-portal.py` → `/specs/index.html` (menu com **todas** as specs que têm `spec.md`, auto-descoberta)
3. Incluir **todos** os ficheiros em `chat-bruto/` no menu lateral
4. Atualizar contagem na homepage se existir placeholder estático

**Nunca** deixar specs novas só no disco sem regenerar o portal.

## 4. Git — Forgejo (fonte de verdade primária)

Repositório: `https://git.spec.ligbox.com.br/ligbox/ligbox-ops-platform`

Incluir no commit (quando aplicável):
- `specs/NNN-*/`
- `chat-bruto/`
- `contracts/`
- `docs/vms/` se VM inventário mudou
- `_sidebar.md` gerado
- `portal/html/specs/index.html` gerado

```bash
git add specs/ chat-bruto/ contracts/ docs/vms/ _sidebar.md portal/html/specs/index.html
git commit -m "spec NNN: <resumo da decisão>"
git push origin main
```

Esta regra **autoriza commit automático** para mudanças de spec (exceção à regra geral de só commitar quando pedido).

## 5. GitHub (espelho / segunda fonte de verdade)

Após push Forgejo, espelhar para GitHub (modelo de suporte + backup):

```bash
git push github main   # remote `github` — mirror ligbox-ops-platform
```

Se `github` remote não existir, criar mirror ou `git push` para repo `itecnologys/ligbox-ops-platform` (confirmar URL com Roger).

GitHub **não substitui** Forgejo; é réplica read-only ou bidirecional acordada.

## 6. Checklist de saída (não dispensar)

- [ ] Spec reflete decisões do chat
- [ ] Chat bruto salvo e linkado (se houve discussão)
- [ ] `refresh-spec-driver.sh` executado no CT130
- [ ] Spec visível em https://spec.ligbox.com.br/specs/
- [ ] Commit + push Forgejo
- [ ] Push/mirror GitHub

## 7. Falhas conhecidas a evitar

- Menu `/specs/` com lista hardcoded sem auto-descoberta → corrigir em `generate-specs-portal.py`
- Spec no repo mas portal mostra contagem antiga → regenerar portal
- Chat bruto só no laptop → não conta; tem de estar no repo + portal
