grahama1970/analytics

Analítica de ciencia de datos flexible para cualquier conjunto de datos. Descubre esquemas automáticamente, recomienda gráficos y exporta al formato create-figure. Funciona con JSONL, JSON y CSV de cualquier fuente.

¿Qué es analytics?

Este skill proporciona un flujo de trabajo completo de ciencia de datos para agentes de IA como Claude Code, Cursor o Codex. Permite analizar y visualizar cualquier conjunto de datos en formatos JSONL, JSON o CSV. Su función principal es auto-descubrir el esquema del dataset (columnas temporales, numéricas, categóricas, etc.) y recomendar visualizaciones adecuadas mediante el comando `describe`. Luego, el agente puede generar datos de gráfico con `chart` o `group-by` y exportarlos al formato de `create-figure` para renderizar gráficos de calidad publicitaria. Esto elimina la necesidad de configuración manual y permite un pipeline ágil de datos a visualización. Además, para datos con marcas de tiempo (como salidas de `ingest-*`), ofrece análisis especializados como tendencias, sesiones de visualización y patrones de uso. Es ideal para desarrolladores que quieren que sus agentes de IA realicen análisis exploratorio de datos sin intervención humana, integrando perfectamente con el ecosistema de skills de `.pi`.

Compatible con~Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add https://github.com/grahama1970/agent-skills/tree/main/skills/analytics

Installed? Explore more Investigación y análisis de datos skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Skill de Analítica

Analítica de ciencia de datos flexible que funciona con cualquier conjunto de datos. Auto-descubre esquemas, recomienda visualizaciones y exporta en formato create-figure.

Inicio Rápido (Cualquier Dataset)

cd .pi/skills/analytics

# Paso 1: Descubrir qué hay en los datos
./run.sh describe data.jsonl

# Paso 2: Ver recomendaciones y generar gráfico
./run.sh chart data.jsonl --name distribution_channel -o chart.json

# Paso 3: Renderizar con create-figure
cd .agent/skills/create-figure
./run.sh metrics -i /path/to/chart.json --type bar -o chart.pdf

El Pipeline sin Fricción

Cualquier Dato (JSONL/JSON/CSV)
         │
         ▼
┌─────────────────────────────────┐
│   analytics describe            │  ← Descubre esquema, recomienda gráficos
│  "5 columnas categóricas, 2     │
│   numéricas, 1 temporal detectadas"│
│  Recomendaciones:               │
│   - distribution_channel (bar)  │
│   - trend_by_date (line)        │
│   - heatmap_hour_x_day          │
└─────────────────────────────────┘
         │
         ▼
┌─────────────────────────────────┐
│   analytics chart/group-by      │  ← Genera datos de gráfico en formato create-figure
│  --name distribution_channel    │
│  -o chart.json                  │
└─────────────────────────────────┘
         │
         ▼
┌─────────────────────────────────┐
│   create-figure metrics         │  ← Renderiza PDF/PNG de calidad publicitaria
│  -i chart.json --type bar       │
│  -o channel_distribution.pdf    │
└─────────────────────────────────┘

Comandos

Descubrimiento (Empezar Aquí)

ComandoDescripción
describe <archivo>Descubre esquema, detecta tipos de columna, recomienda gráficos
./run.sh describe sales.jsonl
# Salida:
# Columnas: date (temporal), product (categórica), amount (numérica), region (categórica)
# Recomendaciones:
#   1. distribution_product - Distribución de product
#   2. distribution_region - Distribución de region
#   3. trend_by_date - Conteo over date
#   4. heatmap_product_x_region - product vs region

Análisis Flexible

ComandoDescripción
group-by <archivo>Agrupa por cualquier columna con agregación
stats <archivo>Estadísticas numéricas y correlaciones
chart <archivo>Genera especificación de gráfico para create-figure
# Agrupar por cualquier columna
./run.sh group-by data.jsonl --by channel --for-figure -o by_channel.json
./run.sh group-by data.jsonl --by category --agg price --func sum

# Estadísticas numéricas
./run.sh stats data.jsonl --columns revenue,cost,profit

# Generar gráfico desde recomendación
./run.sh chart data.jsonl --name distribution_channel -o chart.json

Datos con Marca Temporal (salidas ingest-*)

ComandoDescripción
insights <archivo>Resumen completo de análisis (tendencias, sesiones, patrones)
trends <archivo>Tendencias de visualización con medias móviles
sessions <archivo>Detección de sesiones y análisis de atracones
time-patterns <archivo>Distribución por hora/día
evolution <archivo>Cómo cambian las preferencias con el tiempo

Salida

ComandoDescripción
export <archivo>Exporta en lote todos los gráficos estándar
report <archivo>Reporte narrativo estilo Horus

Formatos Soportados

FormatoExtensiónAuto-Detección
JSONL.jsonlJSON delimitado por líneas
JSON.jsonArray o {data: [...]}
CSV.csvSeparado por comas

Detección de Tipos de Columna

El comando describe auto-detecta:

