mcpField
L
learning-opportunities

learning-opportunities

github.com/tech-leads-club开发7.1k199 次安装今天更新
代码仓库

关于 learning-opportunities

面向编码 Agent 的技能,可在 AI 辅助编程时加入可选的短时学习练习。它通过预测、代码探索和复述问题促进主动学习,并规定何时提出练习以及提问后暂停。

主要功能

  1. 01可选的 10–15 分钟练习
  2. 02预测后观察的问题
  3. 03代码探索提示
  4. 04复述讲解练习
  5. 05按会话限制练习次数

适用场景

  1. 01回顾新建的模块
  2. 02理解陌生的编程模式
  3. 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. 立即停止生成。 不要在问号后继续输出。
  2. 不要生成建议答案、提示、示例或“想一想……”或“考虑一下……”之类的鼓励话语。
  3. 等待用户实际作答后再继续。

提问后允许附加:

  • “(尽力猜一下就好——错误的预测也是有用的信息。)”
  • “(或者我们可以跳过这题。)”

用户回答后:

  • 如果回答正确:予以确认并深入探讨(“完全正确。如果 [变化情况],又会有什么不同?”)
  • 如果回答错误:直接指出错误之处,然后一起探究理解上的差距——这是最有价值的学习方式

练习类型

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