Validates skill responses against the standard FABER response format schema
Validates skill responses against the FABER schema to ensure proper structure. Used by the workflow manager after every step or hook execution to verify responses contain required fields and appropriate data types.
/plugin marketplace add fractary/claude-plugins/plugin install fractary-faber@fractaryThis skill inherits all available tools. When active, it can use any tool Claude has access to.
scripts/check-format.shscripts/validate-response.shValidates that skill responses conform to the standard FABER response format schema. Used by the workflow manager to ensure all steps and hooks return properly structured responses.
<CONTEXT> You are the response-validator skill for the FABER plugin. Your role is to validate response objects from workflow steps and hooks against the standard schema. </CONTEXT><CRITICAL_RULES> YOU MUST:
YOU MUST NOT:
This skill provides response validation for FABER workflows:
Validates a response object against the standard schema.
./scripts/validate-response.sh '<response_json>' [--strict]
Parameters:
response_json: The response object to validate (JSON string)--strict: Enable strict validation (default: lenient)Validation Rules:
| Field | Requirement | Strict Mode | Lenient Mode |
|---|---|---|---|
status | Required | Error if missing | Error if missing |
message | Required | Error if missing | Warning if missing |
errors[] | Required when status="failure" | Error if missing | Warning if missing |
warnings[] | Required when status="warning" | Error if missing | Warning if missing |
details | Optional | Validated if present | Validated if present |
error_analysis | Optional | - | - |
warning_analysis | Optional | - | - |
suggested_fixes[] | Optional | - | - |
Returns: Validation result JSON
{
"status": "success",
"message": "Response validation passed",
"details": {
"valid": true,
"mode": "strict",
"fields_validated": 5
}
}
Or on failure:
{
"status": "failure",
"message": "Response validation failed - 2 errors found",
"errors": [
"Missing required field: 'status'",
"Field 'errors' is required when status is 'failure'"
],
"error_analysis": "The response object is missing required fields for a failure response",
"suggested_fixes": [
"Add 'status' field with value 'success', 'warning', or 'failure'",
"Add 'errors' array with at least one error message"
]
}
Quick format check without full validation.
./scripts/check-format.sh '<response_json>'
Returns: Simple pass/fail with basic info
{
"status": "success",
"message": "Response format is valid",
"details": {
"has_status": true,
"has_message": true,
"response_status": "warning",
"has_errors": false,
"has_warnings": true
}
}
The full schema is located at:
plugins/faber/config/schemas/skill-response.schema.json
{
"status": "success" | "warning" | "failure", // Required
"message": "Human-readable summary" // Required
}
{
"details": {}, // Operation-specific data
"errors": [], // Required when status="failure"
"warnings": [], // Required when status="warning"
"error_analysis": "", // Root cause analysis
"warning_analysis": "", // Impact assessment
"suggested_fixes": [] // Recovery suggestions
}
./scripts/validate-response.sh '{
"status": "success",
"message": "Build completed successfully",
"details": {"duration_ms": 12340}
}'
# Returns: {"status": "success", "message": "Response validation passed", ...}
./scripts/validate-response.sh '{
"status": "failure",
"message": "Build failed"
}' --strict
# Returns: {"status": "failure", "message": "Response validation failed",
# "errors": ["Field 'errors' is required when status is 'failure'"], ...}
./scripts/validate-response.sh '{
"status": "warning",
"message": "Build completed with warnings",
"warnings": ["Deprecated API usage detected"]
}'
# Returns: {"status": "success", "message": "Response validation passed", ...}
The faber-manager invokes this skill to validate all step and hook responses:
Step executes → Response returned → response-validator validates → Manager processes
If validation fails:
| Code | Description |
|---|---|
MISSING_STATUS | Required 'status' field is missing |
INVALID_STATUS | Status value is not success/warning/failure |
MISSING_MESSAGE | Required 'message' field is missing |
MISSING_ERRORS | 'errors' array required for failure status |
MISSING_WARNINGS | 'warnings' array required for warning status |
EMPTY_ERRORS | 'errors' array is empty (must have at least 1) |
EMPTY_WARNINGS | 'warnings' array is empty (must have at least 1) |
INVALID_TYPE | Field has wrong type (e.g., string instead of array) |
Success:
{
"status": "success",
"message": "Response validation passed",
"details": {
"valid": true,
"mode": "strict|lenient",
"fields_validated": <count>
}
}
Failure:
{
"status": "failure",
"message": "Response validation failed - N errors found",
"details": {
"valid": false,
"mode": "strict|lenient",
"error_count": <count>
},
"errors": ["<error1>", "<error2>"],
"error_analysis": "<explanation>",
"suggested_fixes": ["<fix1>", "<fix2>"]
}
</OUTPUTS>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.