690514:2019 204-rfa-approval-refactor #01
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
// File: docs/ai-knowledge-base/playbooks/core/context-recovery.md
|
||||
# Playbook: AI Context Recovery (ฟื้นฟูบริบทการทำงาน)
|
||||
|
||||
## 🚨 เมื่อไหร่ที่ต้องใช้?
|
||||
- เมื่อเริ่ม Session ใหม่กับ AI
|
||||
- เมื่อ AI เริ่มให้คำตอบที่หลุดออกจากมาตรฐานโครงการ
|
||||
- เมื่อมีการข้ามเฟสการทำงานขนาดใหญ่
|
||||
|
||||
## 🏗️ Steps for Recovery
|
||||
1. **Initialize Standards**: สั่งให้ AI อ่าน `docs/ai-knowledge-base/prompts/core/master-prompt.md`
|
||||
2. **Scan Current Module**: ระบุโมดูลที่กำลังทำงาน และให้ AI อ่านไฟล์ใน `specs/` ที่เกี่ยวข้อง
|
||||
3. **Verify DB State**: ให้ AI อ่านไฟล์ Schema ล่าสุดเพื่อยืนยันโครงสร้างตาราง
|
||||
4. **Task Alignment**: ตรวจสอบไฟล์ `tasks.md` ของฟีเจอร์นั้นๆ เพื่อหาจุดที่ทำค้างไว้
|
||||
5. **Conflict Resolution**: หาก AI พบว่าโค้ดปัจจุบันขัดกับ Specs ให้ทำการแก้ไขทันที
|
||||
|
||||
## 🚀 Recovery Command (Prompt)
|
||||
"โปรดอ่าน Master Prompt และตรวจสอบสถานะปัจจุบันของโมดูล [ชื่อโมดูล] จากไฟล์ Specs และ Tasks เพื่อเตรียมตัวเริ่มงานต่อจากจุดที่ค้างไว้"
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial context recovery playbook
|
||||
@@ -0,0 +1,19 @@
|
||||
// File: docs/ai-knowledge-base/playbooks/dms/cross-module-linking.md
|
||||
# Playbook: Cross-Module Linking (การเชื่อมโยงข้อมูลข้ามโมดูล)
|
||||
|
||||
## 🎯 Objective
|
||||
รักษาความถูกต้องและความเชื่อมโยงของข้อมูล (Data Integrity) ระหว่างโมดูลต่างๆ เช่น การผูก RFA เข้ากับ Drawing หรือ Correspondence
|
||||
|
||||
## 🏗️ Linking Rules
|
||||
1. **Use PublicId**: การเชื่อมโยงข้ามโมดูลต้องใช้ `publicId` (UUIDv7) เท่านั้น
|
||||
2. **Atomic Updates**: หากการเชื่อมโยงส่งผลต่อสถานะของทั้งสองโมดูล ต้องทำภายใน Database Transaction เดียวกัน
|
||||
3. **Audit Trail**: ต้องบันทึกประวัติการเชื่อมโยง (e.g. "Drawing X linked to RFA Y")
|
||||
4. **Validation**: ก่อนสร้าง Link ต้องตรวจสอบว่าทั้งสอง Entity มีอยู่จริงและอยู่ในสถานะที่อนุญาตให้เชื่อมโยงได้
|
||||
|
||||
## 🛠️ Implementation Example
|
||||
- **RFA to Drawing**: เมื่อ RFA ได้รับการอนุมัติ ให้ทำการอัปเดตสถานะของ Drawing ที่เกี่ยวข้องโดยอัตโนมัติ
|
||||
- **Correspondence to Transmittal**: บันทึกว่าจดหมายฉบับนี้ถูกส่งไปพร้อมกับ Transmittal เลขที่เท่าไหร่
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial cross-module linking playbook
|
||||
@@ -0,0 +1,18 @@
|
||||
// File: docs/ai-knowledge-base/playbooks/dms/drawing-revision-flow.md
|
||||
# Playbook: Drawing Revision Management
|
||||
|
||||
## 🔄 Revision Flow
|
||||
1. **Initial Upload**: Drawing ถูกอัปโหลดเข้าระบบครั้งแรก (Revision 0 หรือ A)
|
||||
2. **Review & Approval**: ผ่านกระบวนการ RFA
|
||||
3. **Revision Up**: เมื่อมีการแก้ไข ให้ผู้ใช้อัปโหลดไฟล์ใหม่โดยอ้างอิง `publicId` เดิม
|
||||
4. **Auto-Numbering**: ระบบจะเจนเลขที่ Revision ถัดไปตาม Rule (e.g. 0 -> 1 หรือ A -> B)
|
||||
5. **Supersede**: Revision เก่าจะถูกทำเครื่องหมายเป็น "Superseded" (แต่ไฟล์ยังอยู่สำหรับการตรวจสอบย้อนหลัง)
|
||||
|
||||
## 🏗️ Technical Implementation
|
||||
- ใช้ **Redis Redlock** ในการจองเลขที่ Revision เพื่อป้องกันเลขซ้ำ
|
||||
- เก็บประวัติทั้งหมดไว้ใน `drawing_revisions` table
|
||||
- แสดงเฉพาะ Revision ล่าสุด (Current) ในหน้ารายการหลัก ยกเว้นผู้ใช้จะเลือกดู History
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial drawing revision playbook
|
||||
@@ -0,0 +1,27 @@
|
||||
// File: docs/ai-knowledge-base/playbooks/dms/rfa-lifecycle.md
|
||||
# Playbook: RFA Lifecycle Management
|
||||
|
||||
## 🔄 Lifecycle Stages
|
||||
1. **Draft**: ผู้สร้างเตรียมเอกสารและอัปโหลดไฟล์
|
||||
2. **Submitted**: ส่งเข้าระบบเพื่อรอการตรวจสอบ (Review)
|
||||
3. **Reviewing**: ทีมที่ปรึกษาหรือหน่วยงานที่เกี่ยวข้องตรวจสอบ
|
||||
4. **Responded**: ให้ความเห็น (Comment) กลับมา
|
||||
5. **Approved / Rejected**: สถานะสุดท้ายของการอนุมัติ
|
||||
6. **Closed**: สิ้นสุดกระบวนการ
|
||||
|
||||
## 🛡️ Business Rules (ADR-001)
|
||||
- การเปลี่ยนสถานะต้องใช้ **Workflow Engine** เท่านั้น
|
||||
- ต้องมีการทำ **Optimistic Locking** ผ่าน `@VersionColumn` เพื่อป้องกันการอนุมัติพร้อมกัน
|
||||
- ทุกการเปลี่ยนสถานะต้องบันทึก **Audit Log** และ **Workflow History**
|
||||
- หากมีการอัปโหลดไฟล์ใหม่ ต้องย้ายจาก `temp` ไป `permanent` และสแกน ClamAV
|
||||
|
||||
## 🛠️ Implementation Steps
|
||||
1. ตรวจสอบสิทธิ์ผู้ใช้ผ่าน `CaslGuard`
|
||||
2. ดึงข้อมูล RFA พร้อมสถานะปัจจุบันจาก DB
|
||||
3. ตรวจสอบความถูกต้องของสถานะต้นทาง (Source State) และสถานะปลายทาง (Target State)
|
||||
4. ทำการ Update ใน Database Transaction
|
||||
5. ส่งการแจ้งเตือนผ่าน `BullMQ`
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial RFA lifecycle playbook
|
||||
@@ -0,0 +1,17 @@
|
||||
// File: docs/ai-knowledge-base/playbooks/dms/transmittal-process.md
|
||||
# Playbook: Transmittal Process
|
||||
|
||||
## 🔄 Transmittal Workflow
|
||||
1. **Creation**: DC (Document Control) สร้าง Transmittal และเลือกเอกสาร (Attachments) ที่ต้องการส่ง
|
||||
2. **Review**: หัวหน้าทีมตรวจสอบความถูกต้องของรายการเอกสาร
|
||||
3. **Issuance**: ส่งมอบเอกสารอย่างเป็นทางการ (เปลี่ยนสถานะเป็น Issued)
|
||||
4. **Acknowledgment**: ผู้รับเซ็นรับเอกสารในระบบ (เปลี่ยนสถานะเป็น Received)
|
||||
|
||||
## 📋 Standard Actions
|
||||
- **Generate Cover Sheet**: ระบบสร้าง PDF หน้าปกที่มีรายการเอกสารและ QR Code
|
||||
- **Link Documents**: เอกสารที่ถูกส่งจะถูกบันทึกความเชื่อมโยง (Link) กับ Transmittal ID
|
||||
- **Notification**: ส่งอีเมลแจ้งเตือนผู้รับพร้อมลิงก์ดาวน์โหลด
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial transmittal process playbook
|
||||
@@ -0,0 +1,16 @@
|
||||
// File: docs/ai-knowledge-base/playbooks/infra/omada-vlan-recovery.md
|
||||
# Playbook: Omada VLAN Recovery
|
||||
|
||||
## 🚨 Scenario
|
||||
VLAN ใช้งานไม่ได้ หรือ Client ไม่สามารถรับ IP ได้หลังจากมีการเปลี่ยน Config
|
||||
|
||||
## 🛠️ Recovery Steps
|
||||
1. **Check Controller Connection**: ตรวจสอบว่า Omada Controller ยังออนไลน์อยู่หรือไม่
|
||||
2. **Revert Last Change**: หากจำได้ ให้ Revert การตั้งค่าล่าสุดทันที
|
||||
3. **Switch Log Audit**: เข้าไปดู Log ของ Switch ในหน้า Omada เพื่อหา Error (e.g. Loop Detected)
|
||||
4. **Port Profile Verification**: ตรวจสอบว่า Port ที่ Client ต่ออยู่ ใช้ Profile VLAN ที่ถูกต้อง
|
||||
5. **Re-adopt Device**: หาก Switch สถานะเป็น "Disconnected" ให้ลองทำการ Re-adopt หรือ Restart Switch
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial Omada recovery playbook
|
||||
@@ -0,0 +1,16 @@
|
||||
// File: docs/ai-knowledge-base/playbooks/infra/switch-reset-safe.md
|
||||
# Playbook: Safe Switch Reset & Re-adoption
|
||||
|
||||
## 🎯 Objective
|
||||
การทำ Factory Reset และทำการ Adopt ใหม่ใน Omada Controller โดยไม่ให้ระบบล่มเป็นเวลานาน
|
||||
|
||||
## 🏗️ Steps
|
||||
1. **Backup Config**: ตรวจสอบว่ามี Backup ของ Omada Controller ล่าสุดหรือไม่
|
||||
2. **Physical Reset**: กดปุ่ม Reset ที่ตัว Switch ค้างไว้จนไฟกะพริบ
|
||||
3. **Omada Discovery**: รอจน Switch ปรากฏขึ้นมาในสถานะ "Pending"
|
||||
4. **Adopt & Provision**: คลิก Adopt และรอให้ Controller ทำการส่ง Config (Provisioning) ไปยัง Switch
|
||||
5. **VLAN Check**: ตรวจสอบว่า Port ต่างๆ ยังทำงานตาม VLAN Profile เดิมหรือไม่
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial safe reset playbook
|
||||
Reference in New Issue
Block a user