feat: add skill template system with creator wizard#34
feat: add skill template system with creator wizard#34
Conversation
Add comprehensive skill creation infrastructure mirroring the existing agent template system. Includes SKILL_TEMPLATE.md with progressive disclosure design, skill-creator-wizard agent with 6-step creation process, and skills directory structure. - Add templates/SKILL_TEMPLATE.md with ~35 placeholders - Add .claude/agents/skill-creator-wizard.md (agent #11) - Add .claude/skills/ directory with README - Update plugin.json v0.3.0 with skills and templates arrays
Reviewer's GuideImplements a new skill template system parallel to the existing agent template infrastructure by adding a SKILL_TEMPLATE.md, a skill-creator-wizard agent to generate skills from the template, a skills directory README, and extending plugin.json to register skills and templates. Sequence diagram for the new skill creation workflow using skill-creator-wizardsequenceDiagram
actor User
participant SkillCreatorWizard
participant TemplateFile_SKILL_TEMPLATE_md
participant FileSystem
participant SkillsDirectory
User->>SkillCreatorWizard: Request new skill (describe use case)
SkillCreatorWizard->>User: Ask clarifying questions (use cases, triggers, resources)
User-->>SkillCreatorWizard: Provide examples and requirements
SkillCreatorWizard->>SkillCreatorWizard: Analyze requirements and plan scripts/references/assets
SkillCreatorWizard->>User: Present proposed skill structure
User-->>SkillCreatorWizard: Confirm or refine plan
SkillCreatorWizard->>SkillsDirectory: Determine target path .claude/skills/skill-name/
SkillCreatorWizard->>FileSystem: Create skill directory and subfolders
FileSystem-->>SkillCreatorWizard: Directories created
SkillCreatorWizard->>TemplateFile_SKILL_TEMPLATE_md: Load template content
SkillCreatorWizard->>SkillCreatorWizard: Replace all placeholders with skill-specific data
SkillCreatorWizard->>FileSystem: Write SKILL_md to skill directory
SkillCreatorWizard->>FileSystem: Create bundled resources (scripts, references, assets) if needed
SkillCreatorWizard->>SkillCreatorWizard: Run validation checklist
SkillCreatorWizard->>FileSystem: Adjust files if validation issues found
SkillCreatorWizard-->>User: Return skill location, directory tree, SKILL_md content, resources, validation status, and usage instructions
Class diagram for the conceptual skill template and wizard modelclassDiagram
class PluginConfig {
+string version
+AgentConfig[] agents
+TemplateConfig[] templates
+SkillConfig[] skills
}
class AgentConfig {
+string name
+string description
+string[] tools
+string model
+string color
}
class TemplateConfig {
+string path
+string type
}
class SkillConfig {
+string name
+string path
}
class SkillCreatorWizard {
+string name
+string description
+string[] tools
+string model
+createSkill(skillName, primaryUseCase, specificCapabilities, examples)
+planResources(skillName, requirements)
+initializeSkillDirectory(basePath, skillName)
+fillTemplate(templateContent, skillData)
+validateSkill(skillPath)
}
class SkillTemplate {
+string path
+string[] placeholders
+load()
+render(skillData)
}
class SkillPackage {
+string name
+string directoryPath
+string skillFilePath
+string[] scripts
+string[] references
+string[] assets
}
PluginConfig --> AgentConfig : contains
PluginConfig --> TemplateConfig : contains
PluginConfig --> SkillConfig : contains
SkillCreatorWizard --> SkillTemplate : uses
SkillCreatorWizard --> SkillPackage : produces
SkillTemplate <.. TemplateConfig : described_by
SkillPackage <.. SkillConfig : described_by
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Hey - I've left some high level feedback:
- The
descriptionfields in bothSKILL_TEMPLATE.mdandskill-creator-wizard.mdfrontmatter embed HTML-like tags and long unwrapped text without quoting, which risks breaking YAML parsing in some tools—consider wrapping these descriptions in quotes or using multiline (|) scalars. - The placeholder replacement checklist in
skill-creator-wizard.mdonly covers a subset of the placeholders present inSKILL_TEMPLATE.md(e.g., troubleshooting, resources, related skills), so it would help maintain correctness to update the checklist to explicitly account for all placeholder groups used in the template.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- The `description` fields in both `SKILL_TEMPLATE.md` and `skill-creator-wizard.md` frontmatter embed HTML-like tags and long unwrapped text without quoting, which risks breaking YAML parsing in some tools—consider wrapping these descriptions in quotes or using multiline (`|`) scalars.
- The placeholder replacement checklist in `skill-creator-wizard.md` only covers a subset of the placeholders present in `SKILL_TEMPLATE.md` (e.g., troubleshooting, resources, related skills), so it would help maintain correctness to update the checklist to explicitly account for all placeholder groups used in the template.Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
📝 WalkthroughSummary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings. WalkthroughAdds a skills framework: plugin metadata updated (version, templates, skills list), a new Skill Creator Wizard agent, a SKILL_TEMPLATE and skills README, plus widespread renumbering of headings across many Changes
Sequence Diagram(s)sequenceDiagram
actor User
participant Wizard as "Skill Creator Wizard"
participant FS as "Filesystem (repo)"
participant Template as "Templates (SKILL_TEMPLATE.md)"
User->>Wizard: Start skill creation (prompt/config)
Wizard->>Template: Load template placeholders
Wizard->>FS: Create skill directory + SKILL.md, assets, scripts
Wizard->>User: Present generated files and placeholder checklist
User->>Wizard: Edit/validate content
Wizard->>FS: Update files / finalize skill package
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 6
🤖 Fix all issues with AI agents
In @.claude/agents/skill-creator-wizard.md:
- Around line 46-52: The fenced code block showing the directory tree beginning
with "skill-name/" is missing a language specifier; update the opening fence
(the ``` before the tree) to include a language tag such as "text" so it reads
```text, ensuring the block renders correctly and preserves spacing/characters;
change only the opening fence for the block containing the "skill-name/"
directory tree.
- Line 3: The frontmatter "description" field in
.claude/agents/skill-creator-wizard.md exceeds the 120-character line-length
guideline; either shorten or wrap the description to keep lines ≤120 characters
(edit the "description" frontmatter key) or explicitly document and mark this as
an accepted exception for agent frontmatter (add a brief explanatory comment or
note near the "description" key referencing SKILL_TEMPLATE.md and the
intentional longer trigger-matching behavior) so linters and reviewers know the
long-line is allowed.
In @.claude/skills/README.md:
- Around line 30-32: The example code block containing the text "Create a skill
for [your use case]" is missing a language specifier; update the fenced code
block to include a language tag (e.g., change ``` to ```text) so the snippet is
rendered correctly and syntax-highlighted as plain text in the README.
- Around line 34-40: Update the README line that reads "Fill the
SKILL_TEMPLATE.md" to clearly state that the wizard generates a populated
SKILL.md from the template (e.g., "Create and populate SKILL.md from
SKILL_TEMPLATE.md"); reference SKILL_TEMPLATE.md and SKILL.md so readers know
the template is used to produce a new SKILL.md file.
- Around line 18-24: The code block showing the skill directory structure is
missing a language specifier; update the fenced code block in
.claude/skills/README.md (the directory structure block) to use a generic
language tag such as "text" or "plaintext" (i.e., change ``` to ```text) so
markdownlint recognizes it as plain text and the block renders correctly.
In `@templates/SKILL_TEMPLATE.md`:
- Line 3: The frontmatter description line is too long; change the description
scalar to a YAML multi-line block (use | or >) and break the placeholder text
into wrapped lines <=120 chars while preserving all placeholders like
{PRIMARY_USE_CASE}, {SPECIFIC_CAPABILITIES}, {EXAMPLE_*} and the example/
comment tags; update the description field in SKILL_TEMPLATE.md so it becomes a
multi-line YAML block and wrap the examples and text into readable lines that
conform to the 120‑char limit.
templates/SKILL_TEMPLATE.md
Outdated
| @@ -0,0 +1,142 @@ | |||
| --- | |||
| name: {SKILL_NAME} | |||
| description: This skill should be used when {PRIMARY_USE_CASE}. It provides {SPECIFIC_CAPABILITIES}. Examples: <example>Context: {EXAMPLE_CONTEXT_1} user: "{EXAMPLE_USER_REQUEST_1}" assistant: "{EXAMPLE_ASSISTANT_RESPONSE_1}" <commentary>{EXAMPLE_COMMENTARY_1}</commentary></example> <example>Context: {EXAMPLE_CONTEXT_2} user: "{EXAMPLE_USER_REQUEST_2}" assistant: "{EXAMPLE_ASSISTANT_RESPONSE_2}" <commentary>{EXAMPLE_COMMENTARY_2}</commentary></example> | |||
There was a problem hiding this comment.
🧹 Nitpick | 🔵 Trivial
Line exceeds 120 character limit.
The description field in frontmatter is a single line exceeding 400 characters. While frontmatter fields often require single lines, consider whether the YAML multi-line syntax (| or >) would be acceptable for the consuming tooling, or document this as an expected exception.
As per coding guidelines, Markdown line length should be limited to 120 characters.
🤖 Prompt for AI Agents
In `@templates/SKILL_TEMPLATE.md` at line 3, The frontmatter description line is
too long; change the description scalar to a YAML multi-line block (use | or >)
and break the placeholder text into wrapped lines <=120 chars while preserving
all placeholders like {PRIMARY_USE_CASE}, {SPECIFIC_CAPABILITIES}, {EXAMPLE_*}
and the example/ comment tags; update the description field in SKILL_TEMPLATE.md
so it becomes a multi-line YAML block and wrap the examples and text into
readable lines that conform to the 120‑char limit.
- Remove XML tags from YAML frontmatter (breaks parsers) - Add language specifiers to 3 fenced code blocks - Clarify wizard generates SKILL.md from template - Expand placeholder checklist from 15 to 47 placeholders
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (9)
CLAUDE.md (2)
64-78: Add a language tag to the directory tree code block.The fence is untyped, but markdown rules require a language tag. Use
textfor ASCII trees.
As per coding guidelines, add a language tag.✅ Proposed fix
-``` +```text .claude/commands/ ├── 00-initial-workflow/ # Project analysis & intelligent chaining (2) ├── 01-project-setup/ # Documentation, learning, MCP setup (3) ... └── 11-enterprise-scale/ # Governance & multi-repo (8)</details> --- `3-13`: **Wrap long Markdown lines to ≤120 characters.** Several lines exceed the 120-char limit (e.g., overview and agent lists). As per coding guidelines, wrap long lines. <details> <summary>✅ Example adjustment</summary> ```diff -This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. +This file provides guidance to Claude Code (claude.ai/code) when working with code in this +repository.Also applies to: 84-107, 118-120
.claude/commands/09-agentic-capabilities/workflow-visual.md (1)
26-27: Wrap the long<role>line to ≤120 characters.This line exceeds the max line length.
As per coding guidelines, wrap long lines.✅ Example adjustment
-System: You are an expert workflow visualization and design specialist with deep expertise in visual workflow builders, process modeling, agent orchestration design, and interactive workflow creation. You excel at creating intuitive visual interfaces for designing, managing, and optimizing complex multi-agent workflows. +System: You are an expert workflow visualization and design specialist with deep expertise in visual +workflow builders, process modeling, agent orchestration design, and interactive workflow creation. +You excel at creating intuitive visual interfaces for designing, managing, and optimizing complex +multi-agent workflows..claude/commands/09-agentic-capabilities/context-persist.md (1)
26-27: Wrap the long<role>line to ≤120 characters.This line exceeds the max line length.
As per coding guidelines, wrap long lines.✅ Example adjustment
-System: You are an expert context persistence specialist with deep expertise in session management, context serialization, knowledge retention, and cross-session continuity. You excel at maintaining context and learning across multiple development sessions, ensuring direct continuity of work and knowledge. +System: You are an expert context persistence specialist with deep expertise in session management, +context serialization, knowledge retention, and cross-session continuity. You excel at maintaining +context and learning across multiple development sessions, ensuring direct continuity of work and +knowledge..claude/commands/09-agentic-capabilities/agent-specialize.md (1)
26-27: Wrap the long<role>line to ≤120 characters.This line exceeds the max line length.
As per coding guidelines, wrap long lines.✅ Example adjustment
-System: You are an expert agent architecture specialist with deep expertise in multi-agent systems, role specialization, capability assignment, and agent coordination. You excel at designing specialized agents for specific domains, assigning capabilities based on expertise areas, and creating efficient agent hierarchies. +System: You are an expert agent architecture specialist with deep expertise in multi-agent systems, +role specialization, capability assignment, and agent coordination. You excel at designing +specialized agents for specific domains, assigning capabilities based on expertise areas, and +creating efficient agent hierarchies..claude/commands/09-agentic-capabilities/context-manager.md (2)
296-298: Add a language tag to the output-format ASCII block.The code fence is untyped; use
textfor ASCII output.
As per coding guidelines, add a language tag.✅ Proposed fix
-``` +```text [ASCII representation of context relationships or link to visualization]</details> --- `26-27`: **Wrap the long `<role>` line to ≤120 characters.** This line exceeds the max line length. As per coding guidelines, wrap long lines. <details> <summary>✅ Example adjustment</summary> ```diff -System: You are an expert context management specialist with deep expertise in semantic understanding, knowledge graphs, conversation context, and AI-driven context persistence. You excel at managing complex conversational state, semantic relationships, and contextual knowledge across development sessions. +System: You are an expert context management specialist with deep expertise in semantic +understanding, knowledge graphs, conversation context, and AI-driven context persistence. You +excel at managing complex conversational state, semantic relationships, and contextual knowledge +across development sessions..claude/commands/09-agentic-capabilities/agent-communicate.md (1)
31-32: Wrap the long<role>line to ≤120 characters.This line exceeds the max line length.
As per coding guidelines, wrap long lines.✅ Example adjustment
-System: You are an expert multi-agent communication specialist with deep expertise in agent coordination protocols, message passing systems, distributed agent architectures, and inter-agent collaboration patterns. You excel at designing and implementing sophisticated communication systems that enable direct coordination between specialized agents. +System: You are an expert multi-agent communication specialist with deep expertise in agent +coordination protocols, message passing systems, distributed agent architectures, and inter-agent +collaboration patterns. You excel at designing and implementing sophisticated communication +systems that enable direct coordination between specialized agents..claude/commands/11-enterprise-scale/compliance-enterprise.md (1)
1-440: Documentation refactor: Consider separating from feature work.This file (along with 5 other command documentation files) has been renumbered to use phase-local numbering (1, 2, 3 within each phase) rather than global numbering. While this improves readability and is technically correct, these documentation updates appear unrelated to the PR's stated objective of "adding skill template system with creator wizard."
The changes are:
- Purely cosmetic (no semantic content modified)
- Consistently applied across all affected files
- Validation passed (70 commands remain valid)
However, bundling unrelated documentation refactoring with feature work can:
- Obscure the actual feature changes in review
- Make rollback more complex if needed
- Complicate git history and blame tracking
Recommendation: Consider whether these documentation numbering updates should be in a separate PR. If they're intentionally grouped (e.g., as part of documentation standardization for the new skill system), adding a note in the PR description explaining the relationship would improve clarity.
As per coding guidelines, the 70-command count has been maintained correctly.
🤖 Fix all issues with AI agents
In `@templates/SKILL_TEMPLATE.md`:
- Around line 81-89: Add a blank line before and after each fenced code block in
the examples so they comply with MD031: update the sections containing
**{EXAMPLE_SCENARIO_1}** and **{EXAMPLE_SCENARIO_2}** so there is an empty line
between the scenario text and the opening fence (```{CODE_LANGUAGE_1} /
```{CODE_LANGUAGE_2}) and another empty line after the closing fence; ensure
both `{EXAMPLE_CODE_1}` and `{EXAMPLE_CODE_2}` blocks are wrapped with these
surrounding blank lines.
♻️ Duplicate comments (2)
templates/SKILL_TEMPLATE.md (1)
3-3: Frontmatter description line exceeds 120 chars (already noted)..claude/agents/skill-creator-wizard.md (1)
3-3: Frontmatter description line exceeds 120 chars (already noted).
| **{EXAMPLE_SCENARIO_1}:** | ||
| ```{CODE_LANGUAGE_1} | ||
| {EXAMPLE_CODE_1} | ||
| ``` | ||
|
|
||
| **{EXAMPLE_SCENARIO_2}:** | ||
| ```{CODE_LANGUAGE_2} | ||
| {EXAMPLE_CODE_2} | ||
| ``` |
There was a problem hiding this comment.
Add blank lines around fenced code blocks.
Markdownlint (MD031) requires blank lines before and after fences; both example blocks violate this.
♻️ Proposed fix
**{EXAMPLE_SCENARIO_1}:**
+
```{CODE_LANGUAGE_1}
{EXAMPLE_CODE_1}{EXAMPLE_SCENARIO_2}:
+
{EXAMPLE_CODE_2}
</details>
<!-- suggestion_start -->
<details>
<summary>📝 Committable suggestion</summary>
> ‼️ **IMPORTANT**
> Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
```suggestion
**{EXAMPLE_SCENARIO_1}:**
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
82-82: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
87-87: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
🤖 Prompt for AI Agents
In `@templates/SKILL_TEMPLATE.md` around lines 81 - 89, Add a blank line before
and after each fenced code block in the examples so they comply with MD031:
update the sections containing **{EXAMPLE_SCENARIO_1}** and
**{EXAMPLE_SCENARIO_2}** so there is an empty line between the scenario text and
the opening fence (```{CODE_LANGUAGE_1} / ```{CODE_LANGUAGE_2}) and another
empty line after the closing fence; ensure both `{EXAMPLE_CODE_1}` and
`{EXAMPLE_CODE_2}` blocks are wrapped with these surrounding blank lines.
Summary
templates/SKILL_TEMPLATE.md- Skill template with progressive disclosure design.claude/agents/skill-creator-wizard.md- Wizard agent for skill creation (agent Potential fix for code scanning alert no. 19: Workflow does not contain permissions #11).claude/skills/directory structure with READMEplugin.jsonv0.3.0 withskillsandtemplatesarraysDetails
The skill template system mirrors the existing agent template infrastructure:
SUBAGENT_TEMPLATE.mdSKILL_TEMPLATE.mdagent-template-wizard.mdskill-creator-wizard.md.claude/agents/.claude/skills/Skill Creation Workflow
The skill-creator-wizard follows a 6-step process:
Test plan
bun run validate- passed (70 commands, all valid)bun run validate:plugin- passed (12 successes, 0 errors)Summary by Sourcery
Introduce a reusable skill template system and a dedicated wizard agent to streamline creation and management of project-specific skills.
New Features:
Enhancements: