Skip to content

CLAUDE MD Learning Project

rUv edited this page Jul 24, 2025 · 1 revision

Claude Code Configuration for Learning Projects

🎓 Educational Focus Configuration

This template is optimized for educational projects that prioritize understanding, step-by-step guidance, and comprehensive documentation. Perfect for tutorials, courses, workshops, and learning experiences.

🚨 CRITICAL: Educational Swarm Patterns

🎯 MANDATORY LEARNING-FIRST APPROACH

When working on educational projects, you MUST:

  1. EXPLAIN BEFORE DOING - Always explain concepts before implementation
  2. STEP-BY-STEP GUIDANCE - Break down complex topics into digestible steps
  3. DOCUMENT EVERYTHING - Every decision needs educational context
  4. INTERACTIVE LEARNING - Include exercises, challenges, and checkpoints
  5. PROGRESSIVE COMPLEXITY - Start simple, gradually increase difficulty

🧠 Educational Agent Configuration

Specialized Educational Agents

// Educational Swarm Setup
[BatchTool]:
  mcp__claude-flow__swarm_init { 
    topology: "hierarchical",
    maxAgents: 8,
    strategy: "educational"
  }
  
  // Educational-specific agents
  mcp__claude-flow__agent_spawn { type: "coordinator", name: "Course Instructor" }
  mcp__claude-flow__agent_spawn { type: "researcher", name: "Concept Explainer" }
  mcp__claude-flow__agent_spawn { type: "architect", name: "Learning Path Designer" }
  mcp__claude-flow__agent_spawn { type: "coder", name: "Code Demonstrator" }
  mcp__claude-flow__agent_spawn { type: "analyst", name: "Difficulty Assessor" }
  mcp__claude-flow__agent_spawn { type: "tester", name: "Exercise Validator" }
  mcp__claude-flow__agent_spawn { type: "documenter", name: "Tutorial Writer" }
  mcp__claude-flow__agent_spawn { type: "specialist", name: "Learning Assistant" }

Educational Agent Roles

  1. Course Instructor (Coordinator)

    • Manages learning flow and pacing
    • Ensures prerequisites are covered
    • Coordinates knowledge building
  2. Concept Explainer (Researcher)

    • Breaks down complex concepts
    • Provides real-world analogies
    • Links to external resources
  3. Learning Path Designer (Architect)

    • Creates progressive lesson structure
    • Designs hands-on exercises
    • Plans knowledge checkpoints
  4. Code Demonstrator (Coder)

    • Writes clear, commented code
    • Shows multiple approaches
    • Highlights best practices
  5. Difficulty Assessor (Analyst)

    • Evaluates complexity levels
    • Identifies potential confusion points
    • Suggests simplifications
  6. Exercise Validator (Tester)

    • Creates practice problems
    • Designs unit tests for learning
    • Validates student solutions
  7. Tutorial Writer (Documenter)

    • Creates comprehensive guides
    • Writes inline documentation
    • Develops learning materials
  8. Learning Assistant (Specialist)

    • Provides hints and tips
    • Answers common questions
    • Offers additional challenges

📚 Educational Workflow Patterns

Step-by-Step Learning Pattern

// PHASE 1: Concept Introduction
[BatchTool]:
  // Documentation first
  Write("docs/01-introduction.md", introContent)
  Write("docs/02-concepts.md", conceptsContent)
  Write("docs/03-prerequisites.md", prereqContent)
  
  // Visual aids
  Write("docs/diagrams/architecture.md", diagramContent)
  Write("docs/examples/simple-example.js", simpleCode)

// PHASE 2: Guided Implementation
[BatchTool]:
  // Scaffold with extensive comments
  Write("src/step1-basics.js", heavilyCommentedCode)
  Write("src/step2-intermediate.js", progressiveCode)
  Write("src/step3-advanced.js", advancedPatterns)
  
  // Exercise files
  Write("exercises/01-try-it-yourself.js", exerciseTemplate)
  Write("exercises/01-solution.js", solutionCode)

// PHASE 3: Knowledge Validation
[BatchTool]:
  // Tests that teach
  Write("tests/learning-tests.js", educationalTests)
  Write("tests/concept-validation.js", conceptTests)
  
  // Self-assessment
  Write("assessment/quiz.js", knowledgeCheck)
  Write("assessment/project-rubric.md", evaluationCriteria)

