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.
Primary Authority:
SCHOOL_ERP_MASTER_SPECIFICATION.md - The unified, industry-standard specification that supersedes all other documentation.
This file (CLAUDE.md): Quick reference for Claude Code users - development commands and basic patterns.
Legacy docs: Moved to
docs/legacy_instructions/ (archived, do not use).
npm run build - Compile TypeScript to JavaScript in dist/ directorynpm run dev - Run development server with TypeScript via ts-nodenpm start - Run production server from compiled JavaScriptnpm run test:contract - Run contract tests against OpenAPI specification (requires CONTRACT_TOKEN env var)npm run gen:contract:cases - Generate contract test case skeletons from OpenAPI specnpm run load:k6:login - Run k6 load test for login endpointnpm run load:k6:admission - Run k6 load test for admission flownpm run load:k6:receipt - Run k6 load test for fee receipt flownpm run load:k6:attendance - Run k6 load test for attendance endpointsnpm run load:k6:reports - Run k6 load test for reporting endpointsnpm run verify:tracker - Verify consistency between implementation tracker and OpenAPI specThis is a School ERP system built with a modular, activity-driven architecture implementing 66 specific activities across 9 modules. The system follows strict patterns for consistency and maintainability.
Each module follows the exact same pattern:
src/modules/{module}/ ├── controllers.ts # HTTP request handlers (one per activity) ├── services.ts # Business logic layer ├── repos.ts # Data access layer with parameterized queries ├── dtos.ts # Zod validation schemas ├── validators.ts # Re-exports of DTOs for clarity └── index.ts # Barrel exports
Modules:
data, setup, auth, user, stud, fees, attd, rept, dash, comm
FEES-05-006, AUTH-02-001)docs/ai_coder_rest_grouped_66.mddependency_ordered_build_and_test_plan.mdapi/openapi_rest_grouped_66.yaml is the authoritative API contractdocs/ai_coder_rest_grouped_66.md contains per-endpoint RBAC, DB entities, dependencies, and DTO namesAll endpoints must return this exact error envelope:
{ "success": false, "error": { "code": "ERROR_CODE", "message": "Human readable message", "details": {}, "traceId": "optional" } }
Success responses:
{ "success": true, "data": <payload> }
{ActivityId}Request (e.g., FEES05006Request){ActivityId}Response (e.g., FEES05006Response).strict() in Zod schemas to reject unknown properties403 FORBIDDEN on permission denialPERMISSION_DENIED audit eventactivityId, userId, trustId, entityType, entityId, ip, ua, created_atmigrations/ directorysystem_*, trusts, migration_versionsschools, users, students, fee_*, attendance_*, etc.tests/contract/cases.json for each activityvalidateAgainstOpenAPI: true once DTOs are stablestrict: true mode (already configured)any types allowedsrc/lib/guards.tsz.infer<typeof Schema>/auth/* and /fees/* endpoints_head.ejs, _nav.ejs, _alerts.ejs, _pagination.ejsdocs/ai_coder_rest_grouped_66.mddependency_ordered_build_and_test_plan.md)dtos.tsfeat(ACTIVITY-ID): descriptionnpm irbac/RBAC_MATRIX.mdSCHOOL_ERP_MASTER_SPECIFICATION.md - THE SINGLE SOURCE OF TRUTH for all developmentDEPENDENCIES_AND_PRE_FLIGHT.md - Dependency installation and pre-flight checksdocs/legacy_instructions/ - Archived conflicting documentation (DO NOT USE)docker-compose.ymlops/deploy.sh for deployment/api/v1/healthtaskkill //F //IM node.exe - This kills all Node.js processes including the current sessionrun_in_background: trueBashOutput with specific bash ID to monitor outputKillBash with specific bash ID to terminate processes1. Start: Bash("npm run dev", run_in_background: true) → returns bash_id 2. Monitor: BashOutput(bash_id) to check output 3. Terminate: KillBash(bash_id) when done