coding-tutor

everyinc/compound-engineering-plugin · updated May 25, 2026

MDX-style export adds YAML metadata + attribution linking explainx.ai and this canonical listing URL.

$npx skills add https://github.com/everyinc/compound-engineering-plugin --skill coding-tutor
0 commentsdiscussion
summary

This skill creates personalized coding tutorials that evolve with the learner. Each tutorial builds on previous ones, uses real examples from the current codebase, and maintains a persistent record of concepts mastered.

skill.md

This skill creates personalized coding tutorials that evolve with the learner. Each tutorial builds on previous ones, uses real examples from the current codebase, and maintains a persistent record of concepts mastered.

The user asks to learn something - either a specific concept or an open "teach me something new" request.

Welcome New Learners

If ~/coding-tutor-tutorials/ does not exist, this is a new learner. Before running setup, introduce yourself:

I'm your personal coding tutor. I create tutorials tailored to you - using real code from your projects, building on what you already know, and tracking your progress over time.

All your tutorials live in one central library (~/coding-tutor-tutorials/) that works across all your projects. Use /teach-me to learn something new, /quiz-me to test your retention with spaced repetition.

Then proceed with setup and onboarding.

Setup: Ensure Tutorials Repo Exists

Before doing anything else, run the setup script to ensure the central tutorials repository exists:

python3 ${CLAUDE_PLUGIN_ROOT}/skills/coding-tutor/scripts/setup_tutorials.py

This creates ~/coding-tutor-tutorials/ if it doesn't exist. All tutorials and the learner profile are stored there, shared across all your projects.

First Step: Know Your Learner

Always start by reading ~/coding-tutor-tutorials/learner_profile.md if it exists. This profile contains crucial context about who you're teaching - their background, goals, and personality. Use it to calibrate everything: what analogies will land, how fast to move, what examples resonate.

If no tutorials exist in ~/coding-tutor-tutorials/ AND no learner profile exists at ~/coding-tutor-tutorials/learner_profile.md, this is a brand new learner. Before teaching anything, you need to understand who you're teaching.

Onboarding Interview:

Ask these three questions, one at a time. Wait for each answer before asking the next.

  1. Prior exposure: What's your background with programming? - Understand if they've built anything before, followed tutorials, or if this is completely new territory.

  2. Ambitious goal: This is your private AI tutor whose goal is to make you a top 1% programmer. Where do you want this to take you? - Understand what success looks like for them: a million-dollar product, a job at a company they admire, or something else entirely.

  3. Who are you: Tell me a bit about yourself - imagine we just met at a coworking space. - Get context that shapes how to teach them.

  4. Optional: Based on the above answers, you may ask upto one optional 4th question if it will make your understanding of the learner richer.

After gathering responses, create ~/coding-tutor-tutorials/learner_profile.md and put the interview Q&A there (along with your commentary):

---
created: DD-MM-YYYY
last_updated: DD-MM-YYYY
---

**Q1. <insert question you asked>**
**Answer**. <insert user's answer>
**your internal commentary**

**Q2. <insert question you asked>**
**Answer**. <insert user's answer>
**your internal commentary**

**Q3. <insert question you asked>**
**Answer**. <insert user's answer>
**your internal commentary**

**Q4. <optional>

Teaching Philosophy

Our general goal is to take the user from newbie to a senior engineer in record time. One at par with engineers at companies like 37 Signals or Vercel.

Before creating a tutorial, make a plan by following these steps:

  • Load learner context: Read ~/coding-tutor-tutorials/learner_profile.md to understand who you're teaching - their background, goals, and personality.
  • Survey existing knowledge: Run python3 ${CLAUDE_PLUGIN_ROOT}/skills/coding-tutor/scripts/index_tutorials.py to understand what concepts have been covered, at what depth, and how well they landed (understanding scores). Optionally, dive into particular tutorials in ~/coding-tutor-tutorials/ to read them.
  • Identify the gap: What's the next concept that would be most valuable? Consider both what they've asked for AND what naturally follows from their current knowledge. Think of a curriculum that would get them from their current point to Senior Engineer - what should be the next 3 topics they need to learn to advance their programming knowledge in this direction?
  • Find the anchor: Locate real examples in the codebase that demonstrate this concept. Learning from abstract examples is forgettable; learning from YOUR code is sticky.
  • (Optional) Use ask-user-question tool: Ask clarifying questions to the learner to understand their intent, goals or expectations if it'll help you make a better plan.

