---
name: index-update
description: Actualiza INDEX.md de procedimentos após criar/modificar/arquivar PROC. Usar quando "actualizar index", "update INDEX.md", depois de criar procedimento, mover PROC, arquivar procedimento. Mantém estatísticas, navegação e data actualizadas.
disable-model-invocation: true
---

# /index-update - Actualizador de INDEX.md

Actualiza ficheiros INDEX.md de procedimentos após operações (criar, modificar, mover, arquivar).

---

## Referências e Documentação

**SEMPRE consultar:**
- **[06-Operacoes/Procedimentos/INDEX.md](file:///media/ealmeida/Dados/Hub/06-Operacoes/Procedimentos/INDEX.md)** - INDEX principal (8 departamentos)
- **[Hub CLAUDE.md](file:///media/ealmeida/Dados/Hub/CLAUDE.md)** - Convenções INDEX.md

---

## O Que Actualiza

### 1. INDEX.md Departamental

Após criar/modificar/mover PROC em departamento:

```markdown
| [PROC-Titulo.md](./PROC-Titulo.md) | Descrição breve | [DEPT]-[TEMA]-[NUM] |
```

**Campos:**
- Nome ficheiro (link relativo)
- Descrição breve (1 linha, <80 chars)
- Código procedimento

**Ordenação:** Por código (DEV-MCP-001, DEV-MCP-002, WP-SEC-001...)

### 2. INDEX.md Principal

Actualizar estatísticas globais:

```markdown
**Total:** X procedimentos (update counter)

| Departamento | Procedimentos | Código Exemplo |
|--------------|---------------|----------------|
| D7-Tecnologia | 28 → 29 | DEV, WP, INF, AI, WEB |
```

### 3. Metadados

Actualizar em AMBOS os INDEX.md:

```markdown
**Última actualização:** 2026-02-13
```

---

## Protocolo de Actualização

### Após Criar PROC (/proc-creator)

```
1. IDENTIFICAR departamento do novo PROC
   - Ler frontmatter do PROC-*.md
   - Obter dept_id e codigo

2. LER INDEX.md departamental
   - Path: /media/.../Procedimentos/[Dept]/INDEX.md

3. ADICIONAR linha na tabela:
   | [PROC-Nome.md](./PROC-Nome.md) | Descrição | [DEPT]-[TEMA]-[NUM] |
   - Inserir na posição correcta (ordenado por código)

4. INCREMENTAR contador no INDEX departamental:
   "X procedimentos" → "X+1 procedimentos"

5. ACTUALIZAR data:
   "Última actualização: YYYY-MM-DD"

6. LER INDEX.md principal
   - Path: /media/.../Procedimentos/INDEX.md

7. INCREMENTAR contador na tabela do departamento:
   | D7-Tecnologia | 28 → 29 | ...

8. INCREMENTAR "Total:" no topo:
   "36 procedimentos" → "37 procedimentos"

9. ACTUALIZAR data INDEX principal

10. CONFIRMAR ambos salvos
```

### Após Mover PROC

```
1. REMOVER linha do INDEX origem
2. DECREMENTAR contador origem
3. ADICIONAR linha ao INDEX destino
4. INCREMENTAR contador destino
5. ACTUALIZAR INDEX principal (sem alterar total)
6. ACTUALIZAR datas ambos
```

### Após Arquivar PROC

```
1. REMOVER linha do INDEX departamental
2. DECREMENTAR contador departamental
3. ACTUALIZAR INDEX principal (decrementar total)
4. ADICIONAR nota "Arquivado YYYY-MM-DD" se relevante
5. ACTUALIZAR datas
```

---

## Formato INDEX.md Departamental

```markdown
---
title: D[N]-[Nome] - Procedimentos
date: YYYY-MM-DD
type: index
status: active
tags: [d[N], procedimentos, [tema]]
---

# D[N] — [Nome] - Procedimentos

**X procedimentos | Código: [DEPT]**

---

## 📋 Lista de Procedimentos

| Procedimento | Descrição | Código |
|--------------|-----------|--------|
| [PROC-Nome1.md](./PROC-Nome1.md) | Descrição breve | [DEPT]-[TEMA]-001 |
| [PROC-Nome2.md](./PROC-Nome2.md) | Descrição breve | [DEPT]-[TEMA]-002 |

---

## 📊 Estatísticas

| Métrica | Valor |
|---------|-------|
| Total procedimentos | X |
| Códigos únicos | [DEPT1], [DEPT2], [DEPT3] |
| Status draft | Y |
| Status active | Z |

---

## 🔗 Navegação

- [[../INDEX|← Voltar a Procedimentos INDEX]]
- [[../../../04-Stack/02.01-Departamentos/D[N]-[Nome]|Ver Departamento]]

---

**D[N] — [Nome] | X Procedimentos**
**Última actualização:** YYYY-MM-DD
```

---

## Formato INDEX.md Principal

```markdown
---
title: Procedimentos - INDEX
date: YYYY-MM-DD
type: index
status: active
tags: [procedimentos, organizacao, hub]
---

# Procedimentos - INDEX Principal

**Total:** X procedimentos | **Departamentos:** 8

---

## 📊 Distribuição por Departamento

| Departamento | Procedimentos | Código | INDEX |
|--------------|---------------|--------|-------|
| D1-Comercial | 1 | CRM | [INDEX](./D1-Comercial/INDEX.md) |
| D2-Suporte | 0 | SUP | [INDEX](./D2-Suporte/INDEX.md) |
| D3-Contabilidade | 2 | FIN | [INDEX](./D3-Contabilidade/INDEX.md) |
| D4-RH | 0 | HR | [INDEX](./D4-RH/INDEX.md) |
| D5-Design | 0 | DES | [INDEX](./D5-Design/INDEX.md) |
| D6-Marketing | 1 | MKT | [INDEX](./D6-Marketing/INDEX.md) |
| D7-Tecnologia | 28 | DEV, WP, INF, AI, WEB | [INDEX](./D7-Tecnologia/INDEX.md) |
| Cross-Departamental | 4 | XDP | [INDEX](./Cross-Departamental/INDEX.md) |

---

**Última actualização:** YYYY-MM-DD
```

---

## Validações

Antes de salvar INDEX.md, verificar:

```
✅ Contadores correctos (manual count vs INDEX)
✅ Ordenação por código mantida
✅ Links relativos funcionam (./PROC-*.md)
✅ Sem linhas duplicadas
✅ Sem procedimentos órfãos (ficheiro existe mas não está no INDEX)
✅ Sem fantasmas (linha no INDEX mas ficheiro não existe)
✅ Data actualizada para hoje
✅ Formato tabela Markdown correcto
```

---

## Integração com /proc-creator

`/proc-creator` chama `/index-update` automaticamente:

```
User: /proc-creator "MCP Session Recovery"
→ PROC-MCP-Session-Recovery.md criado
→ /index-update triggered automaticamente
→ D7-Tecnologia/INDEX.md actualizado (28 → 29)
→ INDEX.md principal actualizado (36 → 37)
→ Confirmação ao utilizador
```

---

## Modo Manual

Quando usar manualmente:

```
User: Arquivei 3 procedimentos antigos do D7. Actualizar INDEX?
Assistant: /index-update

1. Lendo D7-Tecnologia/INDEX.md...
2. Detectei que PROC-X, PROC-Y, PROC-Z não existem mais
3. Removendo linhas...
4. Actualizando contador: 28 → 25
5. Actualizando INDEX principal: 36 → 33
6. ✅ Ambos os INDEX.md actualizados
```

---

## Detecção Automática de Dessinc

Quando `/index-update` é chamado sem contexto:

```
1. PARA CADA departamento:
   - Ler INDEX.md
   - Listar ficheiros PROC-*.md no directório
   - Comparar

2. DETECTAR problemas:
   - Órfãos: ficheiro existe mas não está no INDEX
   - Fantasmas: linha no INDEX mas ficheiro não existe
   - Contadores errados: NUM no INDEX ≠ count real

3. REPORTAR discrepâncias:
   "D7-Tecnologia: 3 órfãos detectados"
   "D3-Contabilidade: contador errado (diz 2, tem 3)"

4. PERGUNTAR ao utilizador:
   "Corrigir automaticamente? [Sim/Não]"

5. SE Sim:
   - Adicionar órfãos ao INDEX
   - Remover fantasmas do INDEX
   - Corrigir contadores
   - Actualizar datas
```

---

## Exemplos de Uso

### Exemplo 1: Após Criar PROC

```
User: /proc-creator criou PROC-WordPress-CLI.md
Assistant: (auto-triggered /index-update)

✅ D7-Tecnologia/INDEX.md actualizado
   - Adicionada linha: PROC-WordPress-CLI.md | WP-CLI-001
   - Contador: 28 → 29

✅ INDEX.md principal actualizado
   - D7: 28 → 29
   - Total: 36 → 37
```

### Exemplo 2: Correcção Manual

```
User: /index-update
Assistant:

🔍 Verificando consistência...

D7-Tecnologia:
- ⚠️ 2 órfãos detectados:
  - PROC-MCP-Troubleshooting-Erro-471.md (não está no INDEX)
  - PROC-MCP-Session-Recovery.md (não está no INDEX)
- ✅ Sem fantasmas

D3-Contabilidade:
- ⚠️ Contador errado: INDEX diz 2, existem 3 ficheiros

Corrigir automaticamente? [Sim]

→ Adicionando órfãos...
→ Corrigindo contadores...
→ Actualizando datas...
✅ Todos os INDEX.md consistentes
```

### Exemplo 3: Após Arquivar

```
User: Arquivei PROC-Backup-Old-Method.md (obsoleto)
Assistant: /index-update D7-Tecnologia

✅ Removido PROC-Backup-Old-Method.md do INDEX
✅ Contador: 29 → 28
✅ INDEX principal: 37 → 36
✅ Data actualizada
```

---

## Anti-Patterns

**NUNCA:**
- ❌ Actualizar INDEX sem verificar ficheiro existe
- ❌ Esquecer de actualizar INDEX principal
- ❌ Deixar data desactualizada
- ❌ Quebrar ordenação por código
- ❌ Adicionar linha com link quebrado

**SEMPRE:**
- ✅ Actualizar AMBOS os INDEX (dept + principal)
- ✅ Verificar ficheiro existe antes de adicionar
- ✅ Manter ordenação por código
- ✅ Actualizar contadores correctamente
- ✅ Actualizar data para hoje

---

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

Checklist automática:

```
✅ Contadores matemáticos correctos
✅ Links relativos válidos
✅ Ordenação mantida
✅ Sem duplicados
✅ Sem órfãos detectados
✅ Sem fantasmas detectados
✅ Data = hoje
✅ Formato Markdown válido
```

---

## Scripts Auxiliares (Futuro)

```bash
# Validar consistência INDEX.md
./scripts/validate-index.sh

# Detectar órfãos e fantasmas
./scripts/detect-orphans.sh

# Re-gerar INDEX.md do zero
./scripts/rebuild-index.sh [departamento]
```

---

*Skill v1.0.0 | 2026-02-13 | Plugin gestao | Descomplicar®*

---

## Healing Log

Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.

```jsonl
{"date":"","issue":"","fix":"","source":"user|auto"}
```

*Adicionar nova linha após cada erro corrigido.*
