Pacote de skills Hermes no formato oficial (<nome>/SKILL.md + scripts/)
que permite a um agente Hermes (ou a um analista em terminal) interrogar
casos IPED indexados atraves da IPED WebAPI local, sem tocar no codigo do
IPED. Layout pronto para publicar como tap (urlan/analysis-skills).
iped-skills/ # raiz do futuro repo tap
├── README.md
├── GIT-GITHUB.md # como publicar e instalar via tap
├── skills/ # <-- o que o instalador do Hermes baixa
│ ├── iped-case/ # interrogacao: status/load/categories/search/item/summary
│ │ ├── SKILL.md # frontmatter oficial (name/description/config...)
│ │ └── scripts/
│ │ ├── iped_client.py # cliente HTTP da WebAPI (Python 3, stdlib)
│ │ └── iped_report.py
│ └── iped-report/ # pre-relatorio md+HTML por palavras-chave
│ ├── SKILL.md
│ └── scripts/
│ ├── iped_client.py # copia — cada skill e AUTOCONTIDA
│ └── iped_report.py
└── legacy-scripts/ # arquivos originais da fase SKILL-1/3 (arquivo, nao usar)
Cada skill e autocontida (os dois scripts duplicados dentro dela) porque o
instalador de skills do Hermes baixa a pasta da skill inteira — nada pode
apontar para fora dela. Os SKILL.md referenciam os scripts por caminho
RELATIVO (scripts/iped_client.py, rodando do diretorio da skill), com
fallback por variavel IPED_SKILL_DIR.
Apos publicar este diretorio como urlan/analysis-skills (ver GIT-GITHUB.md):
hermes skills tap add urlan/analysis-skills
# IMPORTANTE: as skills ficam em skills/analysis-skills/ (um nivel
# abaixo do padrao). Depois do "tap add", edite o taps.json do Hermes
# e ajuste o path:
# {"repo": "urlan/analysis-skills", "path": "skills/analysis-skills/"}
hermes skills install iped-case
hermes skills install iped-reportO instalador coloca cada skill em ~/.hermes/skills/<category>/<nome>/
(category forensics, declarada no frontmatter). Na primeira carga o
Hermes pergunta os settings nao-secretos definidos no frontmatter
(iped.webapi_url, iped.jar_path, iped.cases_dir — guardados em
config.yaml).
Copie skills/iped-case e skills/iped-report para
~/.hermes/skills/forensics/ (ou aponte-as la). Alternativa sem Hermes:
use os scripts direto em terminal — sao stdlib puro.
- Jar de release do IPED com layout
lib/(o manifesto doiped-webapi.jarreferencia dependencias porClass-Path). - Pasta de casos: cada caso e uma pasta contendo subdiretorio
IPED-indexacao-*gerado pelo IPED (indice + evidencia localizada). - JDK 11 (executavel
java), Python 3 (somente stdlib) epgrep/pkill(oloadgerencia o processo do servidor).
| Variavel | Setting Hermes | Default |
|---|---|---|
WEBAPI_BASE_URL |
iped.webapi_url |
http://127.0.0.1:8080 |
IPED_JAR |
iped.jar_path |
/iped-research/webapi-tests/iped-release/lib/iped-webapi.jar |
IPED_CASES_DIR |
iped.cases_dir |
/IPED-INDEXACOES (no ambiente de origem; script default: /iped-research/casos) |
JAVA_BIN |
— | /opt/data/toolchain/jdk-11/bin/java |
IPED_SOURCES_FILE |
— | /iped-research/webapi-tests/sources-skill.json |
IPED_SKILL_DIR |
— | caminho da skill (fallback p/ scripts fora do cwd) |
O log do servidor sobe em /iped-research/webapi-tests/skill-server.log
(no ambiente de origem).
cd ~/.hermes/skills/forensics/iped-case
python3 scripts/iped_client.py status # servidor/caso/total
python3 scripts/iped_client.py load <caso> # troca o caso e REINICIA o java
python3 scripts/iped_client.py summary # retrato do caso
python3 scripts/iped_client.py search <termo> --limit 5
python3 scripts/iped_client.py item <id> --text
cd ~/.hermes/skills/forensics/iped-report
python3 scripts/iped_report.py <caso> --keywords "a,b,c" --out PREO iped_report.py reusa o iped_client.py da MESMA pasta; gera
PRE.md + PRE.html e aproveita o caso ja carregado (so faz load — com
restart do Java — quando o caso pedido e outro).
Detalhes, exemplos reais e a disciplina do /text estao nos SKILL.md de
cada skill.
- Um caso por load (default). O
loadgrava um arquivo de sources com UM unico caso e reinicia o servidor (mata o processojavaviapkill -x java). Apos o load, ids de buscas anteriores perdem o sentido. - Aviso P2-7: carregamento multi-source entre versoes IPED incompativeis falha no bootstrap com erro opaco; multi-source exige caminhos explicitos e validacao manual.
- O
status/search/itemnunca sobem servidor: se estiverdown, o unico caminho eload.