-
Notifications
You must be signed in to change notification settings - Fork 0
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 四个版本落地
| 维度 | 均分 | 细项得分 | 状态 |
|---|---|---|---|
| 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 只差文档动作就能拿到——这是本轮性价比最高的分。
评测原话:「国外榜单源(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 源。
评测原话:「产出为通用单文件 HTML,核心模式较为传统」
根因不是功能少,而是没有「周报」这个形态独有的价值。周报真正的差异点是时间维度的变化,现在完全缺失。
| # | 动作 | 版本 | 复杂度 |
|---|---|---|---|
| B1 | 周报 Diff(核心创意):与上一期对比 → 新增话题 Top5 / 消失话题 / 热度跃迁榜 / 连续在榜话题 | v3.5.1 | 中 |
| B2 | 可引用卡片:每条新闻生成分享卡片(PNG + 飞书卡片),带来源与日期水印 | v3.5.1 | 中 |
| B3 | 三层摘要:一句话 TL;DR → 三条要点 → 全文,逐级展开 | v3.5.1 | 低 |
验收标准:creativity reason 从「通用单文件 HTML」变为「具备周与周的差异分析」。
评测原话:「排行榜实时源失败时降级快照导致历史报告榜为空(如 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;无代理配置时国内用户也能自动走通。
评测原话:「Windows 用户需 Git Bash 运行 sh 脚本;首次配置 GitHub Pages 需一次性 PAT」
| # | 动作 | 版本 | 复杂度 |
|---|---|---|---|
| D1 |
run_report.bat / run.ps1 原生入口,零 Git Bash 依赖 |
v3.5.1 | 低 |
| D2 |
--init 交互向导:选部署后端 → 填凭据 → 自检网络 → 生成配置 |
v3.5.2 | 中 |
评测原话:「用户可能遗漏部分高级功能如 audience_summary 注入、--translate-en 本地翻译」
| # | 动作 | 版本 | 复杂度 |
|---|---|---|---|
| E1 | 能力自检卡:生成 HTML 顶部展示「本期已启用能力 / 未启用能力 + 开启命令」 | v3.4.7 | 低 |
| E2 |
预设参数:--preset domestic(国内推荐)/ --preset global / --all-features
|
v3.5.2 | 低 |
四个扣分项全部是纯文档动作,不改一行功能代码即可各补 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 分的维度内提升,是全场性价比最高的动作。
扣分理由:触发词列表较长,用户难快速定位;对话示例覆盖可更广
| 动作 | 版本 |
|---|---|
| 触发词分组,「最常用 3 句」置顶,其余折叠为完整列表 | v3.5.2 |
| §1.1 增补 2 则对话:「我要推送到飞书」「我只想要中文」 | v3.5.2 |
| 动作 | 版本 |
|---|---|
| JSON schema 校验失败给出字段级定位提示(哪一行哪个字段、期望什么) | v3.5.2 |
--theme 图表主题预设(3 套),免手改模板 |
v3.5.2 |
全部是「改文档 + 小工程」,风险极低,可一晚上完成。
- 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)
- 数据新鲜度标签(live / snapshot@date)
- 国内榜源重建(OpenCompass / SuperCLUE 改后端 API 或权威静态快照)
- 市场口径默认分离
- 报告顶部数据状态条
- 快照保真 + 历史期校验回归(8/17 → 25/25)
- 周报 Diff(新增/消失/跃迁/连续在榜)
- 可引用卡片(PNG + 飞书)
- 三层摘要
- Windows 原生入口
run_report.bat/run.ps1
-
--init交互向导 -
--preset domestic/--all-features - 触发词分组 + 2 则新对话示例
- JSON schema 字段级报错
-
--theme图表主题预设
# 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。
现状(已实测):rank.opencompass.org.cn 与 superclueai.com 都是 SPA,直抓只有骨架(命中率 0%)。
三条路,按优先级:
- 找后端 JSON API:抓包 OpenCompass 的 XHR 请求,若存在稳定 JSON 端点直接调用(最优)。
-
权威静态快照:手工采集后存
cn_leaderboard_snapshot.json,必须带采集日期,报告里标snapshot@2026-09-15。诚实标注后不算扣分项——评测扣的是「降级却不说明」。 - 换源:评估 SuperCLUE 是否有公开 API / 是否有国内可用的第三方聚合。
红线:严禁登记未验证的镜像(v3.4.3 踩过 lmarena.org.cn 域名不存在、aa-cn.mirror.xyz 返回无关页面的坑)。加镜像前必须 curl 看 body。
数据源要求:需要上一期 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 期在榜注意:首次运行无上一期时显示「首期,暂无对比」而非空白或报错。
渲染时生成静态 HTML(服务端预渲染,禁 JS 也可见——这条是项目硬约定)。
<div class="cap-card">
<b>本期已启用</b>:RSS 14源 · 排行榜 6源 · 市场双口径 · 中文翻译
<b>未启用</b>:受众分角色摘要(加 --audience-summary)· 飞书推送(加 --feishu)
</div>| 守护项 | 阈值 | 现状 |
|---|---|---|
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 验证「域名存在 + 返回预期内容」 | — |
-
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(发布闭环不可截断)
| 阶段 | 预期总分 | 关键增量 |
|---|---|---|
| 现状 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),应优先执行。
| 文档 | 覆盖范围 | 状态 |
|---|---|---|
| [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(数据可信 + 差异化 + 文档补分) | 待执行 |
本节是对上面 §2–§3 的增补,基于逐行核对
scripts/与snapshots/现状得出,修正两处、补一个被漏掉的高性价比 P0。
实测: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 是一行常量就能让评测看到「离线也有中文方案」。
实测: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的扣分:「降级却不说明」才扣分,诚实标注不可得不扣。
| 资产 | 现状 | 能省多少事 |
|---|---|---|
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)