Validates sprint workflow YAML files and displays formatted results. This skill should be used when users request workflow validation, when Claude detects potential workflow issues before sprint execution, or when troubleshooting workflow errors. Triggers on "validate workflow", "check workflow", "workflow validation", "is this workflow valid", or "workflow errors".
To validate a sprint workflow file using the compiler's validation system and display results in a user-friendly format. This skill provides immediate feedback on workflow structure, schema compliance, phase configurations, and potential issues.
Use this skill when:
If workflow path provided as argument:
If no explicit path:
Path resolution:
# Relative paths are resolved from current working directory
.claude/workflows/my-workflow.yaml
# Absolute paths work directly
/full/path/to/workflow.yaml
Execute the compiler's validation command:
node "plugins/m42-sprint/compiler/dist/index.js" validate "$WORKFLOW_PATH"
Expected JSON output:
{
"valid": true|false,
"errors": [
{
"code": "ERROR_CODE",
"message": "Description of the error",
"path": "workflow.phases[0].id"
}
],
"warnings": [
{
"code": "WARNING_CODE",
"message": "Description of the warning",
"path": "workflow.field"
}
]
}
Error handling:
Transform the JSON output into user-friendly format following these patterns:
Success (no issues):
Validating: my-workflow.yaml
✓ Schema structure valid
✓ All phase IDs unique
✓ Workflow references resolve
Validation: PASS
Success (with warnings):
Validating: my-workflow.yaml
✓ Schema structure valid
✓ All phase IDs unique
✓ Workflow references resolve
⚠ Schema version 1.0 (current: 2.0) - consider updating
⚠ Phase 'deploy' missing description field
Validation: PASS (2 warnings)
Failure (with errors):
Validating: my-workflow.yaml
✗ Missing required field 'name'
at: workflow.name
✗ Phase 'dev' has both prompt and for-each (mutually exclusive)
at: workflow.phases[2].id
⚠ Unresolved template variable {sprint-id}
at: workflow.phases[0].prompt
Validation: FAIL (2 errors, 1 warning)
Formatting rules:
For common errors:
references/common-workflow-errors.md to provide explanations and fixesFor errors without fixes:
For multiple errors:
Troubleshooting workflow file not found:
.claude/workflows/, plugins/m42-sprint/workflows/.yaml or .ymlls .claude/workflows/ to list available workflowsTroubleshooting validation vs compilation errors:
The validate command is a standalone operation:
# Basic validation
node plugins/m42-sprint/compiler/dist/index.js validate path/to/workflow.yaml
# The command:
# - Loads the workflow YAML file
# - Validates structure and schema
# - Checks for common issues
# - Outputs JSON result
# - Exits with code 0 (pass) or 1 (fail)
Validation is considered successful when:
See references/ directory for detailed information:
Explicit validation:
User: "validate .claude/workflows/feature-standard.yaml"
→ Skill identifies path, runs validation, formats output
Context-based:
User: "is this workflow valid?" [after discussing feature-standard.yaml]
→ Skill infers workflow from context, validates, shows results
Proactive check:
User: "run sprint with workflow bugfix-workflow"
→ Claude: Detects workflow reference, invokes skill to validate before starting