From goldsky
Diagnoses and fixes broken Goldsky Compose apps by checking auth, status, logs, secrets, and wallets. Use when a Compose app errors, crashloops, or misbehaves.
How this skill is triggered — by the user, by Claude, or both
Slash command
/goldsky:compose-doctorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Diagnose and fix broken Compose apps. Workflow-oriented: we walk through auth → app identification → status → logs → secrets → wallets → manifest → diagnosis → fix.
Diagnose and fix broken Compose apps. Workflow-oriented: we walk through auth → app identification → status → logs → secrets → wallets → manifest → diagnosis → fix.
/compose for that./compose-reference./secrets. But DO check whether required secrets exist as part of diagnosis./turbo-doctor.Before running any commands, check if you have the Bash tool available:
goldsky project list 2>&1. If not logged in, use /auth-setup.
goldsky compose list. Confirm the app exists and note its current status.
goldsky compose status -n <app> or goldsky compose status -n <app> --json.
Possible statuses: RUNNING, PAUSED, ERROR, STARTING, STOPPED, PROVISIONING. Decision tree:
goldsky compose resume -n <app> if not..updated_at from --json output to compute how long.)goldsky compose logs -n <app> --tail 200 --json 2>&1 (add -f to stream, --level error,warn to filter, --since 1h for a window, --search <term> for text match).
How to match errors: scan the full log text (NDJSON .message field when --json is set) for exact substring against the first column of the error table below. Log lines include a dashboard_url attribute pointing to the specific run in the dashboard — surface it to the user alongside the diagnosis.
If logs show missing-secret or auth errors:
goldsky compose secret list -n <app>
Cross-reference against the manifest's secrets: array. Use /secrets or goldsky compose secret set to fix.
If logs show wallet or transaction errors:
goldsky compose wallet list -n <app>
Check whether the error is:
sponsorGas: false and fund the EOA manually.compose dev --fork-chains or use a BYO EOA wallet locally.dashboard_url from the log line — the run trace in the dashboard includes the decoded revert reason.If logs show Manifest validation failed: …, the manifest was rejected at deploy time. Common causes are in the error table below.
Present findings in this format:
## Diagnosis
**App:** <name>
**Status:** <status>
**Root cause:** <one-line explanation>
**Fix:** <one-line action, with exact command if possible>
**Verify:** <how to confirm it worked>
If the fix is mechanical (secret set, manifest edit, redeploy), execute it and re-run Steps 3–4 to verify. If the fix requires user input (contract revert reason, funding decision, API key rotation), surface the diagnosis and stop.
| Log / error message | Cause | Fix |
|---|---|---|
Manifest validation failed: api_version is required for deployment. | Missing api_version at top of compose.yaml | Add api_version: stable (or a semver) |
Manifest validation failed: api_version "<v>" is not valid. | Bad version value | Use stable, preview, canary, or semver |
Project name must start with a letter… | Manifest name violates RFC 1123 | lowercase, letters/numbers/hyphens, letter-start |
<task>.name must start with a letter or underscore… | Task name regex fail | match /^([a-zA-Z]|_[a-zA-Z0-9])[a-zA-Z0-9_]*$/ |
<task>.triggers[N].authentication must be either 'auth_token' or 'none' | HTTP trigger auth wrong | set to one of the two values |
<task>.triggers[N].network must be in snake_case format | onchain_event network name wrong case | polygon_amoy, ethereum_mainnet (snake_case) |
<task>.triggers[N].contract must be a valid EVM address | bad 0x address | check checksum + 40 hex chars |
<task>.triggers[N].ip_whitelist[N] must be a valid IP or CIDR | malformed IP | fix format |
Secret names must be in SCREAMING_SNAKE_CASE format | bad secret name | MY_SECRET, not my-secret |
Secret name "<X>" in .env is reserved for the app's postgres database | secret clashes with hosted DB name (uppercased app name) | rename the secret |
The following secrets are referenced in the manifest but are not set in your local .env file | local dev missing secret | add to .env or goldsky compose secret set --env local |
Deploy blocked: required secrets are missing from cloud | cloud secret missing | goldsky compose secret set or deploy --sync-env |
Task bundling failed: <msg> | esbuild compile error | fix the TS error in the task |
esbuild native binary crashed… architecture mismatch… | arm/amd64 mismatch | rebuild image; rm -rf ~/.cache/esbuild |
You cannot use a smart wallet in local dev unless you use chain forking. | Smart wallet in plain compose dev | compose dev --fork-chains or switch to a BYO EOA |
No bundler provider available for chain <id>. | chain not supported by any bundler | change chains, or set sponsorGas: false |
Chain <id> is not supported by Alchemy's bundler. | forced Alchemy on wrong chain | unset BUNDLER_PROVIDER env override |
Transaction Receipt failed with status reverted | onchain revert | open dashboard_url for decoded revert reason |
Cannot deserialize params: chain <id> not found | reorg replay for a chain missing in viem/chains | update the CLI / switch chains |
[Warning] onReorg is not supported for gas-sponsored transactions. | non-fatal warning | if reorg matters, switch to non-sponsored |
[Warning] The 'nonce' parameter is being ignored for gas-sponsored transactions. | passing nonce to sponsored send | remove the nonce override |
Every app has a dashboard page: https://app.goldsky.com/<project_id>/dashboard/compose/<app-name>. Every run has …/runs/<run_id>. When diagnosing, surface both links to the user.
If you don't have the Bash tool, output the diagnostic commands for the user to run, but structure them clearly:
This is the fallback path — always prefer running commands directly when Bash is available.
goldsky compose pause stops task execution without tearing down state.--delete-database on compose delete is irreversible — triple-check before running./compose — Build a new Compose app or explain what Compose is./compose-reference — Manifest / CLI / TaskContext / codegen lookups./secrets — Generic secret management./auth-setup — Fix authentication.npx claudepluginhub goldsky-io/goldsky-agentGenerates brand assets: logos (55+ styles, Gemini AI), CIP mockups, HTML slides (Chart.js), banners (22 styles), SVG icons (15 styles), and social media photos. Routes to sub-skills for design tokens and UI styling.