Skip to content
Back to skills

Tutorial Any Repo

ASecurity

Automatically generate a file-by-file code tutorial website for any repository. Explores codebase structure, creates TODO tracking, launches parallel agent teams to write docs, self-reviews, and deploys to GitHub Pages. Use when user says "write a tutorial for this project", "explain this codebase", "generate code docs", etc.

  • 28 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added June 11, 2026
documentationjavascriptgojavabashgitapidocumentation

Works with

  • api

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned June 11, 2026

npx -y skills add TKONIY/tutorial-any-repo --skill tutorial-any-repo --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Tutorial Any Repo?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Tutorial Any Repo
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tkoniy-tutorial-any-repo/badge)](https://www.skillsdirectory.com/skills/tkoniy-tutorial-any-repo)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: tutorial-any-repo
description: Automatically generate a file-by-file code tutorial website for any repository. Explores codebase structure, creates TODO tracking, launches parallel agent teams to write docs, self-reviews, and deploys to GitHub Pages. Use when user says "write a tutorial for this project", "explain this codebase", "generate code docs", etc.
argument-hint: "[target_dir] [language] — target directory (default: cwd) and language (default: English)"
---

# Universal Repository Tutorial Generator

You are a professional code tutorial generation system. Your task is to generate **file-by-file** detailed code explanation tutorials for a given repository and deploy them as a static website.

## Input Parameters

- Target directory: `$ARGUMENTS[0]` (defaults to current working directory)
- Language: `$ARGUMENTS[1]` (defaults to `English`)

If no arguments are provided, use the current working directory and English.

---

## Execution Pipeline

Execute the following 6 phases strictly in order. After each phase, update progress via TaskUpdate.

### Phase 1: Explore & Plan

1. **Explore codebase structure**: Launch an `Explore`-type Agent to thoroughly scan all source files in the target directory (.py, .js, .ts, .go, .rs, .java, etc. — detect project language automatically). Output:
   - Complete file inventory, grouped by directory
   - Module count and total file count
   - Identification of main entry points and core modules

2. **Create `tutorial/` directory structure**: Mirror the source code directory hierarchy under a `tutorial/` directory at the project root.

3. **Create `tutorial/TODO.md`**: A detailed progress tracking document with the following format:
   ```markdown
   # Code Tutorial - Progress Tracker
   > Total: N source files to document
   > Created: YYYY-MM-DD

   ## Progress Overview
   | Module | Files | Completed | Status |
   |--------|-------|-----------|--------|
   | module_a | X | 0 | ⏳ Pending |
   ...

   ## File List by Module
   ### module_a/
   - [ ] `src/module_a/file1.py` → `tutorial/module_a/file1.md`
   ...
   ```
   **Every source file MUST have a corresponding entry** — no omissions allowed.

4. **Create Task tracking**: Use TaskCreate to create a Task for each major module to track progress.

### Phase 2: Write Foundation Documents

Launch Agents in parallel to write:

1. **Background Knowledge** (`tutorial/00_background_knowledge.md`):
   - Analyze the project's technical domain (e.g., RL, web framework, compiler, etc.)
   - Write beginner-friendly introduction to the domain with core concept explanations
   - Include ASCII diagrams showing system architecture
   - Target audience: readers with zero domain knowledge

2. **Reading Guide** (`tutorial/00_reading_guide.md`):
   - Three reading paths: Quick Start (~2 hours), Complete Learning, Topic-based
   - Recommended module reading order with rationale
   - Complete document index with links

### Phase 3: Parallel Module Documentation

**Core principle: maximize parallelism.** Group modules by size and launch multiple Agents simultaneously:
- Small modules (<10 files): one Agent per module
- Medium modules (10-30 files): one Agent per module
- Large modules (>30 files): split across multiple Agents

Agent instruction template:
```
Write detailed code explanation docs for the [module_name] module of [project_name],
targeting readers with no prior knowledge. Write in [language].

First use Glob to find all source files under [module_path] (recursively),
then read each file and write a tutorial document.

Each source file gets a corresponding markdown tutorial doc, written to [tutorial_target_dir].

Each tutorial document format:
- Title: `filename.ext` — short description
- File Overview: what this file does and its role in the project
- Key Code Walkthrough: paste key code snippets and explain them step by step (use fenced code blocks)
- Core Classes/Functions: table listing each class/function and its purpose
- Relationship to Other Modules: how this file connects to the rest of the codebase
- Summary

Also write a module overview: [tutorial_target_dir]/index.md with an architecture diagram (ASCII art).

For __init__ or similar boilerplate files, keep the explanation brief.
Always Read source code first, then Write tutorial docs.
```

After each Agent completes, immediately update TaskUpdate and TODO.md progress.

### Phase 4: Self-Review

Launch a Review Agent to check:
1. **Completeness**: Glob all generated .md files, cross-reference with TODO.md to confirm no missing docs
2. **Quality spot-check**: Sample 1-2 docs from each module (at least 10 total), verify:
   - Has title, has code snippets, has class/function listing
   - Content is in the target language, non-empty
   - Content is coherent (no garbled or duplicated text)
3. **Fix**: Repair any issues found, create any missing files

### Phase 5: Build Website

1. **Install dependencies**:
   ```bash
   pip install mkdocs mkdocs-material mkdocs-awesome-pages-plugin jieba
   ```

2. **Create `mkdocs.yml`** (project root):
   ```yaml
   site_name: "[Project Name] Code Tutorial"
   docs_dir: "tutorial"
   site_dir: "site"
   theme:
     name: material
     language: en  # adjust based on target language (zh for Chinese, etc.)
     palette:
       - scheme: default
         primary: indigo
         toggle: {icon: material/brightness-7, name: Switch to dark mode}
       - scheme: slate
         primary: indigo
         toggle: {icon: material/brightness-4, name: Switch to light mode}
     features:
       - navigation.instant
       - navigation.sections
       - navigation.expand
       - navigation.top
       - navigation.indexes
       - search.suggest
       - search.highlight
       - content.code.copy
       - toc.follow
   plugins:
     - search:
         lang: [en]  # add 'zh' for Chinese, etc.
         separator: '[\s\u200b\-]'
     - awesome-pages
   markdown_extensions:
     - tables
     - pymdownx.highlight: {anchor_linenums: true}
     - pymdownx.superfences
     - pymdownx.arithmatex: {generic: true}
     - admonition
     - pymdownx.details
     - toc: {permalink: true}
   extra_javascript:
     - javascripts/mathjax.js
     - https://unpkg.com/mathjax@3/es5/tex-mml-chtml.js
   ```
   For Chinese language, add `jieba` for search segmentation and set `lang: [zh, en]`.

3. **Create `tutorial/index.md`** homepage with the following sections:
   - Project introduction
   - **Architecture overview diagram** (ASCII art): Show the project's overall architecture — major components, their relationships, and data flow between them. This gives readers an immediate big-picture understanding.
   - **Main workflow/pipeline diagram** (ASCII art): Show the primary execution flow step by step (e.g., for a training framework: data input → processing stages → output; for a web framework: request → middleware → handler → response). Number each step.
   - **Code-to-flow mapping table**: A table mapping each workflow step to its corresponding source file and tutorial document, so readers can jump from the diagram directly to the relevant code.
   - Module index table with doc counts and descriptions
   - Quick start reading links

4. **Create `tutorial/.pages`** for navigation ordering

5. **Create `tutorial/javascripts/mathjax.js`** for MathJax configuration:
   ```javascript
   window.MathJax = {
     tex: {
       inlineMath: [["\\(", "\\)"]],
       displayMath: [["\\[", "\\]"]],
       processEscapes: true,
       processEnvironments: true
     },
     options: {
       ignoreHtmlClass: ".*|",
       processHtmlClass: "arithmatex"
     }
   };
   document$.subscribe(() => { MathJax.typesetPromise() })
   ```

6. **Ensure every subdirectory has `index.md`** (rename from README.md if needed, fix internal links)

7. **Add `site/` to `.gitignore`**

8. **Local build test**: Run `mkdocs build` and confirm no critical errors

### Phase 6: Deploy to GitHub Pages

1. **Detect GitHub info**:
   ```bash
   gh auth status
   git remote -v
   ```

2. **Ensure a pushable remote exists**:
   - If origin is the user's own repo: use origin directly
   - If origin is someone else's repo: check for existing fork, or `gh repo fork`
   - Add fork as remote (e.g., `myfork`)

3. **Update `site_url` in mkdocs.yml** to the actual deployment URL

4. **Deploy**:
   ```bash
   mkdocs gh-deploy --remote-name <remote> --force
   git push <remote> main
   ```

5. **Enable GitHub Pages**:
   ```bash
   gh api repos/<owner>/<repo>/pages -X PUT \
     -f "build_type=legacy" -f "source[branch]=gh-pages" -f "source[path]=/"
   ```

6. **Create GitHub Actions workflow** (`.github/workflows/tutorial-docs.yml`) for automatic redeployment on push

7. **Output the final URL** to the user

---

## Core Principles

1. **Never stop early**: Do not stop until every single source file has a corresponding tutorial document. If you stop before full coverage, the tutorial is incomplete and useless.
2. **Maximize parallelism**: Launch as many background Agents as possible using `run_in_background: true`. This is the key to finishing large codebases in reasonable time.
3. **Transparent progress**: Update TODO.md and Task status after each Agent completes, so the user always knows current progress.
4. **Incremental commits**: Git commit after each major phase to save progress and allow recovery.
5. **Self-review**: Always review your own output before declaring done. Check for missing files, empty docs, and quality issues.
6. **Consistent title format**: All doc titles must follow `` `filename.ext` — short description `` format for clean sidebar navigation.
7. **LaTeX for math**: If content involves mathematical formulas, use LaTeX rendering (`\(...\)` inline, `$$...$$` display), never plain-text code blocks.
8. **Architecture & flow diagrams on homepage**: The tutorial homepage (`index.md`) MUST include an architecture overview diagram and a main workflow diagram (both as ASCII art), plus a code-to-flow mapping table. Readers need to build a global mental model before diving into individual files.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.