スキル一覧に戻る

reference-indexer

arbgjr / satra

0🍴 0📅 2026年1月17日

|

SKILL.md

---
name: reference-indexer
description: |
  Indexa documentos de referencia para uso no RAG.
  Extrai texto de PDFs, processa e adiciona ao corpus.
  Use quando: adicionar documento, buscar referencia, listar docs.
allowed-tools:
  - Read
  - Write
  - Bash
  - Glob
user-invocable: true
---

# Reference Indexer Skill

## Proposito

Esta skill gerencia documentos de referencia externa, indexando-os para uso no RAG.

## Comandos

### /ref-add {path}

Adiciona documento ao indice de referencias:

```bash
/ref-add .agentic_sdlc/references/legal/lei-13775-2018.pdf
```

Acoes:
1. Valida o arquivo
2. Extrai texto (se PDF/Word)
3. Cria resumo automatico
4. Adiciona ao corpus RAG
5. Atualiza indice

### /ref-search {query}

Busca nos documentos de referencia:

```bash
/ref-search "prazo de aceite duplicata"
```

Retorna:
- Documentos relevantes
- Trechos com contexto
- Score de relevancia

### /ref-list

Lista todos os documentos indexados:

```bash
/ref-list
```

Mostra:
- Documentos por categoria
- Status de indexacao
- Data de adicao

### /ref-remove {path}

Remove documento do indice:

```bash
/ref-remove .agentic_sdlc/references/legal/documento-antigo.pdf
```

## Formatos Suportados

| Formato | Extensao | Metodo de Extracao |
|---------|----------|-------------------|
| PDF | .pdf | pdftotext / PyPDF2 |
| Word | .docx | python-docx |
| Markdown | .md | Direto |
| Texto | .txt | Direto |
| HTML | .html | BeautifulSoup |

## Estrutura de Referencias

```
.agentic_sdlc/references/
├── legal/              # Leis, regulamentos, normas
├── technical/          # RFCs, especificacoes tecnicas
├── business/           # Regras de negocio, manuais
├── internal/           # Documentos internos
└── _index.yml          # Indice de documentos
```

## Indice de Documentos

Arquivo `_index.yml`:

```yaml
index:
  version: 1
  updated_at: "2026-01-12T..."

documents:
  - id: "ref-001"
    path: "legal/lei-13775-2018.pdf"
    title: "Lei 13.775/2018 - Duplicatas Eletrônicas"
    category: legal
    added_at: "2026-01-12T..."
    indexed: true
    summary: "Lei que regulamenta as duplicatas escriturais..."
    keywords:
      - duplicata
      - escritural
      - eletronica
    page_count: 5

  - id: "ref-002"
    path: "technical/icp-brasil.pdf"
    title: "Padrões ICP-Brasil"
    category: technical
    added_at: "2026-01-12T..."
    indexed: true
```

## Extracao de Texto

### PDF

```bash
# Usando pdftotext (poppler-utils)
pdftotext -layout input.pdf output.txt

# Usando Python
python3 << 'EOF'
import PyPDF2

with open('input.pdf', 'rb') as f:
    reader = PyPDF2.PdfReader(f)
    text = ''
    for page in reader.pages:
        text += page.extract_text() + '\n'
    print(text)
EOF
```

### Word (docx)

```python
from docx import Document

doc = Document('input.docx')
text = '\n'.join([p.text for p in doc.paragraphs])
print(text)
```

## Integracao com RAG

Documentos indexados sao adicionados ao corpus RAG:

```yaml
corpus_entry:
  id: "ref-001"
  source: "references/legal/lei-13775-2018.pdf"
  type: "reference"
  category: "legal"
  content: "{texto extraido}"
  embeddings: [...]  # Gerado pelo RAG
  metadata:
    title: "Lei 13.775/2018"
    page: 1
    section: "Art. 1"
```

## Workflow de Indexacao

```yaml
indexing_workflow:
  1_validate:
    - Verificar formato suportado
    - Verificar tamanho (max 50MB)
    - Verificar permissoes

  2_extract:
    - Extrair texto do documento
    - Limpar formatacao
    - Dividir em chunks

  3_analyze:
    - Gerar resumo automatico
    - Extrair keywords
    - Classificar categoria

  4_index:
    - Adicionar ao corpus RAG
    - Gerar embeddings
    - Atualizar indice

  5_verify:
    - Testar busca
    - Verificar qualidade
```

## Configuracao

No `settings.json`:

```json
{
  "memory": {
    "rag_corpus": ".agentic_sdlc/corpus",
    "max_document_size_mb": 50,
    "chunk_size": 1000,
    "chunk_overlap": 200
  }
}
```

## Boas Praticas

1. **Nomeie arquivos descritivamente**: `lei-13775-2018-duplicatas.pdf`
2. **Organize por categoria**: legal, technical, business
3. **Mantenha versoes**: Nao sobrescreva, versione
4. **Documente a fonte**: Adicione de onde veio
5. **Resuma docs longos**: Crie resumos para PDFs grandes

## Troubleshooting

### PDF nao extrai texto

Alguns PDFs sao imagens escaneadas. Use OCR:

```bash
ocrmypdf input.pdf output.pdf
pdftotext output.pdf -
```

### Documento muito grande

Divida em partes menores ou aumente `max_document_size_mb`.

### Encoding incorreto

Force UTF-8 na extracao:

```bash
pdftotext -enc UTF-8 input.pdf output.txt
```