
Coding Tutor
Scaffold structured coding tutorials with frontmatter and a dedicated tutorials repo so agents and learners follow a consistent lesson format.
Overview
Coding Tutor is an agent skill for the Build phase that scaffolds coding tutorial templates with frontmatter into a dedicated tutorials directory.
Install
npx skills add https://github.com/everyinc/compound-engineering-plugin --skill coding-tutorWhat is this skill?
- CLI `create_tutorial.py` scaffolds a new tutorial from a title and optional concept list
- Writes templates into `~/coding-tutor-tutorials/` with URL-friendly slugs
- Warns when the active git repo has uncommitted changes before you proceed
- Derives repo context from `git rev-parse` for consistent tutorial metadata
Adoption & trust: 2.3k installs on skills.sh; 20.5k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You want to teach a topic like React Hooks but lack a repeatable tutorial file structure and safe git hygiene before adding new lessons.
Who is it for?
Solo builders or educators who publish step-by-step coding lessons and want one command to start each new tutorial consistently.
Skip if: Teams that only need a one-off explanation in chat with no persisted tutorial repo or frontmatter contract.
When should I use this skill?
When you need to create a new structured coding tutorial file with frontmatter and optional concept tags via the bundled Python CLI.
What do I get? / Deliverables
You get a new slugged tutorial template under `~/coding-tutor-tutorials/` with frontmatter ready for the agent to fill in sections and examples.
- New tutorial markdown/template with frontmatter
- Slugged path under coding-tutor-tutorials
Recommended Skills
Journey fit
Tutorial authoring is core product documentation work during the build phase, before shipping teaching content to users. The skill generates tutorial files and frontmatter—directly aligned with docs subphase deliverables rather than app runtime code.
How it compares
Use as a file scaffold generator for lesson repos, not as a live coding tutor or interactive MCP server.
Common Questions / FAQ
Who is coding-tutor for?
Indie developers, bootcamp authors, and agent users who maintain a separate tutorials repository and want standardized frontmatter for each lesson.
When should I use coding-tutor?
During Build → docs when starting a new topic (e.g. State Management), after you have a git repo and want a warned, clean workflow before committing tutorial files.
Is coding-tutor safe to install?
It runs local git status checks and writes under your home directory; review the Security Audits panel on this page and inspect the script before granting shell access.
SKILL.md
READMESKILL.md - Coding Tutor
#!/usr/bin/env python3 """ Create a new coding tutorial template with proper frontmatter. Usage: python create_tutorial.py "React Hooks" python create_tutorial.py "State Management" --concepts "Redux,Context,State" """ import argparse import subprocess import sys from datetime import datetime from pathlib import Path def get_tutorials_repo_path(): """Get the path for the tutorials repo (~/coding-tutor-tutorials/).""" return Path.home() / "coding-tutor-tutorials" def get_repo_name(): """Get the current git repository name.""" try: result = subprocess.run( ['git', 'rev-parse', '--show-toplevel'], capture_output=True, text=True ) if result.returncode == 0: return result.stdout.strip().split('/')[-1] except Exception: pass return "unknown" def check_uncommitted_changes(): """Check for uncommitted changes and print a warning if any exist.""" try: result = subprocess.run( ['git', 'status', '--porcelain'], capture_output=True, text=True ) if result.returncode == 0 and result.stdout.strip(): lines = result.stdout.strip().split('\n') print(f"WARNING: You have {len(lines)} uncommitted change(s). Commit and push before proceeding.") print(result.stdout) except Exception: pass def slugify(text): """Convert text to URL-friendly slug.""" return text.lower().replace(" ", "-").replace("_", "-") def create_tutorial(topic, concepts=None, output_dir=None): """ Create a new tutorial template file. Args: topic: Main topic of the tutorial concepts: Comma-separated concepts (defaults to topic) output_dir: Directory to save tutorial (defaults to ~/coding-tutor-tutorials/) Returns: Path to created tutorial file """ # Default output directory is the central tutorials repo (sibling to git root) if output_dir is None: output_dir = get_tutorials_repo_path() else: output_dir = Path(output_dir) # Create output directory if it doesn't exist output_dir.mkdir(parents=True, exist_ok=True) # Generate filename: YYYY-MM-DD-topic-slug.md date_str_filename = datetime.now().strftime("%Y-%m-%d") date_str_frontmatter = datetime.now().strftime("%d-%m-%Y") slug = slugify(topic) filename = f"{date_str_filename}-{slug}.md" filepath = output_dir / filename # Default concepts to topic if not provided if concepts is None: concepts = topic # Get current repo name repo_name = get_repo_name() # Create tutorial template with YAML frontmatter and embedded guidance template = f"""--- concepts: {concepts} source_repo: {repo_name} description: [TODO: Fill after completing tutorial - one paragraph summary] understanding_score: null last_quizzed: null prerequisites: [] created: {date_str_frontmatter} last_updated: {date_str_frontmatter} --- # {topic} [TODO: Opening paragraph - Start with the WHY. What problem does this concept solve? Why should the learner care about this? Connect it to their goal of becoming a senior engineer. NOTE: Update the frontmatter 'prerequisites' field with up to 3 relevant past tutorials if this builds on previous concepts (e.g., [coding-tutor-tutorials/2025-11-20-basics.md]). Leave as empty array [] if this is foundational.] ## The Problem [TODO: Describe a real scenario from this codebase where this concept matters. Make it concrete - not "X is useful for Y" but "look at this code in src/components/User.tsx where we need to do Y - that's the problem this concept solves"] ## Key Concepts [TODO: Build mental models, not just definitions. Use: - Analogies that connect to things they already understand - ASCII diagrams if helpful for visualizing relationships - ELI5 explanations that get to the essence - Break complex concepts into digestible pieces - Predict and address likely points o