Files
alla-tms/plans/phase-0-architecture-audit-part-1.md
2026-07-16 09:53:14 +07:00

32 KiB
Raw Permalink Blame History

Phase 0 Architecture Audit

Part 1 Context, Current Status & Audit Foundation

Project: Training Management System (TMS)

Phase: Phase 0 Architecture Audit

Objective: Validate Architecture Readiness Before Permission-first Migration


Background

ระบบ Training Management System (TMS) กำลังอยู่ในช่วงเปลี่ยนผ่านจาก Role-based Authorization ไปสู่ Permission-first Authorization Architecture

ในปัจจุบัน ระบบมี Foundation สำหรับ Permission-first แล้วบางส่วน แต่ยังอยู่ใน Compatibility Mode

หมายความว่า Feature หลายส่วนของระบบยังคงใช้แนวคิดเดิม เช่น

  • businessRole
  • membership.role
  • systemRole
  • isHRD()
  • isIT()
  • requireHRD()
  • requireIT()

ขณะที่ Foundation ใหม่เริ่มถูกสร้างแล้ว เช่น

  • Permission Catalog
  • Permission Helpers
  • Effective Permission Resolver
  • Session Permission Resolution
  • Permission Template Schema
  • Permission Assignment Schema
  • Permission Override Schema

ดังนั้น เป้าหมายของ Phase นี้คือ

ตรวจสอบความพร้อมของ Foundation ทั้งหมดก่อนเริ่ม Migration ของ Feature


Current Project Status

สถานะปัจจุบันของระบบโดยสรุป

Completed

Foundation ที่มีอยู่แล้ว

  • Central Permission Catalog
  • Authorization Helper
  • Session Permission Resolver
  • Effective Permission Resolution
  • Database Schema สำหรับ Permission Template
  • Permission Assignment
  • Permission Override
  • Permission Audit Log
  • Compatibility Layer สำหรับระบบเดิม

In Progress

อยู่ระหว่าง Migration

  • Navigation
  • Page Guard
  • Route Handlers
  • Feature Authorization
  • Permission Template Service
  • Assignment Service

Not Started

ยังไม่มีการพัฒนา

  • Permission Template Administration UI
  • User Permission Assignment UI
  • Permission Override UI
  • Effective Permission Viewer
  • Compatibility Cleanup
  • Legacy Removal

Purpose Of Phase 0

Phase นี้มีหน้าที่เพียงอย่างเดียวคือ

Audit + Validate + Assess + Report

ไม่ใช่

Refactor

ไม่ใช่

Rewrite

ไม่ใช่

Feature Development


Expected Outcome

เมื่อจบ Phase นี้

ทีมพัฒนาต้องสามารถตอบคำถามต่อไปนี้ได้อย่างชัดเจน

  • Foundation พร้อมหรือไม่
  • Permission Model สมบูรณ์หรือไม่
  • Session สามารถใช้เป็น Source of Truth ได้หรือไม่
  • Effective Permission ถูกต้องหรือไม่
  • Multi-Organization พร้อมหรือไม่
  • Compatibility Layer เพียงพอหรือไม่
  • Feature ใดสามารถเริ่ม Migration ได้ก่อน
  • Feature ใดมีความเสี่ยงสูง
  • มี Technical Debt อะไรค้างอยู่
  • มี Architecture Smell หรือไม่

Architecture Direction

Architecture ใหม่ของระบบต้องยึดตามโครงสร้างนี้

Organization
        │
        ▼
Permission Template
        │
        ▼
Template Permissions
        │
        ▼
User Template Assignment
        │
        ▼
User Permission Override
        │
        ▼
Effective Permissions
        │
        ▼
Authorization Helpers
        │
        ▼
API / Server
        │
        ▼
Page Guard
        │
        ▼
Navigation
        │
        ▼
UI Visibility

ทุก Feature ใหม่

ต้องอ้างอิง Architecture นี้เท่านั้น


Source Of Truth

ภายหลังการ Migration

Source Of Truth ต้องมีเพียงชุดเดียว

Effective Permissions

ระบบทั้งหมด