TipoLógica de DetecciónGráficos Recomendados
temporaldatetime64, strings con aspecto de fechalínea, área, heatmap (eje temporal)
numéricaint64, float64histograma, dispersión, stats
categóricabaja cardinalidad (≤20 únicos)barra, pastel, heatmap
booleanadtype boolpastel (verdadero/falso)
textostrings de alta cardinalidadnube de palabras, top-N

Recomendaciones de Gráficos

Basado en los tipos de columna, analytics recomienda:

Patrón de DatosTipo de GráficoComando create-figure
1 categóricabarra, pastelmetrics --type bar
1 temporallíneatraining-curves
2 categóricasheatmapheatmap
temporal + categóricaheatmapheatmap
2+ numéricasmatriz de correlaciónheatmap
1 numéricahistogramametrics --type bar

Flujo de Trabajo del Agente

Para que un agente de proyecto analice cualquier dataset y visualice:

# 1. Descubrir esquema
result = run("./run.sh describe data.jsonl --json")
recommendations = result["recommendations"]

# 2. Elegir primera recomendación
chart_name = recommendations[0]["name"]
cmd = recommendations[0]["create_figure_cmd"]

# 3. Generar datos del gráfico
run(f"./run.sh chart data.jsonl --name {chart_name} -o chart.json")

# 4. Renderizar
run(f"cd .agent/skills/create-figure && ./run.sh {cmd} -i chart.json -o chart.pdf")

Ejemplos

Datos de Ventas de E-commerce

# Datos: orders.jsonl con date, product, category, amount, region

./run.sh describe orders.jsonl
# → Recomienda: distribution_category, distribution_region, trend_by_date

./run.sh group-by orders.jsonl --by category --agg amount --func sum --for-figure -o revenue_by_category.json
# → {"metrics": {"Electronics": 45000, "Clothing": 32000, ...}}

cd .agent/skills/create-figure
./run.sh metrics -i revenue_by_category.json --type bar -o revenue.pdf

Historial de YouTube (ingest-yt-history)

# Usar comandos especializados con marca temporal
./run.sh insights ~/.pi/ingest-yt-history/history.jsonl
./run.sh export ~/.pi/ingest-yt-history/history.jsonl -o ./charts --for-figure

cd .agent/skills/create-figure
./run.sh heatmap -i charts/heatmap.json -o viewing_heatmap.pdf

Datos de Respuesta de API

# Datos: api_logs.json con endpoint, status_code, response_time, user_id

./run.sh describe api_logs.json
./run.sh stats api_logs.json --columns response_time
# → mean=245.3ms, std=89.2ms, p50=220ms, p99=450ms

./run.sh group-by api_logs.json --by endpoint --agg response_time --func mean --for-figure -o latency.json

Dependencias

# pyproject.toml
dependencies = [
    "pandas>=2.0.0",
    "typer>=0.9.0",
    "rich>=13.0.0",
]

Integración con Horus

# Estilo narrativo Horus
./run.sh insights ~/.pi/ingest-yt-history/history.jsonl --horus

# Salida:
# "Tus patrones de visualización revelan una tendencia nocturna hacia contenido melancólico.
#  La actividad máxima ocurre en las horas del crepúsculo, con el consumo de música intensificándose
#  durante sesiones introspectivas nocturnas..."

Errores Comunes

# MAL: Llamar a stats directamente sobre un dataset desconocido
./run.sh stats data.jsonl --columns revenue,cost
# → Fallo en columnas no numéricas ("USD 1000" es texto, no número)
# BIEN: Siempre ejecutar describe primero
./run.sh describe data.jsonl
# → Muestra tipos de columna, recomienda comandos de gráfico correctos

# MAL: Elegir tipo de gráfico manualmente sin recomendación de describe
./run.sh group-by data.jsonl --by date --agg views | ./run.sh metrics --type pie
# → Gráfico de pastel para datos de serie temporal es inútil
# BIEN: Usar el comando create-figure recomendado por describe

# MAL: Asumir que el esquema JSONL cumple las expectativas
# → Campos renombrados, nulos presentes, tipos mezclados
# BIEN: describe detecta todo esto automáticamente

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

grahama1970/acceptance-contract

Turn a client brief, zip bundle, directory, or single requirements file into a typed acceptance-contract bundle with extracted requirements, acceptance checks, open questions, an immutable-goal draft, and a create-report-backed decision report. Use when users say acceptance contract, brief to requirements, freeze the goal, create immutable goal, amend immutable goal, build a Battle requirements bundle, or extract requirements from this bundle.

grahama1970/agent-ecosystem

Canonical map and shared contracts for the agent-governance ecosystem: the pi.receipt_envelope.v1 boundary envelope, the component graph, and the rules for which component owns which schema. Use when wiring a skill or extension into the shared receipt world, when asking how shame, triage-error, tau, ask, project-watchdog, ops-herdr, ponytail, and Memory fit together, or when validating an envelope.

grahama1970/agentic-evals

