with one click
daily-progress-summary
生成每日开发进度总结报告。并行执行进度总结、任务更新、全量测试、文档整理,汇总成HTML报告。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
生成每日开发进度总结报告。并行执行进度总结、任务更新、全量测试、文档整理,汇总成HTML报告。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | daily-progress-summary |
| description | 生成每日开发进度总结报告。并行执行进度总结、任务更新、全量测试、文档整理,汇总成HTML报告。 |
本 skill 执行每日自动化巡检流程,并行下发4个子任务,全部完成后汇总成HTML报告。
★ Insight ─────────────────────────────────────
.dev_doc/todo.md - 待办事项清单.dev_doc/work_done.md - 已完成事项清单.dev_doc/status.md - 当前开发状态(如果有)git log - 最近提交记录git status - 当前代码变更状态HTML报告文件,保存到 .dev_doc/daily_reports/YYYY-MM-DD.html
┌─────────────────────────────────────────────────────────────────────┐
│ Step 1: 并行下发4个子任务 │
│ │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ 每日进度总结 │ │ 进度更新与日报 │ │ 全量自动测试 │ │
│ │ (daily_summary) │ │ (todo_update) │ │ (test_runner) │ │
│ └────────┬────────┘ └────────┬────────┘ └────────┬────────┘ │
│ └─────────────────┬─────────────────┬─────────────────┘ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ 文档整理 │ │
│ │ (doc_integrate) │ │
│ └────────┬────────┘ │
│ │ │
│ ▼ all complete │
│ Step 2: 汇总生成HTML报告 │
│ ↓ │
│ .dev_doc/daily_reports/YYYY-MM-DD.html │
└─────────────────────────────────────────────────────────────────────┘
使用 dispatching-parallel-agents skill,下发4个独立 agent:
任务:生成每日进度总结
执行内容:
.dev_doc/todo.md、.dev_doc/work_done.md、.dev_doc/status.md(如果存在)返回格式:
{
"agent": "daily_summary",
"phase": "当前阶段",
"feature": "当前功能",
"status": "状态描述",
"today_commits": 数字,
"week_completed": 数字,
"pending_p0": 数字,
"tasks_by_priority": {...},
"git_summary": "git log摘要",
"git_status": "未提交变更摘要"
}
任务:根据当日 git 提交和代码变动,更新 todo 状态
执行内容:
.dev_doc/todo.md返回格式:
{
"agent": "todo_update",
"tasks_cleaned": [
{"task": "任务名", "action": "migrated_to_work_done", "reason": "分支已合并"}
],
"todo_updates": "todo.md变更摘要",
"report": "任务清理报告markdown"
}
任务:执行全量测试,修复失败用例,输出测试报告
执行内容:
cd /tmp/dev/huashan_dev && python3 -m pytest tests/ -v返回格式:
{
"agent": "test_runner",
"total_tests": 数字,
"passed": 数字,
"failed": 数字,
"skipped": 数字,
"pass_rate": "xx%",
"failures": [
{
"test_name": "test_xxx",
"file": "tests/xxx.py",
"error": "错误信息摘要",
"reason": "可能的原因分析"
}
],
"test_report_path": "报告文件路径",
"fixed_issues": ["修复的问题列表"]
}
任务:整理当日散落的文档到规范路径
执行内容:
.dev_doc/ 根目录的日期前缀文档(YYYY-MM-DD-*.md).dev_doc/<feature>/)返回格式:
{
"agent": "doc_integrate",
"integrated": ["已整合的文档列表"],
"deleted": ["已删除的文档列表"],
"moved_to_design": ["移至design/的文档列表"],
"preserved": ["保留的文档列表"],
"report": "完整整合报告markdown"
}
# 4个agent并行下发
Agent("daily_summary", prompt=每日进度总结任务)
Agent("todo_update", prompt=进度更新任务)
Agent("test_runner", prompt=全量测试任务)
Agent("doc_integrate", prompt=文档整理任务)
# 等待全部完成
所有子任务完成后,将4个agent的结果汇总成一个HTML报告。
报告结构(核心原则:开头展示概览,下方展示细节):
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>每日开发巡检报告 - {{date}}</title>
<style>
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; max-width: 1400px; margin: 0 auto; padding: 20px; }
h1 { color: #333; border-bottom: 2px solid #4A90E2; padding-bottom: 10px; }
h2 { color: #4A90E2; margin-top: 30px; }
h3 { color: #666; margin-top: 20px; }
section { background: #f9f9f9; padding: 20px; border-radius: 8px; margin: 20px 0; }
.alert { background: #fff3cd; border: 1px solid #ffc107; padding: 15px; border-radius: 5px; margin: 10px 0; }
.alert-error { background: #f8d7da; border: 1px solid #dc3545; }
.alert-success { background: #d4edda; border: 1px solid #28a745; }
table { width: 100%; border-collapse: collapse; margin: 10px 0; }
th, td { border: 1px solid #ddd; padding: 10px; text-align: left; }
th { background: #4A90E2; color: white; }
.p0 { color: #dc3545; font-weight: bold; }
.p1 { color: #e67e22; }
.p2 { color: #3498db; }
.p3 { color: #95a5a6; }
.completed { background: #d4edda; }
.in-progress { background: #cce5ff; }
.pending { background: #fff3cd; }
.failed { background: #f8d7da; }
.meta { color: #666; font-size: 0.9em; }
ul { margin: 10px 0; }
li { margin: 5px 0; }
pre { background: #2d2d2d; color: #f8f8f2; padding: 15px; border-radius: 5px; overflow-x: auto; font-size: 12px; }
.stat-box { display: flex; gap: 20px; margin: 15px 0; flex-wrap: wrap; }
.stat { background: white; padding: 15px 25px; border-radius: 8px; text-align: center; box-shadow: 0 2px 4px rgba(0,0,0,0.1); min-width: 120px; }
.stat-value { font-size: 28px; font-weight: bold; color: #4A90E2; }
.stat-label { font-size: 14px; color: #666; }
.stat-error { color: #dc3545; }
.badge { display: inline-block; padding: 3px 8px; border-radius: 3px; font-size: 12px; }
.badge-success { background: #28a745; color: white; }
.badge-danger { background: #dc3545; color: white; }
.badge-warning { background: #ffc107; color: #333; }
.timestamp { float: right; color: #999; font-size: 0.9em; }
</style>
</head>
<body>
<h1>每日开发巡检报告 <span class="timestamp">{{YYYY-MM-DD}}</span></h1>
<!-- 概览区 - 核心指标一眼可见 -->
<section id="overview">
<h2>巡检概览</h2>
<div class="stat-box">
<div class="stat">
<div class="stat-value">{{today_commits}}</div>
<div class="stat-label">今日提交</div>
</div>
<div class="stat">
<div class="stat-value">{{week_completed}}</div>
<div class="stat-label">本周完成</div>
</div>
<div class="stat">
<div class="stat-value">{{pending_p0}}</div>
<div class="stat-label">待处理P0</div>
</div>
<div class="stat">
<div class="stat-value {{#if test_failures}}stat-error{{/if}}">{{test_pass_rate}}</div>
<div class="stat-label">测试通过率</div>
</div>
<div class="stat">
<div class="stat-value">{{docs_integrated}}</div>
<div class="stat-label">文档已整理</div>
</div>
</div>
<p><strong>当前阶段:</strong>{{phase}}</p>
<p><strong>功能:</strong>{{feature}}</p>
<p><strong>状态:</strong>{{status}}</p>
</section>
<!-- 测试结果区 - 失败用例必须展示 -->
{{#if test_failures}}
<section id="test-results" class="alert-error" style="background: #f8d7da; border: 1px solid #dc3545;">
<h2 style="color: #dc3545;">⚠️ 测试失败详情 <span class="badge badge-danger">{{test_failures.length}} 个失败</span></h2>
<p><strong>通过率:</strong>{{test_pass_rate}} ({{test_passed}}/{{test_total}})</p>
{{#each test_failures}}
<div style="background: white; padding: 15px; border-radius: 5px; margin: 10px 0; border-left: 4px solid #dc3545;">
<h3 style="color: #333; margin-top: 0;">❌ {{test_name}}</h3>
<p><strong>文件:</strong><code>{{file}}</code></p>
<p><strong>错误信息:</strong></p>
<pre style="background: #fff; color: #333;">{{error}}</pre>
<p><strong>可能原因:</strong>{{reason}}</p>
{{#if fixed}}
<p><strong>修复状态:</strong><span class="badge badge-success">已修复 ✓</span></p>
{{else}}
<p><strong>修复状态:</strong><span class="badge badge-danger">未修复</span></p>
{{/if}}
</div>
{{/each}}
{{#if test_report_url}}
<p><strong>完整测试报告:</strong><a href="{{test_report_url}}">{{test_report_url}}</a></p>
{{/if}}
</section>
{{else}}
<section id="test-results" class="alert-success">
<h2 style="color: #28a745;">✓ 测试结果 <span class="badge badge-success">全部通过</span></h2>
<p><strong>通过率:</strong>{{test_pass_rate}} ({{test_passed}}/{{test_total}})</p>
{{#if test_report_url}}
<p><strong>完整测试报告:</strong><a href="{{test_report_url}}">{{test_report_url}}</a></p>
{{/if}}
</section>
{{/if}}
<!-- 任务更新报告 -->
<section id="todo-updates">
<h2>任务状态更新</h2>
{{#if tasks_cleaned}}
<p>今日清理了 {{tasks_cleaned.length}} 个任务:</p>
<table>
<tr><th>任务</th><th>操作</th><th>原因</th></tr>
{{#each tasks_cleaned}}
<tr>
<td>{{task}}</td>
<td><span class="badge badge-success">{{action}}</span></td>
<td>{{reason}}</td>
</tr>
{{/each}}
</table>
{{else}}
<p>今日无任务状态变更。</p>
{{/if}}
</section>
<!-- 文档整理报告 -->
<section id="doc-integrate">
<h2>文档整理</h2>
{{#if docs_integrated}}
<div style="display: flex; gap: 20px; margin: 10px 0; flex-wrap: wrap;">
<div class="stat" style="background: #d4edda;">
<div class="stat-value" style="color: #28a745;">{{docs_integrated}}</div>
<div class="stat-label">已整合</div>
</div>
<div class="stat" style="background: #cce5ff;">
<div class="stat-value" style="color: #004085;">{{docs_design}}</div>
<div class="stat-label">移至design</div>
</div>
<div class="stat" style="background: #f8d7da;">
<div class="stat-value" style="color: #721c24;">{{docs_deleted}}</div>
<div class="stat-label">已删除</div>
</div>
</div>
{{/if}}
{{doc_report}}
</section>
<!-- 任务汇总 -->
<section id="tasks">
<h2>任务汇总</h2>
<table>
<tr><th>优先级</th><th>模块</th><th>任务</th><th>说明</th></tr>
{{task_rows}}
</table>
</section>
<!-- 代码变更 -->
<section id="changes">
<h2>代码变更</h2>
<h3>最近提交</h3>
<pre>{{git_log}}</pre>
<h3>未提交变更</h3>
<pre>{{git_status}}</pre>
</section>
<!-- 后续开发计划 -->
<section id="next-steps">
<h2>后续开发计划</h2>
<p><strong>基于今日进度和优先级:</strong></p>
<ul>
{{next_dev_tasks}}
</ul>
<h3>任务优先级分析</h3>
<ul>
{{priority_analysis}}
</ul>
</section>
</body>
</html>
mkdir -p .dev_doc/daily_reports
# 报告已在上一步生成,直接保存为 .dev_doc/daily_reports/YYYY-MM-DD.html
Step 1: 创建输出目录
mkdir -p .dev_doc/daily_reports
Step 2: 并行读取源文件
.dev_doc/todo.md.dev_doc/work_done.md.dev_doc/status.md(如果存在)Step 3: 获取Git信息
git log --oneline --since="7 days ago" -20
git status --short
git diff --stat HEAD
Step 4: 解析信息,生成结构化数据
Step 0: 读取 todo.md,扫描所有待办任务
Step 1: 两阶段检测已完成任务
阶段1(有分支信息):
git branch --merged {main_branch} | grep {分支名}
阶段2(无分支或未通过):
git log --oneline main --all --grep="{关键词}" -n 5
git log --oneline main --all -S "{关键词}" -n 3
Step 2: 执行迁移
Step 3: 输出任务清理报告
Step 1: 确认远程环境
ssh dev@192.168.110.52 -p 2223 "cd /tmp/dev/huashan_dev && ls -la"
Step 2: 如代码有更新,scp 同步
scp -P 2223 -r <changed_files> dev@192.168.110.52:/tmp/dev/huashan_dev/
Step 3: 执行全量测试
ssh dev@192.168.110.52 -p 2223 "cd /tmp/dev/huashan_dev && python3 -m pytest tests/ -v --tb=short"
Step 4: 分析失败原因并尝试修复
Step 5: 生成测试报告
参考 doc_integrate skill 的标准流程:
Step 1: 扫描散落文档
.dev_doc/ 根目录的日期前缀文档Step 2: 代码验证(核心步骤)
Step 3: 执行整合
Step 4: 输出整合报告
.dev_doc/daily_reports/{date}.htmlBug修复流程(代码定位→问题复现→问题修复→回归测试→提交完成)。触发:用户报告bug、报错、异常、或说"XX不工作"/"XX报错"/"XX有问题"/"修复XX"/"排查XX"/"XX挂了"/"XX崩了"/"修一下"/"debug"/"fix",通常会指出文件/函数/错误信息(KeyError/TypeError/OOM/ModuleNotFoundError/堆栈/控制台错误/白屏)或线上事故(内存泄漏/连接池耗尽/间歇性失败/重启后报错)。不要用于:新功能开发(用ez-dev)、配置调整、纯文档编写、"xxx怎么用"问答、纯阅读理解代码、对话式咨询。核心原则:worktree开发、测试复现优先、用户手动merge。
文档整合与同步维护 Skill。当用户说"整理文档"、"合并文档"、"更新开发文档"、"同步文档和代码"时触发。扫描散落文档,整合到 .dev_doc/ 对应模块的规范路径,验证文档与代码一致性,更新模块 README 和 CHANGELOG。
完整功能开发流程(需求→设计→计划→TDD开发→测试→完成)。触发:用户提出明确的开发任务时——"开发X"/"实现X"/"添加X功能"/"新功能"/"做个新特性"/"重构X"/"修复X bug"。不要用于:单行修改、配置调整、纯文档编写、"xxx怎么用"问答、bug 原因排查、纯阅读/理解代码、对话式咨询。核心原则:worktree开发、独立Subagent审查、用户手动merge。
通用测试工程技能。提供测试用例生成、测试执行、报告生成的完整流程指导。触发条件:用户提及"测试"、"编写测试"、"test"、"测试报告"、"生成测试用例"、"执行测试"、"测试覆盖"、"单元测试"、"集成测试"时触发。**仅用于独立的测试工程任务**(如专门编写一个测试套件、跑一轮全量测试、分析覆盖率);若是新功能开发流程中嵌套的测试编写由 `ez-dev` 触发;若是 bug 修复流程中的验证测试由 `bug_fix` 触发。
待办事项管理skilll。管理 todo.md 和 work_done.md为主的开发任务生命周期。当用户说"记录这个需求"、"帮我看看优先级"、"XX功能完成了"、"生成今日计划"、"看看今天该做什么"、"本周计划"、"本月计划"、"进度如何"时触发。也适用于:需要调整任务优先级、分析工作量、验证任务完成状态、整理待办事项。
"同步用户全局 skills 到 Git 仓库并发布。当用户说"同步skills"、"发布skills"、"更新skills到github"、"sync skills"时触发。**本 skill 只同步用户全局 skills(~/.claude/skills/),不同步项目内的 skills(项目 .claude/skills/ 目录)。**负责将全局 skills 同步到 dev_toolkits 仓库,并打包 .skill 文件发布 Release。"