| name | flow-validation-checklist |
| description | Complete migration validation checklist for Flow to Output SDK. Use after migration to verify completeness and correctness. |
| allowed-tools | ["Bash","Read","Grep","Glob"] |
Migration Validation Checklist
Overview
This skill provides a comprehensive checklist to validate a completed Flow to Output SDK migration. Use this after migration to ensure nothing was missed.
When to Use This Skill
After Migration:
- Verifying migration completeness
- Before marking migration as done
- During code review of migrated workflow
Complete Validation Checklist
1. Type Safety
Validation Commands:
grep -r "from 'zod'" src/workflows/my_workflow/
grep -r 'from "zod"' src/workflows/my_workflow/
grep -c "z.object" src/workflows/my_workflow/types.ts
2. Template & Prompt Conversion
Validation Commands:
grep -r "{{#if" src/workflows/my_workflow/
grep -r "{{/if}}" src/workflows/my_workflow/
grep -r "{{[^{]" src/workflows/my_workflow/*.prompt 2>/dev/null | grep -v "{{ "
ls src/workflows/my_workflow/*.prompt
head -10 src/workflows/my_workflow/*.prompt
3. API & Imports
Validation Commands:
grep -r "@flow/sdk" src/workflows/my_workflow/
grep -r "WorkflowScope" src/workflows/my_workflow/
grep -r "@outputai/core" src/workflows/my_workflow/
grep -r "@outputai/llm" src/workflows/my_workflow/
4. File Structure
Validation Commands:
ls -la src/workflows/my_workflow/
ls src/workflows/my_workflow/activities.ts 2>/dev/null
ls src/workflows/my_workflow/prompts.ts 2>/dev/null
ls src/workflows/my_workflow/prompts.xml 2>/dev/null
grep -r "from './" src/workflows/my_workflow/*.ts | grep -v ".js'"
5. Workflow Definition
Validation Commands:
grep -A10 "export default workflow" src/workflows/my_workflow/workflow.ts
grep "class.*Workflow" src/workflows/my_workflow/workflow.ts
6. Step Definitions
Validation Commands:
grep "export const.*= step" src/workflows/my_workflow/steps.ts
grep -c "inputSchema:" src/workflows/my_workflow/steps.ts
7. Error Handling
Validation Commands:
grep -A20 "fn: async" src/workflows/my_workflow/workflow.ts | grep "try {"
8. Business Logic
Manual Review:
- Compare step-by-step execution flow
- Verify data transformations
- Check edge case handling
9. ESLint Compliance
Validation Commands:
npm run lint -- src/workflows/my_workflow/
10. Runtime Validation
Validation Commands:
npm run output:workflow:build
npx output workflow run my_workflow --input '{"testKey": "testValue"}'
Quick Validation Script
Run this to check common issues:
#!/bin/bash
WORKFLOW_PATH="src/workflows/my_workflow"
echo "=== Migration Validation ==="
echo -e "\n1. Checking for wrong zod imports..."
grep -r "from 'zod'" $WORKFLOW_PATH && echo "FAIL: Found direct zod imports" || echo "PASS"
echo -e "\n2. Checking for Handlebars syntax..."
grep -r "{{#if" $WORKFLOW_PATH && echo "FAIL: Found Handlebars syntax" || echo "PASS"
echo -e "\n3. Checking for Flow SDK imports..."
grep -r "@flow/sdk" $WORKFLOW_PATH && echo "FAIL: Found Flow SDK imports" || echo "PASS"
echo -e "\n4. Checking for class-based workflow..."
grep "class.*Workflow" $WORKFLOW_PATH/workflow.ts && echo "FAIL: Found class-based workflow" || echo "PASS"
echo -e "\n5. Checking for try-catch in workflow..."
grep -A20 "fn: async" $WORKFLOW_PATH/workflow.ts | grep "try {" && echo "WARN: Found try-catch" || echo "PASS"
echo -e "\n6. Checking import extensions..."
grep "from './" $WORKFLOW_PATH/*.ts | grep -v ".js'" && echo "FAIL: Missing .js extension" || echo "PASS"
echo -e "\n7. Verifying file structure..."
[ -f "$WORKFLOW_PATH/workflow.ts" ] && echo "PASS: workflow.ts exists" || echo "FAIL: workflow.ts missing"
[ -f "$WORKFLOW_PATH/steps.ts" ] && echo "PASS: steps.ts exists" || echo "FAIL: steps.ts missing"
[ -f "$WORKFLOW_PATH/types.ts" ] && echo "PASS: types.ts exists" || echo "FAIL: types.ts missing"
echo -e "\n=== Validation Complete ==="
Related Skills
flow-error-zod-import - Fix zod import issues
flow-error-try-catch-removal - Remove try-catch antipattern
flow-error-eslint-compliance - Fix ESLint issues
flow-conventions-folder-structure - Folder structure reference