Files
llm-intelligence/docs/plans/2026-05-13-daily-report-v1-implementation-plan.md
2026-05-13 20:13:02 +08:00

7.3 KiB
Raw Blame History

Daily Report V1 Implementation Plan

For Claude: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.

Goal: 将当前“数据库导出式日报”改造成移动端优先、变化驱动、可快速决策的 V1 日报页面,并同步补齐 Dashboard 摘要入口。

Architecture: 保留现有数据库和采集链路不动,把改造集中在 scripts/generate_daily_report.go 的报告语义层与 HTML 模板层。先把“结论、行动建议、头条、免费来源标签、场景推荐”抽成可测试的构建函数,再重写 HTML 模板和前端摘要视图最后用真实日报生成、Go 测试、前端构建联合验收。

Tech Stack: Go 1.22、html/template、PostgreSQL、React、TypeScript、CSS


Task 1: 为日报 V1 语义层补测试

Files:

  • Modify: scripts/generate_daily_report_test.go
  • Test: scripts/generate_daily_report_test.go

Step 1: 写失败测试

补 3 组测试:

  • 免费来源标签分组测试:验证 official_freeaggregator_freeunknown_free
  • V1 首页摘要测试:验证会输出一句话结论、行动建议、头条、附录快捷入口
  • 平静日状态测试:验证当事件不足时,首页出现“观察重点 + 稳定推荐”文案

Step 2: 运行失败测试

Run: go test -tags llm_script ./scripts -run 'TestGenerate|TestBuild'

Expected:

  • 新增测试失败
  • 失败原因是缺少语义层函数或 HTML 中不存在新版文案

Step 3: 最小实现语义函数

scripts/generate_daily_report.go 中新增:

  • 免费来源分类辅助类型
  • 首页摘要结构
  • 头条 / 建议 / 推荐构建函数

Step 4: 重新运行测试

Run: go test -tags llm_script ./scripts -run 'TestGenerate|TestBuild'

Expected:

  • 新增测试通过

Step 5: Commit

git add scripts/generate_daily_report.go scripts/generate_daily_report_test.go
git commit -m "feat(report): add v1 report summary builders"

Task 2: 重构日报数据结构以支撑 V1 页面

Files:

  • Modify: scripts/generate_daily_report.go
  • Test: scripts/generate_daily_report_test.go

Step 1: 写失败测试

为以下内容补断言:

  • 免费模型按来源可信度分组显示
  • 推荐卡存在证据短句
  • 头条卡存在变化基线或“首次出现”标签

Step 2: 运行失败测试

Run: go test -tags llm_script ./scripts -run 'TestGenerateHTMLV3|TestBuild'

Expected:

  • HTML 内容不包含新版结构字段

Step 3: 最小实现

ReportV3 上新增 V1 所需衍生字段,例如:

  • HeroSummary
  • ActionItems
  • HeadlineItems
  • SceneSections
  • FreeBreakdown
  • AppendixLinks
  • PageMode

并在 generateReportDataV3 末尾统一填充。

Step 4: 重新运行测试

Run: go test -tags llm_script ./scripts -run 'TestGenerateHTMLV3|TestBuild'

Expected:

  • 数据结构相关测试通过

Step 5: Commit

git add scripts/generate_daily_report.go scripts/generate_daily_report_test.go
git commit -m "feat(report): enrich daily report v1 view model"

Task 3: 重写 HTML 模板为移动端优先 V1 首页

Files:

  • Modify: scripts/generate_daily_report.go
  • Test: scripts/generate_daily_report_test.go

Step 1: 写失败测试

断言 HTML 包含以下结构关键词:

  • 今日一句话结论
  • 三条行动建议
  • 今日头条
  • 场景推荐
  • 完整数据附录
  • 免费来源标签:官方免费聚合免费待确认

Step 2: 运行失败测试

Run: go test -tags llm_script ./scripts -run 'TestGenerateHTMLV3Includes'

Expected:

  • 失败,说明旧模板仍是统计卡 + 表格

Step 3: 最小实现