Progressive Complexity Pattern

// Level 1: Foundation (Beginner)
[BatchTool]:
  Write("lessons/01-basics/hello-world.js", `
    // Lesson 1: Your First Program
    // Learning Objectives:
    // - Understand basic syntax
    // - Run your first program
    // - Learn about console output
    
    // This is a comment - it doesn't run
    console.log("Hello, World!"); // This prints text
    
    // Try changing the text above!
  `)
  
  Write("lessons/01-basics/README.md", beginnerGuide)
  Write("lessons/01-basics/exercises.md", simpleExercises)

// Level 2: Building Blocks (Intermediate)
[BatchTool]:
  Write("lessons/02-intermediate/functions.js", functionExamples)
  Write("lessons/02-intermediate/data-structures.js", dataExamples)
  Write("lessons/02-intermediate/README.md", intermediateGuide)
  Write("lessons/02-intermediate/mini-project.js", smallProject)

// Level 3: Real Applications (Advanced)
[BatchTool]:
  Write("lessons/03-advanced/full-app.js", completeApplication)
  Write("lessons/03-advanced/patterns.js", designPatterns)
  Write("lessons/03-advanced/README.md", advancedGuide)
  Write("lessons/03-advanced/capstone-project.md", finalProject)

🎯 Educational Memory Patterns

Knowledge Tracking

// Track learning progress
mcp__claude-flow__memory_usage {
  action: "store",
  key: "learning/student/progress",
  value: {
    completedLessons: ["intro", "basics"],
    currentLevel: "intermediate",
    exercisesCompleted: 15,
    conceptsMastered: ["variables", "functions", "loops"],
    strugglingWith: ["recursion", "async"],
    nextRecommended: "callbacks-deep-dive"
  }
}

// Store common misconceptions
mcp__claude-flow__memory_usage {
  action: "store",
  key: "learning/common-errors",
  value: {
    concept: "array-methods",
    errors: ["forgetting return in map", "mutating with forEach"],
    clarifications: ["map creates new array", "forEach for side effects"]
  }
}

📝 Educational Todo Patterns

TodoWrite { todos: [
  // Learning Path todos
  { id: "intro", content: "📚 Create introduction with learning objectives", status: "completed", priority: "high" },
  { id: "prereq", content: "📋 List prerequisites and setup instructions", status: "completed", priority: "high" },
  { id: "concept1", content: "🧠 Explain core concept #1 with examples", status: "in_progress", priority: "high" },
  { id: "exercise1", content: "✏️ Design hands-on exercise for concept #1", status: "pending", priority: "high" },
  { id: "visual1", content: "📊 Create visual diagram for concept #1", status: "pending", priority: "medium" },
  
  // Documentation todos
  { id: "guide", content: "📖 Write comprehensive learner's guide", status: "pending", priority: "high" },
  { id: "faq", content: "❓ Compile FAQ from common questions", status: "pending", priority: "medium" },
  { id: "glossary", content: "📚 Create terminology glossary", status: "pending", priority: "low" },
  
  // Assessment todos
  { id: "quiz", content: "📝 Design knowledge check quiz", status: "pending", priority: "medium" },
  { id: "project", content: "🛠️ Create capstone project specification", status: "pending", priority: "high" },
  { id: "rubric", content: "📊 Develop assessment rubric", status: "pending", priority: "medium" }
]}

🎓 Educational Best Practices

Documentation Standards

// Every file starts with learning context
Write("src/example.js", `
/**
 * LEARNING OBJECTIVE: Understanding Event Handling
 * 
 * PREREQUISITES:
 * - Basic JavaScript syntax
 * - Function declarations
 * - DOM basics
 * 
 * WHAT YOU'LL LEARN:
 * 1. How events work in the browser
 * 2. Different ways to attach event listeners
 * 3. Event propagation (bubbling/capturing)
 * 
 * TIME ESTIMATE: 20 minutes
 */

// CONCEPT: Event listeners wait for user actions
// ANALOGY: Like a doorbell - it waits for someone to press it

// Example 1: Basic Click Handler
// This function runs when the button is clicked
function handleClick() {
  // TRY THIS: Change the alert message
  alert('Button was clicked!');
}

// CONCEPT: Attaching the listener
// We're telling the button to "listen" for clicks
button.addEventListener('click', handleClick);

// EXERCISE: Add a second button that changes the page color
// HINT: Use document.body.style.backgroundColor
`);

