General
validate-output - Claude MCP Skill
/validate-output - Validate Generated Skills, Prompts, Agents, or Hooks
SEO Guide: Enhance your AI agent with the validate-output tool. This Model Context Protocol (MCP) server allows Claude Desktop and other LLMs to /validate-output - validate generated skills, prompts, agents, or hooks... Download and configure this skill to unlock new capabilities for your AI workflow.
Documentation
SKILL.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**:
```yaml
---
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**:
```yaml
---
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**:
```json
{
"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!
Security Score: 5/5
āāāāāāāāāāāāāāāāāāāā
ā
Tool detection present
ā
Silent failure mode
ā
No destructive operations
ā
Path safety validated
ā
Error handling complete
Next steps:
1. /install-hook generated-hooks/my-hook
2. Restart Claude Code
3. Test by triggering the hook event
```
**Validation using hook-factory validator**:
```bash
python3 generated-skills/hook-factory/validator.py generated-hooks/my-hook/hook.json
```
**If Issues Found**:
```
Validating: generated-hooks/bad-hook/hook.json
ā JSON Structure: Invalid
Issue: "matcher" is string, should be object
Fix: Change to {"tool_names": ["Write"]}
ā Safety Patterns: Missing
Issue: No tool detection for "black" command
Fix: Add "command -v black" check
ā Security: FAILED
Issue: Path traversal detected (..)
Fix: Remove ".." from file paths
ā ļø Event Type: Mismatched
Issue: SubagentStop with tool_names matcher
Fix: SubagentStop should have empty matcher {}
Validation FAILED. Fix issues and run /validate-output again.
```
---
## Quick Validation
**Just ran an agent that generated output?**
```
/validate-output skill
```
Claude will check the most recently generated skill in the conversation.
---
## When to Use
**Use /validate-output**:
- ā
After generating any skill/prompt/agent/hook
- ā
Before installing
- ā
Before sharing with team
- ā
If something doesn't work as expected
- ā
To learn proper formatting
- ā
For hooks: CRITICAL before installation (security check)
**Benefits**:
- Catch formatting errors early
- Learn what makes valid output
- Ensure quality before installation
- Save time debugging
---
## Related Commands
- `/build` - Generate skills/prompts/agents/hooks
- `/install-skill` - Install skills after validation passes
- `/install-hook` - Install hooks after validation passes
- `/test-factory` - Test installed skills/agents
- `/factory-status` - See all validated outputs
---
**Ensure quality before installation!** ā
Signals
Information
- Repository
- alirezarezvani/claude-code-skill-factory
- Author
- alirezarezvani
- Last Sync
- 3/13/2026
- Repo Updated
- 3/13/2026
- Created
- 1/16/2026
Reviews (0)
No reviews yet. Be the first to review this skill!
Related Skills
mem0
Integrate Mem0 Platform into AI applications for persistent memory, personalization, and semantic search. Use this skill when the user mentions "mem0", "memory layer", "remember user preferences", "persistent context", "personalization", or needs to add long-term memory to chatbots, agents, or AI apps. Covers Python and TypeScript SDKs, framework integrations (LangChain, CrewAI, Vercel AI SDK, OpenAI Agents SDK, Pipecat), and the full Platform API. Use even when the user doesn't explicitly say "mem0" but describes needing conversation memory, user context retention, or knowledge retrieval across sessions.
cursorrules
CrewAI Development Rules
browser-use
Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, or extract information from web pages.
remote-browser
Controls a cloud browser from a sandboxed remote machine. Use when the agent is running in a sandbox (no GUI) and needs to navigate websites, interact with web pages, fill forms, take screenshots, or expose local dev servers via tunnels.
Related Guides
Mastering the Oracle CLI: A Complete Guide to the Claude Skill for Database Professionals
Learn how to use the oracle Claude skill. Complete guide with installation instructions and examples.
Python Django Best Practices: A Comprehensive Guide to the Claude Skill
Learn how to use the python django best practices Claude skill. Complete guide with installation instructions and examples.
Mastering Python and TypeScript Development with the Claude Skill Guide
Learn how to use the python typescript guide Claude skill. Complete guide with installation instructions and examples.