agentleFS
joyehuangjoyehuang/skills/learn/SKILL.md

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

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.
  • TomGranotSkill

    add-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

  • TomGranotSkill

    add-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

  • seek888Skill

    open-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-811Skill

    ios-sync

    Regenerate the iOS debug bridge against the latest upstream gstack templates. (gstack)

    Also in 6 projects that use this

  • MicrosoftSkill

    add-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

  • MicrosoftSkill

    add-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

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
  1. Distinctive:

    All responses MUST be in Chinese (中文).

    line 11
  2. Very specific:

    Read the .learn/ directory to determine the current state.

    line 17
  3. Distinctive:

    Run the First-Time Setup flow (Step 2).

    line 21
  4. Very specific:

    Read .learn/plan.md and .learn/profile.md

    line 25
  5. Very specific:

    Read the latest session file in .learn/sessions/ for context

    line 26
  6. Distinctive:

    Ask: "Ready to continue from where we left off, or want to jump to a specific topic?"

    line 28
  7. Very specific:

    Delete the .learn/ directory and start from scratch with First-Time Setup.

    line 33
  8. Distinctive:

    Ask the user these questions (conversationally, not as a rigid form):

    line 43
  9. Very specific:

    Use Glob to map the directory structure

    line 79
  10. Very specific:

    Read key files: package.json, main config files, route structure, database schema

    line 80
  11. Distinctive:

    After generating the plan, show it to the user and ask if they want to adjust anything before starting.

    line 133
  12. Distinctive:

    When teaching each topic:

    line 137
  13. Distinctive:

    Start with a brief overview (2-3 sentences) of what this topic covers and why it matters in the context of the whole project.

    line 141
  14. Very specific:

    Read the relevant files using Read, Glob, and Grep

    line 145
  15. Distinctive:

    After the walkthrough, summarize:

    line 152
  16. Distinctive:

    Interview angle: If they were asked about this in an interview, what's the key thing to explain

    line 155
  17. Distinctive:

    Ask 1-2 quick questions to confirm understanding.

    line 159
  18. Distinctive:

    Don't move on until the user demonstrates understanding or asks to skip.

    line 163
  19. Distinctive:

    After the user confirms understanding:

    line 167
  20. Very specific:

    Update plan.md: change [ ] to [x] for this topic

    line 168
  21. Distinctive:

    When the user says they're done for now, or after the time budget is approaching:

    line 173
  22. Very specific:

    Create a session file at .learn/sessions/NN-topic-slug.md:

    line 177
  23. Very specific:

    Ensure all completed topics are marked [x] in plan.md.

    line 207
  24. Distinctive:

    Adapt to the user's level: Don't over-explain things they already know.

    line 246
  25. Distinctive:

    Use the actual code: Always read and reference real code from the project.

    line 247
  26. Distinctive:

    Respect time budget: If the user said 30 minutes, wrap up around that time.

    line 249
  27. Distinctive:

    Connect the dots: Always explain how the current topic relates to what they've already learned.

    line 251
  28. Very specific:

    Track everything: Every completed topic must be marked in plan.md, every session must have a summary file.

    line 252

“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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

/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)

  1. Read .learn/plan.md and .learn/profile.md
  2. Read the latest session file in .learn/sessions/ for context
  3. Display the Progress Dashboard (Step 5)
  4. Ask: "Ready to continue from where we left off, or want to jump to a specific topic?"
  5. Resume teaching from the next unchecked [ ] item in plan.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):

  1. Experience level with this tech stack (e.g., "I know React well but new to Drizzle ORM")
  2. 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")
  3. Target role (if resume/interview related) — Frontend? Fullstack? AI/Agent? Platform?
  4. Time budget — How much time per session? (e.g., 30min, 1 hour)
  5. 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:

  1. Use Glob to map the directory structure
  2. Read key files: package.json, main config files, route structure, database schema
  3. 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 strategy

Adjust 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, and Grep
  • 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:

  1. Architecture insight: How this piece fits into the bigger picture
  2. Design pattern: What patterns are used and why
  3. 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:

  1. Update plan.md: change [ ] to [x] for this topic
  2. 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_min from session frontmatter
  • Progress: Count [x] vs total [ ] + [x] in plan.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.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.