Agentic evaluation of skills using multi-trial fixtures, deterministic command assertions, trajectory checks, safety constraints, and evidence-backed readiness scoring. Use when users ask for agentic evals, multi-trial skill evaluation, skill trajectory validation, or readiness scoring for a skill workflow.

grahama1970/agent-inbox

File-based inter-agent messaging with headless dispatch. Check inbox, send bugs/requests to other projects, automatically spawn headless agents to fix bugs, and track progress via task-monitor.

grahama1970/agents-registry

Generate and query the centralized agent identity registry. Scans .pi/agents/*/AGENTS.md, parses frontmatter, outputs agents-registry.json and optionally syncs to /memory for semantic search.

grahama1970/agent-status

Artifact-driven status surfaces for long-running project-agent work. Maintains status.json, events.jsonl, proof manifests, and a stale-aware STATUS.html so humans can tell where the agent is, what passed, what is still unproven, and what decision or action is next — without dashboard theater.

grahama1970/align

Round-based context alignment before execution. Use when the human, project agent, WebGPT, scillm, ask, dogpile, memory, or project-knowledge may each hold different facts about a task; especially before ambiguous design, infographic, product workflow, high-stakes implementation, plan-iterate, project-infographic, or multi-review work.

grahama1970/analyze-chatterbox-emotions

Evaluate generated Chatterbox voice files as voice-quality artifacts: affect match, arousal/valence proxies, pause placement, intelligibility inputs, clipping, loudness, and discontinuity flags. Use when reviewing Chatterbox emotional tags, pauses, Turbo/base affect delivery, Persona Dream utterance renders, or whether generated speech matches an intended product-facing affect.

grahama1970/analyze-elf

Reverse-engineer features from ELF binaries. Extracts CLI commands, state machines, protocols, Zod schemas, and data models. Automatically generates a /create-walkthrough prosecution brief with Mermaid diagrams. Uses /treesitter for AST analysis of bundled JS/TS source.

grahama1970/animation-vocabulary

Reverse-lookup glossary that turns a vague description of a web animation or motion effect into its exact term ("the bouncy thing when a popover opens" → Pop in; "the iOS rubber-band scroll" → Rubber-banding). Use when the user asks "what's it called when…", or describes a motion effect without knowing its name and wants the right word to prompt an AI or designer with. For naming an effect, not designing or building one.

grahama1970/anonymize-data

Anonymize supported CSV, JSON, UTF-8 text, and SQLite files using an explicit policy through the oai-trial project. Use for anonymize data, pseudonymize exports, redact policy literals, or discover and explicitly approve fuzzy name aliases. The skill is a thin CLI/Docker interface, not another engine.

grahama1970/anvil

Heavy-duty "No-Vibes" debugging and hardening orchestrator. Use this for complex, stubborn bugs where `review-code` has failed, or for "Red Teaming" (hardening) a codebase. Runs multiple agents in parallel (Thunderdome) using git worktree isolation.

grahama1970/apple-design

Apple's approach to interface design and fluid, physical motion, translated for the web. Use when building or reviewing gesture-driven UI, spring animations, drag/swipe/sheet interactions, momentum and interruptible transitions, translucent materials and depth, typography (optical sizing, tracking, leading), reduced-motion, or the design foundations (feedback, spatial consistency, restraint) behind Apple-style interfaces.

grahama1970/argue

Multi-persona structured debate orchestrator. Personas research via /dogpile, consult colleagues via /ask, and argue toward nuanced synthesis on complex questions.

grahama1970/arxiv

Search arXiv for papers and extract knowledge into memory. Use `search` to find papers, `learn` to extract knowledge.

grahama1970/ask

Use when the user asks to query project memory, ask an oracle, use supported browser-backed reviewers, run Tau roundtable/single-handler workflows, ask Pi-native subagents from within Pi, run persona/deep-review workflows, generate image prompts, check OS/project health through composed skills, or run an ask DAG. This skill is the executable /ask runtime; do not replace it with an informal subagent, plain web search, or hand-written review; inside Pi, explicit Pi-native subagent targets are routed through the pi-subagents tool as an Ask target type.

grahama1970/assess

Step back and critically reassess project state. Use when asked to "assess", "step back", "fresh eyes", "check alignment", "sanity check", "health check", "prune documentation", or "evaluate what's working". Offers documentation pruning and doc-code alignment analysis. Offer to run after major changes (don't auto-run).

grahama1970/assistant

Shared GPT + classifier inference gateway for persona monitor tasks. Routes validation and classification through a 4-tier cascade: heuristic → classifier → local GPT → scillm.

grahama1970/assistant-lab

Self-improvement workbench for /assistant. All the tools needed to diagnose, train, evaluate, and promote models in a continuous loop. The "warm pond" where /assistant evolves its own inference stack.

grahama1970/batch-quality

Pre-flight validation and quality gates for batch LLM operations. ACTUALLY tests samples through LLM before burning tokens. Uses SPARTA contracts for DuckDB validation queries. Integrates with task-monitor for enforced quality gates.

Skills relacionados