Claude Code 技能,把你的一盘国际象棋对局变成一份你真正读得懂的复盘:用平实的语言解释你的失误,用 Stockfish 核对,再配上一整盘对局的解说视频。
视频
out-010.mp4如果上面的播放器无法加载(它需要 GitHub 登录),直接观看 mp4(10 MB)。
6:49,英文解说,带字幕。
这是我的一盘真实对局:lichess 上的 15+10 快棋(5KmlrdyT),执白,开放西西里对抗 Najdorf,大约 1700 分。对局过程中我录下了自己边想边说的过程,用法语,棋盘旁边放着一个普通的录音笔。对局结束后,我给了 Claude 两样东西:lichess 链接和那个 mp3。
Claude 用 whisper.cpp 在本地转录音频,然后用 PGN 里的时钟时间把每句话匹配到我当时正在思考的那一步棋。所以当视频说“在第 8 步你问自己象该放在 c4 还是 e2”时,那是我自己的问题,用引擎来回答。视频展示的一切(转录文本、Stockfish 扫描、带注释的 PGN、分镜脚本)都在examples/game-010/。
为什么会有这个
Stockfish 分析给你的是数字和变化线。它读起来不好玩,而且往往不会告诉你为什么:你走完那步后是 -1.8,还有一条你在棋盘前永远找不到的 12 步变化。
我意识到 Claude 可以自己驱动 Stockfish。它会向引擎提出人类会问的问题(“为什么不是我走的那步?”、“如果黑方直接吃掉呢?”),一直问到答案说得通为止,然后用人类的语言写下来。而且由于它知道我在对局中在想什么,它可以反驳我真实的推理,而不是猜测的推理。分析之后,我可以继续就任何局面提出自己的问题,它会在回答前用引擎核对。
适合你吗?
可能适合,如果:
- 你下慢棋或快棋,想从中学习,而不只是看看评估条在哪里掉了;
- 你不介意在自己机器上运行 Claude Code;
- 你愿意在对局中做笔记或说话(可选,但正是这一点让结果变得有意思)。
可能不适合,如果你想快速检查一盘超快棋。Lichess 或 chess.com 的分析几秒钟就能做到。
这需要时间。一次完整运行(扫描、调查、注释、视频)大约需要一小时的处理时间。把它用在你花时间思考过的对局上,而不是你下的每一盘棋。
把你的想法交给它。我强烈建议你提交书面笔记或覆盖整盘棋的录音。没有它们,你得到的是不错的引擎讲解。有了它们,你得到的是对你的推理的复盘:哪些担忧是合理的,哪些计划是站得住脚的,你问了自己哪些问题,答案又是什么。
幻觉。AI 仍然可能出错。每一条论断都会对照 Stockfish 核查,还有一个验证环节会重新读取结果,所以以我的经验来看错误很少见。如果有什么看起来不对劲,让 Claude 用引擎检查那个局面。
我的工作流程
- 下一盘有时间思考的棋(15+10 快棋,或通信棋)。
- 在对局过程中录下自己出声思考(任何手机或网页录音器)。对于通信棋,我改为每步写笔记。
- 对局结束后,打开 Claude Code 并说类似这样的话:"分析这盘棋:,这是我的出声思考录音:"。
- 等待大约一小时。我得到一个带注释的 PGN 和一个独立的 HTML 分析棋盘。
- 索要视频:"给这盘棋做一个视频"。
- 阅读、观看,然后就我仍然不理解的局面提问。
这些技能
| 技能 | 它的作用 |
|---|---|
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 类似 "analyze this game: " 或 "make a video of game 010" 这样的指令。
Requirements
你不需要手动设置这些。Claude Code 很可能可以帮你安装:让它 "install the dependencies for the chess skills",它就会读取下面的列表和 SKILL.md 文件。
- Python venv 配合
python-chess,cairosvg(分析),加上pillow,piper-tts用于视频。这些 skill 假定在仓库根目录有一个.venv-chess,如果不存在就创建它。 - Stockfish。
scripts/get_stockfish.sh使用$STOCKFISH或 PATH 上的那个,否则下载官方 Linux 二进制文件。 - 视频方面:
ffmpeg,以及一个 piper 语音(下载命令在chess-video/SKILL.md)。 - 可选:whisper.cpp用于
对思考过程的转录。chess-games/游戏文件位于你运行 Claude 的项目根目录下的games/文件夹中(boards/,video/)。
告诉 Claude 你的水平
每条评论都针对某个读者水平(audience.level在annotations.json中)。对于你自己的对局,告诉 Claude 一次你的水平并让它记住,例如写在你的CLAUDE.md中:
My lichess handle is <handle>. Write chess analysis for a 1800 player.
没有它的话,skill 会使用 PGN 中被复盘一方的 Elo,当 Elo 缺失或为暂定时会询问。
示例文件:game 010
| 文件 | 阶段 |
|---|---|
games/010-...pgn |
输入,从 lichess 导出 |
games/010-transcript-fr.md |
思考过程转录,whisper.cpp,按半回合对齐时钟 |
games/010-...-sweep.json |
每半回合的 Stockfish 评估(深度 22) |
games/010-frag-*.json |
每个 investigator / 计划暂停 / 简短评论环节返回的注释片段 |
games/010-analysis-*.json |
每个 investigator 发现的引擎线路(query.py --logsidecar) |
games/010-assemble.py,010-annotations.json |
合并进构建规格的片段 |
games/010-...-annotated.pgn |
阶段 2 的交付物 |
games/010-...-viewer.html |
独立分析棋盘,在浏览器中打开 |
video/storyboard-010.json |
阶段 3 的故事板 |
video/out-010.mp4,.srt,.html |
带旁白的视频(6:49)、字幕和注释查看器 |
要重新生成视频,将 piper 语音下载到examples/game-010/video/voices/并运行make_video.py作用于故事板。
License
MIT,除了内置的chess.js(BSD 2-Clause)和 cburnett 棋子集(CC BY-SA / GFDL)。见LICENSE。