关于 project-teacher
Project Teacher 是一项项目教学技能,可根据当前项目或任务生成讲解其原理与实现方式的 Markdown 学习文档。它会检查已有文档,并支持更新内容或创建新版本。
主要功能
- 01生成项目学习文档
- 02检查并同步已有文档
- 03更新日期、提交信息与版本记录
- 04按指定位置保存文档
- 05提供代码索引、图示和权衡分析
适用场景
- 01为新项目整理学习资料
- 02更新过时的项目说明
- 03将文档保存到 Obsidian 笔记库
- 04解释代码结构与设计取舍
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ nweii/ agent-stuff --skill project-teacher安装后在 Claude Code 中输入/project-teacher确认已加载。
详细介绍
Project Teacher
生成对当前项目或任务的详细说明,重点讲解“为什么”和“如何做”,帮助用户学习。
用法
触发后,生成一个包含学习资源的 Markdown 文件。
1. 检查现有文档(同步)
生成新文件前,在输出目录(默认为 learning/)中搜索与当前项目相关的现有文档。
- 如果找到匹配项:询问用户:“我找到一篇现有的学习文档‘[Filename]’。你想要更新它,还是创建一个新的快照?”
- 如果用户选择更新:
- 重命名:将后缀日期更新为今天的日期(例如,
API_Layout - 2024-03-25.md),以反映文档的时效性。 - 元数据:更新 frontmatter 中的
last和commit字段。 - 内容:重写已过时的部分,但如果历史内容仍然适用,则予以保留。
- 记录:在底部的
## Version history部分添加一行(如果该部分不存在,则创建它)。
- 重命名:将后缀日期更新为今天的日期(例如,
- 如果用户选择新建/未找到匹配项:创建一个新文件。
2. 输出位置
- 检查用户偏好:如果用户指定了位置(例如“保存到我的知识库”),则使用该位置。
- Obsidian/外部知识库:如果保存到外部 Obsidian 知识库,先检查其根目录或
.cursor//.claude/文件夹中是否有适用的上下文文件。这些文件通常包含如何在该系统中保存和格式化笔记的具体说明。如果存在此类说明,遵循这些说明。
- Obsidian/外部知识库:如果保存到外部 Obsidian 知识库,先检查其根目录或
- 默认位置:如果未指定位置,则在项目根目录中使用名为
learning/的目录。- 如果
learning/目录不存在,则创建它。 - 重要:检查
.gitignore中是否包含learning/。如果没有,则将其添加到.gitignore,以确保这些个人文档不会提交到共享仓库。
- 如果
- 文件命名:将文件命名为
[Descriptive title] - [YYYY-MM-DD].md。- 结构:
[Topic or Component] - [Date].md。开头部分应在语义上清楚地描述所讲解的内容。 - 示例:
Authentication system walkthrough - 2024-03-25.mdRecipe parser logic - 2024-03-25.mdProject Teacher overview - 2024-03-25.md
- 结构:
3. 文件结构与元数据标题
使用 YAML frontmatter 记录机器可读的状态,并使用 callout 提供面向读者的背景信息。
---
last: [YYYY-MM-DD]
commit: [Current Git Commit Hash or "N/A"]
tags: [project-teacher, learning, ...]
---
# [Descriptive title in sentence case]
> [!NOTE]
> **Context**: [Brief description, e.g., "Updated after migration to v2"]
> _This document reflects the system state at the time of the last update._
## Code index
* [MainController.ts](path/to/MainController.ts) - Handles the core logic for...
* [UserAuth.ts](path/to/UserAuth.ts) - Manages session state.
* [api/endpoints/](path/to/api/endpoints/) - API route definitions.
## 1. Project overview
[Explain the whole project in plain language as an expert tutor. What did we just build?]
## 2. Architecture and logic
[Use ASCII diagrams or Mermaid charts here to visualize how data flows or how components interact.]
## 3. Key technical decisions
[Explain "why" technical decisions were made.]
### Trade-offs and alternatives
[Explicitly mention what alternatives were considered and why they were rejected. e.g., "Considered using Redux, but opted for React Context because..."]
---
## Version history
* **[YYYY-MM-DD]**: [Brief note on what changed, e.g. "Initial creation"]
* **[YYYY-MM-DD]**: [e.g. "Updated diagram to reflect new caching layer"]
## Reflection questions
* [Question 1 asking about a specific architectural choice]
* [Question 2 asking about a potential edge case]
* [Question 3 challenging the user to explain a complex part of the code]
4. 写作风格与视觉呈现
- 标题启发式规则:
- 句首字母大写:标题始终使用句首字母大写格式(例如,“Architecture and logic”,而不是“Architecture And Logic”)。
- 描述性:标题应准确描述实际内容。不要使用笼统的“Challenges”,而应使用“Handling concurrent requests”。
- 视觉化呈现:使用 ASCII 图示(通过代码块)或 Mermaid 图表来解释复杂逻辑、数据流或状态变化。用视觉方式呈现_工作原理_往往比文字更有价值。
- 代码索引:始终在顶部包含“Code index”或“Quick links”部分,方便用户在 IDE 中直接跳转到相关文件。
- 权衡取舍:始终包含一个关于权衡取舍的部分。这对深入学习至关重要。
- 反思:以能挑战用户理解的问题结尾,但不要提供答案。
- 灵活处理:如果僵化的模板不适用,不要强行套用。调整标题,以最有效的方式讲述学习内容。
- 专家导师风格:像向一位聪明的同事讲解一样,重点说明_推理过程_,而不只是逐行解释代码。
评论
支持 Markdown