Files
stripstream/AGENTS.md

3.0 KiB

Repository Guidelines

Project Structure & Module Organization

  • src/app/: Next.js App Router pages, layouts, API routes, and server actions.
  • src/components/: UI and feature components (home/, reader/, layout/, ui/).
  • src/lib/: shared services (Komga/API access), auth, logger, utilities.
  • src/hooks/, src/contexts/, src/types/, src/constants/: reusable runtime logic and typing.
  • src/i18n/messages/{en,fr}/: translation dictionaries.
  • prisma/: database schema and Prisma artifacts.
  • public/: static files and PWA assets.
  • scripts/: maintenance scripts (DB init, admin password reset, icon generation).
  • docs/ and devbook.md: implementation notes and architecture decisions.

Build, Test, and Development Commands

Use pnpm (lockfile and packageManager are configured for it).

  • pnpm dev: start local dev server.
  • pnpm build: create production build.
  • pnpm start: run production server.
  • pnpm lint: run ESLint across the repo.
  • pnpm typecheck or pnpm -s tsc --noEmit: strict TypeScript checks.
  • pnpm init-db: initialize database data.
  • pnpm reset-admin-password: reset admin credentials.

Coding Style & Naming Conventions

  • Language: TypeScript (.ts/.tsx) with React function components.
  • Architecture priority: server-first. Default to React Server Components (RSC) for pages and feature composition.
  • Data mutations: prefer Server Actions (src/app/actions/) over client-side fetch patterns when possible.
  • Client components ("use client"): use only for browser-only concerns (event handlers, local UI state, effects, DOM APIs).
  • Data fetching: do it on the server first (page.tsx, server components, services in src/lib/services), then pass serialized props down.
  • Indentation: 2 spaces; keep imports grouped and sorted logically.
  • Components/hooks/services: PascalCase for components, camelCase for hooks/functions, *.service.ts for service modules.
  • Styling: Tailwind utility classes; prefer existing src/components/ui primitives before creating new ones.
  • Quality gates: ESLint (eslint.config.mjs) + TypeScript must pass before merge.

Testing Guidelines

  • No dedicated unit test framework is currently configured.
  • Minimum validation for each change: pnpm lint and pnpm typecheck.
  • For UI changes, perform a quick manual smoke test on affected routes (home, libraries, series, reader) and both themes.

Commit & Pull Request Guidelines

  • Follow Conventional Commit style seen in history: fix: ..., refactor: ..., feat: ....
  • Keep subjects imperative and specific (e.g., fix: reduce header/home spacing overlap).
  • PRs should include:
    • short problem/solution summary,
    • linked issue (if any),
    • screenshots or short video for UI updates,
    • verification steps/commands run.

Security & Configuration Tips

  • Never commit secrets; use .env based on .env.example.
  • Validate Komga and auth-related config through settings flows before merging.
  • Prefer server-side data fetching/services for sensitive operations.