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…
Upgrade a project between versions of the Output framework. Use when the user asks to upgrade, migrate, or move to a newer Output version. Detects the current @outputai/* version in the project, fetches the matching migration guide from docs.output.ai, applies the changes, and
Claude Code
$ npx -y skills add growthxai/output --skill output-migrate --agent claude-code
Codex
$ npx skills add growthxai/output --skill output-migrate -a codex -y
Cursor
$ npx skills add growthxai/output --skill output-migrate -a cursor -y
Gemini CLI
$ npx skills add growthxai/output --skill output-migrate -a gemini-cli -y
GitHub Copilot
$ npx skills add growthxai/output --skill output-migrate -a github-copilot -y
OpenCode
$ npx skills add growthxai/output --skill output-migrate -a opencode -y
Windsurf
$ npx skills add growthxai/output --skill output-migrate -a windsurf -y
name: output-migrate description: Upgrade a project between versions of the Output framework. Use when the user asks to upgrade, migrate, or move to a newer Output version. Detects the current @outputai/* version in the project, fetches the matching migration guide from docs.output.ai, applies the changes, and verifies the project still type-checks. allowed-tools: [Bash, Read, Write, Edit, MultiEdit, Grep, WebFetch, TodoWrite]
This skill migrates a project from one version of the Output framework to another.
You do not carry migration instructions in your own context. The docs site at `https://docs.output.ai/migrations` is the source of truth — fetch the right page and follow it.
Use the todo tool to track your progress.
Migration guides are hand-authored MDX pages linked from a single index:
The index lists every available guide with a title and a short description. A release only has a guide if it introduced breaking changes — most releases will not have one.
If the user is jumping multiple boundaries, fetch each applicable guide in order and apply them sequentially.
<process_flow>
<step number="0" name="arguments_analysis">
If the user passed arguments when invoking this skill, parse them as positional values in this order (all optional):
</step>
<step number="1" name="detect_to_version">
If the user provided a `to-version` argument, use it.
Otherwise, run `npm view @outputai/core version` via Bash and use that as the target.
</step>
<step number="2" name="detect_from_version">
If the user provided a `from-version` argument, use it and skip the rest of this step.
Otherwise, read `package.json` at the project root and resolve the current framework version from the first entry that exists, in this order: 1. `dependencies["@outputai/core"]` 2. `devDependencies["@outputai/core"]` 3. `dependencies["@outputai/output"]` 4. `dependencies["@outputai/cli"]`
Strip any leading `^` or `~`. If no `@outputai/*` package is present, stop and tell the user: "This project doesn't depend on any @outputai/* packages — nothing to migrate."
**If the version read from `package.json` equals the TO version**, the user may have already edited `package.json` to the new version without running the migration yet. Don't give up — find the pre-bump version by looking in this order:
1. Run `git diff package.json pnpm-lock.yaml package-lock.json yarn.lock 2>/dev/null` and scan the diff for an `@outputai/*` version that was removed (lines starting with `-`). If you find one, that's the FROM version. 2. Run `git log -p -n 20 -- package.json` and find the most recent commit that changed an `@outputai/*` version. The old value on that commit's parent side is the FROM version. 3. If neither locates a prior version, tell the user: "Cannot detect the FROM version — both `package.json` and git history show `vX.Y.Z`. Re-run with `--from <version>` to specify it explicitly."
If FROM and TO still resolve to the same version after this recovery, stop and tell the user: "Already on `vX.Y.Z` — nothing to migrate."
</step>
<step number="3" name="fetch_migration_guide">
WebFetch `https://docs.output.ai/migrations`. This is the index page — it links to every hand-authored migration guide with a title keyed on the version boundary.
From the index, identify every guide whose `v{FROM}-to-v{TO}` range falls between the user's FROM and TO versions. Examples:
Fetch each applicable guide by hitting `https://docs.output.ai/migrations/v{FROM_FULL}-to-v{TO_FULL}`.
If the index lists no guides covering the FROM → TO range, stop and tell the user: "No migration guides found for `vFROM` → `vTO`. The releases in this range were additive; just bump your dependencies."
Also WebFetch `https://docs.output.ai/changelog` to cross-reference what shipped in the range — use it to fill in gaps the migration guides may not cover.
</step>
<step number="4" name="plan_changes">
From the fetched guide(s), produce a TodoWrite list of concrete changes, one todo per change. Do not start editing yet.
For each todo, capture:
If the user passed `additional-instructions`, honor them: skip todos they asked to skip, add todos they asked to add.
Print the plan and ask the user to confirm before proceeding. If they reject, stop.
</step>
<step number="5" name="apply_changes">
Work through each todo. For every todo: 1. Mark it `in_progress` before starting. 2. Apply the change with Edit/MultiEdit. 3. Mark it `completed` when done.
Do not batch completions — updat
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.