一个通用的 LeetCode 练习与间隔复习 skill,帮助你从 Hot100 开始刷题,并持续记录每道题的掌握度、复习结果和下次复习时间。
它不依赖 Notion,也不要求登录力扣。数据默认保存在本地 CSV 文件中。
- 内置官方 Hot100 题库
- 根据到期时间、掌握度和历史卡点生成每日计划
- 苏格拉底式引导:一次只给一个针对性的思考问题
- 渐进式提示:方向提示 → 结构化思路 → 完整解法
- 记录回忆、编码、讲解、提示次数、用时和主要卡点
- 自动计算掌握度和下一次复习日期
- 支持从力扣 Hot100 页面源代码提取最新题单
- 支持导入 CSV/JSON 题目目录或其他工具导出的力扣记录
最简单的方式是把下面这段话直接发送给 Codex:
请从 https://github.com/Forever0713/leetcode-practice-coach 安装 leetcode-practice-coach skill。
安装完成后告诉我 skill 的安装位置,并确认它可以用于生成 LeetCode Hot100 复习计划。
如果需要手动安装,将仓库中的 skills/leetcode-practice-coach/ 目录复制到 Codex skills 目录。
推荐安装后直接在 Codex 对话中使用。第一次说“生成今天的复习计划”时,如果本地还没有题库,Codex 会先初始化官方 Hot100 题库,再生成计划。
如果希望手动管理初始化和计划,也可以在包含 skills/ 的练习项目根目录中执行:
python skills/leetcode-practice-coach/scripts/init_data.py --preset hot100
python skills/leetcode-practice-coach/scripts/make_plan.pymake_plan.py 默认每天安排 5 道题。也可以指定数量:
python skills/leetcode-practice-coach/scripts/make_plan.py --count 3同一天已经生成过计划时,脚本会复用原计划,保证计划稳定。只有明确需要重新安排时才使用:
python skills/leetcode-practice-coach/scripts/make_plan.py --count 5 --refresh初始化命令只适合第一次使用;如果本地已经有 data/questions.csv,不要随意重复使用 --preset hot100,以免覆盖现有题目目录。
初始化后会创建:
data/questions.csv 题目目录
data/reviews.csv 每次复习记录
data/mastery.csv 当前掌握度和下次复习日期
data/plans/ 每日计划快照
python skills/leetcode-practice-coach/scripts/record_review.py `
--question 1 `
--recall 2 `
--coding 2 `
--explanation 2 `
--hints 1 `
--result passed `
--minutes 25 `
--blocker none题目可以使用题号、标题或 titleSlug 查找。评分范围为 0–3:
0 = 完全不会
1 = 需要较多提示
2 = 基本掌握但有小问题
3 = 可以独立完成并解释
结果可以是 passed、debugged 或 failed。
这个 skill 的使用流程很简单,主要围绕一轮对话循环。安装后,直接在 Codex 对话中说出你的需求即可,不需要记住脚本命令。
你可以直接说:
生成今天的复习计划。
skill 会根据本地题库、到期时间、掌握度和历史卡点生成计划。默认安排 5 道题,并展示题目链接。如果当天已经生成过计划,会继续使用原计划;想重新安排时再说“重新生成今天的计划”。
如果当天时间有限,或者希望按照最新的复习状态调整题目,可以说:
重新生成今天的复习计划,安排 3 道题。
重新生成会替换当天的计划;普通的“生成今天的复习计划”则会复用当天已有的计划。
skill 会先展示题目名称、难度、主题和力扣链接,然后只提出一个针对性的思考问题。它不会一开始展示完整解法。你可以先分析思路、写代码,再根据提示逐步修正。
当前题目完成后,你可以说:
记录这道题,复习下一题。
skill 会总结本次表现,记录复习结果、掌握度、用时和下一次复习日期,然后继续当天计划中的下一道题。
因此,一个典型的使用过程就是:
生成今天的复习计划
→ 逐题思考和编码
→ 记录这道题,复习下一题
生成今天的复习计划。
重新生成今天的复习计划,安排 3 道题。
记录这道题,复习下一题。
如果使用其他工具获取力扣提交历史,可以将它生成的 JSON/CSV 文件导入:
python skills/leetcode-practice-coach/scripts/import_leetcode.py .\leetcode-export.json本项目只负责读取和标准化外部文件,不负责登录力扣,也不会要求或保存 Cookie。平台上的“已通过”记录只作为历史背景,不会直接等价为掌握度。
在力扣 Hot100 页面查看网页源代码并保存为 HTML:
https://leetcode.cn/studyplan/top-100-liked/
然后执行:
python skills/leetcode-practice-coach/scripts/import_hot100_html.py `
.\leetcode-hot100.html `
--output data/questions.csv脚本读取页面内嵌的 __NEXT_DATA__,使用 titleSlug 作为稳定 ID,不依赖第三方题单或 Cookie。
本项目不会要求或保存力扣 Cookie,也不会自动上传本地复习数据。不要将 .env.local、data/ 或包含个人记录的文件提交到公开仓库。