ห้ามตรวจสอบสิทธิ์จาก

  • businessRole
  • membership.role
  • systemRole
  • isHRD()
  • isIT()

โดยตรงอีก

Field เหล่านี้สามารถมีอยู่ได้

แต่มีไว้เพื่อ Compatibility เท่านั้น


Scope Of Audit

Phase นี้ต้องตรวจสอบทุก Layer ของระบบ

ประกอบด้วย

Architecture Layer

  • Authorization Architecture
  • Permission Architecture
  • Session Architecture
  • Organization Architecture

Database Layer

  • Schema
  • Migration
  • Foreign Keys
  • Indexes
  • Constraints

Backend Layer

  • Auth
  • Session
  • Permission Helpers
  • Route Handlers
  • Services

Frontend Layer

  • Navigation
  • Page Guards
  • Feature Visibility
  • Permission Context

Security Layer

  • Authorization
  • Privilege Escalation
  • Cross Organization Access
  • Permission Leak

Performance Layer

  • Permission Resolution
  • Database Query
  • Cache
  • Session Size

Audit Philosophy

การตรวจสอบครั้งนี้

ห้ามเริ่มจาก

"จะเปลี่ยนอะไร"

แต่ต้องเริ่มจาก

"ระบบปัจจุบันทำอะไรอยู่"

ก่อน

หลังจากนั้น

จึงประเมินว่า

  • สิ่งใดใช้ต่อได้
  • สิ่งใดต้อง Refactor
  • สิ่งใดควรลบ
  • สิ่งใดควรสร้างใหม่

ห้ามสร้าง Component

Helper

Service

หรือ Model ใหม่

หากของเดิมสามารถ Reuse ได้


Audit Principles

การตรวจสอบทุกหัวข้อ

ต้องยึดหลัก

Reuse First

ตรวจสอบของเดิมก่อน

ห้ามสร้างใหม่ทันที


Evidence Based

ห้ามคาดเดา

ทุกข้อสรุปต้องอ้างอิงจากโค้ดจริง


Compatibility First

ห้ามเสนอแนวทาง

ที่ทำให้ระบบเดิมใช้งานไม่ได้


Incremental Migration

ทุก Feature

ต้องสามารถย้ายทีละส่วนได้

โดยไม่ต้อง Rewrite ทั้งระบบ


Security First

UI

ไม่ใช่ Security

Authorization

ต้องตรวจที่ Server เสมอ


Single Source Of Truth

Effective Permissions

คือแหล่งข้อมูลสิทธิ์เพียงชุดเดียว

ทุก Layer

ต้องอ้างอิงจากข้อมูลชุดเดียวกัน


Important Rules

Phase นี้

ห้ามทำสิ่งต่อไปนี้

  • ห้าม Refactor Feature
  • ห้ามแก้ Business Logic
  • ห้ามแก้ Workflow
  • ห้ามเพิ่ม Feature ใหม่
  • ห้ามเปลี่ยน Database Schema
  • ห้ามลบ Legacy Code
  • ห้ามลบ businessRole
  • ห้ามลบ membership.role
  • ห้ามลบ isHRD()
  • ห้ามลบ isIT()
  • ห้ามลบ requireHRD()
  • ห้ามลบ requireIT()

หากพบปัญหา

ให้บันทึกไว้ในรายงาน

ห้ามแก้ไขทันที


End Of Section A

หลังจบ Section นี้

ให้รอ Section B ก่อนดำเนินการตรวจสอบเชิงลึกต่อ

Phase 0 Architecture Audit

Part 1 Section B

Audit Objectives, Repository Inspection Strategy & Readiness Assessment

Objective

กำหนดมาตรฐานการตรวจสอบ (Audit Standard) เพื่อประเมินว่าโปรเจกต์มีความพร้อมสำหรับการ Migration ไปสู่ Permission-first Architecture หรือไม่


Primary Objectives

Phase 0 มีเป้าหมายหลักเพียงข้อเดียว

ยืนยันว่า Foundation ของระบบมีความถูกต้อง แข็งแรง และพร้อมสำหรับการ Migration ใน Phase ถัดไป

Codex ต้องไม่เริ่มจากการแก้ไขโค้ด

