This project uses automated linting and type checking to catch errors immediately during development.
/check-ts to ensure type correctnesspnpm install
Open a terminal and run:
# Watch all packages
pnpm typecheck --filter="@seatkit/*" --parallel
# Or watch specific package (recommended)
cd packages/types
pnpm typecheck:watch
Keep this terminal open! It will show TypeScript errors in real-time.
When you (or Claude) edit a file:
no-unused-vars - No unused variables/imports (prefix with _ to ignore)explicit-function-return-type - All functions must have return typesexplicit-module-boundary-types - Exported functions must have return typesno-unsafe-assignment - Prevent unsafe type assignmentsno-floating-promises - All promises must be awaited or handledawait-thenable - Only await actual promisesno-misused-promises - Prevent promise bugsconsistent-type-imports - Use import type for typesconsistent-type-definitions - Prefer type over interfaceimport/order - Consistent import ordering with groupscamelCase, UPPER_CASE (constants), PascalCase (React components)PascalCaseUPPER_CASEcamelCaseno-explicit-any - Avoid any types (use unknown instead)no-non-null-assertion - Avoid ! operatorno-console - Development only (error in production)# Lint all packages
pnpm lint
# Lint and auto-fix
pnpm lint --fix
# Lint specific package
pnpm --filter @seatkit/types lint
# Production lint (stricter console rules)
pnpm --filter @seatkit/types lint:prod
# Check all packages
pnpm typecheck
# Watch mode (recommended for development)
pnpm --filter @seatkit/types typecheck:watch
# Build all packages
pnpm build
# Build specific package
pnpm --filter @seatkit/types build
The post-edit hook is configured in .claude/settings.local.json:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit|MultiEdit|Update",
"hooks": [
{
"type": "command",
"command": "$CLAUDE_PROJECT_DIR/.claude/hooks/post-edit.sh",
"timeout": 30
}
]
}
]
}
}
# Terminal 1: TypeScript Watch
cd packages/types
pnpm typecheck:watch
# Terminal 2: Claude Code
claude-code
packages/types/src/schemas/reservation.ts