publish-skill/SKILL.md
This skill should be used when publishing a new or updated skill to the claude-skills-site Astro website. Use this skill for both adding new skills AND updating existing ones on the site. Triggers on "/publish-skill skillname", "add skill to site", "publish skillname to skills site", "update skill on site", "edit skill on site", "sync skill to site", "republish skill". Reads SKILL.md from the skills repo, generates MDX frontmatter and body, picks the right bundle, updates bundle skills array, and commits/pushes both repos. For existing skills, pass --update to preserve apothecary_name, hero_image, and activity data while regenerating the rest. A hero image is generated by default (pass --no-image to skip).
npx skillsauth add glebis/claude-skills publish-skillInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Automate the full pipeline for publishing a skill to the claude-skills-site Astro website.
~/ai_projects/claude-skills/~/ai_projects/claude-skills-site/~/ai_projects/claude-skills-site/src/content/skills/*.mdx~/ai_projects/claude-skills-site/src/content/bundles/*.mdx/publish-skill <skill-name> # New skill — generates a hero image by default
/publish-skill <skill-name> --update # Regenerate existing .mdx (+ hero image)
/publish-skill <skill-name> --dry-run # Show what would be written, no commits, no image
/publish-skill <skill-name> --no-image # Skip hero-image generation
Execute these phases in order. Stop and report on any error.
~/ai_projects/claude-skills/<skill-name>/SKILL.md exists. Also check ~/.claude/skills/<skill-name>/SKILL.md.<skill-name>. Ensure the skill directory exists in the skills repo or ~/.claude/skills/."~/.claude/skills/ version is newer (by mtime), sync it to the skills repo with rsync -av --exclude='*.egg-info' --exclude='__pycache__', commit the change, and push. This ensures the skills repo always has the latest version.name from YAML frontmatterdescription from YAML frontmatter---)~/ai_projects/claude-skills/<skill-name>/README.md exists — if so, read it for supplementary context.~/ai_projects/claude-skills-site/src/content/skills/<skill-name>.mdx already exists.--update was NOT passed: stop and ask for confirmation. "The skill <skill-name> already has an .mdx on the site. Pass --update to regenerate, or confirm to overwrite."--update was passed: read the existing .mdx. Preserve these fields from the existing file (do not regenerate):
apothecary_namehero_imageauto_activityauto_last_synced (will be updated to today)Generate each field:
name — Use the skill directory name (kebab-case). Must match the filename.
tagline — One sentence, max 80 characters. Summarize what the skill does in plain language. End with a period. Do not start with "A skill that..." — lead with the action verb or the thing it produces.
apothecary_name — A poetic 2-4 word name in the style of an old apothecary shop. Follow the existing pattern:
bundle — Select the best-fit bundle by analyzing the skill's purpose against these categories:
| Bundle key | Name | Covers |
|---|---|---|
| meeting-intelligence | Meeting Intelligence | Transcripts, meetings, recordings, action items, video/audio processing |
| communication | Communication | Email, messaging, Telegram, Google Workspace, Zoom |
| research | Research | Web research, search, image sourcing, knowledge retrieval |
| content-publishing | Content & Publishing | Image generation, presentations, PDFs, reports, brand assets, visual tools |
| personal-analytics | Personal Analytics | Health data, dictation analytics, browsing history, self-reflection, hardware signals, knowledge visualization |
| thinking-strategy | Thinking & Strategy | Decision frameworks, JTBD, dialogue modes, cognitive tools, self-design |
| developer-tools | Developer Tools | TDD, LLM CLI, issue tracking, session search, code tools |
| lab-consulting | Lab & Consulting | Lab meetings, client discovery, retrospectives, demos |
If the skill could fit multiple bundles, prefer the one where it adds the most differentiation. If genuinely unsure, ask the user.
tags — 3-6 lowercase kebab-case tags. Derive from the skill's domain, tools used, and output types. Check existing skills for tag reuse.
accent_color — Pick from the validated set: amber (default), blue, cyan, green, orange, purple, violet. Use amber unless the skill has a strong thematic reason for another color (e.g., hardware/signals → cyan, mental health → violet, nature/strategy → green).
auto_description — Copy the description field from the SKILL.md frontmatter verbatim. Truncate at 200 characters if longer.
auto_triggers — Extract 0-3 trigger phrases from the SKILL.md description (e.g., "queries like", "check my email"). Leave empty [] if no clear triggers.
auto_tools — Leave as [].
auto_last_synced — Today's date in YYYY-MM-DD format. Run date +"%Y-%m-%d" to get it.
auto_last_commit — Run git -C ~/ai_projects/claude-skills log -1 --format="%Y-%m-%d" -- <skill-name>/ to get the last commit date for that skill directory.
auto_activity — Leave as [] for new skills. Preserve from existing .mdx on --update.
install_command — Leave as "".
repo_path — The skill directory name (same as name).
dependencies — Extract from SKILL.md requirements/prerequisites sections. List Python packages, CLI tools, or APIs needed. Use [] if none.
hero_image — Leave commented out (# hero_image:) at this stage. Phase 6.5 generates a hero image by default and rewrites this field to the generated path. It stays commented only if --no-image was passed (or generation fails and no repo screenshot exists).
Write the body following this exact structure:
## What it does
[2-3 sentences describing the skill's primary function. Be specific about what it produces or enables. Reference concrete tools, APIs, or protocols if relevant.]
## Key features
[Bulleted list of 4-6 distinguishing features. Each bullet: **Bold label** — explanation. Focus on what makes this skill interesting, not obvious capabilities.]
## When to use
[1-2 sentences describing the trigger scenarios. Start with "When..." to match the existing pattern.]
Additional sections to include only when relevant:
## Signals or ## Modes — if the skill has named operational modes or signal types## How it works — if the skill uses a non-obvious protocol (MIDI, MCP, etc.)Do NOT include: installation instructions, quick start commands, code blocks, or dependency lists. Those belong in the SKILL.md and README, not the site .mdx.
Before writing, verify:
~/ai_projects/claude-skills-site/src/content/bundles/<bundle>.mdx exists.--update, confirm no .mdx already exists (handled in Phase 2).amber, blue, cyan, green, orange, purple, violet.name field, repo_path, and filename must all match.If any check fails, report the specific error and stop.
~/ai_projects/claude-skills-site/src/content/skills/<skill-name>.mdx.skills: array if not already present. Append at the end of the array.--dry-run: Instead of writing, display the full .mdx content and the bundle change, then stop.--no-image)This phase runs by default. Skip it only if --no-image was passed, or under --dry-run (which shows planned output without generating).
Generate a hero image using the /codex skill. Codex has a built-in image_gen tool that produces images without needing an API key. The image follows the site's apothecary visual language established in the original Codex design session. Fallback: if /codex is unavailable or its image_gen fails, regenerate with the gpt-image-2 or nano-banana skill using the same prompt and the same 16:9 target size/path.
Prompt template — fill in SKILL_NAME, APOTHECARY_NAME, SCENE_BACKDROP, SUBJECT, COMPOSITION_DETAIL, and AVOID_EXTRA:
Use case: stylized-concept
Asset type: 16:9 skill hero image for the Claude Skills site
Primary request: Create a skill-specific hero artwork for the skill "SKILL_NAME", apothecary name "APOTHECARY_NAME". No readable text.
Style reference: Match the existing main site hero style: dark apothecary workbench fused with developer terminal artifacts, hand-tinted copperplate engraving, technical diagram overlays, tactile paper grain, oxidized copper, medicinal green, ink brown, warm bone, tiny electric-blue signal accents.
Scene/backdrop: SCENE_BACKDROP
Subject: SUBJECT
Composition: Wide 16:9, COMPOSITION_DETAIL, quiet dark negative space left, no border.
Lighting: Low raking desk light, sharp engraving detail, warm copper highlights.
Avoid: no readable words, no logos, no human figures, AVOID_EXTRA, no stock-photo look, no neon sci-fi.
Exact prompts from existing hero images (use as style/structure reference):
tdd ("The Test Anvil"):
jtbd ("The Hiring Compass"):
skill-studio ("The Automation Architect"):
telegram-telethon ("The Daemon's Relay"):
agency-docs-updater ("The Publisher's Engine"):
vision-bench ("The Judge's Loupe"):
Subject crafting guidelines:
Steps:
/codex skill with the assembled prompt, requesting a 16:9 image saved to ~/ai_projects/claude-skills-site/public/images/SKILL_NAME-hero.jpg# hero_image: to hero_image: "/images/SKILL_NAME-hero.jpg"If Codex is not available or image generation fails, warn the user and continue without the image. The skill publishes fine without a hero image.
git -C ~/ai_projects/claude-skills-site diff to show all changes.git -C ~/ai_projects/claude-skills-site add \
src/content/skills/<skill-name>.mdx \
src/content/bundles/<bundle>.mdx \
public/images/<skill-name>-hero.jpg # omit only if --no-image / no image was produced
feat: add <skill-name> skill to site
--update: feat: update <skill-name> skill on sitegit -C ~/ai_projects/claude-skills-site push| Error | Recovery |
|---|---|
| SKILL.md not found | Check both paths, report which were tried |
| Bundle .mdx not found | List available bundles, ask user to pick |
| .mdx already exists (no --update) | Ask user to confirm overwrite or pass --update |
| Git push fails | Show error, suggest git pull --rebase first |
| accent_color invalid | Default to amber, warn user |
| Skill already in bundle array | Skip bundle update, not an error |
---
name: "<skill-name>"
tagline: "<tagline>"
apothecary_name: "<apothecary_name>"
bundle: <bundle>
tags: [<tags>]
accent_color: <color>
# hero_image:
auto_description: "<description>"
auto_triggers: [<triggers>]
auto_tools: []
auto_last_synced: "<date>"
auto_last_commit: "<date>"
auto_activity: []
install_command: ""
repo_path: "<skill-name>"
dependencies: [<deps>]
---
## What it does
<body>
## Key features
<features>
## When to use
<when>
development
This skill should be used when designing, running, validating, or auditing statistical experiments on personal or observational time-series data (health metrics, speech/text corpora, behavioral logs, diaries, n-of-1 self-tracking). It enforces pre-registration, exact permutation tests, FDR discipline, data-validation gates, adversarial code review, and cross-validation with external models. Triggers on "design an experiment", "test this hypothesis on my data", "is this correlation real", "audit these findings", "pre-register", "validate this dataset", or any n-of-1 / quantified-self analysis request.
development
Create Tufte-inspired data reports and infographic dashboards as standalone HTML files. Uses EB Garamond for text, Monaspace Argon for numbers, Chart.js for interactive charts, and inline SVG sparklines. Produces publication-quality reports with 2-column narrative+data layouts, status dashboards, scroll animations, and responsive mobile support. Use this skill whenever the user wants to create a data report, activity dashboard, infographic, personal analytics page, health tracker visualization, or any document that combines narrative text with interactive charts and tables. Also triggers for "make a report like Tufte", "create an infographic", "build a dashboard", "visualize my data", or requests for beautiful data-driven documents.
documentation
Cut a software release and maintain a tiered compatibility policy. Use when the user wants to release, ship a version, bump the version, tag a release, write a changelog, or update COMPATIBILITY. Config-driven via release.config.json; bumps version files, runs a readiness gate, updates COMPATIBILITY.md tiers and deprecations, tags (→ release workflow), and reports closed issues. Teaches the underlying standards as it runs.
development
Sync and manage bilingual (EN/RU) library content for agency-docs. Use when adding, updating, or reviewing library articles. Handles translation, sync checks, and Russian stylistic review.