Toolkit Operacional
Compilado das ferramentas reutilizaveis criadas para alimentar e manter o vault do Oningume Guneta. Tudo vive no workspace /Users/goia/.openclaw/workspace-lol/ e atua sobre o vault Obsidian /Users/goia/Documents/Obsidian/goia/lol/ (exposto como team-wiki/ dentro do workspace).
Referencias relacionadas: riot-id-resolution, index, log.
Credenciais
Riot API Key
- Armazenamento: macOS Keychain.
- Service:
openclaw.lol-helper.riot-api-key. - Account: usuario macOS atual.
- Documentado em:
TOOLS.mdna raiz do workspace. - Regra: nunca persistir a chave no vault,
MEMORY.md, logs ou saida de comandos. Leitura apenas em runtime.
Helper scripts/riot-api-key
Bash helper com permissao 700.
Path: /Users/goia/.openclaw/workspace-lol/scripts/riot-api-key
scripts/riot-api-key set # grava ou rotaciona a chave no Keychain
scripts/riot-api-key status # informa se ha chave armazenada
scripts/riot-api-key get # imprime a chave em stdout (apenas para uso encadeado)
RIOT_API_KEY="$(scripts/riot-api-key get)"Rotacao diaria: quando Goia envia uma chave nova, rodar scripts/riot-api-key set e colar o valor.
Scripts utilitarios
scripts/get-team-recent-matches
Path: /Users/goia/.openclaw/workspace-lol/scripts/get-team-recent-matches
Ruby. Usa MATCH-V5 GET /lol/match/v5/matches/by-puuid/{puuid}/ids no host americas.api.riotgames.com para coletar as ultimas 5 partidas de cada player registrado, intersecciona os resultados e devolve apenas matches compartilhados por 2 ou mais membros.
Flags:
scripts/get-team-recent-matches --check # valida registry, PUUIDs e chave
scripts/get-team-recent-matches # imprime JSON agregado em stdoutFormato de saida:
[
{"Match":"BR1_3246636980","players":["bastardo","be","dab","fuji","goia"]},
{"Match":"BR1_3246565789","players":["be","fuji","goia"]}
]Persistencia raw: respostas individuais sao salvas em
team-wiki/raw/players/<slug>/riot-api/match-ids-<timestamp>.json.
Consumido pela skill ingest-shared-matches.
scripts/extract-match-analysis-input
Path: /Users/goia/.openclaw/workspace-lol/scripts/extract-match-analysis-input
Ruby. Transforma o payload completo de cada partida em um resumo compacto para
consumo pela futura skill de análise. Preserva o JSON original e gera:
team-wiki/raw/matches/<match-id>/analysis-input.jsonO resumo mantém contexto geral, objetivos, bans, composição dos dois times,
estatísticas dos 10 participantes e destaque dos players cadastrados. Inclui
KDA, posição, champion, farm, ouro, dano, visão, wards, objetivos, itens, runas
compactadas e challenges selecionados.
Uso:
scripts/extract-match-analysis-input --check
scripts/extract-match-analysis-input
scripts/extract-match-analysis-input --match-id BR1_3246636980scripts/update-match-wiki-from-analysis-input
Path: /Users/goia/.openclaw/workspace-lol/scripts/update-match-wiki-from-analysis-input
Ruby. Projeta evidências objetivas do analysis-input.json para a página
compilada da partida sem realizar análise estratégica. Preenche frontmatter com
data, horário, patch, fila, resultado dos membros cadastrados, duração, modo e
versão. Atualiza a seção gerada com objetivos, composições e placares.
Uso:
scripts/update-match-wiki-from-analysis-input --check
scripts/update-match-wiki-from-analysis-input
scripts/update-match-wiki-from-analysis-input --match-id BR1_3246636980Skills
Todas as skills vivem em /Users/goia/.openclaw/workspace-lol/skills/<nome>/ com SKILL.md no nivel raiz e o executavel em scripts/<nome>. Permissao 700.
get-players-puuid
- Path da skill:
skills/get-players-puuid/SKILL.md - Script:
skills/get-players-puuid/scripts/get-players-puuid - Objetivo: preencher o campo
puuidde cada player emteam-wiki/wiki/players/.
Funcionamento:
- Le Riot IDs do registry em
team-wiki/schema/PLAYER_REGISTRY.md. - Obtem a chave via
scripts/riot-api-key get. - Consulta
ACCOUNT-V1 by-riot-idemamericas.api.riotgames.com. - Salva a resposta imutavel em
team-wiki/raw/players/<slug>/riot-api/account-by-riot-id-<timestamp>.json. - Atualiza o YAML do player com
puuidepuuid_source(referencia relativa ao raw). - Pula players ja preenchidos, exceto com
--refresh.
Paths referenciados:
- Entrada:
team-wiki/schema/PLAYER_REGISTRY.md. - Saida raw:
team-wiki/raw/players/<slug>/riot-api/. - Saida compilada:
team-wiki/wiki/players/<slug>.md.
Uso:
skills/get-players-puuid/scripts/get-players-puuid --check
skills/get-players-puuid/scripts/get-players-puuid
skills/get-players-puuid/scripts/get-players-puuid --slug goia
skills/get-players-puuid/scripts/get-players-puuid --refreshDocumentacao de fundo: riot-id-resolution.
ingest-shared-matches
- Path da skill:
skills/ingest-shared-matches/SKILL.md - Script:
skills/ingest-shared-matches/scripts/ingest-shared-matches - Objetivo: criar paginas de matches e teams canonicos a partir das partidas compartilhadas descobertas.
Funcionamento:
- Invoca
scripts/get-team-recent-matchese consome o JSON agregado. - Para cada match ausente em
team-wiki/wiki/matches/, cria<match-id>.mdcomanalyzed: false, lista de players e wikilink para o team canonico. - Calcula o slug canonico do team ordenando os slugs e juntando por
-(por exemplobastardo-be-dab-fuji-goia). - Cria ou atualiza
team-wiki/wiki/teams/<team-slug>.mdapontando de volta para todos os matches conhecidos do agrupamento. - Idempotente: nao sobrescreve paginas existentes nem duplica wikilinks.
Paths referenciados:
- Entrada: saida do
scripts/get-team-recent-matches. - Saida:
team-wiki/wiki/matches/<match-id>.mdeteam-wiki/wiki/teams/<team-slug>.md.
Uso:
skills/ingest-shared-matches/scripts/ingest-shared-matches --check
skills/ingest-shared-matches/scripts/ingest-shared-matchesfetch-pending-match-data
- Path da skill:
skills/fetch-pending-match-data/SKILL.md - Script:
skills/fetch-pending-match-data/scripts/fetch-pending-match-data - Objetivo: hidratar com o payload completo do Riot toda partida ainda nao analisada.
Funcionamento:
- Varre
team-wiki/wiki/matches/em busca de paginas comanalyzed: falsee sem raw associado. - Chama
MATCH-V5 GET /lol/match/v5/matches/{matchId}emamericas.api.riotgames.com. - Persiste o payload original em
team-wiki/raw/matches/<match-id>/riot-api.json(nunca sobrescreve). - Executa
scripts/extract-match-analysis-input --match-id <match-id>. - Persiste o resumo derivado em
team-wiki/raw/matches/<match-id>/analysis-input.json. - Executa
scripts/update-match-wiki-from-analysis-input --match-id <match-id>. - Atualiza a página compilada com frontmatter objetivo, objetivos, composições e placares.
- Mantem
analyzed: false. Analise estratégica sera feita por outra skill futura.
Paths referenciados:
- Entrada:
team-wiki/wiki/matches/*.md. - Saida raw:
team-wiki/raw/matches/<match-id>/riot-api.json. - Saida filtrada:
team-wiki/raw/matches/<match-id>/analysis-input.json. - Saida compilada: campo
raw_sourcesda pagina do match.
Uso:
skills/fetch-pending-match-data/scripts/fetch-pending-match-data --check
skills/fetch-pending-match-data/scripts/fetch-pending-match-data
skills/fetch-pending-match-data/scripts/fetch-pending-match-data --match-id BR1_3246636980Endpoints Riot API em uso
| Endpoint | Host | Usado por |
|---|---|---|
ACCOUNT-V1 /riot/account/v1/accounts/by-riot-id/{gameName}/{tagLine} | americas.api.riotgames.com | get-players-puuid |
MATCH-V5 /lol/match/v5/matches/by-puuid/{puuid}/ids | americas.api.riotgames.com | get-team-recent-matches |
MATCH-V5 /lol/match/v5/matches/{matchId} | americas.api.riotgames.com | fetch-pending-match-data |
Tratamentos comuns:
429: respeitarRetry-After.404: registrar e seguir (player ou match nao encontrado).401/403: chave invalida ou expirada; rotacionar comscripts/riot-api-key set.5xx: backoff e nova tentativa.
Convencoes do vault aplicadas
- Raw imutavel em
team-wiki/raw/, jamais sobrescrito. - Compilado em
team-wiki/wiki/, sempre com YAML valido. - Wikilinks bidirecionais entre
matcheteamcanonico. - Slugs estaveis:
goia,dab,bastardo,fuji,deco,be,joao. - Team slug: lista ordenada de slugs unida por
-. - Match page comeca com
analyzed: false. - Toda atualizacao relevante deve refletir em log.
Pipeline tipico do dia
# 1. rotacionar a chave diaria
scripts/riot-api-key set
# 2. garantir PUUIDs (idempotente)
skills/get-players-puuid/scripts/get-players-puuid
# 3. descobrir e ingerir partidas compartilhadas recentes
skills/ingest-shared-matches/scripts/ingest-shared-matches
# 4. hidratar payloads completos das partidas pendentes
skills/fetch-pending-match-data/scripts/fetch-pending-match-data
# 5. a hidratacao ja gera analysis-input.json compacto automaticamente
# 6. (futuro) skill de analise para marcar analyzed: truePendencias e proximos passos
- Skill de analise das partidas hidratadas (planejada para apos o almoco).
- Lint do vault como passo final apos cada execucao.
- Considerar agendamento automatico do pipeline diario apos validacao manual.