Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Execute an Output SDK workflow synchronously and wait for the result. Use when running a workflow and needing immediate results, testing workflow execution, or getting the output directly in the terminal.
.claude/skills/growthxai-output-workflow-run/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 45% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -18% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 5% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 36% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 29% | 0% |
This skill executes a workflow synchronously, meaning the command waits for the workflow to complete and returns the result directly. This is ideal for testing, quick executions, and when you need immediate feedback.
Consider using npx output workflow start (async) when:
bashnpx output workflow run <workflowName> --input '<json-input>' npx output workflow run <workflowName> --input <path-to-json-file>
The --input flag is required when the workflow expects input data.
Pass JSON directly on the command line:
bashnpx output workflow run example --input '{"question": "who really is ada lovelace?"}'
Reference a JSON file containing the input:
bashnpx output workflow run simple --input src/simple/scenarios/question_ada_lovelace.json
This is the recommended approach because:
Workflows typically have a scenarios/ folder containing test inputs:
src/
my_workflow/
workflow.ts
steps.ts
scenarios/
basic_test.json
edge_case_empty.json
large_payload.jsonBest practice workflow:
bash # Create scenarios folder if it doesn't exist mkdir -p src/my_workflow/scenarios
json // src/my_workflow/scenarios/test_user.json { "userId": "123", "options": { "verbose": true } }
bash npx output workflow run my_workflow --input src/my_workflow/scenarios/test_user.json
bash# Inline JSON - simple object npx output workflow run my-workflow --input '{"userId": "123"}' # Inline JSON - complex nested input npx output workflow run data-pipeline --input '{"source": "api", "options": {"limit": 100}}' # File path - reference a scenario file npx output workflow run simple --input src/simple/scenarios/basic.json # File path - relative to current directory npx output workflow run batch-processor --input ./test_inputs/batch1.json # No input (only if workflow doesn't require it) npx output workflow run health-check
The command returns the workflow result directly to stdout.
The workflow's return value is displayed, typically as JSON.
If the workflow fails, you'll see:
npx output workflow debug for detailsScenario: Test a workflow with a scenario file
bash# First, look for existing scenarios ls src/simple/scenarios/ # Run using a scenario file npx output workflow run simple --input src/simple/scenarios/basic_sum.json # Output: # { "sum": 6, "count": 3 }
Scenario: Create and run a new test scenario
bash# Create a scenario file cat > src/my_workflow/scenarios/test_case_1.json << 'EOF' { "question": "What is the capital of France?", "context": "geography" } EOF # Run the workflow npx output workflow run my_workflow --input src/my_workflow/scenarios/test_case_1.json
Scenario: Quick inline test during development
bashnpx output workflow run example --input '{"question": "explain quantum computing"}'
Scenario: Re-run a workflow with different input for debugging
bash# First attempt with scenario file npx output workflow run process-data --input src/process_data/scenarios/user_abc.json # Error occurs # Create a new scenario to isolate the issue cat > src/process_data/scenarios/debug_minimal.json << 'EOF' {"id": "test", "debug": true} EOF npx output workflow run process-data --input src/process_data/scenarios/debug_minimal.json
Scenario: Capture output for further processing
bash# Save result to a file npx output workflow run generate-report --input src/generate_report/scenarios/jan_2024.json > report.json # Pipe to jq for processing npx output workflow run get-users --input src/get_users/scenarios/active.json | jq '.users[].name'
| Error | Cause | Solution | |-------|-------|----------| | "Workflow not found" | Workflow name is incorrect | Check with npx output workflow list | | "Invalid input" | JSON doesn't match schema | Verify input matches workflow's inputSchema | | "Parse error" | Malformed JSON or file not found | Check JSON syntax or file path | | "Timeout" | Workflow took too long | Use async execution for long workflows |
When a workflow fails, the output includes the workflow ID. Use it to get the full trace:
bashnpx output workflow run my-workflow --input src/my_workflow/scenarios/test.json # Output: Workflow failed. ID: abc123xyz npx output workflow debug abc123xyz --json
inputSchema in the codescenarios/ foldernpx output workflow start <name> --input - Start asynchronouslynpx output workflow list - See available workflowsnpx output workflow debug <id> - Debug a failed run| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 7,222 | 2,185 | -70% | 1 | 1 | 0% | 1,351 | 1,959 | +45% | 0 | 0 | — |
case-02 | fail→pass | 12,742 | 1,852 | -85% | 1 | 1 | 0% | 2,339 | 1,927 | -18% | 0 | 0 | — |
case-03 | fail→pass | 21,591 | 2,550 | -88% | 1 | 1 | 0% | 1,962 | 2,066 | +5% | 0 | 0 | — |
case-04 | fail→pass | 8,837 | 2,295 | -74% | 1 | 1 | 0% | 1,487 | 2,017 | +36% | 0 | 0 | — |
case-05 | fail→pass | 8,439 | 1,922 | -77% | 1 | 1 | 0% | 1,453 | 1,879 | +29% | 0 | 0 | — |
case-06 | fail→pass | 9,044 | 3,050 | -66% | 1 | 1 | 0% | 1,567 | 2,167 | +38% | 0 | 0 | — |
case-07 | fail→pass | 5,353 | 2,458 | -54% | 1 | 1 | 0% | 994 | 1,989 | +100% | 0 | 0 | — |
case-08 | fail→fail | 7,567 | 4,140 | -45% | 1 | 1 | 0% | 1,333 | 2,349 | +76% | 0 | 0 | — |
case-09 | fail→pass | 11,373 | 5,196 | -54% | 1 | 1 | 0% | 1,839 | 2,463 | +34% | 0 | 0 | — |
case-10 | pass→pass | 3,281 | 1,927 | -41% | 1 | 1 | 0% | 550 | 1,856 | +237% | 0 | 0 | — |
case-11 | pass→pass | 16,058 | 2,489 | -84% | 1 | 1 | 0% | 2,718 | 2,058 | -24% | 0 | 0 | — |
case-12 | pass→pass | 8,311 | 3,616 | -56% | 1 | 1 | 0% | 1,313 | 2,269 | +73% | 0 | 0 | — |
case-13 | pass→pass | 6,094 | 3,087 | -49% | 1 | 1 | 0% | 955 | 2,093 | +119% | 0 | 0 | — |
case-14 | fail→pass | 11,919 | 2,006 | -83% | 1 | 1 | 0% | 2,127 | 1,894 | -11% | 0 | 0 | — |
case-15 | pass→pass | 9,242 | 4,219 | -54% | 1 | 1 | 0% | 1,532 | 2,409 | +57% | 0 | 0 | — |
case-16 | fail→pass | 14,366 | 2,999 | -79% | 1 | 1 | 0% | 2,132 | 2,119 | -1% | 0 | 0 | — |
case-17 | fail→pass | 9,250 | 2,345 | -75% | 1 | 1 | 0% | 1,545 | 1,976 | +28% | 0 | 0 | — |
case-18 | fail→pass | 7,881 | 2,865 | -64% | 1 | 1 | 0% | 1,331 | 2,066 | +55% | 0 | 0 | — |
case-19 | fail→pass | 9,678 | 2,192 | -77% | 1 | 1 | 0% | 1,675 | 1,966 | +17% | 0 | 0 | — |
case-20 | fail→pass | 13,456 | 2,393 | -82% | 1 | 1 | 0% | 2,285 | 1,983 | -13% | 0 | 0 | — |
case-21 | fail→pass | 8,184 | 1,509 | -82% | 1 | 1 | 0% | 1,461 | 1,723 | +18% | 0 | 0 | — |
case-22 | fail→pass | 9,354 | 2,378 | -75% | 1 | 1 | 0% | 1,538 | 1,972 | +28% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +73 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.