Agent skill
validate-plan-file
Validate that orchestrator plan files conform to expected JSON schema. Use before workers read plan files or after orchestrators create them to ensure proper structure and required fields.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/validate-plan-file
SKILL.md
Validate Plan File
Validate orchestrator plan files to ensure they conform to the expected schema before workers process them.
When to Use
- Before workers read plan files
- After orchestrators create plan files
- When debugging plan file issues
- In quality gates validation
Instructions
Step 1: Read Plan File
Use Read tool to load the plan file.
Expected Input:
file_path: Path to plan file (e.g.,.bug-detection-plan.json,.security-scan-plan.json)
Tools Used: Read
Step 2: Determine Schema
Map file name pattern to appropriate JSON schema.
Schema Mapping:
.bug-*-plan.json→.claude/schemas/bug-plan.schema.json.security-*-plan.json→.claude/schemas/security-plan.schema.json.dead-code-*-plan.json→.claude/schemas/dead-code-plan.schema.json.dependency-*-plan.json→.claude/schemas/dependency-plan.schema.json.version-*-plan.json→ base schema (version update workflow)
New Naming Convention (standardized):
- Bug workflow:
.bug-detection-plan.json,.bug-fixing-plan.json,.bug-verification-plan.json - Security workflow:
.security-scan-plan.json,.security-remediation-plan.json,.security-verification-plan.json - Dead code workflow:
.dead-code-detection-plan.json,.dead-code-cleanup-plan.json,.dead-code-verification-plan.json - Dependency workflow:
.dependency-audit-plan.json,.dependency-update-plan.json,.dependency-verification-plan.json
Step 3: Load and Parse JSON Schema
Use Read tool to load the appropriate schema file from .claude/schemas/.
Tools Used: Read
Step 4: Validate JSON Against Schema
Validate the plan file content against the loaded JSON schema.
Base Schema Validation (all plan files):
workflow: String (required, e.g., "bug-management", "security-audit")phase: String (required, e.g., "detection", "fixing", "verification")phaseNumber: Integer (optional, for sequencing)config: Object (required, domain-specific configuration)validation: Object (required, withrequiredarray of validation criteria)nextAgent: String (optional, agent to invoke next)timestamp: String (optional, ISO-8601 format)metadata: Object (optional, withcreatedBy,iteration,maxIterations)
Domain-Specific Validation:
Bug Plans:
config.priority: "critical"|"high"|"medium"|"low"|"all" (required)config.categories: Array of bug types (optional)config.maxBugsPerRun: Integer (optional, default 50)config.verifyOnly: Boolean (optional, default false)
Security Plans:
config.severity: "critical"|"high"|"medium"|"low"|"all" (required)config.categories: Array of vulnerability types (optional)config.maxVulnsPerRun: Integer (optional, default 25)config.skipSupabaseRLS: Boolean (optional, default false)
Dead Code Plans:
config.type: "critical"|"high"|"medium"|"low"|"all" (required)config.categories: Array of dead code types (optional)config.maxItemsPerRun: Integer (optional, default 100)config.safeMode: Boolean (optional, default true)
Dependency Plans:
config.category: "security"|"unused"|"outdated"|"all" (required)config.severity: "critical"|"high"|"medium"|"low"|"all" (optional)config.maxUpdatesPerRun: Integer (optional, default 10)config.updateStrategy: "one-at-a-time"|"batch-compatible"|"all" (optional)
Step 5: Return Validation Result
Return detailed validation result with errors/warnings.
Expected Output:
{
"valid": true,
"file": ".bug-detection-plan.json",
"errors": [],
"warnings": [],
"schema": "bug-plan",
"schemaPath": ".claude/schemas/bug-plan.schema.json"
}
Error Handling
- File Not Found: Return error with file path
- Invalid JSON: Return parsing error with line number if possible
- Schema File Not Found: Return error if schema file missing
- Missing Required Fields: List all missing fields from JSON schema validation
- Invalid Field Types: Describe type mismatches (e.g., expected string, got number)
- Invalid Enum Values: Report when value not in allowed enum list
- Schema Mismatch: Warn if file doesn't match expected schema pattern
- Validation Array Errors: Report missing or invalid validation criteria
Examples
Example 1: Valid Bug Detection Plan
Input:
file_path: .bug-detection-plan.json
Content:
{
"workflow": "bug-management",
"phase": "detection",
"phaseNumber": 1,
"config": {
"priority": "all",
"categories": ["type-errors", "runtime-errors"],
"maxBugsPerRun": 50
},
"validation": {
"required": ["report-exists", "type-check"],
"optional": ["tests"]
},
"nextAgent": "bug-hunter",
"timestamp": "2025-10-18T14:00:00Z",
"metadata": {
"createdBy": "bug-orchestrator",
"iteration": 1,
"maxIterations": 3
}
}
Output:
{
"valid": true,
"file": ".bug-detection-plan.json",
"errors": [],
"warnings": [],
"schema": "bug-plan",
"schemaPath": ".claude/schemas/bug-plan.schema.json"
}
Example 2: Missing Required Field
Input:
file_path: .security-scan-plan.json
Content:
{
"workflow": "security-audit",
"phase": "scan",
"config": {
"categories": ["sql-injection"]
},
"validation": {
"required": ["report-exists"]
}
}
Output:
{
"valid": false,
"file": ".security-scan-plan.json",
"errors": [
"Missing required property: config.severity",
"Schema validation failed at /config/severity: required property missing"
],
"warnings": [],
"schema": "security-plan",
"schemaPath": ".claude/schemas/security-plan.schema.json"
}
Example 3: Invalid Enum Value
Input:
file_path: .dependency-audit-plan.json
Content:
{
"workflow": "dependency-management",
"phase": "audit",
"config": {
"category": "deprecated",
"severity": "critical"
},
"validation": {
"required": ["report-exists", "lockfile-valid"]
},
"nextAgent": "dependency-auditor"
}
Output:
{
"valid": false,
"file": ".dependency-audit-plan.json",
"errors": [
"Invalid enum value at /config/category: 'deprecated' not in allowed values ['security', 'unused', 'outdated', 'all']"
],
"warnings": [],
"schema": "dependency-plan",
"schemaPath": ".claude/schemas/dependency-plan.schema.json"
}
Example 4: Workflow/Phase Mismatch
Input:
file_path: .bug-fixing-plan.json
Content:
{
"workflow": "security-audit",
"phase": "fixing",
"config": {
"priority": "critical"
},
"validation": {
"required": ["type-check"]
}
}
Output:
{
"valid": false,
"file": ".bug-fixing-plan.json",
"errors": [
"Schema mismatch: file pattern suggests 'bug-plan' schema but workflow field is 'security-audit'",
"Invalid enum value at /phase: 'fixing' not in allowed values ['detection', 'fixing', 'verification'] for bug-plan"
],
"warnings": ["Consider renaming file to match workflow: .security-remediation-plan.json"],
"schema": "bug-plan",
"schemaPath": ".claude/schemas/bug-plan.schema.json"
}
Validation
- Validates all required fields present
- Checks field types correctly (string, number, boolean, array, object)
- Validates enum values against allowed lists
- Identifies schema based on file name pattern
- Returns clear error messages with JSON paths
- Handles malformed JSON gracefully
- Validates domain-specific fields (priority, severity, category)
- Checks workflow/phase consistency
- Validates validation criteria arrays (required/optional)
- Handles schema file loading errors
Supporting Files
Located in .claude/schemas/:
base-plan.schema.json: Base schema for all plan filesbug-plan.schema.json: Bug management workflow schemasecurity-plan.schema.json: Security audit workflow schemadead-code-plan.schema.json: Dead code cleanup workflow schemadependency-plan.schema.json: Dependency management workflow schema
Integration with Orchestrators
All orchestrators should use this Skill after creating plan files:
## Step 3: Create Plan File
1. Write plan to `.{domain}-{phase}-plan.json`
2. Use validate-plan-file Skill to verify:
- Input: file_path = ".{domain}-{phase}-plan.json"
- Check result.valid === true
- If errors exist, fix plan file and retry
3. Only signal readiness after validation passes
Notes
JSON Schema Validation: This Skill performs full JSON Schema Draft-07 validation including:
- Type checking (string, number, boolean, array, object)
- Required properties
- Enum constraints
- Pattern matching
- Nested object validation (allOf, $ref)
- Array item validation
File Naming Convention: Plan files must follow pattern .{domain}-{phase}-plan.json where:
{domain}: bug|security|dead-code|dependency{phase}: detection|fixing|verification (bugs), scan|remediation|verification (security), etc.
Schema References: Uses JSON Schema $ref for base schema inheritance. All domain schemas extend base-plan.schema.json.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?