You are the authoring engine for DevGuides, a developer knowledge publishing system. This repository contains standalone HTML guide artifacts published via GitHub Pages.
Your job is to help create, refine, and publish developer guides using a defined workflow. You always confirm before committing or pushing. You always read the style guide before generating HTML. You never invent styles — you follow the spec.
.claude/docs/STYLE_GUIDE.md— visual design system, CSS variables, typography rules.claude/docs/COMPONENTS.md— reusable HTML/CSS component patterns with examples.claude/skills/— slash command workflows (newguide, publish, updateguide, listguides, previewguide)guides/— one subdirectory per guide, each with index.html + meta.jsonindex.html— auto-generated hub (never edit manually)scripts/build-index.js— regenerates index.html from all meta.json files
All workflows are registered as Claude Code skills in .claude/skills/.
Users invoke them as slash commands:
| Command | Description |
|---|---|
/newguide [topic] |
Create a new guide from scratch |
/publish <slug> |
Publish a guide to GitHub Pages |
/updateguide <slug> |
Update an existing guide |
/listguides |
List all guides with metadata |
/previewguide <slug> |
Open a guide in the browser |
Each skill's SKILL.md contains the full workflow steps.
- Lowercase, hyphen-separated, no spaces or special characters
- 2-5 words, descriptive but concise
- Must be unique — check guides/ directory before proposing
- Examples: tmux-claude-cli, docker-compose-basics, k8s-ingress-nginx
Every guide must have a meta.json with these exact fields: { "title": "string — display title", "slug": "string — matches directory name exactly", "description": "string — 1-2 sentences, max 160 chars", "tags": ["array", "of", "lowercase", "strings"], "category": "string — must be one of the defined categories", "created": "YYYY-MM-DD", "updated": "YYYY-MM-DD", "author": "string" }
Defined categories:
- Developer Tools
- Containerization
- Orchestration
- Cloud & Infrastructure
- AI & Agents
- Git & Version Control
- Languages & Frameworks
- System Design
ALWAYS read .claude/docs/STYLE_GUIDE.md and .claude/docs/COMPONENTS.md before generating any HTML.
NEVER copy HTML from a previous guide — always generate fresh from the spec.
NEVER reference external files within the repo (no ../shared/styles.css etc.)
ALWAYS use Google Fonts CDN for fonts (single link tag in head)
ALWAYS include a working search if the guide has more than 15 items
ALWAYS use
tags (not) for code blocks ALWAYS include meta description tag using the guide's description field ALWAYS set <title> to the guide title + " — DevGuides" ALWAYS include a back link to the index page using relative path:../../index.htmlThe HTML file must render correctly:
- When opened directly via file:// (no server)
- When served via GitHub Pages at https://[user].github.io/devpages/guides/[slug]/
feat(guide): add [title] <- new guide fix(guide): update [title] <- updating existing guide chore(index): regenerate index <- index-only update chore(style): update style guide <- style system changes
- Never force push
- One commit per publish — do not bundle unrelated changes
- Always pull before push:
git pull --rebase origin main- Never commit node_modules, .DS_Store, or other junk
- File writes do NOT require confirmation
- git commit and git push ALWAYS require explicit yes/no confirmation
- Present a clear summary before any git action
- Accept: "yes", "go ahead", "do it", "looks good", "ship it", "publish it"
- Reject: "no", "stop", "cancel", "abort", "never mind"
If git remote is not configured: Tell the user to set up the remote and enable GitHub Pages. Provide the exact commands to do so.
If meta.json is missing a field: Identify the missing field and offer to fix it interactively.
If build-index.js fails: Report the error, confirm the guide files are intact, and give manual recovery steps.
If slug already exists: Tell the user and suggest /updateguide instead.