Show HN:一个分析你国际象棋对局的Claude代码技能

Hacker News Top 工具

摘要

一个Claude代码技能,能够生成详细的国际象棋对局赛后分析,包括通俗易懂的解释、Stockfish验证和旁白视频输出。

你好,HN,<p>这始于一个实验:如果Claude使用视觉而不是PGN符号,它能正确地下国际象棋吗?不知何故,它可以。<p>下一个实验是看看Claude + Stockfish是否能解释一场对局。不知何故,它也可以。<p>几次会话后,我有了一个系统,它接受我的实时音频笔记(或文本),以及类似“分析我最近的lichess对局”的模糊指令,并给我一个带注释的对局视频。结果并不完美,交付需要时间(大约一小时左右),但对我来说,这比点击Stockfish分支要愉快和难忘得多。它消耗代币,所以请确保你有足够的配额。从会话日志来看,上一次分析的对局在API价格下大约花费15美元。<p>它能够反思我在对局中的思考,这从教学角度来看很有趣,所以我认为值得分享。
查看原文
查看缓存全文

缓存时间: 2026/09/26 16:30

brumar/chess-postmortem-skills

来源:https://github.com/brumar/chess-postmortem-skills

适用于Claude Code的国际象棋复盘技能

通过Claude Code技能,将你的国际象棋对局转化为可读的复盘分析:用自然语言解释你的错误,经Stockfish引擎验证,并生成配有解说的整局对战视频。

视频示例

https://github.com/user-attachments/assets/ebd443e1-aeac-41d3-a868-64d521223a9b

