Skip to content
Development
Command

/validate-output

**Check that your generated output is properly formatted and ready to use.**

From plugin
claude-code-skill-factory
86320 skills5 agents20 commands

How it fires

How this command gets triggered: by you, by Claude, or both.

  • Fires itselfClaude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/validate-output

Context preview

What this command does when you run it.

**Check that your generated output is properly formatted and ready to use.**

Command definition

validate-output.md

/validate-output - Validate Generated Skills, Prompts, Agents, or Hooks

**Check that your generated output is properly formatted and ready to use.**

---

Usage

/validate-output skill [path]
/validate-output prompt
/validate-agent [path]
/validate-output hook [path]

---

What This Command Does

Validates generated output and creates distribution files:

  • ✅ YAML frontmatter is correct
  • ✅ Naming conventions followed (kebab-case)
  • ✅ Required files present
  • ✅ Format is proper
  • ✅ Quality standards met
  • ✅ **Creates ZIP file** (if validation passes for skills)

---

Validate a Skill

/validate-output skill generated-skills/my-skill

**Checks**:

1. **YAML Frontmatter**:

---
name: skill-name-kebab-case  ✅ Check format
description: One-line description  ✅ Check present
---

2. **Naming**:

  • ✅ Skill name is kebab-case (not Title Case, snake_case, camelCase)
  • ✅ Folder name matches skill name
  • ✅ Python files are snake_case (if present)

3. **Required Files**:

  • ✅ SKILL.md exists
  • ✅ HOW_TO_USE.md exists (or usage instructions in SKILL.md)
  • ✅ Python files (if skill needs code)
  • ✅ sample_input.json and expected_output.json (if applicable)

4. **Quality**:

  • ✅ SKILL.md has clear capabilities section
  • ✅ Input/output formats documented
  • ✅ Examples provided
  • ✅ No placeholder text

**Output**:

Validating: generated-skills/my-skill/

✅ YAML Frontmatter: Valid
✅ Skill Name: my-skill (kebab-case ✓)
✅ Required Files: All present
   - SKILL.md ✓
   - HOW_TO_USE.md ✓
   - calculator.py ✓
   - sample_input.json ✓
✅ Quality: Documentation complete

🎉 Skill validation PASSED!

Creating ZIP file for Claude Desktop...

cd generated-skills && zip -r my-skill.zip my-skill/ -x "*.pyc" "*__pycache__*" "*.DS_Store"

✅ ZIP created: generated-skills/my-skill.zip (35KB)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📦 Ready to use!

**For Claude Desktop** (Easiest):
Drag and drop: generated-skills/my-skill.zip

**For Claude Code**:
/install-skill generated-skills/my-skill

Next steps:
1. Import ZIP to Claude Desktop OR install to Claude Code
2. /test-factory my-skill

**If Issues Found**:

Validating: generated-skills/bad-skill/

❌ YAML Frontmatter: Invalid
   Issue: Name is "Bad Skill" (Title Case)
   Fix: Change to "bad-skill" (kebab-case)

❌ Required Files: Missing
   Issue: HOW_TO_USE.md not found
   Fix: Add usage documentation

⚠️ Quality: Incomplete
   Issue: No examples in SKILL.md
   Recommendation: Add 2-3 usage examples

Validation FAILED. Fix issues and run /validate-output again.

---

Validate a Prompt

/validate-output prompt

**Checks**:

1. **Format Structure**:

  • ✅ XML: Has `<mega_prompt>` tags, properly nested
  • ✅ Claude: Has clear sections (Role, Mission, Workflow, etc.)
  • ✅ ChatGPT: Has both required sections
  • ✅ Gemini: Has role configuration

2. **Completeness**:

  • ✅ No placeholder text ([TODO], [FILL IN], etc.)
  • ✅ All sections have content
  • ✅ Examples included (at least 2)

