mcpField
C
cc-canary-html

cc-canary-html

github.com/delta-hq数据与数据库7639 次安装27 周前更新
代码仓库

关于 cc-canary-html

cc-canary-html 是一项 Claude 技能,将 cc-canary 会话分析整理为 HTML 报告,并指导脚本运行、叙述内容填写和浏览器打开。它还规定了回归信号的判断方式。

主要功能

  1. 01生成 HTML 报告
  2. 02配置分析时间窗口
  3. 03分类回归信号
  4. 04在浏览器中打开报告

适用场景

  1. 01查看近期会话趋势
  2. 02比较模型版本
  3. 03评估潜在回归

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/delta-hq/cc-canary --skill cc-canary-html

安装后在 Claude Code 中输入/cc-canary-html确认已加载。

附带文件scripts/compute_stats.py

详细介绍

cc-canary-html — HTML 降级检测报告

与 /cc-canary 的分析相同,以 HTML 格式呈现。

随附脚本 scripts/compute_stats.py 会在约 2.5 秒内完成工作:扫描 JSONL 文件,运行拐点 + 转折日检测,构建前后聚合、跨版本比较、时段、 词频、三阶段思考深度、可见性转变、每轮速率和异常分析,然后渲染出完整的 HTML 框架,填充所有表格,并在等宽 <pre> 块中保留 ASCII 条形图。 叙述文本占位符标记为 ``。

默认时间窗口:60d。接受 7d / 14d / 30d / 60d / 90d / 180d。

你的 4 步任务

1. 运行脚本
Bash(python3 <SKILL_DIR>/scripts/compute_stats.py --window {window} --render-html /tmp/cc-canary-skeleton-{window}.html > /dev/null 2>&1)

<SKILL_DIR>:.claude/skills/cc-canary-html/ → 若不存在,则使用 ~/.claude/skills/cc-canary-html/。

标志:--window {Nd}(必需);--include-agents;--min-user-words N。

如果脚本失败:报告错误,使用 --include-agents 重试一次;否则停止。绝不改为手动计算。

2. 阅读 HTML 框架
Read /tmp/cc-canary-skeleton-{window}.html
3. 填写每个 `` 占位符并保存

将每条占位符注释替换为适合 HTML 的叙述文本。对你写入的内容中的 <、>、& 进行转义。保留所有表格、<pre> 条形图和现有 HTML,不做改动。保存为:

Write ./cc-canary-{YYYY-MM-DD}.html
4. 在浏览器中打开

通过 Bash(uname) 检测平台:

  • Darwin → Bash(open ./cc-canary-{YYYY-MM-DD}.html)
  • Linux → Bash(xdg-open ./cc-canary-{YYYY-MM-DD}.html)
  • 其他情况 → Bash(start ./cc-canary-{YYYY-MM-DD}.html)

如果打开命令失败,只需打印绝对路径,不要报错。

以此结束你的消息:Wrote /Users/.../cc-canary-{date}.html — opened in browser.(如果打开失败,则用 … open manually.)

叙述文本占位符

与 /cc-canary 相同:

  • verdict-line — HOLDING / SUSPECTED REGRESSION / CONFIRMED REGRESSION / INCONCLUSIVE + 简要理由
  • summary — 1–2 句话,简洁说明变化及幅度
  • timeline — 1–2 段
  • xv-para — 1 段跨版本分析(若存在 §2)
  • finding-N-class × 最多 5 个 — 行内分类:model-side | user-side | ambiguous
  • finding-N-reason × 最多 5 个 — 最多 2–3 句话,先列证据
  • root-cause — 3–5 段
  • what-would-help — 2–4 条具体建议
  • appendix-a1…a4, b, c, d, e, f, g, h — 每项 1 段
  • meta-note — 2–5 句话,使用第一人称,坦诚表述

判定标准

  • HOLDING:≤1 个 model-side 信号
  • SUSPECTED REGRESSION:2–3 个 model-side 信号
  • CONFIRMED REGRESSION:≥3 个 model-side 信号 + 非空的跨版本分析显示性能下降 + session_count ≥ 15 + 至少 2 个模型 + inflection.gap_sigma ≥ 1.0
  • INCONCLUSIVE:session_count < 15 或 inflection.method == "fallback_split_half" 且存在相互重叠的混杂因素

以下情况最多判为 SUSPECTED:只有一个模型;会话少于 15 个;单项目且项目在窗口中途才开始;拐点与可见的用户侧事件同时出现。

硬性规则

  • 绝不读取、grep 或 glob ~/.claude/projects/**/*.jsonl。绝不对会话文件运行 jq/awk/wc。所有这些操作均由脚本负责。
  • 绝不改动现有 HTML、表格或 <pre> 块——它们来自真实数据。
  • 对你插入的任何叙述文本进行 HTML 转义(将 <、>、& 转为实体)。
  • 每个发现都必须有分类标签。
  • 如果跨版本分析为空或 session_count < 15,请 谨慎表述。
  • 没有满足完整检查清单时,不要判定为 CONFIRMED REGRESSION。
  • 不要原样保存框架——必须先替换每个 ``。

失败情形

  • 脚本导入错误 → 检查 python3 -V 是否 ≥ 3.8;使用 --include-agents 重试一次;否则停止。
  • 框架小于 5KB → 可能是窗口内没有会话。
  • inflection.method == fallback_split_half → 明确说明;判定最多为 SUSPECTED。
  • 跨版本 Δ 为 None → 当模型 A 的值为 0 时会发生除以零;说明这一混杂因素。
  • 浏览器打开命令失败 → 不要报错;打印路径并继续。

评论

支持 Markdown