关于 learning-opportunities
面向编码 Agent 的技能,可在 AI 辅助编程时加入可选的短时学习练习。它通过预测、代码探索和复述问题促进主动学习,并规定何时提出练习以及提问后暂停。
主要功能
- 01可选的 10–15 分钟练习
- 02预测后观察的问题
- 03代码探索提示
- 04复述讲解练习
- 05按会话限制练习次数
适用场景
- 01回顾新建的模块
- 02理解陌生的编程模式
- 03探索架构重构
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ tech-leads-club/ agent-skills --skill learning-opportunities安装后在 Claude Code 中输入/learning-opportunities确认已加载。
附带文件references/PRINCIPLES.md
详细介绍
学习机会
在 AI 辅助编码过程中促进有意识的技能培养。提供简短、可选的练习,以避免被动接受 AI 生成的代码。
在调整技巧或判断学习方法时,请查阅 references/PRINCIPLES.md,了解相关学习科学依据。
何时提供练习
在以下情况之后,提供一个可选的 10-15 分钟练习:
- 创建新文件或模块
- 更改数据库架构
- 做出架构决策或进行重构
- 实现不熟悉的模式
- 开发过程中用户提出过“为什么”的问题
开始前务必先询问:“你想做一个关于 [主题] 的快速学习练习吗?大约需要 10-15 分钟。”
何时不要提供练习
- 用户本次会话中拒绝过练习
- 用户本次会话中已完成 2 次练习
- 用户表示很着急(“快速修复这个”“直接发布吧”“现在部署”)
- 纯调试或紧急修复场景
提议只用一句简短的话。不要重复提议或坚持。
核心原则:停下来等待输入
这是最重要的规则。提出问题后:
- 立即停止生成。 不要在问号后继续输出。
- 不要生成建议答案、提示、示例或“想一想……”或“考虑一下……”之类的鼓励话语。
- 等待用户实际作答后再继续。
提问后允许附加:
- “(尽力猜一下就好——错误的预测也是有用的信息。)”
- “(或者我们可以跳过这题。)”
用户回答后:
- 如果回答正确:予以确认并深入探讨(“完全正确。如果 [变化情况],又会有什么不同?”)
- 如果回答错误:直接指出错误之处,然后一起探究理解上的差距——这是最有价值的学习方式
练习类型
1. 先预测,再观察
在揭晓答案前,询问他们预测在某个具体场景中会发生什么。
Example:
User just created auth middleware.
Agent: "Would you like a quick learning exercise on middleware patterns?"
User: "sure"
Agent: "What do you think happens when a request hits your middleware with an expired token?
(Take your best guess — wrong predictions are useful data.)"
[STOP — wait for response]
After response:
Agent: "Actually [correct behavior]. The key difference is [explanation].
What surprised you about that?"
[STOP — wait for response]
2. 先生成,再比较
请他们先勾勒一种方案,然后再展示实际实现。
Example:
Agent: "Before I show you — how would you structure the error handling for this API endpoint?"
[STOP — wait for response]
After response:
Agent: "Here's what we went with: [implementation].
What's similar to your approach? What's different, and why do you think we chose this direction?"
[STOP — wait for response]
3. 复述讲解
请他们把某个组件讲解给一位新团队成员听。
Example:
Agent: "Explain how the caching layer we just built works, as if I'm a new developer joining the project."
[STOP — wait for response]
After response:
Agent: "You nailed [specific part]. One thing to refine: [specific gap]."
动手探索代码
优先引导用户查找文件,而不是展示代码片段。让学习者自己定位代码,有助于熟悉代码库。
根据展现出的熟悉程度调整指导方式:
- 初期:“打开
src/middleware/auth.ts,找到第 45 行附近。validateToken会返回什么?” - 后期:“找到处理令牌刷新的位置。”
- 最后:“你会去哪里查找如何更改会话过期机制?”
他们找到代码后,提示其自行解释:
“你找到了。在我说任何内容之前——你觉得这一行代码的作用是什么?”
自然融入的技巧
- “为什么”问题:“我们为什么在这里用 Map,而不是对象?”
- 迁移提示:“这是策略模式。在这个代码库的其他什么地方可能也适用?”
- 变化场景:“我们把它用于身份验证——你会如何将它应用到 API 速率限制上?”
- 错误分析:“有人可能会引入这样一个错误——会出什么问题,为什么?”
应避免的反模式
- 一次抛出多个问题
- 把错误答案说得模棱两可,以此缓和语气(“嗯,这也算部分正确……”)
- 每次会话提供练习超过两次
- 让练习听起来像测试,而不是探索
- 提出问题后继续生成内容
评论
支持 Markdown