| name | stars-explorer |
| description | Pipeline de exploración nocturna de GitHub stars de David — fetch, análisis, creación de skills desde patrones detectados. |
| category | mastermind |
Stars Explorer — Pipeline de Exploración de GitHub Stars
Qué hace
Ejecuta el pipeline que explora los repos que David ha starred en GitHub, extrae patrones arquitectónicos, y genera skills automáticas para los repos con valor.
Flujo
- Ejecutar:
bash /hermes-home/scripts/run-stars-explorer.sh --batch 15
- Leer el output JSON (o stdout con
--json)
- Para cada repo, decidir si merece skill:
- Patrón arquitectónico interesante → crear skill
- Librería/herramienta útil para proyectos de David → crear skill
- Repo de referencia (three.js, d3, etc.) → crear skill de patrón
- Skip (juego, config personal, fork sin cambios, too niche) → marcar skip
- Ya existe skill similar → marcar reference
- Si se crearon skills → re-indexar ChromaDB
- Guardar resumen en
notes/ si hubo hallazgos significativos
Ejecución
bash /hermes-home/scripts/run-stars-explorer.sh --batch 15
source /hermes-home/.env && export GITHUB_TOKEN NAN_API
python3 /hermes-home/scripts/explorar-stars.py --batch 15 --json
python3 /hermes-home/scripts/explorar-stars.py --status
python3 /hermes-home/scripts/explorar-stars.py --reprocess user/repo
python3 /hermes-home/scripts/run-stars-explorer.sh --include-own
Criterio de creación de skills — AGRESIVO
- Umbral MUY BAJO: si el repo tiene algo remotamente útil, CREAR el skill
- NO ser conservador. David quiere que el sistema crezca rápido.
- Cada skill debe tener: frontmatter YAML, descripción clara, código de ejemplo, pitfalls, referencias
- Categoría: según dominio (geospatial, creative, data-science, devops, ia, etc.)
Pitfalls
description: null crasha el script
La API de GitHub envía description: null (no "description": "") para repos sin descripción. Esto causa TypeError: 'NoneType' object is not subscriptable al hacer r['description'][:100].
Fix aplicado: En explorar-stars.py:
- Línea 139:
repo_data.get("description") or "" (en vez de .get("description", ""))
- Línea 390:
(r.get('description') or '(none)')[:100] (en vez de r['description'][:100] or '(none)')
Rate limiting de GitHub API
El script maneja rate limiting automáticamente (403 → return None), pero si se agota el token, el batch se corta. Verificar con --status después.
Script puede tardar 60-120s
El fetch de la API de GitHub es lento (1s de delay entre repos). Ser paciente, no matar el proceso.
Registry path
El registry se guarda en /hermes-home/data/stars-registry.json. Se puede sobrescribir con la variable STARS_REGISTRY.
Estado actual
- Total repos procesados: ~234
- Total runs: ~19
- Total skills generadas: ~44
- Repos pendientes: ~0
Referencias
- Script principal:
/hermes-home/scripts/explorar-stars.py
- Wrapper:
/hermes-home/scripts/run-stars-explorer.sh
- Registry:
/hermes-home/data/stars-registry.json