แต่ต้องตอบคำถามต่อไปนี้ให้ได้ก่อน

  • Foundation พร้อมหรือยัง
  • โครงสร้างปัจจุบันมีข้อขัดแย้งกับ Permission-first หรือไม่
  • มีส่วนใดที่สามารถ Reuse ได้
  • มีส่วนใดที่ควร Refactor
  • มีส่วนใดที่ควรเลิกใช้ (Deprecated)
  • มีส่วนใดที่ยังขาดอยู่
  • หากเริ่ม Migration ตอนนี้ จะมีความเสี่ยงอะไรบ้าง

Audit Strategy

การตรวจสอบต้องทำจาก "แกนกลาง" ออกไปยัง Feature

ลำดับการตรวจต้องเป็นดังนี้

Architecture

↓

Database

↓

Authentication

↓

Authorization

↓

Session

↓

Permission Resolution

↓

Navigation

↓

Page Guard

↓

API

↓

Feature Server

↓

Feature UI

↓

Reports

ห้ามเริ่มตรวจจากหน้า UI ก่อน

เนื่องจาก UI ไม่ใช่ Source of Truth


Repository Inspection Rules

ก่อนวิเคราะห์หรือเสนอแนวทางใด ๆ

ต้องตรวจสอบ Repository จริงก่อนเสมอ

ห้ามสมมติว่า

  • มี Service
  • มี Helper
  • มี Component
  • มี Hook
  • มี Model

หากยังไม่ได้ตรวจสอบ


Required Inspection

ทุก Layer ต้องตรวจอย่างน้อย

Database

  • Schema
  • Enum
  • Tables
  • Foreign Keys
  • Constraints
  • Migration Files
  • Seed Strategy

Authentication

  • auth.ts
  • session callback
  • JWT callback
  • next-auth types
  • organization context

Authorization

  • permissions.ts
  • authorization.ts
  • roles.ts
  • session.ts

Navigation

  • nav-config.ts
  • use-nav.ts
  • sidebar
  • menu visibility

Page Guard

  • dashboard guards
  • route guards
  • middleware

API

ทุก Route

ต้องตรวจว่า

ใช้

requirePermission()

หรือ

requireHRD()

หรือ

isHRD()

Feature Layer

ตรวจทุก Module

เช่น

  • Announcements
  • Online Lessons
  • Training Records
  • Reports
  • Employee Directory
  • Courses
  • Users
  • Notifications

Architecture Validation Matrix

ทุก Layer ต้องถูกประเมินด้วยเกณฑ์เดียวกัน

Category ตรวจสอบ
Responsibility Layer นี้มีหน้าที่ชัดเจนหรือไม่
Coupling พึ่งพา Layer อื่นมากเกินไปหรือไม่
Duplication Logic ซ้ำหรือไม่
Compatibility รองรับ Migration หรือไม่
Extensibility เพิ่ม Feature ใหม่ได้ง่ายหรือไม่
Testability ทดสอบได้ง่ายหรือไม่
Security มีช่องโหว่หรือไม่
Performance มี Bottleneck หรือไม่

Readiness Assessment

ทุกหัวข้อ

ต้องให้คะแนน

READY

PARTIAL

NOT READY

พร้อมเหตุผล

ตัวอย่าง

Permission Catalog

Status

READY

Reason

Permission ถูก Centralized แล้ว

หรือ

Navigation

Status

PARTIAL

Reason

รองรับ Permission Metadata แล้ว

แต่ยังใช้ businessRole เป็น fallback

Audit Categories

การตรวจสอบต้องแบ่งออกเป็น

Foundation

  • Permission Catalog
  • Session
  • Schema
  • Effective Permission
  • Organization

Compatibility

  • businessRole
  • membership.role
  • systemRole
  • Legacy Helpers

Feature

แต่ละ Feature

ต้องประเมินแยก

  • Ready
  • Partial
  • Not Ready

Security

ตรวจสอบ

  • Privilege Escalation
  • Missing Permission Checks
  • Direct URL Access
  • Organization Isolation
  • Data Leakage

Performance

