CommunityRedacción y edicióngithub.com

grahama1970/batch-report

Genera informes de análisis posteriores a la ejecución para trabajos de procesamiento por lotes. Analiza manifiestos, tiempos y fallos para producir informes completos en Markdown. Opcionalmente, los envía al agent-inbox para comunicación entre proyectos.

¿Qué es batch-report?

Batch Report Skill es una herramienta que genera informes de análisis detallados a partir de la salida de trabajos de procesamiento por lotes. Analiza manifiestos para contar elementos exitosos, fallidos y parcialmente completos, desglosa los tiempos por paso para identificar cuellos de botella, categoriza patrones de fallo y calcula métricas de calidad. Produce un informe legible en Markdown y puede enviarlo automáticamente al agent-inbox de un proyecto para comunicación entre agentes. Soporta múltiples formatos de lotes (extractor, youtube, generic) con detección automática del formato, y se integra con herramientas de visualización para generar gráficos de barras, pastel y de cascada de tiempos. Es útil para desarrolladores y agentes de IA que necesitan comprender rápidamente el rendimiento y los problemas de ejecuciones por lotes del pipeline.

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

Installed? Explore more Redacción y edición skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Preguntar en tu IA favorita

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

Documentación

Batch Report Skill

Genera informes de análisis completos para trabajos de procesamiento por lotes finalizados.

Características

  • Análisis de manifiestos - Cuenta éxitos, fallos y completaciones parciales
  • Desglose de tiempos - Análisis de latencia por paso, identificación de cuellos de botella
  • Patrones de fallo - Categoriza y resume modos de fallo
  • Métricas de calidad - Muestras de salida para evaluación de calidad
  • Informe Markdown - Resumen legible para humanos
  • Integración con agent-inbox - Envío automático al inbox del proyecto

Inicio Rápido

cd .pi/skills/batch-report

# Generar informe para un lote de extractor (detección automática de formato)
uv run python report.py analyze /ruta/a/salida/lote

# Generar y enviar al agent-inbox
uv run python report.py analyze /ruta/a/salida/lote --send-to extractor

# Solo mostrar estadísticas resumidas
uv run python report.py summary /ruta/a/salida/lote

# Analizar un archivo de estado independiente
uv run python report.py state /ruta/a/.batch_state.json

# Salida JSON para tuberías
uv run python report.py summary /ruta/a/salida --json | jq .success_rate

Comandos

analyze - Informe de análisis completo

uv run python report.py analyze /ruta/a/salida \
    --output report.md \
    --send-to extractor \
    --priority high

Opciones:

OpciónCortaDescripción
--output-oRuta del archivo de salida (por defecto: stdout)
--send-to-sEnviar informe al proyecto agent-inbox
--priority-pPrioridad para agent-inbox (low/normal/high/critical)
--sample-nNúmero de muestras a incluir (por defecto: 5)
--format-fFormato del lote: extractor, youtube, generic, auto (por defecto: auto)
--json-jSalida en JSON para tuberías a otras herramientas

summary - Solo estadísticas rápidas

uv run python report.py summary /ruta/a/salida
uv run python report.py summary /ruta/a/salida --json

Salida:

Lote: run-2025-12-18_144426-2eb428c
Total: 230 | Éxito: 180 | Fallo: 35 | Parcial: 15
Tasa de éxito: 78.3%
Tiempo medio: 4.2 min | Más lento: 09_section_summarizer (45%)

Salida JSON:

{
  "batch": "run-2025-12-18_144426-2eb428c",
  "format": "extractor",
  "total": 230,
  "successful": 180,
  "partial": 15,
  "failed": 35,
  "success_rate": 78.3,
  "avg_time_min": 4.2
}

state - Analizar archivos de estado independientes

uv run python report.py state /ruta/a/.batch_state.json
uv run python report.py state /ruta/a/.batch_state.json --json

Funciona con cualquier archivo .batch_state.json de cualquier trabajo por lotes.

failures - Listar fallos con razones

uv run python report.py failures /ruta/a/salida
uv run python report.py failures /ruta/a/salida --json

Formato del Informe

# Informe de Lote: run-2025-12-18_144426-2eb428c

## Resumen
- **Total de elementos:** 230
- **Exitosos:** 180 (78.3%)
- **Fallidos:** 35 (15.2%)
- **Parciales:** 15 (6.5%)

## Análisis de Tiempos
| Paso | Media (s) | Máx (s) | % del Total |
|------|-----------|---------|-------------|
| 09_section_summarizer | 120.5 | 341.0 | 45.2% |
| 05_table_extractor | 65.3 | 105.0 | 24.5% |
...

## Patrones de Fallo
| Patrón | Conteo | Ejemplo |
|--------|--------|---------|
| text_content vacío | 12 | 047ca6ef... |
| CUDA OOM | 5 | 9497a4e5... |
...

## Recomendaciones
1. Considerar modo --text-only para extracción de conocimiento
2. Agregar umbral de confianza de tabla antes de VLM
...

Visualización

Después de generar informes (especialmente con --json), ofrecer visualizar mediante /create-figure:

# Cascada de tiempos por paso del pipeline
create-figure metrics --input batch.json --output timing.png --type hbar --title "Tiempos por Paso"

# Distribución de éxito/fallo
create-figure metrics --input batch.json --output results.png --type pie --title "Resultados del Lote"

# Desglose de patrones de fallo
create-figure metrics --input batch.json --output failures.png --type bar --title "Patrones de Fallo"

Cuándo ofrecer: Después de presentar el análisis del lote, preguntar: "¿Quieres que visualice el desglose de tiempos?"

Formatos de Lote Soportados

La bandera --format acepta: extractor, youtube, generic o auto (por defecto).

Lógica de detección automática:

  1. Si existen */manifest.json y */timings_summary.json → extractor
  2. Si .batch_state.json tiene "transcript" en la descripción → youtube
  3. Si existe .batch_state.json → generic

Lotes de extractor

Espera:

  • */manifest.json - Manifiestos por elemento
  • */timings_summary.json - Datos de tiempos
  • */14_report_generator/json_output/final_report.json - Métricas de calidad
  • failed_urls.txt - Lista de elementos fallidos

Lotes de transcripción de YouTube

Espera:

  • .batch_state.json - Archivo de estado con descripción relacionada con transcripción

Lotes genéricos

Espera:

  • .batch_state.json - Archivo de estado con conteos de completados/fallidos
  • Archivos *.log para análisis de fallos (opcional)

Integración con agent-inbox

# Enviar informe como error
uv run python report.py analyze /ruta/a/salida \
    --send-to extractor \
    --priority high

# Mensaje enviado: extractor_abc123

Dependencias

dependencies = [
    "typer",
    "rich",
]

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/analytics

Flexible data science analytics for any dataset. Auto-discovers schema, recommends charts, exports to create-figure. Works with JSONL, JSON, CSV from any source.

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.

Skills relacionados