seatkit

SeatKit Development Workflow

🔍 Quality Assurance Setup

This project uses automated linting and type checking to catch errors immediately during development.

How It Works

  1. Claude Code Hook: After every file edit, ESLint runs automatically via a post-edit hook
  2. Claude Code Command: At the start of each session, you can run /check-ts to ensure type correctness
  3. Continuous Feedback: Both systems run concurrently, catching issues as you code

🚀 Getting Started

1. Install Dependencies

pnpm install

2. Start TypeScript Watch Mode

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.

3. Start Coding

When you (or Claude) edit a file:


📋 ESLint Rules

Type Safety (Errors)

Promise Handling (Errors)

Code Style (Errors)

Naming Conventions (Errors)

Warnings


🛠 Manual Commands

Linting

# 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

Type Checking

# Check all packages
pnpm typecheck

# Watch mode (recommended for development)
pnpm --filter @seatkit/types typecheck:watch

Building

# Build all packages
pnpm build

# Build specific package
pnpm --filter @seatkit/types build

🔧 Hook Configuration

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
					}
				]
			}
		]
	}
}

📊 Workflow Example

Terminal Setup

# Terminal 1: TypeScript Watch
cd packages/types
pnpm typecheck:watch

# Terminal 2: Claude Code
claude-code

Editing Flow

  1. You/Claude edits packages/types/src/schemas/reservation.ts
  2. Hook triggers: ESLint checks the file
  3. TypeScript watch: Updates type errors in Terminal 1
  4. Claude sees: Any ESLint errors inline
  5. You see: Any TypeScript errors in Terminal 1
  6. Fix immediately: Before moving to next file

📚 Additional Resources