Community写作与编辑github.com

grahama1970/batch-report

为批处理作业生成运行后分析报告。分析清单、时间和失败情况,生成全面的 Markdown 报告。可选地发送到 agent-inbox 以实现跨项目通信。

batch-report 是什么?

该技能为完成后的批处理作业提供自动化、深入的分析报告。它能解析清单以统计成功、失败和部分完成项,分解每个步骤的耗时以识别瓶颈,对失败模式进行分类和汇总,并对样本输出进行质量评估。生成的报告采用易于阅读的 Markdown 格式,并支持通过 `--send-to` 参数自动发送到 agent-inbox,便于跨项目沟通。该技能适用于 Cursor 等支持 Python 脚本的 AI 代理平台,通过 CLI 命令 `analyze`、`summary`、`state` 和 `failures` 提供灵活的分析和输出方式(包括 JSON 格式),并支持 `extractor`、`youtube` 和 `generic` 等多种批处理格式的自动检测。

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

Installed? Explore more 写作与编辑 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Batch Report 技能

为已完成的批处理作业生成全面的分析报告。

特性

  • 清单分析 - 统计成功、失败、部分完成项数量
  • 时间分解 - 分析每个步骤的延迟,识别瓶颈
  • 失败模式 - 分类和汇总失败原因
  • 质量指标 - 对样本输出进行质量评估
  • Markdown 报告 - 人类可读的摘要
  • agent-inbox 集成 - 自动发送到项目收件箱

快速开始

cd .pi/skills/batch-report

# 为 extractor 批处理生成报告(自动检测格式)
uv run python report.py analyze /path/to/batch/output

# 生成报告并发送到 agent-inbox
uv run python report.py analyze /path/to/batch/output --send-to extractor

# 仅显示摘要统计信息
uv run python report.py summary /path/to/batch/output

# 分析独立的 state 文件
uv run python report.py state /path/to/.batch_state.json

# 输出 JSON 格式以便管道传输
uv run python report.py summary /path/to/output --json | jq .success_rate

命令

analyze - 完整分析报告

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

选项:

选项缩写描述
--output-o输出文件路径(默认为标准输出)
--send-to-s将报告发送到 agent-inbox 项目
--priority-pagent-inbox 的优先级(low/normal/high/critical)
--sample-n包含的样本数量(默认:5)
--format-f批处理格式:extractor、youtube、generic、auto(默认:auto)
--json-j输出为 JSON 格式,便于管道传输到其他工具

summary - 仅快速统计信息

uv run python report.py summary /path/to/output
uv run python report.py summary /path/to/output --json

输出:

Batch: run-2025-12-18_144426-2eb428c
Total: 230 | Success: 180 | Failed: 35 | Partial: 15
Success rate: 78.3%
Avg time: 4.2 min | Slowest: 09_section_summarizer (45%)

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 - 分析独立的 state 文件

uv run python report.py state /path/to/.batch_state.json
uv run python report.py state /path/to/.batch_state.json --json

适用于来自任何批处理作业的任何 .batch_state.json 文件。

failures - 列出失败项及其原因

uv run python report.py failures /path/to/output
uv run python report.py failures /path/to/output --json

报告格式

# 批处理报告:run-2025-12-18_144426-2eb428c

## 摘要
- **总项数:** 230
- **成功:** 180 (78.3%)
- **失败:** 35 (15.2%)
- **部分完成:** 15 (6.5%)

## 耗时分析
| 步骤 | 平均(秒) | 最大(秒) | 占总时间百分比 |
|------|---------|---------|------------|
| 09_section_summarizer | 120.5 | 341.0 | 45.2% |
| 05_table_extractor | 65.3 | 105.0 | 24.5% |
...

## 失败模式
| 模式 | 数量 | 示例 |
|---------|-------|---------|
| 空文本内容 Empty text_content | 12 | 047ca6ef... |
| CUDA 内存不足 | 5 | 9497a4e5... |
...

## 建议
1. 考虑为知识提取使用 --text-only 模式
2. 在 VLM 之前添加表格置信度阈值
...

可视化

生成报告后(特别是使用 --json 时),可通过 /create-figure 提供可视化功能:

# 按流水线步骤生成耗时瀑布图
create-figure metrics --input batch.json --output timing.png --type hbar --title "步骤耗时"

# 成功/失败分布
create-figure metrics --input batch.json --output results.png --type pie --title "批处理结果"

# 失败模式细分
create-figure metrics --input batch.json --output failures.png --type bar --title "失败模式"

何时提供: 展示批处理分析后,询问:“是否希望我将耗时分解可视化?”

支持的批处理格式

--format 标志接受:extractor、youtube、generic 或 auto(默认)。

自动检测逻辑:

  1. 如果存在 */manifest.json 和 */timings_summary.json → extractor
  2. 如果 .batch_state.json 的描述中包含“transcript” → youtube
  3. 如果存在 .batch_state.json → generic

extractor 类型的批处理

预期文件:

  • */manifest.json - 每项的清单
  • */timings_summary.json - 耗时数据
  • */14_report_generator/json_output/final_report.json - 质量指标
  • failed_urls.txt - 失败项列表

YouTube 转录类型的批处理

预期文件:

  • .batch_state.json - 包含与转录相关的描述的 state 文件

generic 类型的批处理

预期文件:

  • .batch_state.json - 包含完成/失败计数的 state 文件
  • *.log 文件(可选)用于失败分析

与 agent-inbox 的集成

# 以 bug 形式发送报告
uv run python report.py analyze /path/to/output \
    --send-to extractor \
    --priority high

# 发送的消息:extractor_abc123

依赖项

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.

相关技能