ตรวจสอบ

  • Permission Resolution
  • Duplicate Queries
  • Session Payload
  • N+1 Queries
  • Cache Opportunities

Maintainability

ตรวจสอบ

  • Code Duplication
  • Service Separation
  • Helper Reuse
  • Naming Consistency
  • Folder Structure

Discovery Strategy

ห้ามเริ่มจากการค้นหาเฉพาะไฟล์ที่คิดว่าสำคัญ

ให้สำรวจระบบทั้งหมดก่อน

ตัวอย่าง

Auth

↓

Session

↓

Permissions

↓

Navigation

↓

Page Guard

↓

API

↓

Services

↓

UI

ทุกขั้นตอน

ต้องบันทึก

  • สิ่งที่พบ
  • สิ่งที่ขาด
  • สิ่งที่ซ้ำ
  • สิ่งที่ควรปรับ

Required Evidence

ทุกข้อสรุป

ต้องมีหลักฐาน

เช่น

  • File
  • Function
  • Helper
  • Component
  • Route
  • Service

ห้ามเขียนว่า

"น่าจะ"

"คาดว่า"

"อาจจะ"

หากไม่มีหลักฐาน

ให้ระบุว่า

Not Verified

Audit Deliverables (Section B)

เมื่อจบการตรวจสอบใน Section นี้

Codex ต้องสามารถสร้างรายการต่อไปนี้ได้

  • Architecture Validation Matrix
  • Readiness Matrix
  • Foundation Checklist
  • Compatibility Checklist
  • Repository Inspection Summary
  • Code Discovery Summary

เอกสารเหล่านี้จะถูกนำไปใช้ต่อใน

  • Phase 0 Part 2
  • Phase 0 Part 3
  • Phase 0 Part 4

และเป็นพื้นฐานสำหรับ Phase 1


End Of Section B

ห้ามเริ่ม Refactor

จนกว่าจะผ่านการตรวจสอบทั้งหมดใน Phase 0

Phase 0 Architecture Audit

Part 1 Section C

Enterprise Architecture Principles, Validation Rules & Anti-Pattern Detection

Objective

กำหนดหลักการ (Architecture Principles) และกฎการตรวจสอบ (Validation Rules) สำหรับการย้ายระบบไปสู่ Permission-first Architecture โดยไม่สร้าง Technical Debt เพิ่ม


Enterprise Architecture Principles

ทุกการวิเคราะห์และข้อเสนอแนะในโปรเจกต์นี้ ต้องยึดหลักการต่อไปนี้


Principle 1 — Permission First

Permission คือ Source of Truth เพียงหนึ่งเดียวของระบบ

ทุกการตรวจสอบสิทธิ์ ไม่ว่าจะอยู่ที่

  • API
  • Route Handler
  • Server Action
  • Feature Service
  • Page Guard
  • Navigation
  • UI Visibility

ต้องอ้างอิงจาก Effective Permissions เท่านั้น

ห้ามตรวจสอบสิทธิ์จาก

  • businessRole
  • membership.role
  • systemRole

โดยตรง

Role มีไว้เพื่อช่วย Migration เท่านั้น


Principle 2 — Effective Permission Is The Truth

Permission จริงของผู้ใช้งาน

ต้องคำนวณจาก

Permission Template

+

Allow Override

-

Deny Override

=

Effective Permissions

ห้ามให้แต่ละ Feature

คำนวณ Permission เอง

ต้องใช้ Logic กลางเพียงชุดเดียว


Principle 3 — Server Owns Authorization

Server

คือเจ้าของการตัดสินใจเรื่องสิทธิ์

UI

มีหน้าที่เพียง

  • ซ่อน
  • แสดง

เท่านั้น

ห้ามเชื่อถือ UI

ทุก API

ต้องตรวจ Permission ซ้ำเสมอ


Principle 4 — Single Permission Engine

ระบบต้องมี

Permission Engine

เพียงหนึ่งเดียว

ทุกส่วนของระบบ

ต้องเรียกใช้ Engine นี้

ห้ามมี

Permission Logic

ซ้ำหลายที่


Principle 5 — Organization Isolation

ทุก Permission

