← スキル一覧に戻る
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
```