Decision memory layer for multi-tenant codebases, readable by AI agents
Server has 7 tools with complete input schemas and descriptions in Vietnamese. Naming follows verb_noun pattern (search_, get_, list_, add_). However, descriptions are domain-specific and lengthy (200-300 chars), making them less LLM-optimized. Parameter descriptions are present but terse. Output schemas are not explicitly documented, responses are inferred from code. Error handling is minimal; add_decision returns a success dict but no guidance on failure modes. No tool annotations (readOnlyHint/destructiveHint) despite clear read/write distinction. Missing pagination support in search_decisions despite accepting a limit parameter.
Tạo decision record mới ở trạng thái draft, trong repo đang mở. Luôn là draft: `decided_by` phải do con người xác nhận qua `decision-graph confirm <id> --by '<tên>'`. Không được đoán ai đã quyết định.
Đọc đầy đủ 1 quyết định, gồm cả phần lý do và các phương án đã bị từ chối.
Lần ngược chuỗi supersedes để xem quyết định này từng bị đổi mấy lần.
Mọi quyết định từng đụng vào file này, cũ nhất trước. Dùng khi cần biết logic trong file có từ bao giờ và xuất phát từ ai.
Bản đồ khác biệt của một scope: module nào bị override, file nào, vì sao.
Liệt kê các scope (khách hàng / dòng sản phẩm) và số quyết định của từng scope. `root` trong kết quả cho biết server đang đọc repo nào — kiểm tra field này trước khi kết luận 'repo chưa có quyết định nào'.
Output schemas not documented. Tools return dicts/lists but LLMs cannot see field structure, types, or required fields. Downstream tool chaining is guesswork.
No tool annotations (readOnlyHint/destructiveHint). add_decision is clearly destructive (WRITE risk), but LLMs cannot see this from the schema. Agents may retry or parallelize unsafe operations.
Descriptions in Vietnamese only. LLMs trained primarily on English may misinterpret intent. Descriptions are also lengthy (200-300 chars) vs. LLM-optimized baseline of 50-200 chars.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
Tìm quyết định nghiệp vụ đã được ghi nhận trong repo đang mở. Lọc metadata trước rồi mới full-text, nên `scope` là tham số quan trọng nhất khi một repo phục vụ nhiều khách hàng / dòng sản phẩm. status: active | draft | superseded | deprecated | any
search_decisions accepts limit but no offset/cursor for pagination. Large result sets will blow context window. No guidance on how to iterate through results.
Error handling is implicit. add_decision returns success dict but no documented failure modes. get_decision returns {"error": ...} on miss, but other tools do not. Inconsistent error contract.