commit
This commit is contained in:
491
plans/rule-ai.md
Normal file
491
plans/rule-ai.md
Normal file
@@ -0,0 +1,491 @@
|
||||
# Project Architecture Audit & AI Development Constitution
|
||||
|
||||
คุณเป็น **Senior Software Architect**, **Tech Lead**, **UI/UX Architect** และ **Full Stack Engineer**
|
||||
|
||||
ก่อนเริ่มแก้ไขหรือสร้างโค้ดใด ๆ ในโปรเจกต์นี้ ให้ทำการ **สำรวจ (Audit)** โปรเจกต์ทั้งหมดก่อนเสมอ และสร้างเอกสารมาตรฐานสำหรับกำหนดกฎการพัฒนา เพื่อให้ AI ทุกตัวทำงานภายใต้ Pattern เดียวกัน
|
||||
|
||||
---
|
||||
|
||||
# เป้าหมาย
|
||||
|
||||
โปรเจกต์นี้ต้องมี **Architecture**, **Design System**, **Folder Structure**, **Coding Style** และ **Component Pattern** ที่เป็นมาตรฐานเดียวกัน
|
||||
|
||||
AI ต้อง **Reuse** ทุกอย่างที่มีอยู่แล้วก่อนเสมอ
|
||||
|
||||
ห้ามสร้าง Pattern ใหม่
|
||||
|
||||
ห้ามเดา
|
||||
|
||||
ห้ามคิด UI ใหม่
|
||||
|
||||
---
|
||||
|
||||
# สิ่งที่ต้องดำเนินการ
|
||||
|
||||
## Phase 1 : Project Audit
|
||||
|
||||
สำรวจโปรเจกต์ทั้งหมด
|
||||
|
||||
วิเคราะห์
|
||||
|
||||
- Folder Structure
|
||||
- Feature Structure
|
||||
- Routing
|
||||
- Shared Components
|
||||
- Layout
|
||||
- Hooks
|
||||
- Actions
|
||||
- Prisma
|
||||
- Schemas
|
||||
- Types
|
||||
- Constants
|
||||
- Utils
|
||||
- Forms
|
||||
- Dialogs
|
||||
- Tables
|
||||
- Upload
|
||||
- Authentication
|
||||
- Role Permission
|
||||
- Design System
|
||||
|
||||
ให้จัดทำรายงาน
|
||||
|
||||
---
|
||||
|
||||
## Phase 2 : Identify Canonical Features
|
||||
|
||||
เลือก Feature ที่สมบูรณ์ที่สุดในระบบ
|
||||
|
||||
เช่น
|
||||
|
||||
- Training Records
|
||||
- Employee Directory
|
||||
- Announcement
|
||||
|
||||
ถือเป็น Canonical Feature
|
||||
|
||||
Feature ใหม่ทุกตัว
|
||||
|
||||
ต้องอ้างอิงจาก Canonical Feature
|
||||
|
||||
ห้ามสร้าง Pattern ใหม่
|
||||
|
||||
---
|
||||
|
||||
## Phase 3 : Generate Documentation
|
||||
|
||||
สร้างไฟล์
|
||||
|
||||
docs/AI_DEVELOPMENT_GUIDE.md
|
||||
|
||||
เนื้อหาต้องประกอบด้วย
|
||||
|
||||
- Project Architecture
|
||||
- Folder Structure
|
||||
- Feature Structure
|
||||
- Naming Convention
|
||||
- UI Pattern
|
||||
- Table Pattern
|
||||
- Form Pattern
|
||||
- Dialog Pattern
|
||||
- Server Action Pattern
|
||||
- Prisma Pattern
|
||||
- Shared Component Rules
|
||||
- Responsive Rules
|
||||
- Coding Rules
|
||||
- Refactoring Rules
|
||||
|
||||
---
|
||||
|
||||
สร้างไฟล์
|
||||
|
||||
docs/PROJECT_ARCHITECTURE.md
|
||||
|
||||
อธิบาย
|
||||
|
||||
- Folder Structure
|
||||
- Feature Dependency
|
||||
- Data Flow
|
||||
- Component Flow
|
||||
- Shared Modules
|
||||
- Feature Modules
|
||||
|
||||
---
|
||||
|
||||
สร้างไฟล์
|
||||
|
||||
docs/REFRACTOR_REPORT.md
|
||||
|
||||
ตรวจสอบ
|
||||
|
||||
Feature ไหนหลุด Pattern
|
||||
|
||||
เช่น
|
||||
|
||||
- สร้าง Table ใหม่
|
||||
- สร้าง Pagination ใหม่
|
||||
- ใช้ Dialog คนละแบบ
|
||||
- ใช้ CSS คนละ Pattern
|
||||
- ใช้ Form คนละ Pattern
|
||||
|
||||
พร้อมเสนอแนวทาง Refactor
|
||||
|
||||
---
|
||||
|
||||
## Phase 4 : Update AGENTS.md
|
||||
|
||||
อัปเดตไฟล์
|
||||
|
||||
AGENTS.md
|
||||
|
||||
ให้เป็น Project Constitution
|
||||
|
||||
โดยต้องเพิ่มกฎต่อไปนี้
|
||||
|
||||
---
|
||||
|
||||
### Highest Priority
|
||||
|
||||
AI ต้องปฏิบัติตามลำดับนี้
|
||||
|
||||
1. Existing Project Implementation
|
||||
2. docs/AI_DEVELOPMENT_GUIDE.md
|
||||
3. docs/PROJECT_ARCHITECTURE.md
|
||||
4. AGENTS.md
|
||||
5. kiranism-shadcn-dashboard
|
||||
6. shadcn/ui
|
||||
7. TanStack Table
|
||||
8. Next.js Best Practices
|
||||
|
||||
หากมีข้อขัดแย้ง
|
||||
|
||||
ให้ใช้ลำดับที่สูงกว่าเสมอ
|
||||
|
||||
---
|
||||
|
||||
### Mandatory Audit
|
||||
|
||||
ก่อนแก้ไขโค้ดทุกครั้ง
|
||||
|
||||
AI ต้องสำรวจ
|
||||
|
||||
- Feature เดิม
|
||||
- Shared Component
|
||||
- Shared Hook
|
||||
- Shared Action
|
||||
- Shared Dialog
|
||||
- Shared Form
|
||||
- Shared Table
|
||||
- Shared Layout
|
||||
|
||||
ก่อนเสมอ
|
||||
|
||||
---
|
||||
|
||||
### Design System
|
||||
|
||||
โปรเจกต์นี้ใช้
|
||||
|
||||
**kiranism-shadcn-dashboard**
|
||||
|
||||
เป็น Design System หลัก
|
||||
|
||||
ทุกหน้าต้องใช้ Pattern เดียวกัน
|
||||
|
||||
ห้ามสร้าง Dashboard Layout ใหม่
|
||||
|
||||
---
|
||||
|
||||
### Canonical Features
|
||||
|
||||
กำหนดให้
|
||||
|
||||
Training Records
|
||||
|
||||
เป็น Canonical Reference
|
||||
|
||||
ทุก Feature ใหม่
|
||||
|
||||
ต้อง Copy Pattern
|
||||
|
||||
จาก Feature นี้ก่อน
|
||||
|
||||
หากไม่มี
|
||||
|
||||
จึงค้นหา
|
||||
|
||||
Employee Directory
|
||||
|
||||
Announcement
|
||||
|
||||
ตามลำดับ
|
||||
|
||||
---
|
||||
|
||||
### Reuse Policy
|
||||
|
||||
ห้ามสร้างใหม่
|
||||
|
||||
ถ้ามีอยู่แล้ว
|
||||
|
||||
AI ต้องค้นหา
|
||||
|
||||
- Shared Components
|
||||
- Shared Hooks
|
||||
- Shared Actions
|
||||
- Shared Dialogs
|
||||
- Shared Forms
|
||||
- Shared Tables
|
||||
|
||||
ก่อนเสมอ
|
||||
|
||||
---
|
||||
|
||||
### DataTable Rules
|
||||
|
||||
ห้ามสร้าง Table เอง
|
||||
|
||||
ต้อง Reuse
|
||||
|
||||
- DataTable
|
||||
- DataTableToolbar
|
||||
- DataTablePagination
|
||||
- DataTableViewOptions
|
||||
- DataTableColumnHeader
|
||||
- CellAction
|
||||
- Faceted Filters
|
||||
|
||||
ห้ามสร้าง
|
||||
|
||||
Pagination ใหม่
|
||||
|
||||
Toolbar ใหม่
|
||||
|
||||
Sorting ใหม่
|
||||
|
||||
View ใหม่
|
||||
|
||||
---
|
||||
|
||||
### Form Rules
|
||||
|
||||
ต้องใช้
|
||||
|
||||
- React Hook Form
|
||||
- Zod
|
||||
- Existing Form Components
|
||||
|
||||
---
|
||||
|
||||
### Server Action Rules
|
||||
|
||||
ใช้ Pattern เดิมของโปรเจกต์
|
||||
|
||||
เช่น
|
||||
|
||||
next-safe-action
|
||||
|
||||
ห้ามสร้าง Pattern ใหม่
|
||||
|
||||
---
|
||||
|
||||
### Dialog Rules
|
||||
|
||||
Reuse
|
||||
|
||||
Dialog
|
||||
|
||||
Sheet
|
||||
|
||||
AlertDialog
|
||||
|
||||
ConfirmDialog
|
||||
|
||||
---
|
||||
|
||||
### File Upload
|
||||
|
||||
Reuse Upload Utility เดิม
|
||||
|
||||
---
|
||||
|
||||
### Prisma
|
||||
|
||||
Reuse Existing Schema Pattern
|
||||
|
||||
---
|
||||
|
||||
### Folder Structure
|
||||
|
||||
Feature ใหม่
|
||||
|
||||
ต้องใช้
|
||||
|
||||
page.tsx
|
||||
|
||||
columns.tsx
|
||||
|
||||
form.tsx
|
||||
|
||||
dialog.tsx
|
||||
|
||||
actions.ts
|
||||
|
||||
schema.ts
|
||||
|
||||
constants.ts
|
||||
|
||||
types.ts
|
||||
|
||||
เหมือนกันทั้งหมด
|
||||
|
||||
---
|
||||
|
||||
### Naming Convention
|
||||
|
||||
ห้ามตั้งชื่อไฟล์ใหม่
|
||||
|
||||
ใช้ Naming เดียวกับทั้งโปรเจกต์
|
||||
|
||||
---
|
||||
|
||||
### Responsive Rules
|
||||
|
||||
ห้าม
|
||||
|
||||
- Overflow Page
|
||||
- Broken Layout
|
||||
- Clipped Button
|
||||
- Broken Table
|
||||
|
||||
ใช้
|
||||
|
||||
overflow-x-auto
|
||||
|
||||
เฉพาะใน Table เท่านั้น
|
||||
|
||||
---
|
||||
|
||||
### Architecture Freeze
|
||||
|
||||
เมื่อมี Shared Component แล้ว
|
||||
|
||||
ทุก Feature ใหม่
|
||||
|
||||
ต้อง Reuse
|
||||
|
||||
ห้ามสร้าง Implementation ใหม่
|
||||
|
||||
---
|
||||
|
||||
### Forbidden
|
||||
|
||||
AI ห้าม
|
||||
|
||||
❌ สร้าง Table ใหม่
|
||||
|
||||
❌ สร้าง Toolbar ใหม่
|
||||
|
||||
❌ สร้าง Pagination ใหม่
|
||||
|
||||
❌ สร้าง Dialog ใหม่
|
||||
|
||||
❌ สร้าง Badge ใหม่
|
||||
|
||||
❌ สร้าง Form ใหม่
|
||||
|
||||
❌ สร้าง Upload ใหม่
|
||||
|
||||
❌ สร้าง Layout ใหม่
|
||||
|
||||
❌ สร้าง Dashboard ใหม่
|
||||
|
||||
❌ สร้าง Folder Structure ใหม่
|
||||
|
||||
❌ สร้าง Design Pattern ใหม่
|
||||
|
||||
---
|
||||
|
||||
### Required Checklist
|
||||
|
||||
ก่อนส่งงาน
|
||||
|
||||
AI ต้องตรวจสอบ
|
||||
|
||||
✅ Reuse Components
|
||||
|
||||
✅ Reuse Hooks
|
||||
|
||||
✅ Reuse Actions
|
||||
|
||||
✅ Reuse Dialog
|
||||
|
||||
✅ Reuse DataTable
|
||||
|
||||
✅ Reuse Toolbar
|
||||
|
||||
✅ Reuse Pagination
|
||||
|
||||
✅ Reuse View Options
|
||||
|
||||
✅ Reuse Empty State
|
||||
|
||||
✅ Reuse Loading
|
||||
|
||||
✅ Reuse Design Tokens
|
||||
|
||||
✅ Folder Structure ถูกต้อง
|
||||
|
||||
✅ Naming Convention ถูกต้อง
|
||||
|
||||
✅ Responsive ถูกต้อง
|
||||
|
||||
---
|
||||
|
||||
### Final Principle
|
||||
|
||||
Consistency is more important than creativity.
|
||||
|
||||
Every new feature must look like it has always been part of the project.
|
||||
|
||||
If a reviewer cannot distinguish which feature was added later, the implementation is correct.
|
||||
|
||||
---
|
||||
|
||||
# สิ่งที่ AI ต้องทำหลังจากสร้างเอกสาร
|
||||
|
||||
1. ตรวจสอบทุก Feature ที่มีอยู่ในระบบ
|
||||
|
||||
2. เปรียบเทียบกับ Canonical Feature
|
||||
|
||||
3. สร้างรายการ Feature ที่หลุด Pattern
|
||||
|
||||
4. เสนอแผน Refactor
|
||||
|
||||
5. รอการอนุมัติก่อน Refactor
|
||||
|
||||
---
|
||||
|
||||
# กฎสำคัญที่สุด
|
||||
|
||||
ก่อนแก้ไข Feature หรือเขียนโค้ดใหม่ทุกครั้ง
|
||||
|
||||
AI ต้องอ่าน
|
||||
|
||||
- AGENTS.md
|
||||
- docs/AI_DEVELOPMENT_GUIDE.md
|
||||
- docs/PROJECT_ARCHITECTURE.md
|
||||
|
||||
ก่อนเสมอ
|
||||
|
||||
หากพบว่าโค้ดที่กำลังจะแก้ไขไม่ตรงกับมาตรฐาน
|
||||
|
||||
ให้เสนอการ Refactor ก่อน
|
||||
|
||||
ห้ามขยาย Pattern ที่ผิด
|
||||
|
||||
ห้ามสร้าง Pattern ใหม่
|
||||
|
||||
ต้องใช้ Pattern ของโปรเจกต์ และ **kiranism-shadcn-dashboard** อย่างเคร่งครัด
|
||||
|
||||
เมื่อไม่แน่ใจ ให้สำรวจโค้ดเดิมก่อนเสมอ และเลือก Reuse มากกว่าสร้างใหม่
|
||||
Reference in New Issue
Block a user