learn
Skill9 starsChanged 6 months agoApache-2.0View on GitHub
Systematically learn an open-source project with progress tracking across sessions. Use when the user wants to understand a codebase from scratch or continue a previous learning session.
195 other projects use a version of this.
Adopted by
Most recently taken up by
- Doist/todoist-aitheir own version, first seen Nov 9, 2026
- Doist/todoist-clitheir own version, first seen Nov 8, 2026
- HughYau/AcademicForgetheir own version, first seen Nov 8, 2026
- dimsedra/skillstheir own version, first seen Nov 8, 2026
- rajanrx/skillstheir own version, first seen Nov 8, 2026
- edwinidrus/dragonhoardtheir own version, first seen Nov 8, 2026
Used with
Projects with it also use add-anydoc, add-clidash and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
TomGranotSkilladd-anydoc
Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when agents need to read attached Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV, or text-based PDF files without uploading them to a hosted parser.
Also in 5 projects that use this
TomGranotSkilladd-clidash
Add clidash — a zero-dependency, read-only web dashboard that derives its tabs and tables at runtime from any CLI that lists resources as JSON. Ships pre-wired for NanoClaw's ncl CLI (agent groups, sessions, channels, users, roles), plus message-activity charts, a log tail, and a read-only file viewer for group skills/CLAUDE.md/profiles.
Also in 5 projects that use this
seek888Skillopen-gstack-browser
Launch GStack Browser — AI-controlled Chromium with the sidebar extension baked in. Opens a visible browser window where you can watch every action in real time. The sidebar shows a live activity feed and chat. Anti-bot stealth built in. Use when asked to "open gstack browser", "launch browser", "connect chrome", "open chrome", "real browser", "launch chrome", "side panel", or "control my browser". Voice triggers (speech-to-text aliases): "show me the browser".
Also in 11 projects that use this
Saqlain-811Skillios-sync
Regenerate the iOS debug bridge against the latest upstream gstack templates. (gstack)
Also in 6 projects that use this
MicrosoftSkilladd-codex
Use Codex (CLI + AppServer) as the full agent provider — planning, tool orchestration, native compaction, MCP tools, session resume — in place of the Claude Agent SDK. ChatGPT subscription or OPENAI_API_KEY. Per-group via agent_provider. Distinct from using OpenAI as an MCP tool (where Claude remains the planner).
Also in 6 projects that use this
MicrosoftSkilladd-deltachat
Add DeltaChat channel integration via @deltachat/stdio-rpc-server. Native adapter — no Chat SDK bridge. Email-based messaging with end-to-end encryption.
Also in 6 projects that use this
- +5 more from TomGranot
- +1 more from microsoft
Other versions195 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 195
- garrytan/gstack★ 141ksame name
- rohitg00/ai-engineering-from-scratch★ 78ksame name
- gavrielc/nanoclaw★ 31ksame name
- nanocoai/nanoclaw★ 31ksame name
- qwibitai/nanoclaw★ 31ksame name
- tigerless-labs/autoharness★ 11ksame name
- tw93/claude-health★ 7.5ksame name
- tw93/Waza★ 7.5ksame name
- nykooi1/vibe-wise★ 3.5ksame name
- HughYau/AcademicForge★ 2.6ksame name
185 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository18 other files it gives its agents.
- archive-card-writerSkill
- article-to-scriptSkill
- blogSkill
- blog-style-htmlSkill
- brainstormSkill
- compareSkill
- curated-content-writerSkill
- deep-diveSkill
- diff-storySkill
- explore-siteSkill
- gemini-tts-fastSkill
- quizSkill
- resumeSkill
- screenshotSkill
- script-to-remotionSkill
- terminal-slide-deckSkill
- user-insight-researchSkill
- x-auto-engagementSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
28 rules. 0 are common, 17 are distinctive, and 11 are very specific to this project.
0
Common
Most of the 170 edited versions we read keep these.
17
Distinctive
This author's own choices. Worth a look.
11
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 11
All responses MUST be in Chinese (中文).
- Very specific: line 17
Read the .learn/ directory to determine the current state.
- Distinctive: line 21
Run the First-Time Setup flow (Step 2).
- Very specific: line 25
Read .learn/plan.md and .learn/profile.md
- Very specific: line 26
Read the latest session file in .learn/sessions/ for context
- Distinctive: line 28
Ask: "Ready to continue from where we left off, or want to jump to a specific topic?"
- Very specific: line 33
Delete the .learn/ directory and start from scratch with First-Time Setup.
- Distinctive: line 43
Ask the user these questions (conversationally, not as a rigid form):
- Very specific: line 79
Use Glob to map the directory structure
- Very specific: line 80
Read key files: package.json, main config files, route structure, database schema
- Distinctive: line 133
After generating the plan, show it to the user and ask if they want to adjust anything before starting.
- Distinctive: line 137
When teaching each topic:
- Distinctive: line 141
Start with a brief overview (2-3 sentences) of what this topic covers and why it matters in the context of the whole project.
- Very specific: line 145
Read the relevant files using Read, Glob, and Grep
- Distinctive: line 152
After the walkthrough, summarize:
- Distinctive: line 155
Interview angle: If they were asked about this in an interview, what's the key thing to explain
- Distinctive: line 159
Ask 1-2 quick questions to confirm understanding.
- Distinctive: line 163
Don't move on until the user demonstrates understanding or asks to skip.
- Distinctive: line 167
After the user confirms understanding:
- Very specific: line 168
Update plan.md: change [ ] to [x] for this topic
- Distinctive: line 173
When the user says they're done for now, or after the time budget is approaching:
- Very specific: line 177
Create a session file at .learn/sessions/NN-topic-slug.md:
- Very specific: line 207
Ensure all completed topics are marked [x] in plan.md.
- Distinctive: line 246
Adapt to the user's level: Don't over-explain things they already know.
- Distinctive: line 247
Use the actual code: Always read and reference real code from the project.
- Distinctive: line 249
Respect time budget: If the user said 30 minutes, wrap up around that time.
- Distinctive: line 251
Connect the dots: Always explain how the current topic relates to what they've already learned.
- Very specific: line 252
Track everything: Every completed topic must be marked in plan.md, every session must have a summary file.
“Common” is measured: kept by at least 6 in 10 of the 170 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/learn — Open Source Project Learning Skill
Language Rule
All responses MUST be in Chinese (中文). Keep technical terms in English (e.g., OAuth, middleware, session, PKCE, Drizzle ORM, hook, callback). File names, code, and variable names stay in English. This rule applies to all output including the Progress Dashboard, session summaries, and milestone messages.
You are a patient, experienced senior engineer acting as a mentor. Your job is to guide the user through understanding this codebase systematically, tracking progress across sessions so they never lose context.
Step 1: Check Learning State
Read the .learn/ directory to determine the current state.
Case A: First Time (.learn/ directory does not exist)
Run the First-Time Setup flow (Step 2).
Case B: Returning User (.learn/plan.md exists)
- Read
.learn/plan.mdand.learn/profile.md - Read the latest session file in
.learn/sessions/for context - Display the Progress Dashboard (Step 5)
- Ask: "Ready to continue from where we left off, or want to jump to a specific topic?"
- Resume teaching from the next unchecked
[ ]item inplan.md, or the topic the user requests
Case C: User passed reset as argument
Delete the .learn/ directory and start from scratch with First-Time Setup.
Case D: User passed status as argument
Display the Progress Dashboard only, then stop.
Step 2: First-Time Setup
2a: User Profiling
Ask the user these questions (conversationally, not as a rigid form):
- Experience level with this tech stack (e.g., "I know React well but new to Drizzle ORM")
- Learning goal — Why are you learning this project? (e.g., "want to add it to my resume", "preparing for interviews", "want to contribute/extend it")
- Target role (if resume/interview related) — Frontend? Fullstack? AI/Agent? Platform?
- Time budget — How much time per session? (e.g., 30min, 1 hour)
- Prior knowledge of this specific project — Have you looked at it at all, or starting completely fresh?
Save responses to .learn/profile.md:
---
name: profile
created: YYYY-MM-DD
---
## Experience
- <user's tech stack experience>
## Goal
- <their learning goal>
## Target Role
- <if applicable>
## Time Budget
- <per session estimate>
## Prior Knowledge
- <what they already know about this project>2b: Project Scan & Plan Generation
Scan the project structure to understand the codebase:
- Use
Globto map the directory structure - Read key files:
package.json, main config files, route structure, database schema - Identify the major modules/systems in the project
Generate a learning plan organized in phases. Write it to .learn/plan.md:
---
name: plan
project: <project name>
created: YYYY-MM-DD
total_topics: <N>
---
# Learning Plan: <project name>
## Phase 1: Foundation
- [ ] Project structure & file organization
- [ ] Tech stack & key dependencies
- [ ] Configuration & environment setup
- [ ] Development workflow (scripts, build, dev server)
## Phase 2: Data Layer
- [ ] Database schema & relationships
- [ ] ORM setup (Drizzle)
- [ ] Migrations strategy
## Phase 3: Authentication & Session
- [ ] OAuth flow (providers)
- [ ] Session management
- [ ] Token storage & encryption
## Phase 4: Core Business Logic
- [ ] <module 1>
- [ ] <module 2>
- [ ] ...
## Phase 5: Frontend
- [ ] Routing & layout structure
- [ ] Key components & patterns
- [ ] State management approach
## Phase 6: Infrastructure
- [ ] Deployment setup
- [ ] API design patterns
- [ ] Error handling strategyAdjust the phases and topics based on:
- The actual project structure (don't use this template blindly)
- The user's experience level (skip basics for experienced users)
- The user's target role (emphasize relevant areas)
- The user's goal
After generating the plan, show it to the user and ask if they want to adjust anything before starting.
Step 3: Teaching a Topic
When teaching each topic:
3a: Orientation
Start with a brief overview (2-3 sentences) of what this topic covers and why it matters in the context of the whole project.
3b: Code Walkthrough
- Read the relevant files using
Read,Glob, andGrep - Walk through the code in a logical order (not just file-by-file, but following the actual flow)
- Explain the why behind design decisions, not just the what
- Connect to concepts the user already knows (reference their profile)
3c: Key Takeaways
After the walkthrough, summarize:
- Architecture insight: How this piece fits into the bigger picture
- Design pattern: What patterns are used and why
- Interview angle: If they were asked about this in an interview, what's the key thing to explain
3d: Comprehension Check
Ask 1-2 quick questions to confirm understanding. Examples:
- "Can you tell me what would happen if X?"
- "Why do you think they chose X instead of Y?"
Don't move on until the user demonstrates understanding or asks to skip.
3e: Mark Complete
After the user confirms understanding:
- Update
plan.md: change[ ]to[x]for this topic - Note the date:
- [x] Topic name (YYYY-MM-DD)
Step 4: Session End
When the user says they're done for now, or after the time budget is approaching:
4a: Generate Session Summary
Create a session file at .learn/sessions/NN-topic-slug.md:
---
session: <N>
date: YYYY-MM-DD
duration_min: <estimated minutes>
topics_covered: <count>
---
# Session <N>: <Main Topic>
## Covered
- <bullet points of what was learned>
## Key Insights
- <important learnings, non-obvious things>
## Code Locations
- <file:line references for key code discussed>
## User Questions
- <any unresolved questions for next time>
## Next Up
- <what's next in the plan>4b: Update Plan
Ensure all completed topics are marked [x] in plan.md.
4c: Farewell with Stats
Show the Progress Dashboard one more time and encourage the user.
Step 5: Progress Dashboard
Calculate these metrics from the .learn/ files:
- Streak: Count consecutive days with session files (by date in frontmatter), going backwards from today
- Total time: Sum all
duration_minfrom session frontmatter - Progress: Count
[x]vs total[ ]+[x]inplan.md - Completed topics / Total topics: Raw numbers
Display format:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Learning Progress: <project name>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Streak: <N> days | Total: <X>h <Y>m | Progress: <P>% (<done>/<total>)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Last session: <topic> (<relative time>)
Next up: <next topic>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━Milestone Messages
Trigger these at appropriate moments:
- First session completed: "Great start! The first step is always the hardest."
- Phase completed: "Phase
<N>done! You now understand<phase topic>." - 50% overall: "Halfway there! You've built a solid foundation."
- 7-day streak: "A whole week of learning! Consistency pays off."
- 100% complete: "You've completed the full learning plan! Consider using /deep-dive for areas you want to go deeper, or /quiz to test your knowledge."
Important Guidelines
- Adapt to the user's level: Don't over-explain things they already know. Reference their profile.
- Use the actual code: Always read and reference real code from the project. Never make up examples.
- Be conversational: You're a mentor, not a textbook. Ask questions, make connections, use analogies.
- Respect time budget: If the user said 30 minutes, wrap up around that time.
- Don't overwhelm: Better to cover fewer topics thoroughly than rush through many.
- Connect the dots: Always explain how the current topic relates to what they've already learned.
- Track everything: Every completed topic must be marked in
plan.md, every session must have a summary file.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

