Claude Code Agent Skill — 为 ICPC/OI/Codeforces/AtCoder/洛谷/蓝桥杯 等算法竞赛题目生成高质量、结构化的题解(Editorial)。
为算法竞赛学习者提供一份新手友好、逻辑闭环的题解生成器。市面上多数 AI 题解要么跳步、要么只丢代码,要么正确性证明缺位。本 skill 把一份合格题解拆成 9 个强制段落,并用一份「多版本代码处理」决策表覆盖"用户给了 buggy 代码"这一最常见、最易翻车的真实场景。
核心设计取舍:
- 结构强制:9 段顺序固定(元数据 → 题意 → 朴素 → 核心解法 → 证明 → 复杂度 → 实现避坑 → 参考代码 → 补充),新手读完能复现整条思路链,而非只见代码不见推导。
- 强制代码审查:只要用户提供代码,无论是否声称 AC,撰写题解前必须做正确性审查——构造 Hack 数据、判定官方数据是否覆盖(A1/A2)、定位根因、给修复方案。
- 不胡编元数据:题目链接/时限/内存未知时用「待补充」占位,不得编造事实。
- 零代码依赖:纯 Markdown 指令 + 模板 + 示例,无运行时、无 API 调用,装上即用。
- 9 段结构化题解:题意简述用数学符号剥离故事背景,朴素解法点明超时范围,核心解法从瓶颈出发推导,正确性证明按算法类型(贪心交换论证 / DP 最优子结构 / 二分二段性)给出。
- 强制代码审查:审查算法正确性、边界极端数据、实现层隐蔽 bug(整数溢出、重复计数、初始化遗漏、off-by-one)。
- 多版本代码处理:根据用户代码状态走 A1/A2/B/C/D 五个场景,自动决定 §7 Bug 分析、§8 主代码、§9 替代版本的呈现方式。
- 写作风格约束:清晰简洁、像给朋友讲解;公式全 LaTeX;代码可直接编译提交、处理极端边界。
- 风格学习:
examples/收录用户精选题解,生成时读取以对齐文风。
| § | 段落 | 关键约束 |
|---|---|---|
| 1 | 题目数据 | 含题目类型/链接/时限/内存,未知用「待补充」 |
| 2 | 题意简述 | 5 步提炼输入/输出变量与核心约束,$...$ 包裹公式 |
| 3 | 朴素解法 | 最简单思路 + 超时范围,通常不附代码 |
| 4 | 核心解法 | 特殊性质 → 关键突破 → 推导过程 |
| 5 | 正确性证明 | 贪心/DP/二分各按对应方法证 |
| 6 | 复杂度分析 | 时间 / 空间 / 常数优化三子项 |
| 7 | 实现细节与避坑 | 溢出/初始化/边界;A1/A2 追加 Bug 分析子节 |
| 8 | 参考代码 | 默认 C++17,可直接提交 |
| 9 | 补充说明 | 经典变种 / 优化方向 / 码风;A1/A2/B/C 追加替代版本 |
| 场景 | 用户代码状态 | §7 Bug分析 | §8 主代码 | §9 替代版本 |
|---|---|---|---|---|
| A1 | 有 bug,官方数据可测出 | ✅ | 修复版 | 原 buggy 代码(标注已知 bug) |
| A2 | 有 bug,但能 AC(官方数据未覆盖) | ✅ | 修复版 | 原码(标注 bug + 注明可 AC 官方数据) |
| B | 正确 + 写法独特有价值 | ❌ | 用户原码 | 标准/简洁写法 |
| C | 正确 + 过于复杂 | ❌ | 标准/简洁写法 | 用户原码(说明差异) |
| D | 无用户代码 | ❌ | 参考实现 | ❌ |
cp-solution-writer/
├── SKILL.md # skill 入口与权威规范(9段结构、审查协议、决策表)
├── references/
│ └── editorial-template.md # 9 段可填充模板,含 {{...}} 占位与条件子节 HTML guard
├── examples/
│ └── 洛谷 P1216 数字三角形 Number Triangles.md # 精选示例,生成时读取以对齐文风
├── CLAUDE.md # skill 维护指南(跨文件不变量,非题解行为)
├── LICENSE
└── README.md
三处一致性约束:① §1 标题与字段(
题目数据 (Problem Metadata)+ 题目类型)在 SKILL.md / 模板 / 示例 / frontmatter 四处统一;② §6 复杂度三处统一为「时间/空间/常数优化」;③ 决策表场景标签与模板### Bug 分析、### 替代版本的 HTML guard 注释必须对齐。详见CLAUDE.md。
git clone [email protected]:ttzc/cp-solution-writer.git ~/.claude/skills/cp-solution-writer将 skill 目录放入 Claude Code 的 skills 路径,SKILL.md 的 user-invocable: true 即支持 /cp-solution-writer 触发;或粘贴竞赛题目/链接、说"写题解"时自动触发。
- Claude Code Agent Skill(纯 Markdown 指令 + 模板 + 示例)
- 零外部依赖、零运行时、零 API 调用
MIT