# 🧠 NAP-DMS Agent Skills (v1.8.6) ไฟล์นี้กำหนดทักษะและความสามารถเฉพาะทางของ Document Intelligence Engine สำหรับโครงการ LCBP3 v1.8.6 เพื่อรักษามาตรฐานสูงสุดด้าน Security และ Data Integrity **Status**: Production Ready | **Last Updated**: 2026-04-14 | **Total Skills**: 20 --- ## 🏗️ Architectural & Data Integrity - **Identifier Strategy Mastery (ADR-019):** - บังคับใช้ **UUIDv7** เป็น Public ID ใน API และ URL เสมอ - ตรวจสอบและป้องกันการใช้ `parseInt()`, `Number()`, หรือตัวดำเนินการทางคณิตศาสตร์ (`+`) กับ UUID - ตรวจสอบว่า Entity มีการใช้ `@Exclude()` บน Primary Key ที่เป็น `INT AUTO_INCREMENT` เพื่อไม่ให้หลุดออกไปยัง API - **Strict Validation Engine:** - บังคับใช้ **Zod** สำหรับการทำ Form Validation ฝั่ง Frontend - บังคับใช้ **class-validator** สำหรับ Backend DTOs - ตรวจสอบการส่ง **Idempotency-Key** ใน Header สำหรับทุก Mutation Request (POST/PUT/PATCH) ## ⚙️ Workflow & Concurrency Control - **DMS Workflow Engine Proficiency:** - มีความเชี่ยวชาญใน **DSL-based state machines**; ตรวจสอบทุกการเปลี่ยนสถานะเอกสารเทียบกับกฎใน DSL Parser เสมอ - ป้องกันการอนุมัติซ้ำซ้อนโดยการตรวจสอบสถานะปัจจุบันจากฐานข้อมูลก่อนเริ่ม Logic การเปลี่ยน State ทุกครั้ง - **Collision-Free Numbering (ADR-002):** - ใช้ทักษะการทำ **Distributed Locking** ผ่าน **Redis Redlock** ร่วมกับ TypeORM `@VersionColumn` สำหรับการเจนเลขที่เอกสาร (Document Numbering) - ห้ามเจนเลขโดยใช้ Logic ฝั่ง Application เพียงอย่างเดียวเด็ดขาด - **Asynchronous Task Orchestration (ADR-008):** - แยกงานที่ใช้เวลานาน (เช่น การส่ง Notification, การทำ Correspondence Routing) ไปทำที่ **BullMQ** เท่านั้น ## 🛡️ Security & Integrity Audit - **RBAC Matrix Enforcement (ADR-016):** - บังคับใช้ **JwtAuthGuard**, **RolesGuard** และ **CASL AbilityFactory** ในทุก Controller ใหม่ - ตรวจสอบการมีอยู่ของ `AuditLogInterceptor` สำหรับทุก API ที่มีการเปลี่ยนแปลงข้อมูล - **Secure File Lifecycle:** - ใช้ Logic **Two-Phase Upload**: Upload → Temp → ClamAV Scan → Commit → Permanent - บังคับใช้ Whitelist File Extension และ Max Size 50MB ตามที่กำหนดใน ADR-016 ## 🤖 AI Boundary & Privacy (ADR-018/020) - **Data Isolation:** - รับรองว่าฟีเจอร์ AI จะรันผ่าน **Ollama (On-premises)** เท่านั้น และไม่ส่งข้อมูลออกนอกเน็ตเวิร์ก - AI จะเข้าถึงข้อมูลผ่าน **DMS API** เท่านั้น (ห้ามต่อ Database หรือ Storage โดยตรง) - **Human-in-the-loop Validation:** - ออกแบบให้ผลลัพธ์จาก AI (เช่น การดึง Metadata เอกสาร) ต้องผ่านการยืนยันจาก User ก่อนบันทึกลงระบบเสมอ ## 🏷️ Domain Terminology Consistency - **Term Correction:** แก้ไขคำศัพท์ให้ถูกต้องตาม Glossary ทันที (เช่น เปลี่ยน Letter เป็น **Correspondence**, Approval Flow เป็น **Workflow Engine**) - **i18n Guidelines:** ห้ามเขียน Thai/English String ลงใน Component โดยตรง ต้องใช้ i18n Keys เท่านั้น --- ## 🔄 Skill Dependency Matrix | Skill | Dependencies | Handoffs To | Notes | | -------------------------- | -------------------- | -------------------------------- | ----------------------------- | | **speckit-constitution** | None | speckit-specify | Project governance foundation | | **speckit-specify** | speckit-constitution | speckit-clarify | Feature specification | | **speckit-clarify** | speckit-specify | speckit-plan | Resolve ambiguities | | **speckit-plan** | speckit-clarify | speckit-tasks, speckit-checklist | Technical design | | **speckit-tasks** | speckit-plan | speckit-implement | Task breakdown | | **speckit-implement** | speckit-tasks | speckit-checker | Code implementation | | **speckit-checker** | speckit-implement | speckit-tester | Static analysis | | **speckit-tester** | speckit-checker | speckit-reviewer | Test execution | | **speckit-reviewer** | speckit-tester | speckit-validate | Code review | | **speckit-validate** | speckit-reviewer | None | Requirements validation | | **speckit-analyze** | speckit-tasks | None | Cross-artifact consistency | | **speckit-migrate** | None | speckit-plan | Legacy code import | | **speckit-quizme** | speckit-specify | speckit-plan | Logic validation | | **speckit-diff** | None | speckit-plan | Version comparison | | **speckit-status** | None | None | Progress tracking | | **speckit-taskstoissues** | speckit-tasks | None | Issue sync | | **speckit-checklist** | speckit-plan | None | Requirements validation | | **nestjs-best-practices** | None | speckit-implement | Backend patterns | | **next-best-practices** | None | speckit-implement | Frontend patterns | | **speckit-security-audit** | None | speckit-reviewer | Security validation | --- ## 🛠️ Skill Health Monitoring ### Health Check Scripts - **Bash**: `./scripts/bash/audit-skills.sh` - Comprehensive skill health audit - **PowerShell**: `./scripts/powershell/audit-skills.ps1` - Windows equivalent ### Validation Scripts - **Version Check**: `./scripts/bash/validate-versions.sh` - Ensure version consistency - **Workflow Sync**: `./scripts/bash/sync-workflows.sh` - Verify workflow integration ### Health Metrics - **Total Skills**: 20 implemented - **Version Alignment**: v1.8.6 across all skills - **Template Coverage**: 100% for skills requiring templates - **Documentation**: Complete front matter and sections ### Maintenance Schedule - **Daily**: Run `audit-skills.sh` for health monitoring - **Weekly**: Run `validate-versions.sh` for version consistency - **Monthly**: Review skill dependencies and update documentation