若上方播放器未加载(需登录GitHub),可直接观看mp4视频(10MB):
(https://github.com/brumar/chess-postmortem-skills/raw/main/examples/game-010/video/out-010.mp4)
时长6:49,英文解说,带字幕。

这是我的真实对局:在lichess平台进行的15+10快棋(5KmlrdyT (https://lichess.org/5KmlrdyT)),执白应对西西里防御纳伊多夫变例,等级分约1700。对局过程中,我用普通录音设备在棋盘旁录制了自己的有声思考(法语)。赛后我向Claude提供了两样东西:lichess对局链接和mp3音频。Claude通过whisper.cpp本地转录音频,再利用PGN中的计时信息,将每句话对应到我当时正在考虑的棋步。因此,当视频中说“第八步你在考虑象该放c4还是e2“时,这确实是我自己的问题,并由引擎给出了解答。视频中所有内容(转录文本、Stockfish扫描、带注释的PGN、分镜脚本)均保存在 examples/game-010/ 目录中。

为何创建此项目

Stockfish分析会给出数值和变招线,但可读性差,且通常不解释原因:你的棋步后评估值为-1.8,以及12步变招,而这些你在实战中根本想不到。
我发现Claude可以驱动Stockfish:它会像人类一样向引擎提问(“为什么我走的这步不行?”“如果黑方直接吃掉会怎样?”),持续追问直到得到合理的解答,并用人类能理解的方式记录。而且由于它知道我对局时的思考过程,可以反驳我实际的推理,而非猜测的推理。分析完成后,我还能继续就任意局面提问,Claude会先用引擎验证再作答。

是否适合你?

可能适合你,如果:

  • 你下的是慢棋或快棋,并想从中学习,而不仅仅看评估值何时下降;
  • 你愿意在本机运行Claude Code;
  • 你愿意在对局中记录笔记或录音(可选,但这能让分析结果更有趣)。

可能不适合你,如果你想快速检查快棋对局。 Lichess或chess.com的分析功能几秒就能完成。

需要时间。 完整流程(扫描、探究、注释、视频生成)约需一小时处理时间。请将其用于你认真思考过的对局,而非每局都用。

提供你的思考记录。 强烈建议提供覆盖整局的书面笔记或音频录音。没有这些,你只能得到引擎的通用解释;有了它们,你能获得针对你的推理的复盘:哪些担忧是合理的,哪些计划是正确的,你向自己提出了什么问题以及答案是什么。

AI可能产生幻觉。 所有结论都经过Stockfish验证,并由验证模块重新检查,因此据我所见错误很少。若发现异常,可让Claude用引擎重新检查该局面。

我的工作流程

  1. 进行一局有充足思考时间的对局(15+10快棋或慢棋)。
  2. 对局中录制自己的有声思考(任何手机或网页录音工具均可)。对于慢棋,我改为每步记录笔记。
  3. 对局后打开Claude Code,输入类似指令:“分析这局棋: ,这是我的有声思考录音: “。
  4. 等待约一小时,获得带注释的PGN和独立HTML分析面板。
  5. 请求生成视频:“为这局棋制作视频”。
  6. 阅读、观看后,针对仍不理解的局面提问。

技能模块

技能名称功能描述
chess-analysis用Stockfish扫描所有棋步,随后启动并行“调查员“子代理,以基础问题询问引擎直至每个错误被解释。输出:分层注释PGN、独立HTML分析面板,以及每局一次的“计划暂停“(双方计划均由引擎推导)。处理有声思考录音:whisper.cpp转录,通过PGN计时对齐棋步。
chess-video生成整局对战的解说视频(棋盘、箭头、评估表、piper TTS语音、内嵌字幕),基于分镜脚本构建,并附交互式HTML查看器。
chess-play通过PGN文件与Claude对弈,棋盘渲染为PNG图像以供视觉处理,并设有对抗性失误检查子代理。不使用引擎。

技能文件为Claude编写,因此SKILL.md文件兼作文档。从 skills/chess-analysis/SKILL.md 开始阅读。

安装方法

将技能文件夹复制(或创建符号链接)至项目的 .claude/skills/ 目录,或全局安装至 ~/.claude/skills/:

git clone https://github.com/brumar/chess-postmortem-skills
cp -r chess-postmortem-skills/skills/* ~/.claude/skills/

然后向Claude提问,如“分析这局棋:“或“为第010局制作视频”。

依赖项

无需手动安装,Claude Code通常能自动安装:让它“安装国际象棋技能的依赖项“即可,它会读取以下清单和SKILL.md文件。

  • Python虚拟环境,含 python-chess、cairosvg(分析模块),以及 pillow、piper-tts(视频模块)。技能假定项目根目录存在 .venv-chess,若无则自动创建。
  • Stockfish。scripts/get_stockfish.sh 会使用环境变量 $STOCKFISH 或PATH中的引擎,否则下载官方Linux二进制文件。
  • 视频生成需要:ffmpeg,以及piper语音包(下载命令见 chess-video/SKILL.md)。
  • 可选:whisper.cpp (https://github.com/ggml-org/whisper.cpp) 用于有声思考转录。

对局文件存放于你运行Claude的项目根目录下的 chess-games/ 文件夹(包含 games/、boards/、video/ 子目录)。

告知Claude你的水平

每条注释都会根据读者水平调整(对应 annotations.json 中的 audience.level)。对于你自己的对局,只需告诉Claude一次你的水平,例如在你的 CLAUDE.md 中写明:

我的lichess账号是。请为1800水平的玩家编写国际象棋分析注释。

若未提供,技能模块将使用PGN中被分析方的等级分,若该等级分缺失或为临时等级分则会询问。

示例文件:第010局

文件阶段
games/010-...pgn输入,从lichess导出
games/010-transcript-fr.md有声思考转录(whisper.cpp处理,按每半步计时对齐)
games/010-...-sweep.json每半步的Stockfish评估值(深度22)
games/010-frag-*.json各调查员返回的注释片段 / 计划暂停片段 / 简要评论片段
games/010-analysis-*.json各调查员发现的引擎变招线(query.py --log 生成的副文件)
games/010-assemble.py, 010-annotations.json将片段合并为构建规范
games/010-...-annotated.pgn第二阶段交付物
games/010-...-viewer.html独立分析面板(浏览器打开)
video/storyboard-010.json第三阶段分镜脚本
video/out-010.mp4, .srt, .html解说视频(6:49)、字幕及注释查看器

要重新生成视频,请将piper语音包下载至 examples/game-010/video/voices/,然后基于分镜脚本运行 make_video.py。

许可证

MIT许可证,但内嵌的 chess.js(BSD 2-Clause)和cburnett棋子套装(CC BY-SA / GFDL)除外。详见 LICENSE 文件。

相似文章