Interactive Learning Features

// Self-check exercises
Write("exercises/self-check.js", `
// SELF-CHECK EXERCISE: Array Methods
// Complete these exercises to test your understanding

// Exercise 1: Use map() to double each number
const numbers = [1, 2, 3, 4, 5];
// YOUR CODE HERE:
const doubled = numbers.map(/* complete this */);

// Expected output: [2, 4, 6, 8, 10]
console.log('Your result:', doubled);
console.log('Correct?', JSON.stringify(doubled) === '[2,4,6,8,10]');

// Exercise 2: Use filter() to get only even numbers
const mixed = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// YOUR CODE HERE:
const evens = mixed.filter(/* complete this */);

// Expected output: [2, 4, 6, 8, 10]
console.log('Your result:', evens);

// REFLECTION QUESTIONS:
// 1. What's the difference between map() and filter()?
// 2. Can you chain these methods? Try it!
// 3. What happens if you don't return anything in map()?
`);

🚀 Learning Project Structure

learning-project/
├── 📚 docs/
│   ├── 00-welcome.md          # Course introduction
│   ├── 01-setup.md            # Environment setup
│   ├── 02-fundamentals.md    # Core concepts
│   ├── 03-hands-on.md         # Practical exercises
│   └── 04-next-steps.md       # Further learning
├── 📖 lessons/
│   ├── 01-basics/             # Beginner content
│   ├── 02-intermediate/       # Building skills
│   └── 03-advanced/           # Complex topics
├── ✏️ exercises/
│   ├── solutions/             # Answer key
│   └── challenges/            # Extra practice
├── 🧪 examples/
│   ├── simple/                # Basic examples
│   ├── real-world/            # Practical uses
│   └── common-mistakes/       # What to avoid
├── 📊 assessments/
│   ├── quizzes/              # Knowledge checks
│   ├── projects/             # Hands-on projects
│   └── rubrics/              # Evaluation criteria
└── 🎯 src/
    └── final-project/        # Capstone project

📋 Educational Coordination Hooks

# Before creating educational content
npx claude-flow@alpha hooks pre-task --description "Creating lesson on [topic]" --education-mode true

# After each lesson component
npx claude-flow@alpha hooks post-edit --file "[lesson-file]" --lesson-component "[intro|example|exercise]"

# Track learning path progress
npx claude-flow@alpha hooks notify --message "Completed lesson section: [section]" --difficulty "[beginner|intermediate|advanced]"

# Validate educational quality
npx claude-flow@alpha hooks post-task --validate-education true --check-prerequisites true

🎯 Success Metrics for Educational Projects

  1. Clarity Score: Are concepts explained clearly?
  2. Progression Quality: Does difficulty increase appropriately?
  3. Exercise Coverage: Does every concept have practice?
  4. Documentation Completeness: Is everything explained?
  5. Code Commenting: Is code thoroughly documented?
  6. Error Handling: Are common mistakes addressed?
  7. Learning Path: Is there a clear journey?
  8. Assessment Quality: Can learners validate understanding?

🚨 Educational Anti-Patterns to Avoid

DON'T:

  • Jump into complex code without explanation
  • Use advanced concepts before teaching basics
  • Write uncommented "magic" code
  • Skip the "why" and only show "how"
  • Assume prior knowledge without stating it
  • Create exercises without solutions
  • Use inconsistent coding styles
  • Forget to test on actual beginners

DO:

  • Start with the simplest possible example
  • Build complexity gradually
  • Comment every significant line
  • Explain the reasoning behind choices
  • State all prerequisites clearly
  • Provide solutions with explanations
  • Maintain consistent, clean style
  • Get feedback from learners

🎓 Remember

Education is about the journey, not the destination. Every line of code should teach something. Every file should build understanding. Every exercise should reinforce learning. Make the complex simple, and the simple memorable.

Clone this wiki locally