study-coach:让 AI 用苏格拉底式对话教会你任何概念
一句话
study-coach 不是把答案直接塞给你,而是把学习过程铺开来,陪你走完一遍。
它更像一位会在中途停下来问你“这里有没有卡住”的老师,而不是一条只会输出结论的搜索结果。
无论你是文学、物理、计算机背景,或者你只是单纯想把某个概念真正搞明白,它都适合你。
如果你已经安装好了,最推荐的入口是 slash command:
/study-coach 教我“叙事弧光”到底是什么
输入 /,找到 study-coach,补全后把你想学的问题接在后面。
它是怎么教你一个问题的
下面是一次真实记录。用户输入:
教我 Promise 链怎么传值
AI 自动加载 study-coach skill,然后这样教:
AI: 好,咱们来把 Promise 链传值讲到透。先说要讲什么:.then() 的返回值,是怎么跑到下一个 .then() 的输入参数里去的?我们从三个角度来拆——直觉、形式、机制。先做个热身,你觉得下面这段代码最终打印什么?
Promise.resolve(1)
.then(x => x + 1)
.then(x => x * 3)
.then(x => {})
.then(x => console.log(x))
你: 嗯……6?
AI: 答案是 undefined。关键在第三步:.then(x => {}) 里没有写 return,所以返回值是 undefined,传给下一个 .then() 的就是 undefined。
直觉上你可以把它想象成一条传送带流水线:
[原材料] → 工位A → 工位B → 工位C → 质检台
每个 .then() 就是一个工位。工位加工完,把产品打包传给下一站。如果工位忘了把东西放回传送带(没写 return),下一站收到的就是空气。
你: 那如果工位里返回的是一个 Promise 呢?
AI: 好问题。这就是关键规则:
- 返回普通值 → 直接传给下一站
- 返回 Promise → 等它完成,再把结果传下去
- 没写 return → 传
undefined
来,再试一个:
Promise.resolve(1)
.then(x => x + 1)
.then(x => new Promise(r => setTimeout(() => r(x + 1), 1000)))
.then(x => console.log(x))
这次是立刻打印,还是 1 秒后?打印什么?
你: 1 秒后打印 3?
AI: 对。第二个 .then() 返回了一个 Promise,要等 1 秒才完成。第三个 .then() 会等住它,拿到值 3 后才执行。
一句话记住:每个工位都是“拆包→加工→重新打包”。返回 Promise 时,流水线会自动等它完成再往下传。
这就是 study-coach 的真实体验:
它不是只给标准答案,而是陪你完成一遍理解—— 拆问题 → 用直觉建立画面 → 补上关键机制 → 用新例子检查你是不是真的会了。
它也适合不同类型的读者:
- 文科读者也能先从故事、角色、结构这些直觉进入;
- 理科读者也能继续看到公式、机制、边界条件怎么被展开;
- 技术读者则能在直觉之后,继续拿到形式化表达和迁移题。
适合学什么
它适合学那些听过答案也不一定真懂的概念,尤其是需要建立直觉、辨析边界、迁移到新例子的内容。
比如:
- “叙事弧光”到底是什么
- 为什么英雄之旅里常会出现“拒绝召唤”
- 宇航员为什么会失重
- 为什么负数乘负数得正
- Promise 链怎么传值
- Raft 为什么需要 leader
不限领域,不限体量。文学、物理、计算机都可以,大到系统性学叙事结构,小到一个语法背后的机制也都可以。
快速体验:安装后用 /study-coach
study-coach 是给 Claude Code、OpenCode 这类终端 AI 编程助手用的 skill,不是浏览器插件。
打开你的 Code CLI,把这篇文章链接发给它,然后说:
帮我根据这篇文章安装 study-coach skill,并配置一个可以补全的 /study-coach 命令。
它会根据当前工具自动选择安装位置。安装完成后,两种方式都可以:
/study-coach 教我“叙事弧光”到底是什么
或者直接说:
教我“叙事弧光”到底是什么
什么时候它不会插嘴
下面这些请求一般不需要 study-coach:
帮我写一个用 Promise 调接口的函数 → 只给代码,不给教案
Promise.all 的语法是什么? → 直接回答语法
帮我 debug 这段代码 → 直接排查问题
Raft 论文哪年发表? → 直接回答事实
如果你确实想用教学方式理解它们,就主动调用:
/study-coach Promise.all 背后的并发模型
/study-coach 带我理解这个 bug 的根因
开源
GitHub: CNCSMonster/study-skills
评论