v1.0 · 2026-04-03 · thinh.ho@ots.vn · Developer Guide

Dùng AI đúng cách,
không chỉ
gõ prompt hay.

Framework tư duy cho developer: từ hiểu Context Window, xây Mental Model đúng, đến hệ thống hóa với SDD & OT-Kit — biến AI thành cộng sự đáng tin cậy.

# ❌ Prompt-first — mơ hồ, phải sửa nhiều lần
Bạn: "Fix login bug"
→ AI đoán mò → tạo middleware generic → sai stack

# ✅ Context-first — đúng ngay lần đầu
Bạn: "Fix login bug"
+ đính kèm: auth.controller.ts, error.log, .env schema
→ AI thấy bcrypt, JWT config, lỗi cụ thể → fix chính xác

# ✅✅ SDD + OT-Kit — hệ thống hóa hoàn toàn
/plan "Authentication system"
/code "phase-01.md" → Gate 5: chờ approve
/fix ✓ 47/47 tests passed
/git-cp "feat: auth" ✓ Done.
Chương 0 · Vấn Đề

4 vấn đề developer
gặp khi dùng AI.

Inconsistency
Cùng câu hỏi, AI trả lời khác nhau mỗi lần. Không ai biết convention nào đang dùng.
~45 phút/ngày
Mất vào dọn dẹp output AI: sửa style, đổi convention, viết lại test.
Context mất
"Giải thích lại từ đầu" mỗi session mới — AI không nhớ gì cả.
Knowledge Decay
Code AI sinh ra, 2 tuần sau không ai hiểu. Docs lạc hậu ngay khi viết xong.
Chương 2 · Core Concept

Context Window:
"Bộ nhớ làm việc" của AI

Đây là lý do 90% developer dùng AI không hiệu quả — và là khái niệm quan trọng nhất bạn cần hiểu.

HÌNH DUNG
Cái bàn làm việc
Thuê senior dev cực giỏi, nhưng chỉ nhớ những gì trên bàn trước mặt. Thứ gì không trên bàn → không biết tồn tại.
Context window = cái bàn
Token = đơn vị đo diện tích (1 token ≈ 4 ký tự)
Context = giấy tờ bạn đặt lên bàn

⚠️ Bàn đầy giấy → quan trọng bị che khuất
⚠️ Bàn trống → thiếu info để làm việc
CON SỐ THỰC TẾ
Window lớn ≠ tốt hơn
1M token nhồi code thừa → AI "thấy cây không thấy rừng". 32k token chọn lọc kỹ → output chính xác.
Model
Window
Tương đương
Copilot
~8k
Vài file
GPT-4o
128k
~320 trang
Claude 4
200k
~500 trang
Gemini 2.5
1M
~2,500 trang
CONTEXT ROT
Session dài = Chất lượng giảm
Mỗi lượt chat = thêm giấy lên bàn. Sau 30 lượt, AI không tìm thấy thông tin quan trọng nữa.
Lượt 1–5 Context sạch → chính xác ← Peak
Lượt 10–15 Cũ + mới lẫn lộn ← Giảm
Lượt 20–30 Mâu thuẫn, "quên" đầu session ← Unreliable
Lượt 30+ Hallucinate, lặp lại ← Đóng session!
AGENT TOOL — KHÁC BIỆT
AI tự quản lý context
Với agent tool, context bao gồm cả output của tools (terminal, file, search). Mỗi tool call = thêm token.
Agent nhận task →
├─ 🔍 Grep → tìm files (200 tokens)
├─ 📄 Đọc 4 files (1,550 tokens)
├─ ✏️ Sửa code (800 tokens)
├─ 🧪 Test → fix → retest (1,000 tokens)
└─ 📊 ~3,550 tokens cho 1 task đơn giản