ต้องอยู่ภายใต้

Organization Context

เสมอ

ห้ามเกิดกรณี

User A

Organization A

↓

เข้าถึงข้อมูล

Organization B

โดยไม่ได้รับอนุญาต


Principle 6 — Incremental Migration

ทุก Feature

ต้องสามารถย้ายทีละ Module ได้

โดยไม่ทำให้

Module อื่นเสีย


Principle 7 — Backward Compatibility

Compatibility Layer

สามารถมีได้

แต่

ห้ามเป็น

Source of Truth


Permission-first Validation Rules

Codex ต้องตรวจสอบว่า

ทุก Layer

ใช้

Effective Permission

จริงหรือไม่

Checklist

Permission

↓

Session

↓

Permission Engine

↓

API

↓

Feature

↓

Navigation

↓

UI

หากพบ

Role

เข้ามาเป็นตัวตัดสิน

ให้บันทึกเป็น

Architecture Finding


Architecture Validation Rules

ตรวจสอบทุก Layer

ด้วยกฎเดียวกัน


Rule 1

Business Logic

ต้องอยู่

Server

ไม่ใช่ UI


Rule 2

Authorization

ต้องอยู่

Server

ไม่ใช่ Hook


Rule 3

Permission

ต้อง Resolve

เพียงครั้งเดียว

ไม่ใช่ทุก Feature


Rule 4

ทุก Module

ต้องใช้

Permission Helper

ชุดเดียวกัน


Rule 5

ทุก Query

ต้องมี

Organization Scope


Rule 6

ทุก Feature

ต้องรองรับ

Permission Override

โดยไม่ต้องเขียน Logic เพิ่ม


Anti-Pattern Detection

Codex

ต้องค้นหา

Architecture Smell

ต่อไปนี้


Role Leak

เช่น

if (businessRole === "HRD")

หรือ

if (isHRD())

Permission Leak

เช่น

Permission

ถูกตรวจ

เฉพาะ UI


Organization Leak

เช่น

Query

ไม่มี

organization_id


Duplicate Authorization

เช่น

Feature A

เขียน

Permission Logic

เอง

Feature B

เขียนใหม่อีกชุด


Duplicate Permission Mapping

เช่น

Announcement

มี Mapping

คนละชุด

กับ

Online Lesson


Feature-specific Permission Resolver

เช่น

Announcement

Resolve Permission

เอง

แทนที่จะใช้

Permission Engine


Session Leak

เช่น

Session

มีข้อมูล

Permission

ไม่ตรงกับ

Database


Direct Role Dependency

เช่น

Navigation

ตรวจ

businessRole

โดยตรง


UI Trust

เช่น

ซ่อนปุ่ม

แต่

API

ไม่ตรวจ Permission


Cross Organization Access

เช่น

ไม่มี

Organization Context

ใน Query


Permission Dependency Validation

Codex

ต้องตรวจสอบว่า

Permission

สัมพันธ์กันถูกต้องหรือไม่

ตัวอย่าง

announcement:publish

ควรมี

announcement:read_all

ก่อน

หรือ

training_record:approve

ควรมี

training_record:review

หากพบ

Permission

ที่ขาด Dependency

ให้บันทึก

เป็น

Finding


Reuse Validation

ก่อนเสนอ

สร้าง

Service

Component

Hook

Repository

Helper

ใหม่

Codex

ต้องตรวจสอบว่า

ของเดิม

สามารถ Reuse

ได้หรือไม่

หากสร้างใหม่

ต้องอธิบายเหตุผล

ทุกครั้ง


Naming Validation

ตรวจสอบ

Naming Convention

ทั้งหมด

เช่น

Permission

ต้องเป็น

module:action

ตัวอย่าง

announcement:create

announcement:publish

online_lesson:approve

ห้ามมี

Pattern

หลายแบบ

ในระบบเดียวกัน


Layer Responsibility Validation

แต่ละ Layer

ต้องมีหน้าที่ชัดเจน

Layer Responsibility
Database Data Storage
Permission Engine Resolve Effective Permission
Authorization Helper Permission Validation
API Business Authorization
Service Business Logic
Navigation Menu Visibility
UI Presentation

