From looplia
Validates JSON artifacts in looplia workflows against criteria from validation.json using deterministic TypeScript scripts via bun. Outputs pass/fail status and check details for manual retry, debugging failures, or ad-hoc verification.
npx claudepluginhub memorysaver/looplia-core --plugin looplia-coreThis skill uses the workspace's default tool permissions.
Validates JSON artifacts against validation criteria using deterministic script execution.
Verifies tests pass on completed feature branch, presents options to merge locally, create GitHub PR, keep as-is or discard; executes choice and cleans up worktree.
Guides root cause investigation for bugs, test failures, unexpected behavior, performance issues, and build failures before proposing fixes.
Writes implementation plans from specs for multi-step tasks, mapping files and breaking into TDD bite-sized steps before coding.
Validates JSON artifacts against validation criteria using deterministic script execution.
As of v0.6.0, the PostToolUse:Write hook automatically calls this validation script whenever an artifact is written to sandbox/*/outputs/*.json.
You typically don't need to manually invoke this skill - the hook handles it.
Use this skill only in these scenarios:
sandbox/{id}/validation.jsonRead the validation manifest at sandbox/{id}/validation.json:
{
"workflow": "writing-kit",
"version": "1.0.0",
"sandboxId": "article-2025-12-18-xk7m",
"steps": {
"summary": {
"output": "outputs/summary.json",
"validate": {
"required_fields": ["contentId", "headline", "tldr", "keyThemes"],
"min_quotes": 3,
"min_key_points": 5
},
"validated": false
}
}
}
Execute the validation script with artifact path and criteria:
bun scripts/validate.ts <artifact-path> '<criteria-json>'
Example:
bun scripts/validate.ts sandbox/podcast-2024-12-08-ai/outputs/summary.json '{"required_fields":["contentId","headline"],"min_quotes":3}'
The script returns JSON with pass/fail and individual checks:
{
"passed": true,
"checks": [
{ "name": "has_contentId", "passed": true, "message": "OK" },
{ "name": "has_headline", "passed": true, "message": "OK" },
{ "name": "min_quotes", "passed": true, "message": "Found 5 quotes (min: 3)" }
]
}
If validation passes:
validation.json to set validated: true for this outputIf validation fails:
Array of field names that must exist in the artifact:
"required_fields": ["contentId", "headline", "tldr"]
Minimum number of items in importantQuotes array:
"min_quotes": 3
Minimum number of items in bullets or key points array:
"min_key_points": 5
Minimum number of outline sections:
"min_outline_sections": 4
Requires hooks array with at least one item:
"has_hooks": true
The validation script returns:
{
"passed": boolean,
"checks": [
{
"name": "check_name",
"passed": boolean,
"message": "Human-readable result"
}
]
}
.steps not .outputs)The validation script is at:
.claude/skills/workflow-validator/scripts/validate.ts
Run with Bun for TypeScript execution:
bun .claude/skills/workflow-validator/scripts/validate.ts <artifact> '<criteria>'