Nano Banana Pro
Agent skill for nano-banana-pro
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Sign in to like and favorite skills
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
JAM Auto is a monorepo for a job scheduling and optimization system that manages technician assignments and routes for automotive services (ADAS calibration, key programming, module replacement, diagnostics).
The
.cursor/rules/ directory contains a comprehensive knowledge base that serves as persistent memory across development sessions. When working on this codebase:
Start with
.cursor/rules/project_memory.mdc - the master index containing:
Key memory files to reference:
project_context.mdc - Architecture decisions, conventions, tech stack detailsrecent_decisions.mdc - Chronological log of implementation choicespattern_library.mdc - Reusable code patterns and examplesknown_issues.mdc - Common problems and their solutionsimplementation_history.mdc - Feature development timelineFeature-specific rules:
sched-*.mdc files for orchestration, availability, eligibility, loggingoptimizer-*.mdc files for constraints, break itemsintegration-testing-*.mdc, scenario-*.mdc for test patternsdatabase_schema.mdc for complete schema referencedev_workflow.mdc for Task Master workflowWhen making changes:
pattern_library.mdcself_improve.mdc for memory system maintenance guidelinesThis memory system ensures consistent development patterns, preserves important decisions, and provides continuous context across all development sessions.
Monorepo Structure (managed with pnpm workspaces):
apps/web/ - Next.js customer portal (order placement, job tracking)apps/scheduler/ - Node.js/TypeScript scheduling orchestratorapps/optimiser/ - Python/FastAPI route optimization service (Google OR-Tools)simulation/ - Docker Compose environment for local development/testingdocs/ - Technical documentationtests/ - Integration and E2E testsKey Interactions:
# Install all dependencies (run from root) pnpm install # Run dev servers pnpm run dev # Web app (port 3000) - uses workspace filtering pnpm run dev:scheduler # Scheduler service - uses workspace filtering pnpm run dev:optimiser # Optimizer service (port 8080) # Build for production pnpm run build:web # Uses pnpm --filter @jamauto/web run build pnpm run build:scheduler # Uses pnpm --filter @jamauto/scheduler run build
# Run all unit tests pnpm run test # Run specific service tests pnpm run test:web # Uses pnpm --filter @jamauto/web run test pnpm run test:scheduler # Uses pnpm --filter @jamauto/scheduler run test pnpm run test:optimiser # Run integration tests pnpm run test:integration # Run E2E tests (requires simulation environment) pnpm run test:e2e --generate # Run a single test file pnpm test -- path/to/test.test.ts # Run tests in watch mode pnpm test -- --watch
# CORRECT order of operations for integration tests: # 1. Seed baseline data (once per session) pnpm run db:seed:staging # 2. For each test scenario - use proper technician count! pnpm db:seed:staging -- --action scenario --name SCENARIO_NAME --techs N \ --baseline-metadata tests/integration/.baseline-metadata.json \ --output-metadata tests/integration/.current-scenario-metadata.json # 3. Run test with timestamp-coordinated log capture START_TIME=$(date -u +"%Y-%m-%dT%H:%M:%S.%3NZ") pnpm jest tests/integration/scheduler/SCENARIO_NAME.test.ts END_TIME=$(date -u +"%Y-%m-%dT%H:%M:%S.%3NZ") docker logs test_scheduler --since "$START_TIME" --until "$END_TIME" > "debug/SCENARIO_NAME_scheduler.log" 2>&1 # Note: Use MCP Supabase tool to inspect staging database (nvjdgldtvuhowarpulyl) during debugging
# Lint all code pnpm run lint # Format code pnpm run format # Type checking (web app) pnpm run type-check
# Generate TypeScript types from Supabase pnpm run db:generate-types # Seed staging database pnpm run db:seed:staging # Clean staging database pnpm run db:clean:staging # Start simulation environment cd simulation && docker-compose up -d # Interactive E2E test runner pnpm run e2e:run
# Remove all node_modules, build artifacts, and lock files pnpm run clean
/run-replanrunFullReplan in orchestrator.ts):
/docs/reference/database_schema.md for details