$npx -y skills add TanStack/cli --skill choose-ecosystem-integrationsMap tanstack ecosystem partner metadata to installable add-on ids using tanstack ecosystem --json, tanstack create --list-add-ons --json, and tanstack create --addon-details --json. Covers exclusive categories, provider options, and router-only compatibility constraints.
| 1 | This skill requires familiarity with scaffold and discovery workflows. Read `create-app-scaffold` and `query-docs-library-metadata` first. |
| 2 | |
| 3 | # Choose Ecosystem Integrations |
| 4 | |
| 5 | Use this skill at the seam between user requirements and valid CLI integration choices. |
| 6 | |
| 7 | ## Setup |
| 8 | |
| 9 | ```bash |
| 10 | npx @tanstack/cli ecosystem --json |
| 11 | npx @tanstack/cli create --list-add-ons --json |
| 12 | ``` |
| 13 | |
| 14 | ## Core Patterns |
| 15 | |
| 16 | ### Map partner intent to add-on ids explicitly |
| 17 | |
| 18 | ```bash |
| 19 | npx @tanstack/cli ecosystem --category database --json |
| 20 | npx @tanstack/cli create --list-add-ons --json |
| 21 | ``` |
| 22 | |
| 23 | ### Inspect option surfaces before final provider choice |
| 24 | |
| 25 | ```bash |
| 26 | npx @tanstack/cli create --addon-details drizzle --json |
| 27 | npx @tanstack/cli create --addon-details prisma --json |
| 28 | ``` |
| 29 | |
| 30 | ### Enforce one choice per exclusive category |
| 31 | |
| 32 | ```bash |
| 33 | npx @tanstack/cli create my-app \ |
| 34 | --framework react \ |
| 35 | --add-ons clerk,drizzle \ |
| 36 | --deployment cloudflare \ |
| 37 | -y |
| 38 | ``` |
| 39 | |
| 40 | ## Common Mistakes |
| 41 | |
| 42 | ### HIGH Treat ecosystem partner id as add-on id |
| 43 | |
| 44 | Wrong: |
| 45 | ```bash |
| 46 | npx @tanstack/cli add <partner-id-from-ecosystem> |
| 47 | ``` |
| 48 | |
| 49 | Correct: |
| 50 | ```bash |
| 51 | npx @tanstack/cli ecosystem --json |
| 52 | npx @tanstack/cli create --list-add-ons --json |
| 53 | npx @tanstack/cli add <mapped-addon-id> |
| 54 | ``` |
| 55 | |
| 56 | `ecosystem` includes partners that are not directly installable add-ons, so direct reuse of partner ids can fail late in add/apply flows. |
| 57 | |
| 58 | Source: tanstack ecosystem --json output + tanstack create --list-add-ons --json output |
| 59 | |
| 60 | ### HIGH Skip addon-details before choosing provider |
| 61 | |
| 62 | Wrong: |
| 63 | ```bash |
| 64 | npx @tanstack/cli create my-app --add-ons prisma -y |
| 65 | ``` |
| 66 | |
| 67 | Correct: |
| 68 | ```bash |
| 69 | npx @tanstack/cli create --addon-details prisma --json |
| 70 | npx @tanstack/cli create my-app --add-ons prisma -y |
| 71 | ``` |
| 72 | |
| 73 | Optionized providers can default silently, producing the wrong data-layer stack for the requested integration. |
| 74 | |
| 75 | Source: tanstack create --addon-details prisma --json |
| 76 | |
| 77 | ### HIGH Select multiple exclusive integrations together |
| 78 | |
| 79 | Wrong: |
| 80 | ```bash |
| 81 | npx @tanstack/cli create my-app --add-ons clerk,workos -y |
| 82 | ``` |
| 83 | |
| 84 | Correct: |
| 85 | ```bash |
| 86 | npx @tanstack/cli create my-app --add-ons clerk -y |
| 87 | ``` |
| 88 | |
| 89 | Exclusive categories permit only one active choice, so multi-select commands can drop or replace intended providers. |
| 90 | |
| 91 | Source: packages/create/src/frameworks/*/*/info.json |
| 92 | |
| 93 | ### CRITICAL Assume router-only supports deployment integration |
| 94 | |
| 95 | Wrong: |
| 96 | ```bash |
| 97 | npx @tanstack/cli create my-app --router-only --deployment cloudflare -y |
| 98 | ``` |
| 99 | |
| 100 | Correct: |
| 101 | ```bash |
| 102 | npx @tanstack/cli create my-app --router-only -y |
| 103 | ``` |
| 104 | |
| 105 | Router-only mode ignores deployment integration, so the command succeeds without applying the intended ecosystem target. |
| 106 | |
| 107 | Source: packages/cli/src/command-line.ts:349 |
| 108 | |
| 109 | ### HIGH Tension: Compatibility mode vs explicit intent |
| 110 | |
| 111 | This domain's patterns conflict with create-app-scaffold. Integration planning tends to over-assume command intent is preserved, but compatibility mode silently strips integration flags. |
| 112 | |
| 113 | See also: create-app-scaffold/SKILL.md § Common Mistakes |
| 114 | |
| 115 | ### HIGH Tension: Single-command convenience vs integration precision |
| 116 | |
| 117 | This domain's patterns conflict with query-docs-library-metadata. Integration choices tend to drift when discovery metadata is skipped in favor of one-shot scaffold commands. |
| 118 | |
| 119 | See also: query-docs-library-metadata/SKILL.md § Common Mistakes |
| 120 | |
| 121 | ## References |
| 122 | |
| 123 | - [Authentication providers](references/authentication-providers.md) |
| 124 | - [Data layer providers](references/data-layer-providers.md) |
| 125 | - [Deployment targets](references/deployment-targets.md) |