output-build-workflow
Implement an Output SDK workflow from a plan document. Use when the user asks to build, implement, or code a workflow from an…
Audit an existing eval suite for trustworthiness. Use when inheriting evals, suspecting evals miss real failures, or after significant pipeline changes.
Claude Code
$ npx -y skills add growthxai/output --skill output-eval-audit --agent claude-code
Codex
$ npx skills add growthxai/output --skill output-eval-audit -a codex -y
Cursor
$ npx skills add growthxai/output --skill output-eval-audit -a cursor -y
Gemini CLI
$ npx skills add growthxai/output --skill output-eval-audit -a gemini-cli -y
GitHub Copilot
$ npx skills add growthxai/output --skill output-eval-audit -a github-copilot -y
OpenCode
$ npx skills add growthxai/output --skill output-eval-audit -a opencode -y
Windsurf
$ npx skills add growthxai/output --skill output-eval-audit -a windsurf -y
name: output-eval-audit description: Audit an existing eval suite for trustworthiness. Use when inheriting evals, suspecting evals miss real failures, or after significant pipeline changes. allowed-tools: [Bash, Read]
Audit your eval suite to determine whether it actually catches real failures. This skill provides a structured diagnostic that identifies gaps in error analysis, evaluator design, judge validation, and dataset coverage, with concrete remediation steps for each finding.
Read the eval infrastructure files for the workflow being audited:
src/workflows/<workflow_name>/ ├── tests/ │ ├── datasets/ # YAML dataset files │ │ ├── *.yml │ │ └── ... │ └── evals/ │ ├── evaluators.ts # Evaluator definitions │ ├── workflow.ts # Eval workflow definition │ └── *.prompt # Judge prompt files
Inventory what exists:
| Artifact | File(s) | Count | |----------|---------|-------| | Evaluators | `tests/evals/evaluators.ts` | ? | | Eval workflow | `tests/evals/workflow.ts` | ? entries in `evals` array | | Judge prompts | `tests/evals/*.prompt` | ? | | Datasets | `tests/datasets/*.yml` | ? | | Datasets with ground_truth | ? of above | ? | | Datasets with last_output | ? of above | ? |
If any of these are missing entirely, note it and skip to "Starting From Zero" at the bottom.
Evaluate each of the four areas below. For each, assign a status:
---
**Question:** Were the evaluators derived from observed failure modes in real workflow traces?
**Check:**
**Pass criteria:**
**Common failures:**
**Remediation:** `output-eval-error-analysis` — Review 50+ traces and categorize actual failure modes before modifying evaluators
---
**Question:** Are the evaluators well-designed for reliable automated evaluation?
**Check each evaluator in `tests/evals/evaluators.ts`:**
| Check | What to look for | |-------|------------------| | One failure mode per judge | Each `judgeVerdict()` evaluator targets exactly one criterion | | Binary verdicts | Judge prompts use pass/fail, not Likert scales (1-5) or multi-axis ratings | | Code-based where possible | Objective checks use `Verdict.*` helpers, not LLM judges | | Few-shot examples in judges | Judge `.prompt` files include pass, fail, and borderline examples | | Critique before verdict | Judge prompts request critique/reasoning before the verdict in structured output | | Appropriate criticality | `required` for blocking failures, `informational` for nice-to-have checks | | Correct interpret type | `interpret` config matches what the evaluator returns |
**Pass criteria:**
**Common failures:**
**Remediation:** `output-eval-judge-prompt` — Redesign judge prompts following the four-component structure
---
**Question:** Have LLM judges been validated against human labels?
**Check for each LLM-based evaluator (those using `judgeVerdict()`, `judgeScore()`, `judgeLabel()`):**
| Check | What to look for | |-------|------------------| | Human labels exist | Datasets have `ground_truth.evals.<evaluator_name>.verdict` populated | | TPR/TNR measured | Validation results documented (file, comment, or commit) | | Train/dev/test split | Few-shot examples in the judge prompt come from a designated train split, not from the same data used for measurement | | Metrics meet threshold | TPR > 80% and TNR > 80% (target: > 90%) |
**Pass criteria:**
**Common failures:**
**Remediation:** `output-eval-validate-judge` — Calibrate each judge against human labels using TPR/TNR
---
**Question:** Do the datasets adequately cover the failure space?
**Check:**
| Check | What to look for | |-------|------------------| | Dataset count | Minimum 10 for simple workflows, 20+ for complex ones | | Diversity | Datasets vary across multiple input dimensions, not just happy paths | | Failure representation | At least 30% of datasets have
The open-source TypeScript framework for building AI workflows and agents. Designed for Claude Code — describe what you want, Claude builds it, with all the best practices already in place. One framework.
Implement an Output SDK workflow from a plan document. Use when the user asks to build, implement, or code a workflow from an…
View, edit, and set encrypted credentials in an Output.ai project. Use when adding secrets, updating API keys, verifying…
Wire encrypted credentials to environment variables using the credential: convention. Use when setting up LLM provider keys…
Initialize encrypted credentials for an Output.ai project. Use when setting up credentials for the first time, adding…
Debug Output SDK workflow issues. Use when user reports a workflow failing, erroring, hanging, producing wrong results, or asks…
Use the Agent class for multi-step tool loops, conversation history, streaming progress, and reusable LLM agents. Use when…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.