Back to the list
sdlc · Rust zero-dep · bản phát hành riêng
sdlc · anti-drift advisory engine
Keeps an AI assistant on plan across dozens of turns
Anyone who works with an AI assistant for long enough hits the same thing: the first ten turns are excellent, and by turn fifty it has forgotten a settled constraint, edited files nobody asked about, and reported done while the test suite has not run. Writing a stricter prompt does not fix it, because the prompt lives in context too, and context gets compacted. sdlc moves the state out of the model: the engine holds the plan, the assistant just does the work.
Installed software, no public demo.
- Rust
- Zero-dependency
- Claude Code hooks
- FSM
- Sub-agent
§ 01Algorithm
# Qua vài chục lượt, trợ lý AI TRÔI khỏi kế hoạch: quên ràng buộc đã chốt,
# sửa file ngoài phạm vi, báo "xong" khi bộ test còn chưa chạy.
# Nhắc kỹ hơn không cứu được — lời nhắc nằm trong context, mà context thì trôi.
# → Trạng thái phải nằm NGOÀI mô hình. Engine giữ, trợ lý chỉ là ống dẫn.
lane = DESIGN → IMPLEMENT_RUN → COMMIT → REVIEW → NEXT_PLAN
DESIGN.exit ⟸ resource registry + interaction map đã khai báo xong
COMMIT.gate:
run(verifyCmd) # build + test THẬT của dự án
verifyCmd chưa đặt → FAIL # fail-closed, engine không đoán hộ
observed_writes ⊄ declared → FAIL # ghi ra ngoài phần đã khai báo
cây git bẩn lúc EPIC_DONE → FAIL
attest(tree_sha) # cùng cây thì không chạy lại full suite
mỗi role chạy như một SUB-AGENT ĐỘC LẬP
→ không dùng chung context, nên không thừa hưởng ảo giác của nhau
autonomy = L1 dừng mỗi feature | L2 mỗi epic | L3 chạy hết backlog
gate cứng cắm bằng hook của Claude Code — CHẶN được, không chỉ khuyên
license hết hạn → advisor im lặng, không bao giờ khoá phiên làm việc§ 02Highlights
- State lives in the Rust engine rather than in context, so compaction cannot lose the plan
- Fail-closed commit gate: nothing passes until the real build and test command is declared
- Observed file writes reconciled against declared ones, out-of-scope changes blocked
- Every role is an independent sub-agent with no shared context
- Three autonomy levels: stop per feature, per epic, or run the whole backlog
- Release v2.10.0 shipped with 3,307 tests passing
- When the licence expires the advisor goes quiet and never locks your session
§ 03Screens