Giao diện
Quyết định
Sáu tháng sau, CEO hỏi: "Vì sao chúng ta quyết phụ huynh không được sửa điểm thành thạo?" Conan1 phải trả lời bằng một bản ghi.
Decision D-0182
Tuyên bố: Phụ huynh không được tự sửa điểm thành thạo.
Vì sao: Mức thành thạo phải dựa trên bằng chứng.
Liên quan: REQ-0218 · Q-0881 · Nemo12 · Learner Dashboard · Assessment & Evidence · nemo12-learn
Người quyết: dac2205@gmail.com (human)
Ngày: 2026-08-31
Phân tích AI: …Đây là bộ nhớ tổ chức. Một quyết định không có lý do là một mệnh lệnh; một quyết định không truy được về yêu cầu và năng lực là một ghi chú lạc.
Decision
Bảng decisions, ID D-NNNN — số tuần tự toàn hệ thống.
| Thuộc tính | Ghi chú |
|---|---|
name_en / name_vi | Tuyên bố — quyết định trong một câu |
rationale_en / rationale_vi | Vì sao — Rule 10: bắt buộc với quyết định decided, /v1/governance kiểm tra |
description_en / description_vi | Bối cảnh |
decided_by | Email người quyết, Worker đóng dấu từ Cloudflare Access — không bao giờ nhận từ body |
decided_by_kind | human · ai_assisted — có gợi ý AI được chọn trên đường tới quyết định này hay không |
decided_at | Thời điểm quyết |
ai_analysis_en / ai_analysis_vi | Phân tích + rủi ro của gợi ý đã chọn, sao chép tại thời điểm quyết (hiện thu gọn trên trang chi tiết) |
ai_run_id | Lần gọi AI đã cung cấp phân tích đó |
status | proposed · decided · superseded · reverted |
supersedes_id | Quyết định này thay thế quyết định nào |
| Neo | requirement_id, question_id, product_id, feature_id, application_id, capability_id — điền từ chuỗi truy vết lúc quyết |
brand_id | Phạm vi, từ sản phẩm |
Sai
Quyết định do "AI" ký. Quyết định bị xoá khi đổi ý. Quyết định chỉ có tuyên bố, không có lý do.
Đúng
decided_byluôn là một người — email từ Access; AI chỉ có thể làai_assisted- Đổi ý = quyết định mới với
supersedes_id; quyết định cũ thànhsuperseded - Bỏ =
reverted, bản ghi vẫn còn - Lý do bắt buộc — thiếu thì Rule 10 báo vi phạm
Hai đường sinh ra quyết định
| Đường | Endpoint | Khi nào |
|---|---|---|
| Từ một câu hỏi | POST /v1/questions/:id/decide | Câu hỏi đã answered; quyết định thừa hưởng câu trả lời cuối, gợi ý đã chọn và chuỗi truy vết của yêu cầu |
| Độc lập | POST /v1/decisions | Quyết định không gắn với câu hỏi nào — ví dụ một quyết định kiến trúc ở cấp sản phẩm hay năng lực; body có thể mang product_id, capability_id, application_id, feature_id và links[] |
Cả hai đường đều đóng dấu decided_by, decided_by_kind, decided_at ở Worker và ghi audit_log. Form chung (PATCH /v1/decisions/:id) chỉ sửa được tuyên bố, lý do, bối cảnh, trạng thái, supersedes_id và các neo sản phẩm/năng lực — không sửa được người quyết, thời điểm, phân tích AI hay các neo yêu cầu/câu hỏi.
Dải "Liên quan" được đóng băng
Bảng decision_links (decision_id, entity, entity_id), entity là một trong requirement · question · feature · product · application · capability · initiative.
Khi quyết từ một câu hỏi, Worker ghi một dòng cho câu hỏi, yêu cầu, sản phẩm, và mỗi feature / ứng dụng / năng lực / sáng kiến không rỗng trong chuỗi truy vết tại thời điểm đó. Đây là lịch sử, không phải join sống: nếu sau này yêu cầu đổi feature, dải Liên quan của quyết định cũ vẫn kể đúng bối cảnh lúc quyết.
Dải có thể được chỉnh tay bằng POST /v1/decisions/:id/links và DELETE /v1/decisions/:id/links?entity=&entity_id=; mỗi mục tiêu được kiểm tra tồn tại (400 Unknown link target).
Trang chi tiết quyết định giải mỗi mắt xích thành liên kết: REQ → /requirements/REQ-0218, Q → /requirements/REQ-0218#Q-0881, sản phẩm → /products/nemo12, năng lực → /model/assessment, ứng dụng → /products/applications/nemo12-learn, sáng kiến → /transformation. Ở chiều ngược lại, trang năng lực trên Compass và trang sản phẩm đều có thẻ Decisions đọc từ chính bảng này.
Không bao giờ xoá
Rule 8 của Compass (không xoá lịch sử) mở rộng sang mặt phẳng này:
| Thao tác | Kết quả |
|---|---|
DELETE /v1/decisions/:id | status = reverted, trả { "deprecated": true, "reason": "decision_memory" } |
DELETE /v1/requirements/:id | Xoá thật chỉ khi còn draft và không có câu hỏi, quyết định, bằng chứng nào; ngược lại status = dropped, { "reason": "has_history" } |
DELETE /v1/questions/:id | Xoá thật chỉ khi còn open / suggested và chưa có quyết định; ngược lại dropped |
DELETE /v1/products/:id | Sản phẩm có yêu cầu → retired, { "reason": "has_requirements" } |
Giao diện không có nút Xoá trên quyết định — chỉ có Thu hồi với hộp xác nhận. Mọi thao tác trên đều ghi audit_log; trang chi tiết quyết định hiện nhật ký của chính nó qua GET /v1/audit?entity=decisions&id=D-0182.
Tìm lại một quyết định
Hai đường tới cùng bản ghi:
- Từ Requirements: thanh tiêu đề → Requirements → sidebar Decisions → gõ mastery →
D-0182. - Từ Compass:
/model/assessment→ thẻ Decisions →D-0182.
Cả hai đều đến /requirements/decisions/D-0182 — một trang có tuyên bố, lý do, người quyết, phân tích AI, dải Liên quan, thay thế / bị thay thế, và nhật ký.
Quyền
Chỉ architect được tạo, sửa, thu hồi quyết định và chỉnh dải Liên quan. Mọi vai trò khác đọc. Xem Phân quyền.