Skip to content

Latest commit

History

History
37 lines (32 loc) 路 2.24 KB

File metadata and controls

37 lines (32 loc) 路 2.24 KB

Agent Instructions

Package Manager

Use pnpm: pnpm install, pnpm dev, pnpm build, pnpm lint, pnpm typecheck, pnpm generate, pnpm knip

Dev Server

  • The dev server is always running at http://localhost:3000.
  • Do not start or restart the dev server.

Commits

  • Always commit changes before handing work back.
  • Amend the previous commit when new changes make it not worthwhile to keep as a separate commit.
  • Keep each commit scoped to one coherent change.
  • Use semantic commit messages: <type>(<scope>): <subject>; scope is optional.
  • Use present-tense, lowercase subjects unless casing is contextually important.
  • Types: feat, fix, docs, style, refactor, test, chore.
  • Examples: feat: add playlist filters, fix(api): cache graphql explorer separately, docs: update agent instructions.

Key Conventions

  • Vite + TanStack Start React app; file routes live in app/routes.
  • API routes use createFileRoute(...).server.handlers.
  • Root layout, SEO defaults, analytics, RSS link, and baseUrl live in app/routes/__root.tsx.
  • Route tree is generated in app/routeTree.gen.ts; do not edit it directly.
  • Use path aliases: ~/* for app/*, @/* for repo root.
  • Use cn from lib/cn.ts for conditional class merging.
  • Prefer semantic Tailwind tokens/classes from tailwind.config.cjs and styles/globals.css (bg-canvas, text-fg, text-muted, bg-surface, border-line, font-ui-*, link, prose-custom) over raw color/typography utilities.
  • Global CSS variables define light/dark theme colors in styles/globals.css.
  • GraphQL schema/queries/resolvers live in graphql; update generated types with pnpm generate.
  • Do not edit graphql/types/types.generated.ts directly.
  • Apollo server is mounted at /api/graphql; GET query caching is operation-name aware.
  • Contentful images should go through proxiedImageUrl/contentfulLoader; /api/image only allows listed hosts.
  • MDX posts are compiled server-side in app/routes/posts/$slug.tsx with mdxComponents from components/Prose.
  • OG images are generated by /api/og using satori + sharp; keep server-only imports dynamic when needed.
  • Node >= 20.

Local Skills

No project-local skills found in .claude/skills or plugins/*/skills.