# {{PROJECT_NAME}} — Project Constitution

> **Version:** 1.0.0 | **Ratified:** {{DATE}} | **Last Amended:** {{DATE}}
>
> Đây là HIẾN PHÁP của dự án — tập nguyên tắc **bất di bất dịch**. Mọi spec (Gate 1),
> architecture (Gate 2), task và dòng code về sau PHẢI tuân theo. Vi phạm một nguyên tắc
> ở đây là lỗi thiết kế, không phải lựa chọn phong cách.

---

## 1. Core Principles (Nguyên tắc cốt lõi)

> Mỗi nguyên tắc là MỘT câu mệnh lệnh có thể kiểm chứng (testable), không phải mong muốn mơ hồ.
> Giữ 3–7 nguyên tắc. Nhiều hơn = không ai nhớ. Ít hơn = chưa đủ ràng buộc.

### Principle I: {{PRINCIPLE_NAME}}
- **Rule:** [Mệnh lệnh rõ ràng — VD: "Mọi logic nghiệp vụ phải có unit test trước khi merge."]
- **Rationale:** [Tại sao nguyên tắc này tồn tại — vấn đề nó ngăn chặn.]
- **Non-negotiable because:** [Hậu quả nếu vi phạm.]

### Principle II: {{PRINCIPLE_NAME}}
- **Rule:** [...]
- **Rationale:** [...]
- **Non-negotiable because:** [...]

### Principle III: {{PRINCIPLE_NAME}}
- **Rule:** [...]
- **Rationale:** [...]
- **Non-negotiable because:** [...]

<!-- Thêm Principle IV–VII nếu cần. Xoá phần thừa. -->

---

## 2. Technical Constraints (Ràng buộc kỹ thuật)

> Ràng buộc cứng suy ra từ nguyên tắc hoặc từ thực tế hạ tầng. KHÁC nguyên tắc:
> đây là "sự thật" (VD: tech stack đã chọn), không phải "giá trị".

| Constraint | Value | Nguồn (evidence / user) |
|-----------|-------|-------------------------|
| Ngôn ngữ / Framework | [VD: TypeScript + NestJS] | [package.json / user] |
| Data / DB | [VD: Postgres, offline-first] | [...] |
| AI models | [VD: Gemini 2.5+ only] | [CLAUDE.md] |
| Security baseline | [VD: no hardcoded secrets → .env] | [...] |
| Performance budget | [VD: cold start < 2s] | [...] |

---

## 3. Development Workflow Rules (Quy tắc quy trình)

> Nguyên tắc về *cách làm việc*, không phải về *sản phẩm*.

- **Testing:** [VD: Test-first cho mọi logic nghiệp vụ.]
- **Review:** [VD: Mọi PR qua code-review gate trước khi merge.]
- **Commit / Versioning:** [VD: Conventional commits; SemVer.]
- **File size:** [VD: File < 500 lines.]

---

## 4. Governance (Sửa đổi hiến pháp)

- Hiến pháp này **thắng** mọi convention khác. Xung đột → hiến pháp đúng.
- Sửa đổi cần: (1) lý do rõ ràng, (2) user approve, (3) tăng version + ghi vào lịch sử bên dưới.
- **SemVer cho hiến pháp:**
  - **MAJOR** — gỡ/định nghĩa lại một nguyên tắc (breaking cho code đang chạy).
  - **MINOR** — thêm nguyên tắc/ràng buộc mới.
  - **PATCH** — làm rõ câu chữ, không đổi ý nghĩa.
- Trong lúc code, nếu buộc phải vi phạm một nguyên tắc → ⛔ DỪNG, quay lại đây sửa hiến pháp (có approve) TRƯỚC, rồi mới code.

### Amendment History
| Version | Date | Change | Approved by |
|---------|------|--------|-------------|
| 1.0.0 | {{DATE}} | Ratified hiến pháp ban đầu | {{USER}} |