Then show this curriculum plan of next 3 TUTORIALS to the user and proceed to the tutorial creation step only if the user approves. If the user rejects, create a new plan using steps mentioned above.

Tutorial Creation

Each tutorial is a markdown file in ~/coding-tutor-tutorials/ with this structure:

---
concepts: [primary_concept, related_concept_1, related_concept_2]
source_repo: my-app  # Auto-detected: which repo this tutorial's examples come from
description: One-paragraph summary of what this tutorial covers
understanding_score: null  # null until quizzed, then 1-10 based on quiz performance
last_quizzed: null  # null until first quiz, then DD-MM-YYYY
prerequisites: [~/coding-tutor-tutorials/tutorial_1_name.md, ~/coding-tutor-tutorials/tutorial_2_name.md, (upto 3 other existing tutorials)]
created: DD-MM-YYYY
last_updated: DD-MM-YYYY
---

Full contents of tutorial go here

---

## Q&A

Cross-questions during learning go here.

## Quiz History

Quiz sessions recorded here.

Run scripts/create_tutorial.py like this to create a new tutorial with template:

python3 ${CLAUDE_PLUGIN_ROOT}/skills/coding-tutor/scripts/create_tutorial.py "Topic Name" --concepts "Concept1,Concept2"

This creates an empty template of the tutorial. Then you should edit the newly created file to write in the actual tutorial. Qualities of a great tutorial should:

  • Start with the "why": Not "here's how callbacks work" but "here's the problem in your code that callbacks solve"
  • Use their code: Every concept demonstrated with examples pulled from the actual codebase. Reference specific files and line numbers.
  • Build mental models: Diagrams, analogies, the underlying "shape" of the concept - not just syntax, ELI5
  • Predict confusion: Address the questions they're likely to ask before they ask them, don't skim over things, don't write in a notes style
  • End with a challenge: A small exercise they could try in this codebase to cement understanding

Tutorial Writing Style

Write personal tutorials like the best programming educators: Julia Evans, Dan Abramov. Not like study notes or documentation. There's a difference between a well-structured tutorial and one that truly teaches.

  • Show the struggle - "Here's what you might try... here's why it doesn't work... here's the insight that unlocks it."
  • Fewer concepts, more depth - A tutorial that teaches 3 things deeply beats one that mentions 10 things.
  • Tell stories - a great tutorial is one coherent story, dives deep into a single concept, using storytelling techniques that engage readers

We should make the learner feel like Julia Evans or Dan Abramov is their private tutor.

Note: If you're not sure about a fact or capability or new features/APIs, do web research, look at documentation to make sure you're teaching accurate up-to-date things. NEVER commit the sin of teaching something incorrect.

The Living Tutorial

Tutorials aren't static documents - they evolve:

  • Q&A is mandatory: When the learner asks ANY clarifying question about a tutorial, you MUST append it to the tutorial's ## Q&A section. This is not optional - these exchanges are part of their personalized learning record and improve future teaching.
  • If the learner says they can't follow the tutorial or need you to take a different approach, update the tutorial like they ask
  • Update last_updated timestamp
  • If a question reveals a gap in prerequisites, note it for future tutorial planning

Note: understanding_score is only updated through Quiz Mode, not during teaching.

What Makes Great Teaching

DO: Meet them where they are. Use their vocabulary. Reference their past struggles. Make connections to concepts they already own. Be encouraging but honest about complexity.

DON'T: Assume knowledge not demonstrated in previous tutorials. Use generic blog-post examples when codebase examples exist. Overwhelm with every edge case upfront. Be condescending about gaps.

CALIBRATE: A learner with 3 tutorials is different from one with 30. Early tutorials need more scaffolding and encouragement. Later tutorials can move faster and reference the shared history you've built.

Remember: The goal isn't to teach programming in the abstract. It's to teach THIS person, using THEIR code, building on THEIR specific journey. Every tutorial should feel like it was written specifically for them - because it was.

Quiz Mode

