
project-teacher
Generates a detailed project explanation and retrospective (FORUSER.md) to help the user learn from the project. Use this skill when the user asks to explain the project, asks "what did we just build?", or invokes the skill to generate a learning resource after a coding session.
- Installs
- 43
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/nweii/agent-stuff --skill project-teacher- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads project-teacher automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Project Teacher
Generate a detailed explanation of the current project or task, focusing on the "why" and "how" to help the user learn.
Usage
When triggered, generate a markdown file containing the learning resource.
1. Check for Existing Documents (Synchronization)
Before generating a new file, search the output directory (default: learning/) for existing documents related to the current project.
- If a match is found: Ask the user: "I found an existing learning doc '[Filename]'. Do you want to update it or create a new snapshot?"
- If User chooses Update:
- Rename: Updates the suffix date to today's date (e.g.,
API_Layout - 2024-03-25.md) to reflect freshness. - Metadata: Update the
lastandcommitfields in the frontmatter. - Content: Rewrite sections that are outdated, but preserve valuable historical context if it still applies.
- Log: Add a line to a
## Version historysection at the bottom (create one if missing).
- Rename: Updates the suffix date to today's date (e.g.,
- If User chooses New / No match found: Create a new file.
2. Output Location
- Check for user preference: If the user specified a location (e.g., "save to my vault"), use that.
- Obsidian / External Vaults: If saving to an external Obsidian vault, first check its root or
.cursor//.claude/folders for applicable context files. These files often contain specific instructions for how to save and format notes in that system. Delegate to those instructions if they exist.
- Obsidian / External Vaults: If saving to an external Obsidian vault, first check its root or
- Default Location: If no location is specified, use a directory named
learning/in the project root.- Create the
learning/directory if it doesn't exist. - CRITICAL: Check if
learning/is in.gitignore. If not, add it to.gitignoreto ensure these personal documents are not committed to shared repositories.
- Create the
- File Naming: Name the file
[Descriptive title] - [YYYY-MM-DD].md.- Structure:
[Topic or Component] - [Date].md. The leading part should be semantic and descriptive of what is being explained. - Examples:
Authentication system walkthrough - 2024-03-25.mdRecipe parser logic - 2024-03-25.mdProject Teacher overview - 2024-03-25.md
- Structure:
3. File Structure & Metadata Header
Use YAML frontmatter for machine-readable status, and a callout for human context.
---
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. Writing Style & Visuals
- Heuristics for Headings:
- Sentence Case: Always use sentence case for headings (e.g., "Architecture and logic" NOT "Architecture And Logic").
- Descriptive: Make headings descriptive of the actual content. Instead of generic "Challenges", use "Handling concurrent requests".
- Be Visual: Use ASCII diagrams (using code blocks) or Mermaid charts to explain complex logic, data flows, or state changes. A visual representation of how it works is often more valuable than text.
- Code Index: Always include a "Code index" or "Quick links" section at the top. This allows the user to jump directly to the relevant files in their IDE.
- Trade-offs: ALWAYS include a section on trade-offs. This is critical for deep learning.
- Reflection: End with questions that challenge the user's understanding, but do not provide the answers.
- Be Flexible: Do not force the explanation into a rigid template if it doesn't fit. Adapt the headers to tell the most effective learning story.
- Expert Tutor Persona: Write as if you are explaining this to a smart colleague who wants to understand the reasoning, not just the lines of code.
FAQ
What does the project-teacher skill do?
Generates a detailed project explanation and retrospective (FORUSER.md) to help the user learn from the project. Use this skill when the user asks to explain the project, asks "what did we just build?", or invokes the skill to generate a learning resource after a coding session.
How do I install project-teacher?
Run npx skills add https://github.com/nweii/agent-stuff --skill project-teacher in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/project-teacher/ (personal) or .claude/skills/project-teacher/ (project).
Which AI agents can use project-teacher?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is project-teacher safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains project-teacher?
It is published by nweii in nweii/agent-stuff. It has 43 recorded installs.
More from nweii/agent-stuff
suggest-lucide-icons
nweii/agent-stuff
Pick Lucide icons for a concept, UI placement, or vault note. Searches the full Lucide catalog for real, verified icon names. Use when the user says 'what icon for X', 'suggest a Lucide icon', 'pick an icon', or needs an icon for note frontmatter, a button, or a section header.
archive-conversation
nweii/agent-stuff
Create analytical archival summaries of AI conversations, capturing intellectual journeys, key insights, and technical logs. Use when archiving, saving, or documenting a chat session.
obsidian-templater
nweii/agent-stuff
Help with templates/snippets for the Obsidian Templater plugin. Use to help generate Obsidian templates from natural language, understand and debug existing tp. snippets, and adapt vault notes and workflows to Templater when users mention Templater, tp., templater syntax.
validating-startup-ideas
nweii/agent-stuff
Find and validate startup ideas by mining user complaints, crafting premises, and navigating the idea maze. Use when discovering product opportunities, validating ideas, shaping solutions, researching user pain points, or exploring what to build.
file-naming
nweii/agent-stuff
Propose meaningful filenames from file contents and context. Use for renaming documents or creative files, or standardizing a folder’s filenames.
culinary-assistant
nweii/agent-stuff
Culinary guidance for cooking, recipes, and meal planning. Use for kitchen techniques, substitutions, and format conversion (Mela, Schema.org). Handles recipe parsing and improvements.
Popular education & science skills
teach
mattpocock/skills
Teach the user a new skill or concept, within this workspace.
scaffold-exercises
mattpocock/skills
Create exercise directory structures with sections, problems, solutions, and explainers that pass linting. Use when user wants to scaffold exercises, create exercise stubs, or set up a new course section.
paper-context-resolver
lllllllama/rigorpilot-skills
Rigor Paper Context helper for README-first deep learning repo reproduction. Use only when the README and repository files leave a narrow reproduction-critical gap and the task is to resolve a specific paper detail such as dataset split, preprocessing, evaluation protocol, checkpoint mapping, or runtime assumption from primary paper sources while recording conflicts. Do not use for general paper summary, repo scanning, environment setup, command execution, title-only paper lookup, or replacing README guidance by default.
caveman-learn
juliusbrussee/caveman
Act on a Caveman learn report - review the ranked token sinks, apply cost-lowering fixes with per-edit consent, and report what those fixes returned. Use when asked to lower an agent's token cost, what caveman has saved, to trim a heavy CLAUDE.md, or to offload re-pasted context into cavemem.
gsap-plugins
greensock/gsap-skills
Official GSAP skill for GSAP plugins — registration, ScrollToPlugin, ScrollSmoother, Flip, Draggable, Inertia, Observer, SplitText, ScrambleText, SVG and physics plugins, CustomEase, EasePack, CustomWiggle, CustomBounce, GSDevTools. Use when the user asks about a GSAP plugin, scroll-to, flip animations, draggable, SVG drawing, or plugin registration.
teach-impeccable
pbakaus/impeccable
DEPRECATED: Use /impeccable teach instead. This command has been folded into the impeccable skill.