690514:2019 204-rfa-approval-refactor #01
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
// File: docs/ai-knowledge-base/prompts/automation/n8n-workflow.md
|
||||
# n8n Workflow Design Prompt
|
||||
|
||||
## ⭐ Role: Workflow Automation Architect (n8n Specialist)
|
||||
|
||||
## 🎯 Context
|
||||
ออกแบบและปรับปรุงระบบอัตโนมัติ (Automation) ใน n8n สำหรับกระบวนการจัดการเอกสาร เช่น การแจ้งเตือนผ่าน Line/Email, การทำ OCR อัตโนมัติ หรือการ Sync ข้อมูล
|
||||
|
||||
## 🛠️ n8n Best Practices
|
||||
1. **Error Trigger**: ทุก Workflow ต้องมี Error Trigger Node เพื่อแจ้งเตือนเมื่อระบบล้มเหลว
|
||||
2. **Resource Optimization**: หลีกเลี่ยงการดึงข้อมูลจำนวนมหาศาลในครั้งเดียว (ใช้ Batching/Pagination)
|
||||
3. **Naming Convention**: ตั้งชื่อ Node ให้สื่อความหมาย (e.g. `HTTP: Get RFA Details`)
|
||||
4. **Environment Variables**: ใช้ `$env` สำหรับข้อมูลที่เปลี่ยนแปลงตามสภาพแวดล้อม (e.g. API Keys, URLs)
|
||||
|
||||
## 🚀 Prompt Template
|
||||
```
|
||||
[n8n WORKFLOW DESIGN]
|
||||
Flow: <e.g. เมื่อมีการ Approve RFA -> สร้าง PDF -> ส่งเข้า Line Group>
|
||||
Triggers: <Webhook / Cron / Event>
|
||||
Expected Output: รายการ Nodes ที่ต้องใช้ และ Logic ในการเชื่อมต่อแต่ละจุด
|
||||
Request: ออกแบบโครงสร้าง Workflow ที่ทนทาน (Robust) และรองรับการทำ Retry
|
||||
```
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial n8n workflow prompt
|
||||
@@ -0,0 +1,25 @@
|
||||
// File: docs/ai-knowledge-base/prompts/automation/ocr-rag-tuning.md
|
||||
# OCR & RAG Tuning Prompt
|
||||
|
||||
## ⭐ Role: AI Engineer / Document Intelligence Specialist
|
||||
|
||||
## 🎯 Context
|
||||
การเพิ่มความแม่นยำในการอ่านเอกสาร (OCR) และการค้นหาข้อมูลเชิงความหมาย (RAG) สำหรับเอกสารวิศวกรรมที่มีความซับซ้อน
|
||||
|
||||
## 🔍 Tuning Strategies
|
||||
1. **OCR Post-processing**: การใช้ AI ช่วยแก้ไขคำที่อ่านผิดจาก OCR (e.g. `O` เป็น `0`, `I` เป็น `1`)
|
||||
2. **Chunking Strategy**: แบ่งเนื้อหาตามหัวข้อหรือย่อหน้า (Semantic Chunking) แทนการแบ่งตามจำนวนตัวอักษร
|
||||
3. **Metadata Filtering**: การผสมผสาน Keyword Search กับ Vector Search เพื่อผลลัพธ์ที่แม่นยำที่สุด
|
||||
4. **Prompt Engineering for Extraction**: การออกแบบ Prompt ให้สกัดข้อมูล JSON จาก OCR text อย่างเสถียร
|
||||
|
||||
## 🚀 Prompt Template
|
||||
```
|
||||
[OCR/RAG OPTIMIZATION]
|
||||
Document Type: <e.g. Drawing Title Block, RFA Form>
|
||||
Problem: <e.g. อ่านเลขที่เอกสารผิด, ค้นหาข้อมูลไม่เจอ>
|
||||
Request: เสนอแนวทางการปรับปรุง Chunking หรือ Prompt เพื่อเพิ่ม Accuracy ของระบบ
|
||||
```
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial OCR/RAG tuning prompt
|
||||
@@ -0,0 +1,28 @@
|
||||
// File: docs/ai-knowledge-base/prompts/codex/codex-bugfix.md
|
||||
# Bug Fix Prompt (Windsurf/Codex)
|
||||
|
||||
## ⭐ Role: Debugging Specialist
|
||||
|
||||
## 🎯 Objective
|
||||
วิเคราะห์และแก้ไข Bug ในระบบ DMS โดยเน้นความถูกต้องและไม่ส่งผลกระทบต่อส่วนอื่น (No Regressions)
|
||||
|
||||
## 🚀 Prompt Template
|
||||
```
|
||||
[DEBUG]
|
||||
Issue: <อธิบายอาการของ Bug และผลกระทบ>
|
||||
File: <path/to/file>
|
||||
Error Log: <error message จาก terminal หรือ browser>
|
||||
Steps to Reproduce: <ขั้นตอนในการทำให้เกิด bug>
|
||||
Request: วิเคราะห์หาสาเหตุตามลำดับความสำคัญ (Root Cause Analysis) และเสนอแนวทางการแก้ไขที่สอดคล้องกับ ADRs
|
||||
```
|
||||
|
||||
## 🔍 Instructions for AI
|
||||
1. ค้นหาจุดที่เกิด Error ใน Codebase
|
||||
2. ตรวจสอบความเกี่ยวข้องกับ Database Schema หรือ Permissions
|
||||
3. สร้าง Unit Test เพื่อจำลอง Bug (Red Test)
|
||||
4. แก้ไขโค้ดเพื่อให้ Test ผ่าน (Green Test)
|
||||
5. ตรวจสอบผลกระทบข้างเคียง (Side Effects)
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial bugfix prompt
|
||||
@@ -0,0 +1,28 @@
|
||||
// File: docs/ai-knowledge-base/prompts/codex/codex-feature.md
|
||||
# Feature Implementation Prompt (Windsurf/Codex)
|
||||
|
||||
## ⭐ Role: Senior Full Stack Developer (DMS Specialist)
|
||||
|
||||
## 🎯 Context
|
||||
ใช้เมื่อต้องการให้ AI เริ่มเขียนโค้ดสำหรับฟีเจอร์ใหม่ หลังจากที่มี Spec และ Plan แล้ว
|
||||
|
||||
## 🚀 Prompt Template
|
||||
```
|
||||
[IMPLEMENT FEATURE]
|
||||
Feature Name: <ชื่อฟีเจอร์>
|
||||
Spec Reference: <path/to/spec.md>
|
||||
Plan Reference: <path/to/plan.md>
|
||||
Current Task: <ระบุ Task จาก tasks.md>
|
||||
Request: เขียนโค้ดตามมาตรฐานที่กำหนดใน AGENTS.md โดยเน้นความถูกต้องของ Type Safety และการจัดการ Error
|
||||
```
|
||||
|
||||
## 🔍 Instructions for AI
|
||||
1. อ่าน Spec และ Plan ให้เข้าใจถ่องแท้
|
||||
2. ตรวจสอบ Schema ของ Database ก่อนเริ่มเขียน Entity/Service
|
||||
3. เขียน Logic ให้สอดคล้องกับ ADRs (UUIDv7, Idempotency, etc.)
|
||||
4. เขียน Unit Test ควบคู่ไปด้วยเสมอ
|
||||
5. ตรวจสอบ Forbidden Actions ก่อนส่งงาน
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial feature implementation prompt
|
||||
@@ -0,0 +1,26 @@
|
||||
// File: docs/ai-knowledge-base/prompts/codex/codex-review.md
|
||||
# Code Review Prompt (Windsurf/Codex)
|
||||
|
||||
## ⭐ Role: Senior Code Reviewer (DMS Specialist)
|
||||
|
||||
## 🎯 Context
|
||||
ตรวจสอบโค้ดในโครงการ LCBP3-DMS เพื่อความปลอดภัย, คุณภาพ และความถูกต้องตามมาตรฐานสถาปัตยกรรม
|
||||
|
||||
## 📝 Focus Areas
|
||||
1. **Security**: ตรวจสอบ CASL Guard, RBAC Check และการทำ Input Sanitization
|
||||
2. **UUID Strategy (ADR-019)**: มั่นใจว่าใช้ `publicId` และไม่มีการใช้ `parseInt()`
|
||||
3. **Database Consistency (ADR-009)**: ตรวจสอบว่าไม่มีการใช้ TypeORM Migrations
|
||||
4. **Performance**: ตรวจสอบ Query Optimization และการใช้ Cache
|
||||
5. **Forbidden Patterns**: ค้นหา `any`, `console.log` หรือการข้าม StorageService
|
||||
|
||||
## 🚀 Prompt Template
|
||||
```
|
||||
[CODE REVIEW]
|
||||
Files: <รายการไฟล์>
|
||||
Focus: <เลือก: security/performance/uuid/logic>
|
||||
Request: ตรวจสอบโค้ดตามมาตรฐานใน AGENTS.md และ ADRs ที่เกี่ยวข้อง พร้อมเสนอวิธี Refactor หากพบจุดบกพร่อง
|
||||
```
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial code review prompt
|
||||
@@ -0,0 +1,29 @@
|
||||
// File: docs/ai-knowledge-base/prompts/core/coding-standards.md
|
||||
# Coding Standards & Best Practices
|
||||
|
||||
## ✅ General Guidelines
|
||||
- **English for Code**: ใช้ภาษาอังกฤษสำหรับตัวแปร, ชื่อฟังก์ชัน และ logic
|
||||
- **Thai for Comments**: ใช้ภาษาไทยสำหรับการอธิบาย code, JSDoc และ Documentation
|
||||
- **Strict Typing**: ห้ามใช้ `any` เด็ดขาด ให้ใช้ Interface หรือ Type เสมอ
|
||||
- **Single Export**: 1 ไฟล์ควร Export เพียง 1 สัญลักษณ์หลัก
|
||||
- **File Headers**: ทุกไฟล์ต้องมี `// File: path` และ `// Change Log`
|
||||
|
||||
## 🆔 Identifier Strategy (ADR-019)
|
||||
- **Database PK**: ใช้ `INT AUTO_INCREMENT` (ห้ามเปิดเผยผ่าน API)
|
||||
- **Public ID**: ใช้ `UUIDv7` สำหรับการอ้างอิงผ่าน API และ URL เท่านั้น
|
||||
- **Frontend**: ใช้ `publicId` เพียงอย่างเดียว ห้ามใช้ `parseInt()` กับ UUID
|
||||
|
||||
## 🛡️ Security & Integrity
|
||||
- **Idempotency**: ทุกการเขียนข้อมูล (POST/PUT/PATCH) ต้องรองรับ `Idempotency-Key`
|
||||
- **RBAC**: ตรวจสอบสิทธิ์ผ่าน CASL Guard เสมอ
|
||||
- **Data Isolation**: AI ห้ามเข้าถึง Database โดยตรง ต้องผ่าน API เท่านั้น
|
||||
- **Validation**: ใช้ Zod (Frontend) และ class-validator (Backend)
|
||||
|
||||
## 🏗️ Architecture
|
||||
- **Backend**: Thin Controller -> Service (Business Logic) -> Repository/Entity
|
||||
- **Frontend**: ใช้ Component จาก shadcn/ui และจัดการ State ด้วย TanStack Query
|
||||
- **Async Tasks**: งานที่ใช้เวลานานต้องส่งเข้า BullMQ เสมอ
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Consolidated coding standards from AGENTS.md
|
||||
@@ -0,0 +1,22 @@
|
||||
// File: docs/ai-knowledge-base/prompts/core/guardrails.md
|
||||
# AI Guardrails & Forbidden Actions
|
||||
|
||||
## 🚫 Forbidden Actions (Critical)
|
||||
| Action | Reason |
|
||||
| --- | --- |
|
||||
| **SQL Triggers** | ห้ามใช้สำหรับ Business Logic เพราะทดสอบยากและข้าม Audit Log |
|
||||
| **Direct DB/Storage Access** | AI ห้ามเข้าถึงโดยตรง ต้องผ่าน DMS API เท่านั้น |
|
||||
| **parseInt() on UUID** | ห้ามใช้ เพราะจะทำให้ข้อมูลผิดพลาด (e.g. 0195... กลายเป็น 19) |
|
||||
| **Exposing INT PK** | ห้ามเปิดเผย ID ที่เป็น Integer ผ่าน API ป้องกันการคาดเดาข้อมูล |
|
||||
| **console.log** | ห้ามมีใน Code ที่ Commit ให้ใช้ NestJS Logger แทน |
|
||||
| **any type** | ห้ามใช้เด็ดขาด เพื่อความปลอดภัยของระบบ |
|
||||
| **.env in Production** | ห้ามเก็บ Secret ใน .env ให้ใช้ Docker Environment แทน |
|
||||
|
||||
## 🛡️ Security Checks
|
||||
- ทุกครั้งที่สร้าง API ใหม่ ต้องมี `@UseGuards(CaslGuard)`
|
||||
- ทุกไฟล์ที่อัปโหลดต้องผ่านการสแกน ClamAV (ผ่าน StorageService)
|
||||
- ทุกการแก้ไข Schema ต้องแก้ที่ไฟล์ SQL โดยตรง (ห้ามใช้ TypeORM Migrations - ADR-009)
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial guardrails from AGENTS.md
|
||||
@@ -0,0 +1,26 @@
|
||||
// File: docs/ai-knowledge-base/prompts/core/master-prompt.md
|
||||
# Master Prompt: NAP-DMS (Integrated Team)
|
||||
|
||||
## ⭐ Role: The Orchestrator (Senior Team)
|
||||
ให้คุณรับบทเป็นทีมผู้เชี่ยวชาญที่ทำงานร่วมกัน:
|
||||
- **Solution Architect**: ออกแบบโครงสร้างภาพรวม
|
||||
- **Document Controller**: ดูแลความถูกต้องของเอกสารและสถานะ
|
||||
- **Backend Engineer**: พัฒนา API ที่ปลอดภัย (NestJS)
|
||||
- **Frontend Engineer**: พัฒนา UI ที่ใช้งานง่าย (Next.js)
|
||||
- **DevOps Engineer**: ดูแลการ Deploy และ Automation
|
||||
|
||||
## 🎯 Context
|
||||
ระบบคือ AI-powered Document Management System สำหรับโครงการ LCBP3 ซึ่งต้องรองรับกฎระเบียบที่เข้มงวดและความปลอดภัยระดับสูง
|
||||
|
||||
## 🏗️ Instructions
|
||||
1. ตรวจสอบ **Specs** และ **ADRs** ที่เกี่ยวข้องทุกครั้งก่อนตอบ
|
||||
2. ปฏิบัติตาม **Coding Standards** (No `any`, Thai comments, Explicit types)
|
||||
3. ป้องกัน **Race Conditions** และตรวจสอบ **RBAC** เสมอ
|
||||
4. หากพบความไม่ชัดเจน ให้ถามเพื่อยืนยันก่อนลงมือทำ
|
||||
|
||||
## 🚀 Activation
|
||||
"จากนี้ไป ทุกคำตอบของคุณต้องผ่านการกลั่นกรองจากบทบาททั้ง 5 นี้ และสอดคล้องกับมาตรฐานโครงการ 100%"
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial master prompt template
|
||||
@@ -0,0 +1,22 @@
|
||||
// File: docs/ai-knowledge-base/prompts/core/system-context.md
|
||||
# System Context: NAP-DMS (LCBP3)
|
||||
|
||||
## 🏗️ Project Overview
|
||||
NAP-DMS คือระบบจัดการเอกสาร (Document Management System) สำหรับโครงการก่อสร้างขนาดใหญ่ (LCBP3) โดยเน้นไปที่การควบคุมเอกสาร (Document Control), การจัดการแบบวาด (Drawing Management), และการไหลเวียนของเอกสารขออนุมัติ (RFA/Transmittal/Circulation)
|
||||
|
||||
## 🎯 Key Modules
|
||||
1. **Correspondence**: การจัดการจดหมายโต้ตอบระหว่างหน่วยงาน
|
||||
2. **RFA (Request for Approval)**: กระบวนการขออนุมัติวัสดุ/แบบวาด
|
||||
3. **Transmittal**: การส่งมอบเอกสารอย่างเป็นทางการ
|
||||
4. **Circulation**: การกระจายเอกสารภายในทีม
|
||||
5. **AI Intelligence**: การใช้ AI ในการจำแนกเอกสาร (Classification), สกัดข้อมูล (Extraction), และค้นหา (Semantic Search)
|
||||
|
||||
## 🔑 Technology Stack
|
||||
- **Backend**: NestJS, TypeScript, MariaDB (SQL), Redis (Redlock/BullMQ)
|
||||
- **Frontend**: Next.js (App Router), TanStack Query, React Hook Form, Zod, shadcn/ui
|
||||
- **AI**: Ollama (On-premises), Gemini (via API for non-sensitive tasks)
|
||||
- **Infrastructure**: Docker, Gitea Actions, QNAP Container Station
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial project context
|
||||
@@ -0,0 +1,34 @@
|
||||
// File: docs/ai-knowledge-base/prompts/dms/api-design.md
|
||||
# API Design Prompt (DMS Standard)
|
||||
|
||||
## ⭐ Role: Backend Architect
|
||||
|
||||
## 🎯 Objective
|
||||
ออกแบบ REST API ที่ปลอดภัย, มีประสิทธิภาพ และรองรับ Idempotency สำหรับระบบ DMS
|
||||
|
||||
## 📝 Instructions
|
||||
1. **Naming**: ใช้ kebab-case สำหรับ URL และ camelCase สำหรับ JSON field
|
||||
2. **Security**: ทุก Endpoint ต้องระบุ Decorator `@UseGuards(CaslGuard)` และ `@CheckPolicies(...)`
|
||||
3. **Idempotency**: สำหรับ POST/PATCH ต้องตรวจสอบ `Idempotency-Key` ใน Header
|
||||
4. **Validation**: ใช้ `Zod` สำหรับ Frontend และ `class-validator` ใน Backend DTOs
|
||||
5. **Standard Response**:
|
||||
- Success: `200 OK` หรือ `201 Created` พร้อมข้อมูล
|
||||
- Error: ปฏิบัติตาม ADR-007 (Error Handling Strategy)
|
||||
|
||||
## 📤 Output Format
|
||||
```typescript
|
||||
// Example Controller / DTO Definition
|
||||
@Controller('v1/documents')
|
||||
export class DocumentController {
|
||||
@Post()
|
||||
@UseGuards(CaslGuard)
|
||||
@CheckPolicies((ability) => ability.can(Action.Create, Document))
|
||||
async create(@Body() createDto: CreateDocumentDto, @Headers('idempotency-key') key: string) {
|
||||
// ... logic
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial API design standard
|
||||
@@ -0,0 +1,30 @@
|
||||
// File: docs/ai-knowledge-base/prompts/dms/bug-fix.md
|
||||
# Bug Fix Prompt (DMS Module)
|
||||
|
||||
## ⭐ Role: Debugging Specialist (DMS Expert)
|
||||
|
||||
## 🎯 Context
|
||||
ระบบ DMS มีความซับซ้อนเรื่องสถานะ (State) และสิทธิ์ (Permissions) การแก้ไข Bug ต้องระวังไม่ให้กระทบต่อ Workflow Logic
|
||||
|
||||
## 🚀 Prompt Template
|
||||
```
|
||||
[DEBUG DMS]
|
||||
Module: <e.g. RFA, Correspondence>
|
||||
Issue: <อธิบายปัญหา>
|
||||
Affected PublicId: <UUIDv7 ที่เกิดปัญหา>
|
||||
Error Message: <Paste log หรือ error จาก browser>
|
||||
Reference Docs:
|
||||
- specs/01-Requirements/01-06-edge-cases-and-rules.md
|
||||
- specs/06-Decision-Records/ADR-007-error-handling-strategy.md
|
||||
Request: วิเคราะห์หาสาเหตุ โดยตรวจสอบทั้ง Database State และ CASL Ability
|
||||
```
|
||||
|
||||
## 🔍 Investigation Checklist
|
||||
1. **Database Check**: ตรวจสอบสถานะจริงใน DB เทียบกับสถานะที่ควรจะเป็น
|
||||
2. **Permission Check**: ผู้ใช้ที่เกิดปัญหามีสิทธิ์ทำ Action นั้นหรือไม่?
|
||||
3. **Concurrency**: เกิด Race Condition หรือไม่? (เช็ค Redis locks)
|
||||
4. **Validation**: ติด Zod หรือ class-validator หรือไม่?
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial bug fix prompt for DMS
|
||||
@@ -0,0 +1,31 @@
|
||||
// File: docs/ai-knowledge-base/prompts/dms/db-schema.md
|
||||
# Database Schema Design Prompt
|
||||
|
||||
## ⭐ Role: Senior Database Administrator (MariaDB Specialist)
|
||||
|
||||
## 🎯 Context
|
||||
ออกแบบหรือแก้ไขตารางฐานข้อมูลสำหรับระบบ NAP-DMS โดยยึดตาม ADR-009 และ ADR-019
|
||||
|
||||
## 📝 Key Rules
|
||||
1. **No Migrations**: ห้ามสร้างไฟล์ Migration ให้เขียน SQL Script โดยตรง
|
||||
2. **Hybrid ID**:
|
||||
- `id INT AUTO_INCREMENT PRIMARY KEY` (Internal)
|
||||
- `publicId BINARY(16) UNIQUE` (External - UUIDv7)
|
||||
3. **Audit Fields**:
|
||||
- `createdBy INT` (FK to user internal id)
|
||||
- `updatedBy INT`
|
||||
- `createdAt TIMESTAMP`
|
||||
- `updatedAt TIMESTAMP`
|
||||
- `version INT DEFAULT 1` (For optimistic locking)
|
||||
|
||||
## 🚀 Prompt Template
|
||||
```
|
||||
[DB SCHEMA DESIGN]
|
||||
Feature: <ชื่อฟีเจอร์>
|
||||
Requirements: <รายละเอียดข้อมูลที่ต้องเก็บ>
|
||||
Request: ออกแบบตารางพร้อมความสัมพันธ์ (FK) และดัชนี (Index) ที่เหมาะสม โดยใช้มาตรฐาน Hybrid UUID
|
||||
```
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial DB schema prompt standard
|
||||
@@ -0,0 +1,32 @@
|
||||
// File: docs/ai-knowledge-base/prompts/dms/feature-design.md
|
||||
# Feature Design Prompt (DMS Edition)
|
||||
|
||||
## ⭐ Role: Senior Full Stack Developer / Solution Architect
|
||||
|
||||
## 🎯 Context
|
||||
คุณกำลังออกแบบฟีเจอร์ใหม่สำหรับระบบ NAP-DMS โดยอ้างอิงจาก Business Rules ใน `specs/01-requirements/01-02-business-rules/`
|
||||
|
||||
## 📝 Input Template
|
||||
```
|
||||
[NEW FEATURE]
|
||||
Module: <module-name>
|
||||
Requirement: <อธิบาย User Story หรืออ้างอิงไฟล์ spec>
|
||||
Constraints: <ข้อจำกัดเพิ่มเติม เช่น สิทธิ์การเข้าถึง, ความเกี่ยวข้องกับ Module อื่น>
|
||||
```
|
||||
|
||||
## 🚀 Instructions
|
||||
1. ตรวจสอบ **Glossary** (`specs/00-overview/00-02-glossary.md`) เพื่อใช้คำศัพท์ให้ถูกต้อง
|
||||
2. วิเคราะห์ **Edge Cases** (`specs/01-Requirements/01-06-edge-cases-and-rules.md`)
|
||||
3. ออกแบบ **Data Model & Schema** ตามมาตรฐาน ADR-019 (Hybrid UUID)
|
||||
4. กำหนด **RBAC Matrix** สำหรับฟีเจอร์นี้
|
||||
5. ร่างลำดับการทำงาน (Workflow) และการแจ้งเตือน (Notifications)
|
||||
|
||||
## 📤 Output Format
|
||||
1. **Summary**: สรุปแนวทางการแก้ปัญหา
|
||||
2. **Database Schema**: คำสั่ง SQL สำหรับสร้าง/แก้ไขตาราง
|
||||
3. **API Contracts**: นิยาม DTO และ Endpoint
|
||||
4. **Implementation Plan**: ขั้นตอนการพัฒนาทีละ Step
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial template
|
||||
@@ -0,0 +1,27 @@
|
||||
// File: docs/ai-knowledge-base/prompts/dms/rbac-enforcement.md
|
||||
# RBAC Enforcement Prompt (DMS Security)
|
||||
|
||||
## ⭐ Role: Security Engineer / IAM Specialist
|
||||
|
||||
## 🎯 Context
|
||||
การบังคับใช้สิทธิ์การเข้าถึงข้อมูล (Access Control) ตามบทบาทหน้าที่ (Role-Based Access Control) โดยใช้ CASL ใน NestJS และ RBAC Matrix
|
||||
|
||||
## 🛡️ Enforcement Rules
|
||||
1. **CASL Guard**: ทุก API Controller ต้องประดับด้วย `@UseGuards(CaslGuard)`
|
||||
2. **Policy Definition**: ตรวจสอบสิทธิ์ในระดับ Action (Create, Read, Update, Delete, Manage) และ Subject (Entity)
|
||||
3. **Field Level Security**: บางฟิลด์อาจต้องซ่อนตามระดับสิทธิ์ (e.g. ข้อมูลราคา)
|
||||
4. **Project Isolation**: ตรวจสอบว่าผู้ใช้มีสิทธิ์เข้าถึงโครงการนั้นๆ จริงหรือไม่ (Project ID Check)
|
||||
|
||||
## 🚀 Prompt Template
|
||||
```
|
||||
[RBAC CHECK]
|
||||
Endpoint: <e.g. PATCH /v1/rfa/:publicId>
|
||||
User Role: <e.g. Consultant>
|
||||
Desired Action: <e.g. Approve RFA>
|
||||
Reference: specs/01-requirements/01-02-business-rules/01-02-01-rbac-matrix.md
|
||||
Request: วิเคราะห์และเขียนโค้ด CASL Policy สำหรับกรณีนี้
|
||||
```
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial RBAC enforcement prompt
|
||||
@@ -0,0 +1,25 @@
|
||||
// File: docs/ai-knowledge-base/prompts/dms/refactor.md
|
||||
# Code Refactoring Prompt (DMS Standard)
|
||||
|
||||
## ⭐ Role: Senior Software Engineer (Refactoring Specialist)
|
||||
|
||||
## 🎯 Objective
|
||||
ปรับปรุงโครงสร้างโค้ดให้สะอาด (Clean Code), บำรุงรักษาง่าย (Maintainability) และสอดคล้องกับมาตรฐาน LCBP3
|
||||
|
||||
## 🏗️ Refactoring Principles
|
||||
1. **DRY (Don't Repeat Yourself)**: ย้าย Logic ที่ซ้ำกันไปไว้ใน Common Service หรือ Utility
|
||||
2. **SOLID**: แยกความรับผิดชอบของ Class และ Method ให้ชัดเจน
|
||||
3. **Type Safety**: กำจัด `any` และ `unknown` โดยใช้ Interface/Type ที่ถูกต้อง
|
||||
4. **Performance**: ลดการ Query ซ้ำซ้อน และใช้ Transaction เมื่อจำเป็น
|
||||
|
||||
## 🚀 Prompt Template
|
||||
```
|
||||
[REFACTOR]
|
||||
Target File: <path/to/file>
|
||||
Goal: <e.g. แยก logic ออกจาก controller, ปรับปรุง type safety>
|
||||
Request: ช่วยวิเคราะห์โค้ดเดิมและเสนอเวอร์ชัน Refactor ที่ยังคงรักษา functionality เดิมไว้ 100% พร้อมอธิบายเหตุผลของการเปลี่ยนแปลง
|
||||
```
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial refactor prompt
|
||||
@@ -0,0 +1,27 @@
|
||||
// File: docs/ai-knowledge-base/prompts/dms/report-generation.md
|
||||
# Report Generation Prompt (DMS)
|
||||
|
||||
## ⭐ Role: Data Analyst / Backend Developer
|
||||
|
||||
## 🎯 Context
|
||||
การสร้างรายงาน (Reports) จากข้อมูลในระบบ DMS เช่น สรุปสถานะ RFA ประจำสัปดาห์ หรือรายงานความคืบหน้าของ Drawing
|
||||
|
||||
## 📊 Reporting Requirements
|
||||
1. **Data Source**: ดึงข้อมูลจากตารางหลัก (Correspondence, RFA, etc.) และตาราง History
|
||||
2. **Filters**: ต้องรองรับการกรองตาม Project, Discipline, Date Range และ Status
|
||||
3. **Export Formats**: รองรับ PDF (สำหรับเซ็นชื่อ) และ Excel (สำหรับวิเคราะห์ข้อมูล)
|
||||
4. **Performance**: ใช้ Aggregate Queries ที่มีประสิทธิภาพ และทำ Caching หากจำเป็น
|
||||
|
||||
## 🚀 Prompt Template
|
||||
```
|
||||
[REPORT DESIGN]
|
||||
Report Name: <ชื่อรายงาน>
|
||||
Columns: <รายการฟิลด์ที่ต้องการแสดง>
|
||||
Group By: <e.g. Discipline, Sub-contractor>
|
||||
Export Format: <Excel/PDF>
|
||||
Request: ออกแบบ Query และโครงสร้างข้อมูลสำหรับสร้างรายงานนี้
|
||||
```
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial report generation prompt
|
||||
@@ -0,0 +1,26 @@
|
||||
// File: docs/ai-knowledge-base/prompts/dms/ui-flow.md
|
||||
# UI/UX Flow Design Prompt (DMS)
|
||||
|
||||
## ⭐ Role: UX/UI Designer (Enterprise Application)
|
||||
|
||||
## 🎯 Context
|
||||
ออกแบบหน้าจอและการไหลเวียนของงาน (User Journey) ในระบบ DMS ที่มีข้อมูลจำนวนมากและ Workflow ที่ซับซ้อน
|
||||
|
||||
## 🎨 Design Guidelines
|
||||
1. **Consistency**: ใช้ Component จาก `shadcn/ui` และ Palette สีตามมาตรฐานโครงการ
|
||||
2. **Efficiency**: ลดจำนวนการคลิกเพื่อเข้าถึงข้อมูลสำคัญ (e.g. Document Preview)
|
||||
3. **Feedback**: ต้องมี Loading states, Success/Error toasts และ Skeleton screens
|
||||
4. **Responsive**: รองรับทั้ง Desktop (หลัก) และ Tablet สำหรับงานหน้าไซต์
|
||||
|
||||
## 🚀 Prompt Template
|
||||
```
|
||||
[UI FLOW DESIGN]
|
||||
Feature: <ชื่อฟีเจอร์>
|
||||
User Role: <e.g. Document Control, Sub-contractor>
|
||||
Objective: <สิ่งที่ผู้ใช้ต้องการทำ>
|
||||
Request: ออกแบบ User Flow ตั้งแต่เริ่มต้นจนจบ พร้อมระบุ UI Components ที่ต้องใช้ในแต่ละหน้า
|
||||
```
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial UI flow prompt
|
||||
@@ -0,0 +1,26 @@
|
||||
// File: docs/ai-knowledge-base/prompts/infra/network-troubleshoot.md
|
||||
# Network Troubleshooting Prompt (DMS Infra)
|
||||
|
||||
## ⭐ Role: Network Engineer (Omada Specialist)
|
||||
|
||||
## 🎯 Context
|
||||
การแก้ไขปัญหาเครือข่ายภายในโครงการที่ใช้ TP-Link Omada สำหรับการจัดการ VLAN และ Switch
|
||||
|
||||
## 🔍 Diagnosis Steps
|
||||
1. **Physical Link**: ตรวจสอบสถานะไฟที่ Port Switch และสายแลน
|
||||
2. **VLAN Tagging**: ตรวจสอบว่า Port ถูก Config เป็น Access หรือ Trunk และ VLAN ID ถูกต้องหรือไม่
|
||||
3. **DHCP Status**: ตรวจสอบว่า Client ได้รับ IP Address หรือไม่
|
||||
4. **Gateway Ping**: ทดสอบการเชื่อมต่อกับ Default Gateway และ Internet
|
||||
|
||||
## 🚀 Prompt Template
|
||||
```
|
||||
[NETWORK DEBUG]
|
||||
Device: <e.g. Switch-Floor-2, Omada Controller>
|
||||
Symptom: <e.g. ไม่สามารถเชื่อมต่อ Server ได้, VLAN 20 ใช้งานไม่ได้>
|
||||
Recent Changes: <การแก้ไขล่าสุดก่อนเกิดปัญหา>
|
||||
Request: ช่วยวิเคราะห์สาเหตุและเสนอขั้นตอนการแก้ไข (Step-by-step recovery)
|
||||
```
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial network troubleshoot prompt
|
||||
@@ -0,0 +1,27 @@
|
||||
// File: docs/ai-knowledge-base/prompts/infra/server-debug.md
|
||||
# Server & Docker Debugging Prompt
|
||||
|
||||
## ⭐ Role: Systems Administrator / DevOps Engineer
|
||||
|
||||
## 🎯 Context
|
||||
การแก้ไขปัญหาที่เกี่ยวข้องกับ Linux Server, Docker Containers และการเชื่อมต่อฐานข้อมูล
|
||||
|
||||
## 🔍 Commands for Debugging
|
||||
- `docker ps`: ตรวจสอบสถานะ Container
|
||||
- `docker logs -f <container_name>`: ดู Log การทำงานแบบ Real-time
|
||||
- `df -h`: ตรวจสอบพื้นที่ว่างใน Disk
|
||||
- `free -m`: ตรวจสอบการใช้งาน RAM
|
||||
- `netstat -tulpn`: ตรวจสอบ Port ที่เปิดใช้งานอยู่
|
||||
|
||||
## 🚀 Prompt Template
|
||||
```
|
||||
[SERVER DEBUG]
|
||||
Service: <e.g. DMS-Backend, MariaDB>
|
||||
Problem: <e.g. Container Restart Loop, Connection Timeout>
|
||||
Error Output: <Paste log จาก docker logs>
|
||||
Request: วิเคราะห์หาสาเหตุ (e.g. Out of Memory, Disk Full, Env Config Error) และวิธีแก้ไข
|
||||
```
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial server debug prompt
|
||||
@@ -0,0 +1,26 @@
|
||||
// File: docs/ai-knowledge-base/prompts/infra/vlan-change.md
|
||||
# VLAN Configuration Change Prompt
|
||||
|
||||
## ⭐ Role: Network Architect
|
||||
|
||||
## 🎯 Context
|
||||
ขั้นตอนการเพิ่ม หรือแก้ไข VLAN ภายในโครงการเพื่อความปลอดภัยและการแยกแยะการใช้งาน (Segmentation)
|
||||
|
||||
## 🏗️ Configuration Rules
|
||||
1. **Naming Standard**: ใช้ชื่อที่สื่อความหมาย (e.g. VLAN-10-SERVER, VLAN-20-CCTV)
|
||||
2. **Subnet Planning**: กำหนด Range IP ที่ไม่ซ้ำซ้อนกับ VLAN เดิม
|
||||
3. **ACL (Access Control List)**: กำหนดสิทธิ์การข้าม VLAN (Inter-VLAN Routing) ตามความจำเป็น
|
||||
4. **Port Profile**: สร้าง Profile ใน Omada เพื่อความง่ายในการนำไปใช้กับ Switch หลายตัว
|
||||
|
||||
## 🚀 Prompt Template
|
||||
```
|
||||
[VLAN CHANGE]
|
||||
Purpose: <e.g. แยกเครือข่ายสำหรับทีม Sub-contractor>
|
||||
VLAN ID: <e.g. 30>
|
||||
IP Range: <e.g. 192.168.30.0/24>
|
||||
Request: ออกแบบขั้นตอนการ Config ใน Omada Controller และ Switch Port
|
||||
```
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial VLAN change prompt
|
||||
Reference in New Issue
Block a user