Markdown Converter
Agent skill for markdown-converter
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.
Clem AI is an AI-powered insurance claims processing system built as a monorepo with:
clem-ai/ ├── apps/ │ ├── backend/ # NestJS API (port 3000) │ └── frontend/ # Next.js dashboard (port 3001) ├── services/ │ ├── ai-service/ # Python FastAPI AI service (port 8000) │ └── etl-service/ # Python ETL service ├── packages/ │ ├── shared-types/ # Common TypeScript types │ ├── shared-utils/ # Utility functions │ ├── eslint-config/ # Shared ESLint configuration │ └── tsconfig/ # Base TypeScript configurations ├── config/ # Configuration files (docker-compose, linters, Makefile) ├── docs/ # Documentation ├── infra/ # Infrastructure and Kubernetes manifests └── .github/ # CI/CD workflows and templates
Location:
apps/backend/
Modular Structure (
src/modules/):
ClaimsService.processNewClaim()ClaimsGateway emits newClaim and claimUpdate eventsDatabase: Prisma ORM with PostgreSQL (
prisma/schema.prisma)
Real-time: Socket.IO WebSocket gateway for live claim updates to dashboard clients
Key Implementation: LangGraph agent with structured output using Zod schemas (
claims.state.ts)
Location:
apps/frontend/
App Router Structure (route groups for layout):
/(dashboard)/page.tsx - Main dashboard with KPIs and claims queue/(dashboard)/claims/page.tsx - Claims list with filtering/(dashboard)/claims/[id]/page.tsx - Claim detail view/(dashboard)/new-claim/page.tsx - Claim submission formKey Components:
components/claims/ - Claim-specific UI (status badges, filters, damage assessment)components/dashboard/ - Metrics, charts, KPI cards (Recharts)components/layout/ - Sidebar and header navigationForm Validation: React Hook Form + Zod schemas Real-time: Socket.IO client for live updates
AI Service (
services/ai-service/, port 8000):
/assess-damage - Damage assessment from photos/descriptions/calculate-settlement - Settlement calculations/check-policy-eligibility - Policy coverage validation/assess-vehicle-value - Vehicle valuationETL Service (
services/etl-service/):
# Install all dependencies (from root) pnpm install # Start PostgreSQL docker-compose up -d postgres # Generate Prisma client and run migrations cd apps/backend pnpm run postinstall npx prisma migrate dev
# All services with Docker Compose (recommended) docker-compose up -d # Individual services (from root) pnpm dev # Backend + Frontend together pnpm --filter backend start:dev # Backend only pnpm --filter frontend dev # Frontend only # AI Service (from services/ai-service/) uvicorn src.main:app --reload --port 8000 # ETL Service (from services/etl-service/) python -m src.etl.api.main
# From apps/backend/ npx prisma studio # Open GUI npx prisma migrate dev --name <name> # Create migration npx prisma generate # Regenerate client
# Root level pnpm test # All workspaces pnpm test:backend # Backend only pnpm test:frontend # Frontend only # Backend (from apps/backend/) pnpm test # Unit tests pnpm run test:watch # Watch mode pnpm run test:e2e # E2E tests # Python services cd services/ai-service && pytest tests/
# Root level (uses config/ directory) pnpm lint # Run ESLint pnpm lint:fix # Fix ESLint issues pnpm format # Format with Prettier pnpm format:check # Check formatting
# From root pnpm build # All workspaces # Individual (from respective directories) pnpm run build
/api/v1/claims with claim dataClaimsService.processNewClaim() initializes agent state with claim inputclaims.service.ts:76-83)newClaim event to all connected dashboard clientsclaims.state.ts using ZodwithStructuredOutput() for type-safe AI responsesClaimsGateway in claims modulenewClaim, claimUpdateDATABASE_URL - PostgreSQL connection (default: postgresql://devuser:devpassword@localhost:5432/clem_ai_db)GOOGLE_API_KEY - Google Gemini API key (required for AI)PORT - Optional, defaults to 3000MINIO_ENDPOINT, MINIO_ACCESS_KEY, MINIO_SECRET_KEY - S3 storageNEXT_PUBLIC_API_URL - Backend API URL (default: http://localhost:3000)GOOGLE_API_KEY - For AI operationsDATABASE_URL - PostgreSQL connectionSee
.env.example and .env.production.example for complete examples.
All configuration files are in
config/:
docker-compose.dev.yml / docker-compose.prod.yml - Docker configurationseslint.config.mjs - ESLint rules.prettierrc / .prettierignore - Prettier configuration.lintstagedrc.json - Pre-commit hooks.editorconfig - Editor settingsMakefile - Common development tasksnpx prisma migrate dev or npx prisma generate(dashboard) for consistent layoutClaimsService.buildAgent()