Validates implementations against specifications by checking requirements coverage, acceptance criteria, and documentation updates
Validates implementations against specifications by checking requirements coverage, acceptance criteria, file modifications, tests, and documentation updates. Used when validation is requested before archival or during the FABER Evaluate phase.
/plugin marketplace add fractary/claude-plugins/plugin install fractary-spec@fractaryThis skill inherits all available tools. When active, it can use any tool Claude has access to.
docs/validation-checklist.mdscripts/check-completeness.shscripts/update-validation-status.shscripts/validate-requirements.shworkflow/validate-against-spec.mdYou are invoked by the spec-manager agent when validation is requested before archival or during the FABER Evaluate phase. </CONTEXT>
<CRITICAL_RULES>
Follow the workflow defined in workflow/validate-against-spec.md for detailed step-by-step instructions.
High-level process:
<COMPLETION_CRITERIA> You are complete when:
See: plugins/faber/docs/RESPONSE-FORMAT.md for complete specification.
Output structured messages:
Start:
šÆ STARTING: Spec Validator
Spec: /specs/WORK-00123-feature.md
Issue: #123
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
During execution, log key steps:
End:
ā
COMPLETED: Spec Validator
Validation Result: Partial
Requirements: ā 8/8 implemented
Acceptance Criteria: ā 5/5 met
Files Modified: ā Expected files changed
Tests: ā 2/3 test cases added
Documentation: ā Docs not updated
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
Next: Address incomplete items before archiving
Success Response (Complete Validation):
{
"status": "success",
"message": "Spec validation passed - all criteria met",
"details": {
"spec_path": "/specs/WORK-00123-feature.md",
"validation_result": "complete",
"checks": {
"requirements": {"completed": 8, "total": 8, "status": "pass"},
"acceptance_criteria": {"met": 5, "total": 5, "status": "pass"},
"files_modified": {"status": "pass"},
"tests_added": {"added": 3, "expected": 3, "status": "pass"},
"docs_updated": {"status": "pass"}
},
"spec_updated": true
}
}
Warning Response (Partial Validation):
{
"status": "warning",
"message": "Spec validation partial - 2 items need attention",
"details": {
"spec_path": "/specs/WORK-00123-feature.md",
"validation_result": "partial",
"checks": {
"requirements": {"completed": 8, "total": 8, "status": "pass"},
"acceptance_criteria": {"met": 5, "total": 5, "status": "pass"},
"files_modified": {"status": "pass"},
"tests_added": {"added": 2, "expected": 3, "status": "warn"},
"docs_updated": {"status": "fail"}
},
"spec_updated": true
},
"warnings": [
"Tests incomplete: 2/3 test cases added",
"Documentation not updated"
],
"warning_analysis": "Implementation is functional but test coverage and documentation are incomplete",
"suggested_fixes": [
"Add missing test case for edge case handling",
"Update README with new feature documentation",
"Re-run validation after fixes: /spec:validate"
]
}
Failure Response (Incomplete Validation):
{
"status": "failure",
"message": "Spec validation failed - critical requirements not met",
"details": {
"spec_path": "/specs/WORK-00123-feature.md",
"validation_result": "incomplete",
"checks": {
"requirements": {"completed": 5, "total": 8, "status": "fail"},
"acceptance_criteria": {"met": 3, "total": 5, "status": "fail"},
"files_modified": {"status": "pass"},
"tests_added": {"added": 0, "expected": 3, "status": "fail"},
"docs_updated": {"status": "fail"}
},
"spec_updated": true
},
"errors": [
"3 requirements not implemented",
"2 acceptance criteria not met",
"No tests added"
],
"error_analysis": "Implementation is significantly incomplete - 37.5% of requirements and 40% of acceptance criteria are missing",
"suggested_fixes": [
"Review spec requirements section for missing implementations",
"Check acceptance criteria checklist in spec",
"Add required test coverage",
"Continue implementation before re-validating"
]
}
Failure Response (Spec Not Found):
{
"status": "failure",
"message": "Spec file not found: /specs/WORK-00123-feature.md",
"details": {
"spec_path": "/specs/WORK-00123-feature.md"
},
"errors": [
"Spec file does not exist at specified path"
],
"error_analysis": "The specification file was not found - it may not have been created or the path is incorrect",
"suggested_fixes": [
"Verify spec path is correct",
"Create spec first: /spec:create --work-id 123",
"List existing specs: ls specs/"
]
}
</OUTPUTS>
<ERROR_HANDLING> Handle errors using the standard FABER response format:
Error Response Format:
{
"status": "failure",
"message": "Brief description of failure",
"details": {
"operation": "validate-spec",
"spec_path": "/specs/WORK-00123-feature.md"
},
"errors": [
"Specific error 1"
],
"error_analysis": "Root cause explanation",
"suggested_fixes": [
"Actionable fix 1"
]
}
</ERROR_HANDLING>
<DOCUMENTATION> Document your work by: 1. Updating spec frontmatter with validation status 2. Adding validation_date and validation_notes fields 3. Logging detailed validation report 4. Returning structured output </DOCUMENTATION>Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.