code/publish-skills/SKILL.md
--- name: publish-skills description: >- Publishes personal Claude skills to a GitHub repository for sharing. Copies skill files, generates a README catalog, commits, and pushes. Use when ready to share skill updates or after creating/updating skills. argument-hint: [--preview] [--diff] [--skip-audit] disable-model-invocation: true allowed-tools: - AskUserQuestion - Bash - Read - Write - Edit - Glob - Grep --- # Publish Skills Publish personal Claude skills to a GitHub repo
npx skillsauth add mostafa-drz/claude-skills code/publish-skillsInstall 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.
Publish personal Claude skills to a GitHub repository for sharing and versioning.
Read ~/.claude/skills/publish-skills/preferences.md using the Read tool. If not found, no preferences are set.
On startup, use the Glob tool to find ~/.claude/skills/*/SKILL.md to count skills, and read preferences (above) to extract repo-path and last-published.
Check $ARGUMENTS:
help → display help then stopconfig → interactive setup then stopreset → delete ~/.claude/skills/publish-skills/preferences.md, confirm, stop--preview → show what would be published, don't commit/push--diff → show diff between local skills and published repo--skip-audit → publish without running pre-publish audit checksPublish Skills — Share Claude skills via GitHub
Usage:
/publish-skills Publish all skills to GitHub repo
/publish-skills --preview Show what would change without publishing
/publish-skills --diff Show diff between local and published
/publish-skills --skip-audit Publish without pre-publish audit checks
/publish-skills config Set repo path and GitHub remote
/publish-skills reset Clear preferences
/publish-skills help This help
What it does:
1. Copies skill files to the publish repo (excludes preferences, audit logs)
2. Generates a README.md catalog from skill descriptions
3. Commits changes with a summary message
4. Pushes to GitHub
What gets published:
- SKILLS_GUIDE.md (design guide)
- Each skill's SKILL.md
- Each skill's reference/ and examples/ directories
- Auto-generated README.md catalog
What stays private:
- preferences.md files (user-specific config)
- last-audit.md (audit logs)
- Any file matching .gitignore patterns
Current preferences:
(shown above under Preferences)
Use AskUserQuestion:
Q1 — "GitHub repo path?" (text input)
~/Dev/claude-skillsQ2 — "GitHub remote URL?" (text input)
[email protected]:username/claude-skills.gitQ3 — "Commit style?" (Auto-summary (default) — list changed skills, Custom — ask each time)
Save to ~/.claude/skills/publish-skills/preferences.md.
If no preferences file exists:
AskUserQuestion:
~/Dev/claude-skills (Recommended), custom path[email protected]:username/claude-skills.git)If the repo path doesn't exist or isn't a git repo:
mkdir -p {repo-path}cd {repo-path} && git init.gitignore:
preferences.md
last-audit.md
.DS_Store
git remote add origin {remote-url}If remote repo doesn't exist, inform: "Repo initialized locally. Create the repo on GitHub first, then run /publish-skills again to push."
Read preferences for repo-path and remote-url.
Find all local skills:
~/.claude/skills/*/SKILL.md
For each skill, extract from frontmatter:
namedescriptionargument-hintdisable-model-invocationAlso note if the skill has reference/ or examples/ directories.
Compare with published repo to detect changes:
# For each local skill, diff against published version
# (this repo uses code/ as the skill directory, not skills/)
diff ~/.claude/skills/{skill-name}/SKILL.md {repo-path}/code/{skill-name}/SKILL.md
Categorize each skill:
Also check if SKILLS_GUIDE.md changed.
Skip this step if --skip-audit flag is present.
For each skill being considered for publish (new or changed), run these quick checks inline:
description present and third-persondisable-model-invocation matches side-effect profile (has Write/Edit/Bash mutations = needs true)allowed-tools presentpreferences.md files being includedIf any skill fails checks, show warnings alongside the diff summary:
⚠️ /skill-name: missing disable-model-invocation (has side effects)
⚠️ /skill-name: description not third-person
Use AskUserQuestion: "{N} skills have audit warnings. Publish anyway? / Fix first / Skip those skills"
Show a summary of what would be published:
Skills to publish:
New:
+ /skill-name — short description
+ /skill-name — short description
Changed:
~ /skill-name — short description
~ /skill-name — short description
Unchanged:
= /skill-name (skipped)
= /skill-name (skipped)
Removed from repo:
- /skill-name (no longer exists locally)
Also: SKILLS_GUIDE.md (changed/unchanged)
Use AskUserQuestion (multiSelect: true):
Only proceed with the skills the user explicitly selects. Never auto-publish.
Only copy the skills the user approved:
For each approved skill:
# Create skill dir in repo (this repo uses code/, not skills/)
mkdir -p {repo-path}/code/{skill-name}
# Copy SKILL.md (always)
cp ~/.claude/skills/{skill-name}/SKILL.md {repo-path}/code/{skill-name}/
# Copy DESIGN.md if exists (renderer contract for UI-rendering skills —
# convention added by skill-creator manifest items 26-30, 2026-05-13)
if [ -f ~/.claude/skills/{skill-name}/DESIGN.md ]; then
cp ~/.claude/skills/{skill-name}/DESIGN.md {repo-path}/code/{skill-name}/
fi
# Copy icon if exists (icon.svg or icon.png at the skill root)
for ext in svg png; do
if [ -f ~/.claude/skills/{skill-name}/icon.$ext ]; then
cp ~/.claude/skills/{skill-name}/icon.$ext {repo-path}/code/{skill-name}/
fi
done
# Copy reference/ if exists
if [ -d ~/.claude/skills/{skill-name}/reference ]; then
cp -r ~/.claude/skills/{skill-name}/reference {repo-path}/code/{skill-name}/
fi
# Copy examples/ if exists
if [ -d ~/.claude/skills/{skill-name}/examples ]; then
cp -r ~/.claude/skills/{skill-name}/examples {repo-path}/code/{skill-name}/
fi
# Copy templates/ if exists (skill-creator manifest item 25)
if [ -d ~/.claude/skills/{skill-name}/templates ]; then
cp -r ~/.claude/skills/{skill-name}/templates {repo-path}/code/{skill-name}/
fi
Never copy these (user-specific or runtime artefacts, must stay local):
preferences.md · feedback-journal.md · anonymise.denyreports/ · sessions/ · resume-state.md · last-audit.mdThese are also .gitignore'd in the publish repo as defense-in-depth.
For each approved removal:
rm -rf {repo-path}/code/{skill-name}
Copy SKILLS_GUIDE.md (if changed and user approved):
cp ~/.claude/skills/SKILLS_GUIDE.md {repo-path}/
Build the catalog:
# Claude Skills
Personal collection of Claude Code skills for developer workflows.
## Quick Start
To use these skills, copy them to your `~/.claude/skills/` directory:
```bash
# Clone and copy all skills
git clone {remote-url}
cp -r claude-skills/skills/* ~/.claude/skills/
# Or copy a single skill
cp -r claude-skills/skills/whats-next ~/.claude/skills/
| Skill | Description | Side Effects |
|-------|-------------|:------------:|
| /address-pr-comments | {short description} | Yes |
| /audit-skills | {short description} | No |
| ... | ... | ... |
/skill-name{full description from frontmatter}
Usage: /skill-name {argument-hint}
{link to SKILL.md}
These skills follow a consistent design guide with:
MIT
For the catalog table:
- Short description: first sentence of the frontmatter description (up to the first period)
- Side effects: "Yes" if `disable-model-invocation: true`, "No" otherwise
### 6. Commit and push
**If `--preview`:**
Steps 2-3 already showed the changes — stop here without modifying the repo.
**If `--diff`:**
Run `git -C {repo-path} diff` and show, then stop.
**Otherwise (after user confirmed in step 3):**
Stage only the approved files:
```bash
cd {repo-path}
git add skills/{approved-skill-1}/ skills/{approved-skill-2}/ README.md SKILLS_GUIDE.md
git status --short
Build commit message from what was approved:
Update skills: {list of approved skill names}
Added: {comma-separated list of new skills}
Updated: {comma-separated list of changed skills}
Removed: {comma-separated list of removed skills}
Show the staged diff summary and ask for final confirmation:
Use AskUserQuestion:
Then execute based on choice:
git -C {repo-path} commit -m "{message}"
git -C {repo-path} push origin main # only if user chose push
If push fails (no remote repo): "Committed locally but push failed. Make sure the GitHub repo exists and you have push access."
Update last-published in preferences file.
Published {N} skills to {remote-url}
Added: {list}
Updated: {list}
Removed: {list}
Skipped: {list of unchanged or user-excluded skills}
Commit: {hash} "{message}"
Repo: {remote-url}
README catalog updated with {N} skills.
If any skills had audit warnings during step 2.5, append:
Tip: run /audit-skills --fix to resolve all issues before publishing.
If user changes repo path, update preference. If user consistently excludes certain skills, note that pattern. If user consistently uses --preview first, note that pattern.
development
--- name: triage-board description: >- Generates a structured triage artifact from the current conversation's findings — a self-contained Desktop folder with a JSON Schema, schema-conformant report.json, prose markdown, and a single-file HTML viewer. Viewer ships with MD / CSV / JSON download buttons in the header and a per-finding "Copy as Markdown" action that produces a GitHub/Linear/Notion-ready ticket block. Stateless — triage state lives in the user's ticket system, not in the
development
Runs a beginner-mind end-to-end UI audit of any running app — local dev server, staging, production, or a specific URL. Drives Chrome through every interactive element on the target surface, collects structured findings (severity, category, where, symptom, impact, repro, triage), and hands the result off to `/triage-board` which produces the Desktop folder (schema + JSON + Markdown + single-file HTML viewer with MD/CSV/JSON exports and a per-finding Copy as Markdown button). Use when you want fresh-eyes verification of a feature, page, modal, flow, branch, or whole app — before shipping, before review, before a demo, or any time the UI deserves a careful poke.
development
Reviews the user's past Claude Code conversations from a wellbeing perspective — sentiment, tone, emotional arc, recurring patterns — and generates a supportive, science-grounded report in both Markdown and HTML. Default lookback is 48 hours across all projects. Uses recognised emotion frameworks (Plutchik, Ekman, Russell's circumplex, Pennebaker linguistic markers) and cites the science behind every observation. Learns the user's baseline tone over time so future reports flag genuine shifts, not noise. Use when the user asks for an emotional/wellbeing recap, mood check, sentiment review, or wants to understand their own ups and downs across recent work sessions.
development
--- name: workflow-advisor description: >- Analyzes recent Claude Code conversations and local Claude state (skills, settings, memory files, CLAUDE.md), researches the latest Claude Code features and best practices online, and suggests one workflow improvement at a time with reasoning and a concrete action item. Can save accepted suggestions to memory for tracking. Use when you want to discover underused Claude Code features, improve your development workflow, stay current with the lat