reference-tech-stack
Skill3 starsChanged 7 days agoMITView on GitHub
**UTILITY SKILL** - Opinionated vendor map for this template's reference app (UI, validation, DB, auth, AI, observability, deploy).
- Reads credentials
In this repository6 other files it gives its agents.
- AGENTS.mdAGENTS.md
- agentic-uxSkill
- observability-and-envSkill
- promptable-uxSkill
- repository-architectureSkill
- tanstack-promptable-fullstack-app-templateSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 2 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 107
Prefer the stack map when extending *this* repo or cloning the template as-is.
- Distinctive: line 108
Do not add a second library for the same concern unless you are intentionally migrating.
- Very specific: line 109
Keep interfaces when swapping (repository, AIAdapterService, ObservabilityService).
- Very specific: line 118
After stack-affecting changes: update this SKILL.md, run pnpm skills:check and pnpm skills:waza, and follow AGENTS.md §15.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 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.
Files
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-templateobservability-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-envrepository-architecture(companion) — Language-agnostic repository architecture: injected collection owners, indexes, stale-data cleanup, and resource lifetime. This stack skill names the database driver; that companion owns the pattern.npx skills add carlosvin/tanstack-fullstack-ai-template --skill repository-architecturepromptable-ux(companion) — Shared UX for both prompt concepts. This stack skill names the UI kit; that companion owns where the prompt sits.npx skills add carlosvin/tanstack-fullstack-ai-template --skill promptable-uxagentic-ux(companion) — Fully agentic tool-only shell. Mantine views render as declarative A2UI surfaces.npx skills add carlosvin/tanstack-fullstack-ai-template --skill agentic-ux
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 |
| Collection repositories, indexes, stale-data cleanup, resource lifetime | repository-architecture |
| Prompt concepts, mobile first, assistant markdown | promptable-ux |
| 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 | Gemini → OpenAI/Gateway → Azure | @tanstack/ai-gemini + @tanstack/ai-openai; first configured provider wins (GEMINI_API_KEY, then OPENAI_API_KEY / Netlify AI Gateway, then Azure) | AGENTS.md §8; src/services/ai/adapter.ts |
| 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 |
| Agentic UI | A2UI | Mantine task views: @a2ui-bridge/core and @a2ui-bridge/react Surface with a local Mantine 9 catalog (Column, Row, Card, Text, Title, Badge, Button, Table, Timeline). Do not add @a2ui-bridge/react-mantine (Mantine 8 and Tabler). | agentic-ux |
| Package manager | pnpm | Lockfile committed | AGENTS.md §12 / §15 |
Fixed (not listed as choices): TanStack Start, Router, AI, 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 / the architecture skill — this skill only names packages. Prompt concepts live in
promptable-ux.
Expressing the UX concepts in this stack
promptable-ux owns mobile first and the two prompt concepts. In this template, express mobile first with Mantine responsive props (base, then sm / md / lg). The reference app declares Promptable UI (side): navigation that overflows a narrow header uses AppShell + Burger + NavLink, and the prompt is a right Drawer (AGENTS.md §3 and §8), not a permanent aside. Prompt-first would still use those responsive props; it would not add a second drawer.
Verification
After stack-affecting changes: update this SKILL.md, run pnpm skills:check and pnpm skills:waza, and follow AGENTS.md §15.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
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.

