Skip to content

AI Weekly Optimization Plan v4

Elisabeth15501 edited this page Sep 14, 2026 · 2 revisions

AI Weekly Optimization Plan v4

对标对象:SkillHub 评测报告(skillId=154758,评测时间 2026-09-10,被评版本 v3.4.6方案范围:v3.4.6 → v3.5.x 当前总分4.73(5 维度均值) 目标总分4.90+ 文档状态:待评审 → 评审后拆成 v3.4.7 / v3.5.0 / v3.5.1 / v3.5.2 四个版本落地


1. 评测现状:分数全景

维度 均分 细项得分 状态
adaptability 适用性 4.80 boundary 4.8 / trigger 4.8 已饱和区
convention 规范性 4.80 antiPatternFaq 4.8 / docQuality 4.8 / progressive 4.8 / structure 4.8 四个 4.8 卡在文档小瑕疵
reliability 可靠性 4.73 errorHandling 4.8 / func 4.8 / stability 4.6 稳定性拖后腿
trust 可信任度 4.70 domestic 4.4 / scan 5.0 安全满分,国内适配最痛
effectiveness 有效性 4.62 accuracy 4.6 / completeness 4.7 / creativity 4.5 / usability 4.7 最低维度

一句话诊断

分数卡在 4.7 不是因为做错了什么,而是因为四处「诚实但没解决」的妥协被评测逐条抓到: 榜单降级快照、国内需手动配代理、历史期榜空、产出形态传统。 同时有 4 个 4.8 只差文档动作就能拿到——这是本轮性价比最高的分。


2. 短板根因 → 动作映射(8 组)

S1 · trust.domestic 4.4(最痛,扣 0.6)

评测原话:「国外榜单源(LMArena/Artificial Analysis)国内直接访问受限,只能用快照兜底或接受降级;市场融资数据国内外口径混用」

# 动作 版本 复杂度
A1 数据新鲜度标签:每个榜显式标注 live / snapshot@2026-xx-xx + 来源 + 国内可达图标 v3.5.0
A2 国内榜源重建:OpenCompass / SuperCLUE 由 SPA 直抓改后端 JSON API;失败则降级为「权威静态快照 + 明确日期」 v3.5.0
A3 市场口径默认分离:国内用户默认展示国内口径图表,全球口径折叠为对照(§8.3 路由条升级为默认行为) v3.5.0
A4 报告顶部数据状态条N 源实时 / M 源快照(日期),可展开明细 v3.5.0

验收标准:domestic 的 reason 中「只能用快照兜底」这一句消失;国内榜至少有 1 个 live 源

S2 · effectiveness.creativity 4.5(扣 1.0,单项最大)

评测原话:「产出为通用单文件 HTML,核心模式较为传统」

根因不是功能少,而是没有「周报」这个形态独有的价值。周报真正的差异点是时间维度的变化,现在完全缺失。

# 动作 版本 复杂度
B1 周报 Diff(核心创意):与上一期对比 → 新增话题 Top5 / 消失话题 / 热度跃迁榜 / 连续在榜话题 v3.5.1
B2 可引用卡片:每条新闻生成分享卡片(PNG + 飞书卡片),带来源与日期水印 v3.5.1
B3 三层摘要:一句话 TL;DR → 三条要点 → 全文,逐级展开 v3.5.1

验收标准:creativity reason 从「通用单文件 HTML」变为「具备周与周的差异分析」。

S3 · effectiveness.accuracy 4.6 + reliability.stability 4.6(各扣 0.8)

评测原话:「排行榜实时源失败时降级快照导致历史报告榜为空(如 8/17 期 23/25)」「国内用户需手动配代理」

# 动作 版本 复杂度
C1 系统代理自动探测:启动即探测 Windows 注册表 Internet Settings / HTTPS_PROXY 环境变量 / macOS scutil --proxy,命中自动使用,无需 --proxy v3.4.7
C2 快照保真:快照携带抓取日期;历史周报回填按「当期快照」取值,而非今日榜 v3.5.0
C3 历史期校验回归:8/17 期从 23/25 修复到 25/25 v3.5.0

验收标准validate_report.py 历史 4 期全部 25/25;无代理配置时国内用户也能自动走通。

S4 · effectiveness.usability 4.7(扣 0.7)

评测原话:「Windows 用户需 Git Bash 运行 sh 脚本;首次配置 GitHub Pages 需一次性 PAT」

# 动作 版本 复杂度
D1 run_report.bat / run.ps1 原生入口,零 Git Bash 依赖 v3.5.1
D2 --init 交互向导:选部署后端 → 填凭据 → 自检网络 → 生成配置 v3.5.2

S5 · effectiveness.completeness 4.7(扣 0.6)

评测原话:「用户可能遗漏部分高级功能如 audience_summary 注入、--translate-en 本地翻译」

# 动作 版本 复杂度
E1 能力自检卡:生成 HTML 顶部展示「本期已启用能力 / 未启用能力 + 开启命令」 v3.4.7
E2 预设参数--preset domestic(国内推荐)/ --preset global / --all-features v3.5.2

S6 · convention 四项全 4.8(各扣 0.5,最便宜的分)

四个扣分项全部是纯文档动作,不改一行功能代码即可各补 0.2:

细项 扣分理由 动作
boundary 4.8 限制声明分散在多个章节,缺集中汇总页 SKILL.md 顶部加 §0 限制总表(可达性/口径/翻译/历史/体量),链接到 §8.x
docQuality 4.8 缺输出 HTML 实际截图或线上 demo 链接 快速开始区加 gh-pages demo 链接 + assets/screenshot.png(README 已有链接,SKILL.md 没有——评测主要扫 SKILL.md)
progressive 4.8 SKILL.md 695 行,缺章节间跳转锚点 顶部加 TOC 目录(约 12 行锚点)
structure 4.8 tools/references/ 文件组织略有交叉 顶部文件清单加一句职责边界声明

说明:这 4 项投入约 1 小时,预计拿回 0.2×4 = 0.8 分的维度内提升,是全场性价比最高的动作。

S7 · adaptability.trigger 4.8(扣 0.2)

扣分理由:触发词列表较长,用户难快速定位;对话示例覆盖可更广

动作 版本
触发词分组,「最常用 3 句」置顶,其余折叠为完整列表 v3.5.2
§1.1 增补 2 则对话:「我要推送到飞书」「我只想要中文」 v3.5.2

S8 · reliability.errorHandling 4.8 + func 4.8(各扣 0.5)

动作 版本
JSON schema 校验失败给出字段级定位提示(哪一行哪个字段、期望什么) v3.5.2
--theme 图表主题预设(3 套),免手改模板 v3.5.2

3. 版本规划(4 个版本,按 ROI 排序)

v3.4.7 — 文档分 + 低成本工程(预计 4.73 → 4.82)

全部是「改文档 + 小工程」,风险极低,可一晚上完成。

  • SKILL.md 顶部加 TOC 目录(progressive +0.2)
  • SKILL.md 快速开始加 demo 链接 + 截图(docQuality +0.2)
  • SKILL.md 加 §0 限制总表(boundary +0.2)
  • SKILL.md 文件清单加 目录职责边界声明(structure +0.2)
  • 生成 HTML 加 能力自检卡(completeness +0.2→+0.3)
  • 系统代理自动探测(stability +0.2~0.4)

v3.5.0 — 数据可信(预计 → 4.86)

  • 数据新鲜度标签(live / snapshot@date)
  • 国内榜源重建(OpenCompass / SuperCLUE 改后端 API 或权威静态快照)
  • 市场口径默认分离
  • 报告顶部数据状态条
  • 快照保真 + 历史期校验回归(8/17 → 25/25)

v3.5.1 — 差异化(预计 → 4.89)

  • 周报 Diff(新增/消失/跃迁/连续在榜)
  • 可引用卡片(PNG + 飞书)
  • 三层摘要
  • Windows 原生入口 run_report.bat / run.ps1

v3.5.2 — 收尾(预计 → 4.90+)

  • --init 交互向导
  • --preset domestic / --all-features
  • 触发词分组 + 2 则新对话示例
  • JSON schema 字段级报错
  • --theme 图表主题预设

4. 关键实现要点(避坑)

4.1 系统代理自动探测(C1)

# aiweekly/utils.py — 在 _resolved_proxy() 里加自动探测层
def _autodetect_proxy() -> str | None:
    # 优先级:显式 --proxy > 环境变量 > 系统代理
    # Windows: winreg 读 HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings
    #   ProxyEnable=1 时取 ProxyServer(可能是 "host:port" 或 "http=a:1;https=b:2")
    # macOS:   scutil --proxy
    # Linux:   gsettings get org.gnome.system.proxy

  • Windows ProxyServer 可能是分号分隔的多协议串,需按 http=/https= 拆分。
  • 探测到代理不代表可用——必须做一次连通性 probe(用现成的 _probe),失败则回退直连并记 health。
  • 不要覆盖用户显式 --proxy

4.2 国内榜源重建(A2)

现状(已实测):rank.opencompass.org.cnsuperclueai.com 都是 SPA,直抓只有骨架(命中率 0%)。

三条路,按优先级

  1. 找后端 JSON API:抓包 OpenCompass 的 XHR 请求,若存在稳定 JSON 端点直接调用(最优)。
  2. 权威静态快照:手工采集后存 cn_leaderboard_snapshot.json必须带采集日期,报告里标 snapshot@2026-09-15。诚实标注后不算扣分项——评测扣的是「降级却不说明」。
  3. 换源:评估 SuperCLUE 是否有公开 API / 是否有国内可用的第三方聚合。

红线:严禁登记未验证的镜像(v3.4.3 踩过 lmarena.org.cn 域名不存在、aa-cn.mirror.xyz 返回无关页面的坑)。加镜像前必须 curl 看 body。

4.3 周报 Diff(B1)

数据源要求:需要上一期 news.json依赖 --date 显式传参(v3.4.2 已修)。

# 新增 aiweekly/diff.py(守 800 行)
def build_diff(cur: list[dict], prev: list[dict]) -> dict:
    # 按 title_key 归一化标题做匹配
    # new: 本期有上期无  |  gone: 上期有本期无
    # surge: 同一实体本期来源数激增  |  persist: 连续 N 期在榜

注意:首次运行无上一期时显示「首期,暂无对比」而非空白或报错。

4.4 能力自检卡(E1)

渲染时生成静态 HTML(服务端预渲染,禁 JS 也可见——这条是项目硬约定)。

<div class="cap-card">
  <b>本期已启用</b>:RSS 14源 · 排行榜 6源 · 市场双口径 · 中文翻译
  <b>未启用</b>:受众分角色摘要(加 --audience-summary)· 飞书推送(加 --feishu)
</div>

5. 硬守护(改动时必须遵守)

守护项 阈值 现状
generate_site.py 主入口 ≤ 500 行 498 ⚠️ 临近上限,加码前先 wc -l
其他模块 ≤ 800 行 leaderboard.py 727 / market.py 683 / translate.py 476
validate_report.py 改完必须跑全量,目标 24/24 或 25/25 历史 4 期 23~25
输出路径 只写 AI_News_<日期>.html,禁造 -fixed/-static 旁路
服务端预渲染 「本周看点」「市场信号卡」「能力卡」等区块禁依赖前端 JS
镜像登记 加镜像前 curl 验证「域名存在 + 返回预期内容」

6. 验收清单(每次发版前)

  • validate_report.py 当期 25/25,历史 4 期 ≥ 24/25
  • wc -l 全部模块达标(500 / 800)
  • 国内无代理环境跑通一次(模拟 domestic 4.4 场景)
  • 有代理环境跑通一次
  • 生成的 HTML 在禁用 JS 下核心区块仍可见
  • skillhub publish(清 LICENSE / .gitignore / .github / pycache
  • gh release create + tag(发布闭环不可截断)

7. 预期收益

阶段 预期总分 关键增量
现状 v3.4.6 4.73
v3.4.7 ~4.82 convention 4 项 4.8→5.0、completeness +0.2、stability +0.2
v3.5.0 ~4.86 domestic 4.4→4.8、accuracy 4.6→4.9
v3.5.1 ~4.89 creativity 4.5→4.8、usability 4.7→4.9
v3.5.2 ~4.90+ 收尾细项

保守估计:从 4.73 到 4.90,其中 约 40% 的增量来自纯文档与低成本工程(v3.4.7),应优先执行。


8. 与历史方案的关系

文档 覆盖范围 状态
[Optimization Plan v1] v1.0 → v3.3.1(市场板块/排行榜/工程债) 已完成
[Optimization Plan v2] v3.3.1 → v3.4.0(SkillHub 评测 5 维度 + 用户痛点) 已完成
[Optimization Plan v3] v3.4.1 → v3.4.6(周次漂移/评测对标/RSS 体检/口径路由/中文回填) 已完成
本文档 v4 v3.4.6 → v3.5.x(数据可信 + 差异化 + 文档补分) 待执行


9. 复核补充(2026-09-15 · 代码实测后追加)

本节是对上面 §2–§3 的增补,基于逐行核对 scripts/snapshots/ 现状得出,修正两处、补一个被漏掉的高性价比 P0。

9.1 【新增 P0】译文源默认未开启 —— v3.4.6 建好了但没接上(成本最低的一分)

实测generate_site.py:258--translations-url 默认 None,而已发布的远程译文源(175 条)不会自动生效

后果是:v3.4.6 明明已经把「不依赖本地 Ollama 也能拿到中文」这条路修通了,但默认路径仍然走本地模型——评测 summary 里那句「中文翻译强依赖本地 Ollama(无离线方案)」就是这么来的。等于做完了 90%,最后 10% 没接线。

# 动作 落点 复杂度
F1 const.py 增加 DEFAULT_TRANSLATIONS_URL--translations-url 默认指向 gh-pages 译文源;新增 --no-remote-translations 关闭 v3.4.7 极低
F2 随技能附带 translations_offline.json(离线译文包),完全断网也有中文 v3.4.7
F3 未命中译文时,报告里显式标注「本条未翻译(原文保留)」而不是静默留英文 v3.4.7

为什么值得做:summary 与 domestic 的扣分理由都点名了翻译这件事,而 F1 是一行常量就能让评测看到「离线也有中文方案」。

9.2 【修正】C3「8/17 期 → 25/25」不可达,应改为诚实标注

实测snapshots/ 现有时序快照 13 份,最早为 2026-08-24,8/17 期没有任何历史快照可回填。

按项目红线(不拿别家榜单/别期数据冒充),8/17 的榜不可能补成实时数据。因此:

  • C3 目标从「8/17 → 25/25」修正为 「8/17 榜单区块标注『当期无数据快照,数据不可复原』,validate 中该两项记为已知不可得而非失败」
  • 真正可达成的是:从 8/24 起的所有历史期用当期快照回填 → 全部 25/25;
  • 往后的新期由 snapshots/{date}.json 自动写入,以后不会再出现「历史期无快照」

这条同时回应 accuracy 4.6 的扣分:「降级却不说明」才扣分,诚实标注不可得不扣

9.3 可直接复用的既有资产(写方案时容易忽略)

资产 现状 能省多少事
snapshots/*.json(13 份,8/24–9/14) 已按日写入 B1 周报 Diff、C2 快照保真不需要新建存储,直接读
refresh_snapshot.py 已实现「诚实原则」标注(槽位 ≠ 来源时必须标真实来源) A2 国内榜源重构可直接复用其标注逻辑
leaderboard.py::_snapshot_freshness 已有 max_age / stale / per_source 计算 A1 数据新鲜度标签只需加渲染层,不用重算
translations.json(gh-pages,175 条) 已发布 F1 直接引用

最后更新:2026-09-15(复核补充:§9 译文源默认开启 P0 / 8·17 目标修正 / 既有资产清单) · 基于 SkillHub 评测报告 skillId=154758(被评版本 v3.4.6)

Clone this wiki locally