From production-grade
Creates reusable Claude Code skills and plugins from repeatable workflows. Generates SKILL.md files, packages as plugins, creates GitHub repos, and publishes to marketplace. Activates on requests to make skills or plugins.
npx claudepluginhub nagisanzenin/claude-code-production-grade-pluginThis skill uses the workspace's default tool permissions.
!`cat Claude-Production-Grade-Suite/.protocols/ux-protocol.md 2>/dev/null || true`
Guides creating Claude Code skills: clarify purpose, set file structure, configure frontmatter like disable-model-invocation, user-invocable, hooks. Triggers on 'create skill' requests.
Guides creation of Claude Code skills: evaluates suitability with recurrence/automation/value/duplication tests, details SKILL.md structure, best practices, and quick-start commands.
Guides building production-grade Claude Code skills with architecture design, workflow checklists, prompt engineering, and packaging scripts.
Share bugs, ideas, or general feedback.
!cat Claude-Production-Grade-Suite/.protocols/ux-protocol.md 2>/dev/null || true
!cat Claude-Production-Grade-Suite/.protocols/input-validation.md 2>/dev/null || true
!cat Claude-Production-Grade-Suite/.protocols/tool-efficiency.md 2>/dev/null || true
!cat Claude-Production-Grade-Suite/.protocols/visual-identity.md 2>/dev/null || true
!cat Claude-Production-Grade-Suite/.protocols/freshness-protocol.md 2>/dev/null || true
!cat Claude-Production-Grade-Suite/.protocols/receipt-protocol.md 2>/dev/null || true
!cat Claude-Production-Grade-Suite/.protocols/boundary-safety.md 2>/dev/null || true
!cat Claude-Production-Grade-Suite/.protocols/conflict-resolution.md 2>/dev/null || true
!cat .production-grade.yaml 2>/dev/null || echo "No config — using defaults"
Fallback (if protocols not loaded): Use AskUserQuestion with options (never open-ended), "Chat about this" last, recommended first. Work continuously. Print progress constantly. Validate inputs before starting — classify missing as Critical (stop), Degraded (warn, continue partial), or Optional (skip silently). Use parallel tool calls for independent reads. Use smart_outline before full Read.
Follow Claude-Production-Grade-Suite/.protocols/visual-identity.md. Print structured progress throughout execution.
Skill header (print on start):
━━━ Skill Maker ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Phase progress (print during execution):
[1/3] Pattern Analysis
✓ {N} recurring patterns identified
⧖ analyzing workflow structure...
○ skill generation
○ installation
[2/3] Skill Generation
✓ {N} custom skills drafted
⧖ writing SKILL.md files...
○ installation
[3/3] Installation
✓ {N} skills installed to .claude/skills/
Completion summary (print on finish — MUST include concrete numbers):
✓ Skill Maker {N} project-specific skills created ⏱ Xm Ys
End-to-end skill and plugin creation pipeline. Interviews the user on what the skill should do, writes the SKILL.md, packages it as a Claude Code plugin, creates a GitHub repo, and adds it to the user's marketplace — all in one flow.
Read .production-grade.yaml at startup if available. Skill-maker is mostly self-contained and does not depend on project-level path overrides.
digraph skill_maker {
rankdir=TB;
"Skill idea received" [shape=doublecircle];
"Phase 1: Interview" [shape=box];
"Phase 2: Write SKILL.md" [shape=box];
"User approves?" [shape=diamond];
"Phase 3: Package as plugin" [shape=box];
"Phase 4: Create repo & push" [shape=box];
"Phase 5: Add to marketplace" [shape=box];
"Done" [shape=doublecircle];
"Skill idea received" -> "Phase 1: Interview";
"Phase 1: Interview" -> "Phase 2: Write SKILL.md";
"Phase 2: Write SKILL.md" -> "User approves?";
"User approves?" -> "Phase 2: Write SKILL.md" [label="revise"];
"User approves?" -> "Phase 3: Package as plugin" [label="approved"];
"Phase 3: Package as plugin" -> "Phase 4: Create repo & push";
"Phase 4: Create repo & push" -> "Phase 5: Add to marketplace";
"Phase 5: Add to marketplace" -> "Done";
}
Engagement mode determines interview depth:
Follow these rules from the writing-skills methodology:
Frontmatter:
name: kebab-case, letters/numbers/hyphens onlydescription: Start with "Use when...", max 500 chars, triggering conditions only — NEVER summarize the workflowStructure:
---
name: skill-name
description: Use when [triggering conditions]
---
# Skill Name
## Overview
Core principle in 1-2 sentences.
## When to Use
Bullet list with symptoms and use cases.
## Process Flow (if multi-step)
Small inline dot flowchart for non-obvious decisions.
## [Core Content]
Steps, patterns, or reference material.
## Common Mistakes
Table of mistake -> fix pairs.
Quality rules:
Skill review (mode-aware): Express — proceed to packaging, report skill summary. Standard — present brief summary for approval. Thorough/Meticulous — present full SKILL.md for detailed review via AskUserQuestion.
Create the plugin directory structure:
<skill-name>-plugin/
├── .claude-plugin/
│ └── plugin.json
├── skills/
│ └── <skill-name>/
│ └── SKILL.md
└── README.md
plugin.json template:
{
"name": "<skill-name>",
"description": "<one-line description>",
"version": "1.0.0",
"author": {
"name": "<from git config or ask>"
},
"license": "MIT",
"keywords": ["<relevant>", "<tags>"]
}
README.md template:
# <Skill Name> Plugin for Claude Code
<description>
## Installation
### Via Marketplace
/plugin marketplace add nagisanzenin/claude-code-plugins
/plugin install <skill-name>@nagisanzenin
### Load Directly
claude --plugin-dir /path/to/<skill-name>-plugin
## Usage
<trigger description and examples>
## License
MIT
git init in the plugin directorygit add -A && git commit -m "Initial release: <skill-name> plugin v1.0.0"gh repo create <skill-name>-plugin --public --source . --pushgh auth fails, guide user through gh auth loginnagisanzenin/claude-code-plugins).claude-plugin/marketplace.json:
{
"name": "<skill-name>",
"source": {
"source": "github",
"repo": "nagisanzenin/<skill-name>-plugin"
},
"description": "<description>",
"version": "1.0.0"
}
/plugin install <skill-name>@nagisanzeninDefault marketplace repo: nagisanzenin/claude-code-plugins
Default marketplace local path: ~/nagisanzenin-plugins
Default plugin location: ~/<skill-name>-plugin
If the user has a different marketplace, ask which one to use.
| Mistake | Fix |
|---|---|
| Description summarizes workflow | Description = triggering conditions ONLY. "Use when..." |
| Special chars in name | Letters, numbers, hyphens only. No parentheses. |
| Skill too verbose (500+ words) | Cut ruthlessly. One example, not five. |
| Missing keywords for discovery | Add error messages, symptoms, tool names in the content |
| Forgetting to update marketplace | Always add to marketplace.json AND push |
| Plugin files inside .claude-plugin/ | Only plugin.json goes in .claude-plugin/. Skills at root level. |