Skip to content
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

Turbo v2 — làn 4 chặng do engine chốt, không để trợ lý tự nhớ
# 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

sdlc · anti-drift advisory engine — 01