5 task × 3,550 = ~17,750 tokens chỉ tool output
Chiến Lược
Cursor
Claude Code
Copilot Agent
Tìm file
@file, @folder — bạn chỉ định
Tự chạy grep, find
Tự quyết based on prompt
Rules cố định
.cursor/rules/*.mdc
CLAUDE.md
GitHub settings
Nén context
Auto summarize
Filesystem = bộ nhớ ngoài
Summarize + skill routing
Kết luận: Prompt Engineering giải quyết 20% vấn đề (cách viết câu hỏi). Context Engineering giải quyết 80% (thiết kế toàn bộ thông tin AI nhận được).
"Đừng hỏi 'viết prompt tốt hơn'. Hãy hỏi 'thiết kế context tốt hơn'."
Chương 3 · Tư Duy

4 Mental Models
trước khi dùng AI.

Xây mental model đúng → tự suy ra điều cần làm. Không phải học thuộc rules.

🧠
#1 — AI là đồng nghiệp, không phải oracle
Biết nhiều pattern nhưng không biết project của bạn. Tự tin khi đúng khi sai — không có signal phân biệt.
✅ Luôn review output · Cung cấp project context
❌ Blind copy-paste · Coi output đầu là final
🏗️
#2 — Bạn kiến trúc sư, AI thợ xây
Bạn quyết định kiến trúc, requirements, tech stack. AI thực thi: boilerplate, tests, docs, commits.
"Developer giỏi nhất = người quyết định đúng
nhanh nhất, không phải code nhanh nhất."
📦
#3 — Context là tài nguyên có hạn
Context Engineering > Prompt Engineering. Quản lý context có chủ đích bằng WSCI Framework.
W=Write (lưu ra file) · S=Select (chọn lọc)
C=Compress (nén) · I=Isolate (tách session)
🎯
#4 — Task nhỏ, rõ, có done criteria
1 session = 1 task + definition of done rõ ràng. Không nhảy từ debug sang design cùng session.
❌ "Làm feature authentication" (quá rộng)
✅ "Validate email unique, return 409 if dup"
Chương 4 · Kỹ Thuật

CRSP Framework
cho prompt hiệu quả.

4 thành phần: Context, Role, Spec, Precedent. Không phải prompt dài hơn — mà prompt có cấu trúc hơn.

❌ Prompt thường
"Viết unit test cho LoginViewModel" → AI không biết dùng JUnit4 hay JUnit5, mock bằng Mockito hay MockK, Hilt hay Koin. → Phải sửa 2-3 lần. Mỗi lần sửa = thêm context rác vào window.
✅ CRSP prompt
[C] Android Kotlin + MVVM + Hilt + Retrofit. Test: JUnit5 + MockK + Turbine. [R] Act as senior Android dev pair-programming [S] Test LoginViewModel.login(): - emit Loading → Success khi API 200 - emit Error khi 401 (sai password) - emit Error khi network timeout Done = 100% branch coverage trên StateFlow. [P] Style theo RegisterViewModelTest.kt → Đúng ngay lần đầu. 0 lượt sửa.
TẠI SAO CRSP?
CRSP không phải "viết dài hơn" — mà là đặt đúng thông tin vào context (liên kết Chương 2). Mỗi chữ cái trong CRSP giải quyết một lỗ hổng context mà prompt thông thường bỏ qua:
[C] Context — Nền tảng
Là gì: Tech stack, conventions, project constraints.
Tại sao: AI không biết project bạn dùng gì. Thiếu context → AI chọn sai framework, sai convention.
Ví dụ: Android Kotlin + MVVM + Hilt + Room. DI dùng Hilt, không Koin.
[R] Role — Góc nhìn
Là gì: AI đóng vai gì — senior dev, security auditor, code reviewer.
Tại sao: Role thay đổi cách AI suy nghĩ. Security auditor sẽ flag injection attack, senior dev sẽ focus clean code.
Ví dụ: Act as senior Android developer focused on clean architecture.
[S] Spec — Yêu cầu cụ thể
Là gì: Chính xác cần làm gì, input/output, edge cases, done criteria.
Tại sao: Đây là thành phần quan trọng nhất. Không có spec rõ → AI đoán scope → sinh code thừa hoặc thiếu.
Ví dụ: Done = 100% branch coverage. Handle: success, 401 sai password, network timeout.
[P] Precedent — Ví dụ mẫu
Là gì: File mẫu, code example, convention đã có — paste hoặc đính kèm.
Tại sao: Bị underrate nhất. 1 ví dụ tốt > 10 dòng giải thích. AI học convention ngay lập tức từ few-shot.
Ví dụ: Viết theo style giống RegisterViewModelTest.kt (đính kèm file).
Tình huống
Dùng CRSP?
Lý do
Viết feature / module mới
✅ Đầy đủ CRSP
Scope lớn → cần context rõ ràng để AI không đi lệch hướng
Debug cụ thể
🔹 C + S
Đính kèm error + code, nêu hypothesis. Role và Precedent thường không cần
Refactor theo pattern
🔹 C + S + P
Quan trọng nhất là Precedent — paste ví dụ pattern mong muốn
Hỏi nhanh / giải thích code
⊘ Không cần
Task đủ nhỏ, prompt bình thường là đủ
Dùng Agent tool (Cursor, Claude Code)
🔸 S chủ yếu
C và P đã nằm trong rules file — chỉ cần nêu spec rõ ràng
🐛 Debug mode
Lỗi: [error message]
Stack trace: [paste]
Code: [paste relevant function]
Đã thử: [what you tried]
Hypothesis: [your guess]
→ Xác nhận/bác bỏ. Đề xuất fix cụ thể.
⚖️ Architecture decision
Quyết định giữa [A] và [B] cho [use case].
Constraints: team N người, timeline X tuần.

Recommend rõ ràng — KHÔNG chỉ liệt kê
pros/cons. Phải có kết luận.
Chương 5 · Hệ Thống

SDD — Spec Driven Development
Viết spec trước, code sau.

Bạn là kiến trúc sư — vẽ bản thiết kế (spec) trước khi thợ xây (AI) bắt đầu xây. Không có bản vẽ → đập đi xây lại.

👤
CON NGƯỜI
① Viết spec
③ Review output
④ Approve hoặc sửa spec
SPEC →
← CODE
🤖
AI
② Đọc spec → Generate code
Chạy tests tự động
Báo cáo kết quả
Approach
Flow
Rủi ro
Code-first
Nghĩ → Code → Docs sau
Convention lệch, docs lạc hậu
Prompt-first
Prompt → Copy code → Hy vọng
Không reproduce, inconsistent
SDD
Spec → Code → Verify
Tốn time viết spec (đáng đầu tư)
OT-Kit · Công Cụ

OT-Kit biến SDD
thành thực tế.

SDD là triết lý. OT-Kit là hệ thống

TẦNG 01
Rules
"Hiến Pháp" cho AI — Rules bất biến, nhất quán bất kể ai làm. → Giải quyết Inconsistency
YAGNIKISSDRY200 dòng/fileconventional commits
TẦNG 02
Agents
14 AI Agents chuyên biệt — đúng agent cho đúng việc. → Giải quyết Overhead
plannerresearcherdevelopertesterdebuggerdocs-manager
TẦNG 03
Workflows
33+ Workflows tự động — mỗi lệnh = một playbook chuẩn hóa. → Giải quyết Context Loss + Knowledge Decay
/plan/code/fix/docs/git-cp/bootstrap+27 more

Walkthrough: Thêm feature "User Registration"

BƯỚC 01
/plan
Bạn chạy /plan "User Registration". AI research codebase, tạo plan file chứa spec. Bạn review spec → Approve.
→ plans/user-reg/phase-01.md
→ Spec: input, rules, API, edge cases
BƯỚC 02
/code
AI đọc spec → code theo constraints. Bước 1–4 tự động. Bước 5: BẮT BUỘC DỪNG → bạn review code vs spec.
→ Code + tests generated
→ Gate 5: chờ human approve ✋
BƯỚC 03
/fix
Loop tự động đến khi 100% tests pass. Tests dựa trên spec → verify tự động.
→ ✓ 47/47 tests passed
→ 100% coverage
BƯỚC 04–05
/docs · /git-cp
Sync docs với code mới → AI có context cho lần sau. Conventional commit + push.
→ Docs updated
→ feat: user registration ✓

Hệ thống /docs — Bộ nhớ dài hạn

FILE MỤC ĐÍCH
project-overview.md
Business context, yêu cầu, scope
codebase-summary.md
Module map, cấu trúc file
system-architecture.md
Kiến trúc, API, data flow
code-standards.md
Convention, coding patterns
design-guidelines.md
UI/UX system, components
deployment-guide.md
Deploy, CI/CD pipeline
project-roadmap.md
Phase tracker, % hoàn thành
TẠI SAO DOCS QUAN TRỌNG?
Mỗi session mới = context window trống. docs/ chính là RAM dài hạn — AI load chúng → có ngay toàn bộ kiến thức project.
❌ Không docs
✅ Có docs
1–2 tuần onboard
1–2 ngày
AI hỏi lại mỗi session
AI tự load context
Tech debt ẩn
Rõ ràng từ ngày 1
Convention truyền miệng
Enforce bởi rules
Cài Đặt · Bắt Đầu

Cấu hình MCP
3 phút để bắt đầu.

MCP (Model Context Protocol) kết nối AI tool với OT-Kit server — cho phép AI truy cập agents, rules, và workflows ngay trong IDE.

01
Thêm MCP config
vào IDE của bạn
02
Restart IDE
để load server
03
/plan
để verify
⚡ Antigravity · Gemini
Thêm vào file mcp_config.json:
{ "mcpServers": { "ot-kit": { "command": "npx", "args": [ "mcp-remote", "https://otkit.xutils.dev/mcp", "--header", "Authorization: Bearer YOUR_KEY" ] } } }
📍 File: ~/.gemini/antigravity/mcp_config.json
🟣 Claude Code (CLI)
Chạy lệnh trong terminal — tự động thêm vào config:
claude mcp add ot-kit \ --transport http \ https://otkit.xutils.dev/mcp \ -H "Authorization: Bearer YOUR_KEY"
💡 Claude Code tự quản lý MCP config — không cần sửa file thủ công.
Kết Luận

Không phải gõ prompt →
copy paste code.

Mà là: Hệ thống có cấu trúc · có kiểm soát · có knowledge tự tích lũy.

Tuần 1 — Tư Duy
Internalize 4 Mental Models
Áp dụng CRSP cho mọi prompt
Rule: 1 session = 1 task
Hiểu Context Window = core
Tuần 2 — Thực Hành
Tạo project-context.md
Fresh Start strategy mỗi task
Thử dev loop 5 bước
Viết spec trước khi code
Tuần 3+ — Hệ Thống
Cài đặt OT-Kit vào project
Chạy /docs-init
Dùng Decision Matrix chọn workflow
SDD cho mọi feature mới