ห้าม

Business Logic

หลุดไปอยู่

UI


Architecture Smell Severity

ทุก Finding

ต้องถูกจัดระดับ

Critical

High

Medium

Low

Information

พร้อมเหตุผล

และ

ผลกระทบ


Required Outputs

หลังจบ Section นี้

Codex

ต้องสามารถสร้าง

  • Architecture Principles Validation
  • Anti-Pattern Report
  • Architecture Smell Report
  • Layer Responsibility Report
  • Permission Dependency Report
  • Reuse Opportunity Report

ทั้งหมดจะถูกใช้ต่อ

ใน

Phase 0

Part 2


End Of Section C

ห้ามเสนอการ Refactor

จนกว่าจะตรวจครบทุก Rule ใน Section นี้

Phase 0 Architecture Audit

Part 1 Section D

Deliverables, Reporting Standards, Readiness Assessment & Exit Criteria

Objective

กำหนดผลลัพธ์ (Deliverables) ที่ Codex ต้องจัดทำหลังจากตรวจสอบระบบเสร็จ รวมถึงมาตรฐานการจัดทำรายงาน การประเมินความพร้อม (Readiness Assessment) และเกณฑ์การอนุมัติให้เข้าสู่ Phase 1


Deliverables

เมื่อจบ Phase 0

Codex ต้องสร้างเอกสารในโฟลเดอร์

docs/architecture-audit/

ประกอบด้วยเอกสารอย่างน้อยดังต่อไปนี้

phase-0-architecture-audit.md

phase-0-readiness-report.md

phase-0-risk-register.md

phase-0-migration-checklist.md

phase-0-architecture-findings.md

phase-0-technical-debt.md

phase-0-next-phase-plan.md

ห้ามรวมทุกอย่างไว้ในไฟล์เดียว

แต่ละเอกสารต้องมีวัตถุประสงค์ชัดเจน


Architecture Audit Report

รายงานหลักของ Phase 0

ต้องประกอบด้วย

Executive Summary

สรุปภาพรวม

  • สถานะปัจจุบัน
  • จุดแข็ง
  • จุดอ่อน
  • ความพร้อม
  • ความเสี่ยง
  • คำแนะนำ

Current Architecture

อธิบาย Architecture ปัจจุบัน

พร้อม Diagram

เช่น

Authentication

↓

Session

↓

Permission Resolution

↓

API

↓

Feature

↓

Navigation

↓

UI

Findings

สรุปสิ่งที่พบ

แบ่งตาม

  • Critical
  • High
  • Medium
  • Low

พร้อม

  • File
  • Module
  • Description
  • Impact
  • Recommendation

Reuse Opportunities

สรุป

Service

Helper

Component

ที่สามารถ Reuse

ได้


Technical Debt

สรุป

Legacy Code

Code Duplication

Architecture Smell

Dependency

ที่ยังเหลือ


Readiness Report

รายงานนี้

มีหน้าที่ตอบเพียงคำถามเดียว

ระบบพร้อมเข้าสู่ Phase 1 หรือไม่

ต้องแบ่งเป็นหมวด

ตัวอย่าง

Category Status Score Notes
Permission Catalog READY 100 ครบถ้วน
Session READY 95 เหลือ Compatibility
Navigation PARTIAL 60 ยังใช้ businessRole
Route Handler NOT READY 20 ยังใช้ requireHRD
Admin UI NOT READY 0 ยังไม่มี

Readiness Levels

ใช้ระดับดังนี้

READY

PARTIAL

NOT READY

พร้อมคะแนน

0 - 100

เกณฑ์

90-100

Production Ready

70-89

Ready For Migration

40-69

Need Improvement

0-39

Not Ready

Risk Register

ทุก Risk

ต้องมี

Field Description
Risk ID รหัส
Severity Critical / High / Medium / Low
Probability High / Medium / Low
Impact Business Impact
Recommendation วิธีลดความเสี่ยง
Owner ผู้รับผิดชอบ
Phase ควรแก้ในเฟสใด

ตัวอย่าง

R-001

Legacy businessRole

High