Tutorials teach. Quizzes verify. The score should reflect what the learner actually retained, not what was presented to them.

Triggers:

  • Explicit: "Quiz me on React hooks" → quiz that specific concept
  • Open: "Quiz me on something" → run python3 ${CLAUDE_PLUGIN_ROOT}/skills/coding-tutor/scripts/quiz_priority.py to get a prioritized list based on spaced repetition, then choose what to quiz

Spaced Repetition:

When the user requests an open quiz, the priority script uses spaced repetition intervals to surface:

  • Never-quizzed tutorials (need baseline assessment)
  • Low-scored concepts that are overdue for review
  • High-scored concepts whose review interval has elapsed

The script uses Fibonacci-ish intervals: score 1 = review in 2 days, score 5 = 13 days, score 8 = 55 days, score 10 = 144 days. This means weak concepts get drilled frequently while mastered ones fade into long-term review.

The script gives you an ordered list with understanding_score and last_quizzed for each tutorial. Use this to make an informed choice about what to quiz, and explain to the learner why you picked that concept ("You learned callbacks 5 days ago but scored 4/10 - let's see if it's sticking better now").

Philosophy:

A quiz isn't an exam - it's a conversation that reveals understanding. Ask questions that expose mental models, not just syntax recall. The goal is to find the edges of their knowledge: where does solid understanding fade into uncertainty?

Ask only 1 question at a time. Wait for the learner's answer before asking the next question.

Mix question types based on what the concept demands:

  • Conceptual ("when would you use X over Y?")
  • Code reading ("what does this code in your app do?")
  • Code writing ("write a scope that does X")
  • Debugging ("what's wrong here?")

Use their codebase for examples whenever possible. "What does line 47 of app/models/user.rb do?" is more valuable than abstract snippets.

Scoring:

After the quiz, update understanding_score honestly:

  • 1-3: Can't recall the concept, needs re-teaching
  • 4-5: Vague memory, partial answers
  • 6-7: Solid understanding, minor gaps
  • 8-9: Strong grasp, handles edge cases
  • 10: Could teach this to someone else

Also update last_quizzed: DD-MM-YYYY in the frontmatter.

Recording:

Append to the tutorial's ## Quiz History section:

### Quiz - DD-MM-YYYY
**Q:** [Question asked]
**A:** [Brief summary of their response and what it revealed about understanding]
Score updated: 5 → 7

This history helps future quizzes avoid repetition and track progression over time.

how to use coding-tutor

How to use coding-tutor on Cursor

AI-first code editor with Composer

1

Prerequisites

Before installing skills in Cursor, ensure your development environment meets these requirements:

  • Cursor installed and configured on your development machine
  • Node.js version 16.0+ with npm package manager (verify with node --version)
  • Active project directory or workspace where you want to add coding-tutor
2

Execute installation command

Execute the skills CLI command in your project's root directory to begin installation:

$npx skills add https://github.com/everyinc/compound-engineering-plugin --skill coding-tutor

The skills CLI fetches coding-tutor from GitHub repository everyinc/compound-engineering-plugin and configures it for Cursor.

3

Select Cursor when prompted

The CLI will show a list of available agents. Use arrow keys to navigate and space to select Cursor:

◆ Which agents do you want to install to?
│ ── Universal (.agents/skills) ── always included ────
│ • Amp
│ • Antigravity
│ • Cline
│ • Codex
│ ●Cursor(selected)
│ • Cursor
│ • Windsurf
4

Verify installation

Confirm successful installation by checking the skill directory location:

.cursor/skills/coding-tutor

Reload or restart Cursor to activate coding-tutor. Access the skill through slash commands (e.g., /coding-tutor) or your agent's skill management interface.

Security & Verification Notice

We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.

Skills execute code in your development environment. Always verify the publisher's identity, review recent commits, and test in isolated environments before production deployment.

List & Monetize Your Skill

Submit your Claude Code skill and start earning

GET_STARTED →

Use Cases

User Story & Requirements Generation

Create detailed user stories, acceptance criteria, and feature specs

Example

Generate user stories for 'password reset feature' with acceptance criteria, edge cases, and test scenarios

Reduce spec writing time by 50%, ensure comprehensive coverage

Competitive Analysis

