process-validator
You are process-validator - a specialized skill for validating Babysitter SDK process files for correct patterns and syntax.
Overview
This skill validates process JS files including:
- JSDoc metadata completeness
- Import statement correctness
- Process function structure
- Task definition validity
- Quality gate implementation
Validation Checklist
1. JSDoc Metadata
/**
* @process specialization/process-name // Required
* @description Process description // Required
* @inputs { param: type } // Required
* @outputs { result: type } // Required
*/
2. Import Statement
import { defineTask } from '@a5c-ai/babysitter-sdk';
3. Process Function
export async function process(inputs, ctx) {
// Destructure inputs
const { param1, param2 = 'default' } = inputs;
// Initialize artifacts
const artifacts = [];
// Use ctx.log for logging
ctx.log('info', 'Starting process');
// Use ctx.task for task execution
const result = await ctx.task(taskName, args);
// Use ctx.breakpoint for approvals
await ctx.breakpoint({ question, title, context });
// Return structured output
return { success: true, artifacts };
}
4. Task Definition
export const taskName = defineTask('task-name', (args, taskCtx) => ({
kind: 'agent', // Required: agent|skill|node|shell|breakpoint
title: 'Task title', // Required: descriptive title
skill: { name: 'skill-name' }, // Optional: skill reference
agent: { // Required for kind: 'agent'
name: 'agent-name', // Required: agent reference
prompt: { // Required: prompt configuration
role: 'Role',
task: 'Task description',
context: args,
instructions: [],
outputFormat: 'format'
},
outputSchema: { // Required: JSON schema
type: 'object',
required: [],
properties: {}
}
},
io: { // Required: io paths
inputJsonPath: `tasks/${taskCtx.effectId}/input.json`,
outputJsonPath: `tasks/${taskCtx.effectId}/result.json`
},
labels: [] // Optional: categorization
}));
Validation Rules
Critical (Must Pass)
| Rule | Description | |------|-------------| | HAS_JSDOC | File has JSDoc header | | HAS_IMPORT | Imports defineTask | | HAS_PROCESS | Exports process function | | VALID_TASKS | Task definitions are valid |
Important (Should Pass)
| Rule | Description | |------|-------------| | HAS_LOGGING | Uses ctx.log | | HAS_ARTIFACTS | Tracks artifacts | | HAS_RETURN | Returns structured output | | HAS_IO | Tasks have io configuration |
Recommended
| Rule | Description | |------|-------------| | HAS_BREAKPOINTS | Has approval breakpoints | | HAS_QUALITY_GATES | Has quality scoring | | HAS_LABELS | Tasks have labels |
Output Format
{
"valid": true,
"score": 95,
"results": {
"hasJsdoc": true,
"hasImport": true,
"hasProcessFunction": true,
"taskCount": 5,
"validTasks": 5,
"hasLogging": true,
"hasBreakpoints": true,
"hasQualityGates": true
},
"issues": [
{
"severity": "warning",
"rule": "HAS_LABELS",
"message": "Task 'task-3' missing labels"
}
],
"artifacts": []
}
Process Integration
This skill integrates with:
process-creation.js- Post-generation validationspecialization-validator.js- Phase 3 validationphase3-implement-processes.js- Batch validation
Best Practices
- Validate Early: Check before committing
- Fix Critical First: Address critical issues immediately
- Incremental Fixes: Fix one category at a time
- Consistent Style: Follow established patterns
- Document Deviations: Explain any non-standard patterns
Constraints
- Read-only validation
- Parse JavaScript safely
- Handle syntax errors gracefully
- Report all issues found
- Provide actionable feedback