ควรลบใน Phase 4

Migration Checklist

สร้าง Checklist

ที่สามารถใช้จริง

ในทุก Phase

ตัวอย่าง

Permission Engine

☑

Template Service

☑

Navigation

☐

Announcement

☐

Online Lesson

☐

Training Record

☐

Admin UI

☐

Cleanup

☐

Architecture Scorecard

ประเมินแต่ละหัวข้อ

Category Score
Architecture
Security
Authorization
Session
Performance
Maintainability
Scalability
Multi Organization
Compatibility
Testability

พร้อม

คะแนนรวม


Documentation Standards

ทุกเอกสาร

ต้องมี

Summary

Findings

Evidence

Recommendation

Impact

Next Step

ห้ามมีเพียง

ความคิดเห็น

โดยไม่มีหลักฐาน


Evidence Requirements

ทุก Finding

ต้องอ้างอิง

  • File
  • Function
  • Component
  • Route
  • Helper
  • Service

ตัวอย่าง

File

src/lib/auth/session.ts

Function

requirePermission()

Finding

ยังมี fallback ไป businessRole

ห้ามเขียน

น่าจะ

อาจจะ

คาดว่า

Recommendation Standards

ทุก Recommendation

ต้องจัดลำดับ

Immediate

Short Term

Medium Term

Long Term

พร้อมเหตุผล


Phase Gate

ก่อนเข้าสู่

Phase 1

ต้องตรวจสอบว่า

Permission Catalog

READY


Effective Permission Resolver

READY


Session

READY


Schema

READY


Compatibility Layer

PARTIAL หรือ READY


Critical Issues

ต้องไม่มี


High Severity

ต้องมีแผนแก้


Documentation

ครบทุกไฟล์


Exit Criteria

Phase 0

ถือว่าเสร็จ

เมื่อ

  • Audit ครบทุก Layer
  • ตรวจ Repository ครบทุก Module
  • Architecture Validation ผ่าน
  • Security Review ผ่าน
  • Compatibility Review ผ่าน
  • Readiness Report เสร็จ
  • Risk Register เสร็จ
  • Migration Checklist เสร็จ
  • Technical Debt Report เสร็จ
  • Next Phase Plan เสร็จ

หากเงื่อนไขใดไม่ผ่าน

ห้ามเริ่ม

Phase 1


Definition Of Done

Phase 0

จะถือว่าเสร็จสมบูรณ์

เมื่อสามารถตอบคำถามต่อไปนี้ได้ทั้งหมด

  • Foundation พร้อมหรือไม่
  • Permission-first Model ถูกต้องหรือไม่
  • Effective Permission เป็น Source Of Truth จริงหรือไม่
  • Organization Isolation เพียงพอหรือไม่
  • Feature ใดพร้อม Migration ก่อน
  • Feature ใดมีความเสี่ยง
  • Legacy ส่วนใดยังจำเป็น
  • Legacy ส่วนใดสามารถลบได้ในอนาคต
  • Architecture มี Technical Debt อะไร
  • ระบบพร้อมเข้าสู่ Phase 1 หรือยัง

Next Phase Handover

เมื่อจบ Phase 0

ให้สร้างเอกสาร

docs/architecture-audit/phase-0-next-phase-plan.md

โดยระบุ

Phase 1

Permission Core Architecture

↓

Phase 2

Feature Authorization Migration

↓

Phase 3

Permission Administration

↓

Phase 4

Compatibility Cleanup

พร้อม

  • Dependencies
  • Risks
  • Estimated Complexity
  • Expected Deliverables

เพื่อใช้เป็นเอกสารอ้างอิงของทุกเฟสถัดไป


End Of Part 1

เมื่อ Part 1 เสร็จ

ห้ามเริ่ม Refactor

ห้ามเริ่ม Feature Migration

ห้ามแก้ไขโค้ด

จนกว่าจะเข้าสู่

Phase 0 Part 2 (Codebase Architecture Audit)

ซึ่งจะเป็นการตรวจสอบ Repository จริงแบบ File-by-File และ Module-by-Module โดยอ้างอิงหลักการทั้งหมดจาก Part 1