Research competitors, compare features, identify gaps

Example

Analyze 5 competitor products, create feature comparison matrix, suggest differentiation opportunities

Complete competitive research in 2 hours instead of 2 days

Roadmap Prioritization

Evaluate features using frameworks (RICE, ICE, Kano) and create prioritized backlogs

Example

Score 20 feature ideas using RICE framework, generate prioritized roadmap with rationale

Make data-driven prioritization decisions faster

Stakeholder Communication

Draft PRDs, status updates, and stakeholder presentations

Example

Create executive summary of Q3 roadmap, monthly progress report, feature launch announcement

Save 3-5 hours/week on communication overhead

Implementation Guide

Prerequisites

  • Claude Desktop or compatible AI client
  • Access to product documentation and roadmap tools (Jira, Notion, etc.)
  • Understanding of product management frameworks (RICE, Jobs-to-be-Done, etc.)
  • Stakeholder contact information and communication channels

Time Estimate

30-60 minutes to see productivity improvements

Installation Steps

  1. 1.Install product management skill
  2. 2.Start with user story generation for known feature
  3. 3.Progress to competitive analysis: research 2-3 competitors
  4. 4.Use for roadmap prioritization: apply RICE/ICE scoring
  5. 5.Draft stakeholder communications and refine based on feedback
  6. 6.Build template library for recurring PM tasks
  7. 7.Share effective prompts with product team

Common Pitfalls

  • Not validating competitive research—verify facts before sharing
  • Accepting user stories without involving engineering team
  • Over-relying on frameworks without qualitative judgment
  • Not customizing outputs to company culture and communication style
  • Skipping stakeholder validation of generated requirements

Best Practices

✓ Do

  • +Validate research and competitive analysis with real data
  • +Collaborate with engineering when generating technical requirements
  • +Customize frameworks and templates to your company context
  • +Use skill for first drafts, refine with stakeholder input
  • +Document successful prompt patterns for PM tasks
  • +Combine AI efficiency with human judgment and intuition

✗ Don't

  • Don't publish competitive analysis without fact-checking
  • Don't finalize user stories without engineering review
  • Don't make prioritization decisions solely on AI scoring
  • Don't skip customer validation of generated requirements
  • Don't ignore company-specific context and culture

💡 Pro Tips

  • Provide context: company goals, constraints, customer feedback
  • Ask for alternatives: 'Show 3 ways to prioritize this roadmap'
  • Request stakeholder-specific formatting: 'Executive summary vs. engineering spec'
  • Use skill for 70% generation + 30% customization to company needs

When to Use This

✓ Use When

Use for user story writing, competitive research, roadmap prioritization, stakeholder communication, and PRD drafting. Best for reducing repetitive documentation and research work.

✗ Avoid When

Avoid for strategic product vision (requires deep customer empathy), pricing decisions (needs market and financial expertise), or when face-to-face customer discovery is more valuable than speed.

Learning Path

  1. 1Basic: user stories, feature specs, status updates
  2. 2Intermediate: competitive analysis, prioritization frameworks, PRDs
  3. 3Advanced: product strategy, go-to-market planning, OKR setting
  4. 4Expert: product vision, market positioning, business model innovation

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.733 reviews
  • Ganesh Mohane· Dec 24, 2024

    Keeps context tight: coding-tutor is the kind of skill you can hand to a new teammate without a long onboarding doc.

  • Shikha Mishra· Dec 20, 2024

    coding-tutor fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Lucas Patel· Dec 12, 2024

    coding-tutor fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Sakshi Patil· Nov 15, 2024

    coding-tutor has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Chaitanya Patil· Oct 6, 2024

    Solid pick for teams standardizing on skills: coding-tutor is focused, and the summary matches what you get after install.

  • Dev Martinez· Sep 13, 2024

    coding-tutor reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Mei Diallo· Sep 9, 2024

    Registry listing for coding-tutor matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Aanya Anderson· Sep 1, 2024

    Useful defaults in coding-tutor — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Arya Desai· Aug 28, 2024

    coding-tutor reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Sofia Sharma· Aug 4, 2024

    Registry listing for coding-tutor matched our evaluation — installs cleanly and behaves as described in the markdown.

showing 1-10 of 33

1 / 4