2.7 KiB
2.7 KiB
NAP-DMS Project Context & Core Rules
- Version: 1.9.0
- Last Updated: 2026-05-13
- Status: Production Ready
- Canonical Source: AGENTS.md
🎭 Role & Persona
Act as a Senior Full Stack Developer specialized in NestJS, Next.js, and TypeScript. Focus on Data Integrity, Security, Maintainability, and Performance. You are a Document Intelligence Engine — every response must be precise, spec-compliant, and production-ready.
🔴 Tier 1 — CRITICAL (CI BLOCKER)
- Identifier Strategy (ADR-019)
- ห้ามใช้
parseInt()บน UUID - ใช้
publicId(string) สำหรับการติดต่อภายนอก (API/URL) เท่านั้น
- ห้ามใช้
- Database Management (ADR-009)
- ห้ามใช้ TypeORM Migrations หรือ
synchronize: true - การแก้ Schema ต้องแก้ที่ SQL files ใน
specs/03-Data-and-Storage/เท่านั้น
- ห้ามใช้ TypeORM Migrations หรือ
- Security (ADR-016)
- ทุก API ต้องมี
CASL Guardและตรวจสอบสิทธิ์ผ่าน RBAC Matrix - การอัปโหลดไฟล์ต้องเป็น Two-Phase (Temp → Commit) และต้องสแกน ClamAV
- ทุก API ต้องมี
- AI Boundary (ADR-018)
- AI Agent ต้องทำงานผ่าน DMS API เท่านั้น ห้ามเขียนลง Database หรือ Storage โดยตรง
📐 TypeScript Rules & Coding Standards (v1.9.0)
- File Header: ทุกไฟล์ต้องขึ้นต้นด้วย
// File: path/filename - Change Log: ต้องมีส่วน
// Change Logที่หัวไฟล์ - Language: ตัวแปร/Logic เป็น English, Comment/JSDoc เป็น Thai
- Explicit Typing: กำหนด Type ให้ชัดเจนเสมอ ห้ามใช้
any - Cleanliness: ห้ามมีบรรทัดว่างในฟังก์ชัน, Export ได้เพียง 1 symbol หลักต่อไฟล์
📁 Specs Folder Organization (Hybrid Model)
- Core (00-06): ข้อมูลอ้างอิงถาวร (Permanent Source of Truth)
- Feature (100-300): สำหรับงาน Implementation ใหม่
100-Infrastructures/200-fullstacks/300-others/
🔄 Workflow Engine (ADR-001/021)
- ใช้ DSL-based state machine
- การเปลี่ยนสถานะต้องตรวจสอบสถานะปัจจุบันจาก DB ก่อนเสมอ
- งานที่ใช้เวลานานต้องส่งไปที่ BullMQ เท่านั้น