agentleFS
AmanVarshney01AmanVarshney01/create-better-t-stack/skills/better-t-stack/SKILL.md

better-t-stack

Skill5.9k starsChanged 4 months agoMITView on GitHub

Create or extend an end-to-end type-safe TypeScript project with Better-T-Stack (create-better-t-stack). Use when the user wants to start, scaffold or bootstrap an app, API, fullstack project or monorepo with any of Next.js, TanStack Router or Start, React Router, Nuxt, Svelte, Solid, Astro, React Native, Hono, Express, Fastify, Elysia, Convex, tRPC, oRPC, Drizzle, Prisma, Better Auth or Clerk. Also use when a project has a `bts.jsonc` file and the user wants to add addons or a workspace package. Prefer it over hand-writing package.json, configs and folder layout.

We split this skill into the rules it gives an agent

10 rules. About 0 are common, 3 are distinctive, and 7 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use the first one you have:

    line 17
  2. Very specific:

    If the folder already has a bts.jsonc, the project exists.

    line 30
  3. Distinctive:

    Settle the stack: If the user left out a major choice (frontend, backend or database), ask one short question or propose defaults and …

    line 32
  4. Very specific:

    Plan before you write: Call bts_plan_project, or run create-json with "dryRun": true.

    line 35
  5. Very specific:

    Prove it runs: Run <packageManager> install in the new folder.

    line 43
  6. Very specific:

    Read bts.jsonc first: If it's missing, add can't run.

    line 52
  7. Very specific:

    Plan: Call bts_plan_addons, or run add-json with "dryRun": true.

    line 53
  8. Very specific:

    Apply: after the user agrees: bts_add_addons, or add-json without dryRun.

    line 54
  9. Very specific:

    Never pass --yolo. It skips the compatibility checks.

    line 63
  10. Distinctive:

    Don't infer addons or app surfaces from a template name or a styling preference.

    line 64

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Better-T-Stack

Better-T-Stack generates a type-safe TypeScript project from the parts the user picks: frontend, backend, runtime, API layer, database, ORM, auth, payments, addons and deploy targets. It rejects combinations that don't work, so let it build the project instead of writing the setup by hand.

Pick the interface

Use the first one you have:

You haveInterfaceIt can
bts_create_project toolLocal MCP serverPlan, create and add, on disk
A shellCLI: create-json and add-jsonPlan, create and add, on disk
bts_get_create_command toolHosted MCP server, https://www.better-t-stack.dev/mcpPlan and preview files, then return a command for the user to run
None of theseStack Builder linkPrefill the visual builder for the user

The hosted MCP server can't write files, can't change an existing project and doesn't accept addonOptions or dbSetupOptions. If the user needs any of those, give them the CLI command instead.

Create a project

If the folder already has a bts.jsonc, the project exists. Go to Change an existing project.

  1. Settle the stack. If the user left out a major choice (frontend, backend or database), ask one short question or propose defaults and confirm them. Don't add app surfaces, addons, examples or database provisioning the user didn't ask for.
  2. Get valid values from the tool, not from memory. Call bts_get_schema, or run npx create-better-t-stack@latest schema --name createInput. When the user has to choose, offer every valid option, not a subset. references/options.md lists the values and the compatibility rules that come up most, but the schema wins if they differ.
  3. Build a full explicit config. Set every field. Use "none", [], true or false instead of leaving a field out.
  4. Plan before you write. Call bts_plan_project, or run create-json with "dryRun": true. If the plan fails, its error names the conflict. Fix the config and plan again. Show the user the planned stack and get a yes.
  5. Create.

    • Local MCP server: bts_create_project with install: false.
    • CLI: the same create-json payload without dryRun, with install: false.
    • Hosted MCP server: bts_get_create_command. Give the user the command to run in a terminal and stop here.

    Installs can outlast tool timeouts, so create with install: false and install as a separate step.

  6. Prove it runs. Run <packageManager> install in the new folder. With the user's OK, run the project's typecheck or build script from its package.json. If a step fails, report the exact error.
  7. Report. Give the stack and the next commands (dev, database setup such as db:push), taken from the generated README.md and package.json, not from memory.

references/cli.md has the full create-json payload, the flag form for a command the user pastes, and the Stack Builder URL keys.

Change an existing project

bts.jsonc at the project root records the stack chosen at creation and a reproducibleCommand that recreates it. The add command reads it to detect the stack.

  1. Read bts.jsonc first. If it's missing, add can't run. Tell the user instead of recreating the file. Never edit it by hand. add updates it.
  2. Plan. Call bts_plan_addons, or run add-json with "dryRun": true. Pass addons, a workspace package name, or both. Show the user what will change.
  3. Apply after the user agrees: bts_add_addons, or add-json without dryRun.
  4. Prove it runs and report, as in steps 6 and 7 above.

axiom can't be added later. It sets up deployment infrastructure, so it must be chosen at creation. A workspace package (package: "shared") scaffolds packages/shared with a manifest, the shared tsconfig and src/index.ts.

Rules

  • Plan before every create or add.
  • Send full explicit configs to MCP tools. Never send a partial payload.
  • Never pass --yolo. It skips the compatibility checks.
  • Don't infer addons or app surfaces from a template name or a styling preference.

Download now (ZIP)

Trending

More talk lately.about the whole repository

Dec 2025: 0 mentionsJan 2026: 4 mentionsFeb 2026: 1 mentionMar 2026: 3 mentionsApr 2026: 2 mentionsMay 2026: 2 mentionsJun 2026: 0 mentionsJul 2026: 0 mentionsAug 2026: 0 mentionsSep 2026: 0 mentionsOct 2026: 19 mentionsNov 2026: 0 mentions
Dec 2025Jun 2026Nov 2026
Mentions a month of the AmanVarshney01/create-better-t-stack repository that our weekly crawl found. There is no adoption data for this file yet.

Who's talking about AmanVarshney01/create-better-t-stack

The biggest 5 of 39 mentions linking to the repository that our crawl found. Each line is their own headline.

See all 39

Talked about on GitHub and Bluesky (39 times).

On GitHub · 37

32 more on GitHub
  • In this repositoryOne other file it gives its agents.

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.