重写 generateHTMLV3

  • 使用移动端优先布局
  • 加入结论卡、行动建议卡、头条卡、场景推荐、附录入口
  • 保留必要的完整表格,但下沉到附录区
  • 按设计文档落地颜色、字号、标签、平静日/热点日状态

Step 4: 重新运行测试

Run: go test -tags llm_script ./scripts -run 'TestGenerateHTMLV3Includes'

Expected:

  • 模板结构测试通过

Step 5: Commit

git add scripts/generate_daily_report.go scripts/generate_daily_report_test.go
git commit -m "feat(report): redesign html daily report for v1"

Task 4: 调整 Markdown 让结构与新版日报一致

Files:

  • Modify: scripts/generate_daily_report.go
  • Test: scripts/generate_daily_report_test.go

Step 1: 写失败测试

补充 Markdown 断言:

  • 顶部出现“今日结论”“今日行动建议”“今日变化”
  • 免费区出现来源分类摘要

Step 2: 运行失败测试

Run: go test -tags llm_script ./scripts -run 'TestGenerateMarkdownV3'

Expected:

  • 旧 Markdown 不包含新版结构

Step 3: 最小实现

改写 generateMarkdownV3 的章节顺序,至少与 HTML 保持:

  • 结论
  • 行动建议
  • 变化摘要
  • 场景推荐
  • 附录

Step 4: 重新运行测试

Run: go test -tags llm_script ./scripts -run 'TestGenerateMarkdownV3'

Expected:

  • Markdown 测试通过

Step 5: Commit

git add scripts/generate_daily_report.go scripts/generate_daily_report_test.go
git commit -m "feat(report): align markdown report with v1 structure"

Task 5: 补 Dashboard 摘要卡以对齐新版日报

Files:

  • Modify: frontend/src/pages/Dashboard.tsx
  • Modify: frontend/src/App.css

Step 1: 写失败测试或构建前检查

由于当前前端未配置页面测试,先以类型检查和构建作为验收门槛,并在实现前明确 UI 目标:

  • Dashboard 出现一句话摘要
  • 显示报告日期、状态、HTML / Markdown 入口
  • 展示“固定路径回退”提示
  • 视觉上更接近新版日报入口卡

Step 2: 最小实现

Dashboard.tsx 中:

  • 扩展 LatestReport 展示字段
  • 生成更强的信息层级摘要
  • 调整布局让入口更接近移动端日报卡片语义

App.css 中:

  • 为日报入口补新版卡片层级
  • 优化移动端字号和按钮布局

Step 3: 运行构建

Run: cd frontend && npm run build

Expected:

  • 构建通过

Step 4: Commit

git add frontend/src/pages/Dashboard.tsx frontend/src/App.css
git commit -m "feat(frontend): align dashboard report card with v1 report"

Task 6: 真实生成和联调验证

Files:

  • Modify: reports/daily/*(生成产物)
  • Verify: scripts/generate_daily_report.go
  • Verify: scripts/verify_phase3.sh

Step 1: 运行脚本测试

Run: go test -tags llm_script ./scripts

Expected:

  • 脚本相关测试通过

Step 2: 运行后端测试

Run: go test ./...

Expected:

  • 全部通过

Step 3: 运行前端构建

Run: cd frontend && npm run build

Expected:

  • 构建通过

Step 4: 真实生成日报

Run: go run -tags llm_script ./scripts/generate_daily_report.go

Expected:

  • 生成新版 md/html
  • 主产物与归档产物都更新

Step 5: 门禁验证

Run: bash scripts/verify_phase3.sh

Expected:

  • PHASE_RESULT: PASS

Step 6: Commit

git add scripts/generate_daily_report.go scripts/generate_daily_report_test.go frontend/src/pages/Dashboard.tsx frontend/src/App.css reports/daily
git commit -m "feat(report): ship daily report v1 experience"

Task 7: 推送到仓库

Files:

  • Verify: working tree

Step 1: 检查状态

Run: git status --short

Expected:

  • 只剩可接受的既有脏文件或已知产物

Step 2: 推送

Run: git push

Expected:

  • 推送成功