3. **Quality** (from prompt-factory's 7-point validation):

  • ✅ Token count reasonable (3-6K Core, 8-12K Advanced)
  • ✅ Actionable workflow present
  • ✅ Best practices mentioned
  • ✅ Clear role and mission

**Output**:

Validating generated prompt...

✅ Format: XML (properly structured)
✅ Completeness: No placeholders
✅ Examples: 3 examples found
✅ Token Count: ~5,200 tokens (Core mode, optimal)
✅ Quality: 7/7 gates passed

🎉 Prompt validation PASSED! Ready to use.

How to use:
1. Copy the <mega_prompt> block
2. Paste into Claude/ChatGPT/Gemini
3. Start using your customized AI!

---

Validate an Agent

/validate-agent .claude/agents/my-agent

**Checks**:

1. **YAML Frontmatter**:

---
name: agent-name-kebab-case  ✅
description: When to invoke...  ✅
tools: Read, Write, Edit  ✅ Comma-separated string
model: sonnet  ✅ Valid value
color: green  ✅ Valid color
field: frontend  ✅ Domain
expertise: expert  ✅ Level
---

2. **Naming**:

  • ✅ Agent name is kebab-case
  • ✅ File name matches agent name
  • ✅ No special characters

3. **Tools Format**:

  • ✅ Comma-separated string (not array)
  • ✅ Valid tool names
  • ✅ Appropriate for agent type

4. **Description Quality**:

  • ✅ Describes WHEN to invoke (not just what it does)
  • ✅ Specific enough for auto-discovery
  • ✅ Clear and actionable

**Output**:

Validating: .claude/agents/my-agent.md

✅ YAML Frontmatter: Valid
✅ Agent Name: my-agent (kebab-case ✓)
✅ Tools: "Read, Write, Edit" (proper format ✓)
✅ Model: sonnet (valid ✓)
✅ Color: green (valid ✓)
✅ Description: Specific and clear ✓

🎉 Agent validation PASSED! Ready to use.

The agent will auto-invoke when:
[Description from agent]

Or invoke manually:
"Use the my-agent agent to [task]"

---

Validate a Hook

/validate-output hook generated-hooks/my-hook

**Checks**:

1. **JSON Structure**:

{
  "matcher": { ... },  ✅ Valid object
  "hooks": [ ... ]     ✅ Non-empty array
}

2. **Safety Patterns**:

  • ✅ Tool detection present (`command -v tool`)
  • ✅ Silent failure mode (`|| exit 0`)
  • ✅ No destructive operations (no `rm -rf`, `git push --force`)
  • ✅ File path validation (quoted paths, no `..`)

3. **Event Type Validation**:

  • ✅ Appropriate timeout for event type
  • ✅ Matcher appropriate for event (empty for SessionStart, SubagentStop)
  • ✅ Command complexity matches event timing

4. **Hook Commands**:

  • ✅ No path traversal attempts
  • ✅ External tools have detection wrappers
  • ✅ Error handling present
  • ✅ Commands are safe (no dangerous patterns)

**Output**:

Validating: generated-hooks/my-hook/hook.json

✅ JSON Structure: Valid
   - matcher object: ✓
   - hooks array: 1 command ✓
✅ Safety Patterns: All present
   - Tool detection: ✓
   - Silent failure: ✓
   - No destructive ops: ✓
   - Path safety: ✓
✅ Event Type: PostToolUse
   - Timeout: 60s (appropriate ✓)
   - Matcher: tool_names + paths ✓
✅ Security: PASSED
   - No path traversal ✓
   - Proper quoting ✓
   - Error handling ✓

🎉 Hook validation PASSED!
Read more
Ships withclaude-code-skill-factory

A comprehensive toolkit for generating production-ready Claude Skills and Claude Code Agents at scale.

Get the whole plugin
Stats
866
Stars
176
Forks
Quiet
Maintenance
Python
Language
MIT
License
10mo ago
Last commit
10mo ago
Created

Repo: alirezarezvani/claude-code-skill-factory

Other commands on claude-code-skill-factory.