Imported from dirien/stop-building-portals-start-building-conversations (
slides/.opencode/skills/agent-rules/references/examples/express-api-ts/src/AGENTS.md). Install upstream withnpx skills add dirien/stop-building-portals-start-building-conversations --skill src. Copyright stays with the author.
AGENTS.md — src
Overview
Backend services (TypeScript/Node.js)
Key Files
| File | Purpose |
|---|---|
src/config.ts |
(add description) |
src/routes/health.ts |
Add database connectivity check here |
src/routes/users.ts |
(add description) |
src/index.ts |
Middleware |
src/utils/logger.ts |
(add description) |
Golden Samples (follow these patterns)
| Pattern | Reference |
|---|---|
| Standard implementation | src/controllers/userController.ts |
Setup & environment
- Install:
pnpm install - Node version: >=20.0.0
- Package manager: pnpm
- Environment variables: See .env or .env.example
Build & tests
- Typecheck (project-wide):
pnpm typecheck - Format:
pnpm format - Lint:
pnpm lint - Test:
pnpm test - Build:
pnpm build - Dev server:
pnpm dev
Code style & conventions
- Use TypeScript strict mode (
strict: truein tsconfig) - No
anywithout explicit justification comment - Prefer
interfaceovertypefor object shapes - Naming:
camelCasefor functions/vars,PascalCasefor classes/types - Async/await over raw Promises
- Prefer
constoverlet, never usevar - Destructure objects and arrays when appropriate
Security & safety
- Validate all user inputs (use zod or similar)
- Parameterized queries only (no string concatenation)
- Never use dynamic code execution with user data
- Sensitive data: never log or expose in errors
- Environment: use dotenv, never hardcode secrets
- CORS: configure explicitly, no wildcard in production
- Rate limiting: implement for public endpoints
PR/commit checklist
- Tests pass:
pnpm test - Type check clean:
pnpm typecheck - Lint clean:
pnpm lint - Formatted:
pnpm format - No
anytypes without justification - API endpoints have validation
- Error responses don't leak internals
Patterns to Follow
Prefer looking at real code in this repo over generic examples. See Golden Samples section above for files that demonstrate correct patterns.
When stuck
- Check Node.js docs: https://nodejs.org/docs
- TypeScript handbook: https://www.typescriptlang.org/docs
- Review existing patterns in this codebase
- Check root AGENTS.md for project-wide conventions