readme-generator
This skill creates or updates a README.md file in the GitHub home directory of the current project. The README.md file it generates will conform to GitHub best practices, including badges, project overview, site metrics, getting started instructions, and comprehensive documentation.
What this skill does
# README Generator
Generate or update a comprehensive README.md file for GitHub repositories following best practices.
## Purpose
This skill automates the creation of professional, well-structured README.md files for GitHub repositories. It generates all essential sections including badges for technologies used, project overview, site metrics, getting started instructions, project structure, and contact information. The skill is particularly optimized for MkDocs-based intelligent textbook projects but can be adapted for any repository type.
## When to Use This Skill
Use this skill when:
- Starting a new GitHub repository that needs a README.md
- Updating an existing README.md to follow best practices
- After significant project changes that should be documented
- Before publishing or sharing a repository
- When migrating from another documentation system
- After adding new technologies or dependencies
## Workflow
### Step 1: Analyze Repository Context
Before generating the README, gather information about the repository:
1. Check if README.md already exists in the root directory
2. Identify the repository name from `.git/config` or the working directory
3. Read `mkdocs.yml` if it exists to extract:
- Site name
- Site description
- Site URL (for GitHub Pages link)
- Repository URL
4. Check for documentation in `/docs` directory
5. Identify technologies used (look for package.json, requirements.txt, mkdocs.yml, etc.)
**User Dialog Triggers:**
- If README.md exists: Ask "README.md already exists. Would you like to update it or create a backup first?"
- If repository URL not found: Ask "What is the GitHub repository URL? (e.g., https://github.com/username/repo-name)"
- If site URL not configured: Ask "Is this site deployed to GitHub Pages? If yes, what's the URL?"
### Step 2: Generate Badges
Create badges for all relevant technologies and platforms. Use shields.io format for consistency.
**Badge Order:**
1. MkDocs (if mkdocs.yml exists)
2. MkDocs Material (if theme is Material)
3. GitHub Pages live badge (if site is deployed)
4. Claude Code badge
5. Claude Skills badge (if .claude/skills or skills/ directory exists)
6. License badge
7. Additional technology badges (Python, JavaScript, p5.js, etc.)
**Do NOT include a "GitHub repo" badge that links the README back to its own repository.** Anyone reading the README is already on GitHub (or already has the repo cloned), so a self-link adds no value. The GitHub Pages badge is fine because it points to a different surface (the published site).
**Badge Templates:**
```markdown
[](https://www.mkdocs.org/)
[](https://squidfunk.github.io/mkdocs-material/)
[](SITE_URL)
[](https://claude.ai/code)
[](https://github.com/dmccreary/claude-skills)
```
**Check for these additional badges:**
- p5.js: `[](https://p5js.org/)`
- Python: `[](https://www.python.org/)`
- JavaScript: `[](https://developer.mozilla.org/en-US/docs/Web/JavaScript)`
### Step 3: Add License Badge
Look for license information in:
1. `LICENSE` file in root
2. `docs/license.md`
3. `mkdocs.yml` (copyright field)
**Default to Creative Commons BY-NC-SA 4.0 if not specified:**
```markdown
[](https://creativecommons.org/licenses/by-nc-sa/4.0/)
```
**Other common licenses:**
- MIT: `[](https://opensource.org/licenses/MIT)`
- Apache 2.0: `[](https://opensource.org/licenses/Apache-2.0)`
- GPL-3.0: `[](https://www.gnu.org/licenses/gpl-3.0)`
### Step 4: Create Website Link Section
After badges, add a prominent link to the live website (if deployed):
```markdown
## View the Live Site
Visit the interactive textbook at: [https://username.github.io/repo-name](https://username.github.io/repo-name)
```
### Step 5: Write Overview/Short Description
Create a compelling 1-3 paragraph overview that answers:
- What is this project?
- Who is it for?
- Why is it valuable?
- What makes it unique or special?
**Guidelines:**
- Keep it concise but engaging
- Use active voice
- Highlight key features or benefits
- Mention the educational framework if applicable
- For textbooks: mention target audience (grade level, prerequisites)
**Example for Intelligent Textbook:**
```markdown
## Overview
This is an interactive, AI-generated intelligent textbook on [TOPIC] designed for [AUDIENCE]. Built using MkDocs with the Material theme, it incorporates learning graphs, concept dependencies, interactive MicroSims (p5.js simulations), and AI-assisted content generation.
The textbook follows Bloom's Taxonomy (2001 revision) for learning outcomes and uses concept dependency graphs to ensure proper prerequisite sequencing. All content is generated and curated using Claude AI skills, making it a Level 2+ intelligent textbook with interactive elements.
Whether you're a student learning [TOPIC] for the first time or an educator looking for structured course materials, this textbook provides comprehensive coverage with hands-on interactive elements that make complex concepts accessible and engaging.
```
### Step 6: Add Site Status and Metrics
Gather and display project metrics to show completeness and scope.
**Read the canonical metrics file — do NOT re-derive counts.**
Book-wide totals are the single source of truth in
`docs/learning-graph/book-metrics.json` (produced by the book-metrics tool and
validated against `src/book-metrics/book-metrics.schema.json`). README metrics
MUST come from this file so the README, LinkedIn announcement, and case-study
card all show identical numbers.
```bash
# 1. Make sure the file is fresh (regenerate if missing or stale):
bk-generate-book-metrics 2>/dev/null \
|| python3 "$BK_HOME/src/book-metrics/book-metrics.py" docs
# 2. Read the totals:
python3 - <<'PY'
import json, pathlib
m = json.loads(pathlib.Path("docs/learning-graph/book-metrics.json").read_text())["metrics"]
for k in ("concepts","chapters","microsims","glossaryTerms","faqs",
"quizQuestions","words","diagrams","references","equivalentPages",
"developmentStage"):
print(f"{k}: {m.get(k)}")
PY
```
The `metrics` object provides: `concepts`, `chapters`, `microsims`, `stories`,
`glossaryTerms`, `faqs`, `quizQuestions`, `chapterQuizzes`, `chapterReferences`,
`references`, `diagrams`, `equations`, `words`, `links`, `appendices`,
`mascotImages`, `developmentStage`, and `equivalentPages`. For **identity**
fields (title, author, repo URL, license) read `book-metadata.json` /
`mkdocs.yml`.
Only fall back to `scripts/collect-site-metrics.py` (markdown/image scanning)
for counts the metrics file does not provide — e.g. image-asset counts or
code-block counts. Never recount concepts/chapters/words by hand.
**Format as a table:**
```markdown
## Site Status and Metrics
| Metric | Count |
|--------|-------|
| Concepts in Learning Graph | 200 |
| Chapters | 13 |
| Markdown Files | 87 |
| Total Words | 45,230 |
| MicroSims | 12 |
| Glossary Terms | 187 |
| FAQ Questions | 42 |
| Quiz Questions | 156 |
| Images | 34 |
|Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.