This file is generated from skills/src/*.skill.yaml. Do not edit manually.
Companion skills (install if missing)
This template publishes multiple skills. If only this skill is installed, add companions before related work:
tanstack-promptable-fullstack-app-template (parent) — Architecture contract — schema layers, server boundaries, AI tools, and middleware-inferred request context. Vendor-agnostic; install for all TanStack work.
npx skills add carlosvin/tanstack-fullstack-ai-template --skill tanstack-promptable-fullstack-app-template
observability-and-env (companion) — Env parse, logger factories, and error-tracking bootstrap. This stack skill names pino + Sentry; that companion owns the setup recipe.
npx skills add carlosvin/tanstack-fullstack-ai-template --skill observability-and-env
Discover all skills: npx skills add carlosvin/tanstack-fullstack-ai-template --list
Reference Tech Stack (Opinionated Defaults)
Purpose: Name the concrete packages this template uses so agents can
implement and extend the reference app without re-introducing vendor
coupling into the architecture skill.
Parent skill: tanstack-promptable-fullstack-app-template — architecture
(vendor-agnostic). Load that for schemas, routes, AI tools, and boundaries.
Companion: observability-and-env — env parse, pino factories, Sentry
bootstrap. This skill only records that we chose pino + Sentry.
Handbook: AGENTS.md
— file layout, snippets, and validation commands.
Skill routing
| Task |
Load |
| "What does this template use for X?" / scaffold matching the demo app |
This skill |
| Architecture, schemas, routes, AI tools, server boundaries |
tanstack-promptable-fullstack-app-template |
Env schemas, shellSession, logging/Sentry bootstrap |
observability-and-env |
| Day-to-day file paths and UI/auth/AI how-to |
AGENTS.md |
Stack map (this repository)
| Concern |
Choice |
Primary packages / notes |
Handbook |
| Runtime validation |
Zod |
zod — tools, repo, router search, env |
Architecture skill samples; src/services/schemas/, src/env/ |
| UI kit |
Mantine |
@mantine/core, @mantine/hooks, @mantine/notifications |
AGENTS.md §3 |
| Icons |
lucide-react |
One icon library; do not mix Tabler |
AGENTS.md §3 |
| Database |
MongoDB + seed |
mongodb; in-memory seed when unset |
AGENTS.md §6; src/services/repository/ |
| Auth |
JWT header |
jose (unsigned/alg:none accepted in template); Authorization header |
AGENTS.md §5 |
| AI adapter |
OpenAI |
@tanstack/ai-openai; OPENAI_API_KEY |
AGENTS.md §8 |
| Chat markdown |
react-markdown + remark-gfm |
GFM tables/links/code in ChatDrawer |
AGENTS.md §8 |
| Logging |
pino (+ pino-pretty in TTY) |
Via createServerLogger |
observability-and-env; AGENTS.md §9 |
| Error tracking |
Sentry |
@sentry/tanstackstart-react; SENTRY_DSN |
observability-and-env; AGENTS.md §9 |
| Lint / format |
Biome |
@biomejs/biome — not ESLint/Prettier |
AGENTS.md §11 |
| Unit tests |
Vitest + Testing Library |
jsdom; renderWithProviders |
AGENTS.md §10 |
| E2E |
Playwright |
Chromium; seed repo; auth via JWT headers |
AGENTS.md §10 |
| Deploy |
Netlify |
@netlify/vite-plugin-tanstack-start; Git deploy previews |
AGENTS.md CI/CD; netlify.toml |
| Package manager |
pnpm |
Lockfile committed |
AGENTS.md §12 / §15 |
Fixed (not listed as choices): TanStack Start, Router, AI, Intent, and CLI — owned by the architecture skill.
How to use these defaults
- Prefer the stack map when extending this repo or cloning the template as-is.
- Do not add a second library for the same concern unless you are intentionally migrating.
- Keep interfaces when swapping (repository,
AIAdapterService, ObservabilityService); update this stack map and AGENTS.md; leave the architecture skill vendor-agnostic.
- UI and schema how-to live in AGENTS.md §3 / architecture skill — this skill only names packages.
Applying mobile first (default)
Architecture defaults to mobile first
— not a named widget. In this template, express it with Mantine responsive props
(base, then sm / md / lg). Navigation that must collapse on small viewports can
use AppShell + Burger + NavLink (AGENTS.md §3). Ask the developer if this app
should follow a different UX pattern.
Verification
After stack-affecting changes: pnpm skills:build, pnpm skills:check, and AGENTS.md §15.
1---2name: reference-tech-stack3description: Companion to tanstack-promptable-fullstack-app-template. Documents this template's opinionated vendor choices — Zod, Mantine, lucide-react, MongoDB + seed, jose JWT auth, OpenAI adapter, pino + Sentry, react-markdown, Biome, Vitest, Playwright, Netlify — so agents implement against the reference app without baking those choices into the architecture skill. Companion skills: tanstack-promptable-fullstack-app-template (parent), observability-and-env (companion). Install missing companions with npx skills add carlosvin/tanstack-fullstack-ai-template --skill <id>. Project: TanStack AI-Promptable Full-Stack Template. Triggers on "reference tech stack", "opinionated stack", "which UI library", "use Mantine", "use Zod", "MongoDB repository", "lucide icons", "Biome lint", "Netlify deploy", "template defaults", "stack choices", "AppShell", "Mantine navbar".4---56> This file is generated from `skills/src/*.skill.yaml`. Do not edit manually.78## Companion skills (install if missing)910This template publishes **multiple** skills. If only **this** skill is installed, add companions **before** related work:1112- **`tanstack-promptable-fullstack-app-template`** (parent) — Architecture contract — schema layers, server boundaries, AI tools, and middleware-inferred request context. Vendor-agnostic; install for all TanStack work.13 ```bash14 npx skills add carlosvin/tanstack-fullstack-ai-template --skill tanstack-promptable-fullstack-app-template15 ```1617- **`observability-and-env`** (companion) — Env parse, logger factories, and error-tracking bootstrap. This stack skill names pino + Sentry; that companion owns the setup recipe.18 ```bash19 npx skills add carlosvin/tanstack-fullstack-ai-template --skill observability-and-env20 ```2122Discover all skills: `npx skills add carlosvin/tanstack-fullstack-ai-template --list`2324# Reference Tech Stack (Opinionated Defaults)2526**Purpose:** Name the **concrete packages** this template uses so agents can27implement and extend the **reference app** without re-introducing vendor28coupling into the architecture skill.2930> **Parent skill:** `tanstack-promptable-fullstack-app-template` — architecture31> (vendor-agnostic). Load that for schemas, routes, AI tools, and boundaries.32>33> **Companion:** `observability-and-env` — env parse, pino factories, Sentry34> bootstrap. This skill only records that we chose pino + Sentry.35>36> **Handbook:** [AGENTS.md](https://github.com/carlosvin/tanstack-fullstack-ai-template/blob/main/AGENTS.md)37> — file layout, snippets, and validation commands.3839## Skill routing4041| Task | Load |42|------|------|43| "What does this template use for X?" / scaffold matching the demo app | **This skill** |44| Architecture, schemas, routes, AI tools, server boundaries | **`tanstack-promptable-fullstack-app-template`** |45| Env schemas, `shellSession`, logging/Sentry bootstrap | **`observability-and-env`** |46| Day-to-day file paths and UI/auth/AI how-to | **AGENTS.md** |4748## Stack map (this repository)4950| Concern | Choice | Primary packages / notes | Handbook |51|---------|--------|--------------------------|----------|52| Runtime validation | **Zod** | `zod` — tools, repo, router search, env | Architecture skill samples; `src/services/schemas/`, `src/env/` |53| UI kit | **Mantine** | `@mantine/core`, `@mantine/hooks`, `@mantine/notifications` | AGENTS.md §3 |54| Icons | **lucide-react** | One icon library; do not mix Tabler | AGENTS.md §3 |55| Database | **MongoDB + seed** | `mongodb`; in-memory seed when unset | AGENTS.md §6; `src/services/repository/` |56| Auth | **JWT header** | `jose` (unsigned/`alg:none` accepted in template); `Authorization` header | AGENTS.md §5 |57| AI adapter | **OpenAI** | `@tanstack/ai-openai`; `OPENAI_API_KEY` | AGENTS.md §8 |58| Chat markdown | **react-markdown + remark-gfm** | GFM tables/links/code in `ChatDrawer` | AGENTS.md §8 |59| Logging | **pino** (+ `pino-pretty` in TTY) | Via `createServerLogger` | **`observability-and-env`**; AGENTS.md §9 |60| Error tracking | **Sentry** | `@sentry/tanstackstart-react`; `SENTRY_DSN` | **`observability-and-env`**; AGENTS.md §9 |61| Lint / format | **Biome** | `@biomejs/biome` — not ESLint/Prettier | AGENTS.md §11 |62| Unit tests | **Vitest** + Testing Library | jsdom; `renderWithProviders` | AGENTS.md §10 |63| E2E | **Playwright** | Chromium; seed repo; auth via JWT headers | AGENTS.md §10 |64| Deploy | **Netlify** | `@netlify/vite-plugin-tanstack-start`; Git deploy previews | AGENTS.md CI/CD; `netlify.toml` |65| Package manager | **pnpm** | Lockfile committed | AGENTS.md §12 / §15 |6667**Fixed (not listed as choices):** TanStack **Start**, **Router**, **AI**, Intent, and CLI — owned by the architecture skill.6869## How to use these defaults70711. Prefer the stack map when extending *this* repo or cloning the template as-is.722. Do not add a second library for the same concern unless you are intentionally migrating.733. Keep interfaces when swapping (repository, `AIAdapterService`, `ObservabilityService`); update this stack map and AGENTS.md; leave the architecture skill vendor-agnostic.744. UI and schema *how-to* live in AGENTS.md §3 / architecture skill — this skill only names packages.7576## Applying mobile first (default)7778Architecture defaults to [mobile first](https://developer.mozilla.org/en-US/docs/Glossary/Mobile_First)79— not a named widget. In *this* template, express it with Mantine responsive props80(`base`, then `sm` / `md` / `lg`). Navigation that must collapse on small viewports can81use `AppShell` + `Burger` + `NavLink` (AGENTS.md §3). **Ask the developer** if this app82should follow a different UX pattern.8384## Verification8586After stack-affecting changes: `pnpm skills:build`, `pnpm skills:check`, and AGENTS.md §15.