{
  "note": "Các protocol hiện hành của Techgon Agent Governance. Bản đầy đủ trong file md tương ứng.",
  "protocols": [
    {"id": "source-of-truth", "name": "Source of Truth Rule", "doc": "GUI_DISCIPLINE_PROTOCOL.md", "summary": "PROJECT_ROOT (file system) là nguồn sự thật duy nhất để đọc/sửa code — không phải VSCode, cửa sổ đang mở hay screenshot."},
    {"id": "no-vscode-wandering", "name": "No VSCode Wandering Rule", "doc": "GUI_DISCIPLINE_PROTOCOL.md", "summary": "Không mở/đoán/chụp VSCode để tìm project; đọc-sửa trực tiếp file system trong PROJECT_ROOT."},
    {"id": "gui-discipline", "name": "GUI / Browser Discipline", "doc": "GUI_DISCIPLINE_PROTOCOL.md", "summary": "GUI chỉ để test web đúng URL, xem live/staging, release script khi PO duyệt. Window Check trước mọi screenshot/click."},
    {"id": "project-lock", "name": "Project Lock Header", "doc": "GUI_DISCIPLINE_PROTOCOL.md", "summary": "Mỗi vòng làm việc bắt đầu bằng Project Lock; thiếu là không code.", "template": "templates/project-lock-template.json"},
    {"id": "write-verify", "name": "Write-Verify Rule", "doc": "UNIVERSAL_RULES.md#U8", "summary": "Sau khi ghi file phải đọc lại từ ổ thật: size, EOF, cấu trúc chính."},
    {"id": "credentials-safety", "name": "Credentials Safety Rule", "doc": "SECURITY_BASELINE.md#B15", "summary": "Secret pointer only; không plaintext trong code/log/report/chat; login do PO thao tác; secret qua kênh không chuẩn = rotate."},
    {"id": "rollback-first", "name": "Rollback First Rule", "doc": "RELEASE_AND_ROLLBACK.md", "summary": "Rollback Plan viết trước khi code; sự cố nghiêm trọng: restore first, analyze later."},
    {"id": "screenshot-evidence", "name": "Screenshot Evidence Rule", "doc": "GUI_DISCIPLINE_PROTOCOL.md", "summary": "Screenshot là evidence phụ; thiếu title/URL/path xác minh = Invalid Evidence."},
    {"id": "no-framework-assumption", "name": "Vanilla PHP / No Framework Assumption", "doc": "UNIVERSAL_RULES.md#U6", "summary": "PHP không có framework rõ ràng = Vanilla PHP; cấm ép Laravel/MVC/Eloquent/migration."},
    {"id": "risk-triage", "name": "Risk Triage S/M/L", "doc": "MASTER_SKILL.md", "summary": "Phân loại trước khi làm; task L bắt buộc Git + staging + rollback, thiếu là Refused."},
    {"id": "learning-loop", "name": "Learning Loop", "doc": "LEARNING_LOOP.md", "summary": "Lỗi → ERR 13 trường → luật/checklist/prompt → version bump → không lặp lại."},
    {"id": "memory-standard", "name": "Memory Standard", "doc": "MEMORY_STANDARD.md", "summary": "Chuẩn ghi nhớ 2 tầng (project + toàn cục), trạng thái Open/Applied/Verified."},
    {"id": "public-redaction", "name": "Public Redaction Policy", "doc": "PUBLIC_REDACTION_POLICY.md", "summary": "Quy tắc lọc dữ liệu trước khi public; hard bans với credentials/paths/logs."},
    {"id": "version-governance", "name": "Version Governance", "doc": "UNIVERSAL_RULES.md#U18", "summary": "Mọi thay đổi mô hình ghi MODEL_VERSION_HISTORY (semver); dashboard không được sai phiên bản."}
  ]
}
