Personal Operator Kit · workshop

Mình không cài thêm agent.
Mình biến Claude Code thành trợ lý làm việc riêng.

Claude Code 2.1.207 · Desktop 1.20186.1 · đo trên máy thật
▸ Beat 1 · ~1 phút. Mở bằng case study thật, không phải lời hứa. Không so tool. Đây là cách mình đang làm việc — để họ nhìn 2-3 giây rồi vào quick win.

OpenClaw/Hermes giải đúng bài toán
nhưng không bằng cách mình chọn.

bán cho người lạ
Phải làm general
Chợ plugin, 152 extension, module "dreaming" để tự nhớ. Vì phục vụ người lạ nên phải đoán mọi việc.
phục vụ một người
Quyết sẵn từng lệnh
Việc đã thành lệnh thì không cần nhớ. CLI + MCP thiết kế có chủ đích cho đời mình.
▸ Beat 2 · ~2 phút. Đặt chúng vào vai tham chiếu, KHÔNG biến buổi học thành so tool. Cả hai đều là cái vỏ gọi xuống Claude Code. Một đối chiếu ngắn rồi đi tiếp.

Chọn đúng nền, đừng mua cái vỏ.

Tiêu chíClaude CodeOpenClawHermes
Model + giáOpus, gói Max cố địnhTự API key, theo tokenTự API key, theo token
Công cụBash gọi mọi CLI152 extension + chợ plugin30 toolset
Bộ nhớ truy hồiIndex phẳng, tự đoánVector + keyword, tự dọnSnapshot lúc mở phiên
Tự nhắn + kênhBắc cầu: Routine + MCPDaemon + nhiều kênhDaemon + nhiều kênh
Bộ nãoClaudeClaude hoặc GPTClaude hoặc GPT

Chọn Claude Code làm nền. Bộ nhớ và tự nhắn là phần mình vá đúng việc sau.

▸ Beat 2b · ~2 phút. Đối chiếu bối cảnh hiện tại. Claude Code thắng ở model+giá, công cụ, bộ não. Bộ nhớ + tự nhắn là chỗ vá — dẫn sang big idea.
Ý tưởng cốt lõi

Biến việc của mình thành lợi thế.

“CLI và MCP được quyết sẵn cho việc của mình — không phải một máy tính chung cho mọi người.”

Họ làm general vì phục vụ người lạ. Mình phục vụ một người, nên chọn sẵn một lệnh cho từng việc.

▸ Beat 2c · ~2 phút. Đây là luận điểm gốc. Không phải "general computer use" — mà là verb quyết sẵn cho đúng công việc của bạn. Cả buổi build quanh câu này.

Đây là Personal Operator của bạn.

Ý định việc cần xong Skill đầu điều phối Context + Workflow luật & đích "xong" Surface lệnh / CLI / MCP Kết quả bằng chứng xong Memory phần chưa thành lệnh chạy thật → chấm kết quả → sửa workflow

Một lệnh chưa phải trợ lý. Cả vòng này mới là.

▸ Beat 2d · ~2 phút. Bức tranh toàn cảnh. Đi qua từng node một lần cho họ có bản đồ. Cả buổi sau là zoom vào từng phần của luồng này.

Một agent chỉ đáng giá khi việc được làm xong.

Không phải khi nó thông minh. Không phải khi nó tiết kiệm token. Khi việc xong.

▸ Beat 3 · ~1 phút. Tạo nhu cầu cho một kết quả cụ thể. Dẫn thẳng vào quick win — họ sắp thấy "việc xong" nghĩa là gì trong 10 phút tới.
Peak 1 · quick win · ~10 phút

Chạy thử một việc an toàn trước, chưa cần tin framework.

# read-only · sample data · không đụng gì thật
$ ./bin/operator-verb weekly-close --json
▸ Beat 4 · ~4 phút. Kết quả TRƯỚC framework. Chạy verb thật trên sample board. LUẬT CỨNG: read-only / sample — không bao giờ ghi Trello/order/member. Thắng lợi đầu không được thành sự cố đầu.

Trợ lý đáng tin tạo kết quả kiểm được, không chỉ trả lời hay.

Output có cấu trúc, đọc được bằng máy, và có luật an toàn ghi thẳng trong code.

{
  "total": 6,
  "stuck": [
    { "name": "Book the venue",  "days_idle": 15 },
    { "name": "Legal review",     "days_idle": 19 }
  ],
  "by_status": { "todo": 2, "review": 2, "in-progress": 2 }
}
# days_idle động · nguồn: sample-data/board.json · KHÔNG ghi hệ thống thật
▸ Beat 5 · ~2 phút. Structured output = agent gọi được, không phải người đọc text. Chỉ ra chỗ nói "sample data", nhấn: không có gì thật bị đụng.

Một lệnh có sẵn cho việc lặp lại tốt hơn tự mò.

tự mò
43–65 lượt · 2.5–2.7M token
Mò credentials, thử curl, sai, thử lại. Yêu cầu thứ 3 quá 9 phút rồi bỏ cuộc. 2/3 việc xong.
lệnh sẵn
2 lượt · ~6 giây / yêu cầu
Gõ lệnh, đọc kết quả. 3/3 việc xong trong 17 giây tổng.

Điểm không phải tiết kiệm token. Điểm là: việc này được làm xong.

▸ Beat 6 · ~3 phút. Nhấn "hoàn thành việc", KHÔNG bán "tiết kiệm $X". Con số 29x là phụ; thứ người ta sợ thật là giao việc rồi AI loay hoay không xong. Số đo: 31-so-do-token.md.

Nhưng một lệnh chạy được chưa phải trợ lý.

Nó chưa biết khi nào chạy, đọc gì trước, xin xác nhận ở đâu, lưu kết quả vào đâu.

▸ Beat 7 · ~1.5 phút. Mở câu hỏi kế tiếp: chỉ tích nhiều command là đủ? Verb là hạt giống đúng, nhưng còn thiếu bốn thứ. Bốn thứ đó là phần còn lại của buổi.

Kit là một Claude Code project
không phải bộ file để chép tay.

Clone về, mở trong Claude Code. CLAUDE.md và skill load ngay. Không có bước copy X đến Y.

▸ Beat 8 · ~2 phút. Giới thiệu đúng bản kit cuối. Nguyên tắc số 1: copy-and-run. Script chỉ lo hai thứ thật sự cần: memory hook (đường tuyệt đối) + đưa verb lên PATH.

Đặt file đúng chỗ để Claude Code tự dùng.

personal-operator-kit/          ← LÀ một Claude Code project
├── CLAUDE.md                 ← load ngay (operating context)
├── .claude/skills/workflow-runner/SKILL.md  ← skill tự load
├── .claude/settings.json     ← hook + env (gitignored)
├── bin/operator-verb           ← verb (read-only, sample)
├── hooks/  memory/             ← vòng bộ nhớ
└── docs/                       ← file người-đọc (không CC-load)
▸ Beat 9 · ~2 phút. Hai loại file, không được lẫn. File CC-load phải đúng chỗ (CLAUDE.md, .claude/skills, settings.json); file người-đọc để docs/. Bản đầu đánh số 00-05 rồi đẩy SKILL.md ra khỏi chỗ CC tìm — hỏng.

Bạn cần một đường đi, không phải cây thư mục.

kiểm máy quick win operator workflow riêng compound
README dẫn theo trải nghiệm · cây thư mục theo hệ thống · đừng trộn
▸ Beat 10 · ~1.5 phút. Kết quả trước, khung sau. Người mua đang mệt vì nhiều app; bắt nuốt 4 khái niệm trước khi thấy gì chạy = bức tường. README theo 6 bước trải nghiệm.
Phần 2 · việc chạy trọn vẹn

Biến một lệnh thành trợ lý riêng: một vòng làm việc trọn vẹn.

ý định skill context+SOP surface kết quả trạng thái mới
ý định → skill → bối cảnh → CLI/MCP → kết quả → nhớ lại
▸ Beat 11 · ~3 phút. Reveal vòng vận hành — đây là cái biến command thành operator. Skill workflow-runner nạp context + workflow, chọn tool, dừng ở chỗ cần xác nhận, ghi proof đúng nơi.

Context cho Claude biết nó đang vận hành cho ai
và theo luật nào.

CLAUDE.md · bạn là ai, làm việc kiểu gì
operating contract · ranh giới duyệt
read-only chạy tự do · write phải hỏi
▸ Beat 12 · ~2 phút. Context = CLAUDE.md + operating-contract.md. Không có nó, agent đoán. Có nó, agent biết chỗ nào được chạy, chỗ nào phải dừng xin phép.

Workflow quyết định thế nào là "xong".

trigger
steps
approval boundary
kết quả
done-when

Không có workflow brief, skill không tự bịa quy trình. Nó dừng và hỏi bạn điền.

▸ Beat 13 · ~2 phút. workflow-brief.md = hợp đồng "xong". Trigger, steps, chỗ xin duyệt, proof ghi đâu, khi nào coi là xong. Skill đọc brief; không có brief thì không chạy.

Skill là đầu điều phối. Lệnh là tay thực thi.

verb (surface)
Làm một việc xác định
Cùng input, cùng output. Không suy nghĩ. `operator-verb weekly-close`.
skill
Biết KHI NÀO chạy
Đọc gì trước, xin xác nhận ở đâu, proof ghi đâu. `workflow-runner` nối chúng lại.
▸ Beat 14 · ~2 phút. Giữ rõ khác biệt — gộp lại là biến kit thành thư viện command, mất điểm bán "operator". Verb = tay; skill = đầu. workflow-runner là lớp nối.
Demo

Cùng lệnh đó, giờ đã thành một việc chạy trọn vẹn.

# yêu cầu weekly close an toàn / đã sanitize
> "chạy weekly close cho mình"
  skill đọc brief → đọc CLAUDE.md + contract
  → gọi operator-verb --json → dừng ở chỗ write
  → xin duyệt → ghi proof
▸ Beat 15 · ~3 phút. Cho thấy SỰ CHUYỂN HÓA, không phải một ví dụ khác. Chính verb ở Peak 1, giờ bọc trong skill. Read-only chạy thẳng; chỗ write dừng xin duyệt.

CLI, MCP hay model? Không chọn theo trend.

CLI
việc deterministic mình sở hữu
Cùng input, cùng output. Bạn nắm code.
MCP
một việc chạy được ở ngoài
Dịch vụ bên thứ ba đã có sẵn.
model
phán đoán thay đổi
Việc cần suy xét, không cố định được.
▸ Beat 16 · ~2.5 phút. Dạy judgment khi chọn surface. tool-sourcing ladder: CLI cho việc mình sở hữu + deterministic; MCP cho capability ngoài; giữ ở model khi phán đoán còn thay đổi.

Browser là fallback. neo và CLI-Anything là đường nâng cao.

web app đã login, không API → neo
phần mềm desktop GUI → CLI-Anything
một phút quyết · không cài, không demo

Không phải core setup. Chỉ mở ra khi CLI và MCP thật sự không với tới được.

▸ Beat 17 · ~1.5 phút. Đặt ranh giới cho tool nâng cao — decision guide một phút, KHÔNG cài hay demo. neo/CLI-Anything trỏ về research (26). Đừng biến thành workshop cài đặt.
Đơn vị thực hành

Workflow + nơi làm việc + skill tạo thành trợ lý riêng.

Chọn một việc bạn làm lặp lại. Làm nó chạy trọn vẹn với trợ lý.

▸ Beat 18 · ~2 phút. Đơn vị thực hành = một vertical slice, KHÔNG phải "một CLI". Chọn recurring job → dùng ladder quyết surface → dựng slice đầu tiên.

Việc chạy trọn vẹn cần ranh giới an toàn và kết quả kiểm được.

bắt đầu
Read-only / sample trước
Chạy thật, không đụng hệ thống thật. Xác nhận vòng vận hành đúng.
rồi mới
Write phải có confirmation
Mọi thao tác ghi vào hệ thống thật: dừng, cho xem sẽ đổi gì, chờ yes.
▸ Beat 19 · ~2 phút. Ngăn tự động hóa thiếu kiểm soát. Read-only/sample trước để test luồng; write luôn có confirmation. Đây là guardrail baked vào code, không phải lời khuyên.
Memory là phần còn lại của những gì chưa biến thành verb.
▸ Beat 20 · ~1.5 phút. Đặt memory đúng vai — thêm SAU khi workflow đã chạy thật. Việc đã thành lệnh thì không cần nhớ. Memory chỉ giữ durable context còn lại.

Memory loop giữ context bền vững, không ghi tự do.

Kiến trúc bị ép bởi hợp đồng hook: PreCompact chỉ veto, nên phải ghi ở Stop, nạp lại ở SessionStart.

Stop hook đủ dòng mới fact có nhãn loại [decision] [constraint]… memory/YYYY-MM-DD.md SessionStart startup|resume|compact nạp lại context vào phiên mới
đã verify riêng lẻ · vòng clean-install Desktop end-to-end = khe hở còn lại
▸ Beat 21 · ~3 phút. DẠY KIẾN TRÚC + giới hạn cài đặt. KHÔNG trình bày như live proof. Đã verify riêng: hook bắn trên Desktop, merge đúng, fact có nhãn, sống qua /compact ở phiên trước. CHƯA verify: clone sạch → install → phiên Desktop thật → dạy → nén → nhớ lại, liền một mạch. TODO: nếu Tony gõ vài câu trong Desktop pass trước buổi → slide này thành live proof 3 phút (dạy fact → /compact → hỏi lại). Mặc định: framing trung thực.

Kit giúp bạn tránh những bẫy đã trả giá.

preflight kiểm máy ở nhà
merge idempotent, backup trước
TRAPS trỏ đúng bẫy theo từng bước

19 bẫy không Google ra được. Ví dụ: đếm lượt theo session thì hook chạy hoài mà không bao giờ ghi.

▸ Beat 22 · ~2 phút. Giá trị của preflight + install + TRAPS. Mỗi bẫy = một buổi tối ai đó trả giá. Kit không bắt đọc hết 19 bẫy — README trỏ đúng bẫy theo việc đang làm. Nguồn: 40-cac-bay-ky-thuat.md.
Peak 3 · feedback loop

Workflow chỉ compound khi được chấm theo kết quả.

chạy held / partial / broke đề xuất sửa bạn duyệt chạy lại
Playbook có track record · held / partial / broke
▸ Beat 23 · ~3 phút. Làm feedback loop trở nên hữu hình. Retrospective chỉ ĐỀ XUẤT sửa memory/skill/SOP; chủ hệ thống mới approve/reject. Track record chấm mỗi lần chạy: held/partial/broke.
Đừng tự động hóa phán đoán.
Hãy tự động hóa nhịp học.
▸ Beat 24 · ~2 phút. Trả lời claim "self-improvement" của Hermes. Hermes tự bảo LLM cứ sửa skill mỗi phiên, bỏ qua tín hiệu dùng thật — tự học sai. Ở đây: retrospective đề xuất, chủ hệ thống duyệt hoặc từ chối.

Thứ bạn mang về là một đường đi, không phải một kho tài liệu.

kiểm máy verb việc chạy trọn kết quả memory review
memory và review đến SAU · không phải bước đầu
▸ Beat 25 · ~2 phút. Chuyển take-home thành hành động cụ thể. Không mang về 8 folder để đọc. Mang về một đường: chuẩn bị máy → gõ một lệnh → Claude tự làm trọn → xem kết quả → nhớ → chấm lại.

Không cần một agent biết mọi thứ.
Cần một trợ lý riêng biết việc của bạn.

quay lại verb ở Peak 1 · giờ nó là một compound workflow
▸ Beat 26 · last slide, hold for Q&A. Khép lại câu hỏi mở đầu. Quay về chính verb ở slide 4 — giờ audience hiểu nó như một compound workflow, không chỉ một command chạy được. Đừng auto-advance.

Bằng chứng · phiên bản đo được

Kit chạy được, đã committed: ~/Documents/tony/personal-operator-kit (git d6e92ef).

Đo trên máy thật 2026-07-12: Claude Code CLI 2.1.207 · Claude Desktop 1.20186.1 (build 2026-07-10, bản có in-app browser + đã hết bug PATH T18).

Luận điểm gốc: CLI + MCP thiết kế CÓ CHỦ ĐÍCH cho đời mình dễ hơn general computer use.

nguồn: _index.md · 50-nguon.md · 70-kit-final.md

Bằng chứng · OpenClaw & Hermes là cái vỏ

OpenClaw gọi thẳng xuống Claude Code qua ACP, dùng lại login Claude Code (docs/tools/acp-agents.md). Agent loop = while-loop tầm thường (packages/agent-core/src/agent-loop.ts).

Nous tự khuyên đừng dùng model của họ làm bộ não. Docs OpenClaw thừa nhận API key là "the most predictable option" cho daemon — tức subscription hợp desktop hơn.

Vì bán cho người lạ nên phải general: 152 extension, module "dreaming" 14k dòng để tự nhớ. Phục vụ một người thì quyết sẵn từng lệnh, việc đã thành lệnh không cần nhớ.

nguồn: _index.md · 50-nguon.md (câu trích source)

Bằng chứng · bảng đối chiếu 3 công cụ

Model + giá: Claude Code = Opus trên gói Max cố định. OpenClaw & Hermes bắt tự mang API key, trả theo token. 04/2026 Anthropic cấm OpenClaw dùng gói thuê bao vì user đốt "hàng trăm, hàng ngàn đô".

Công cụ: Bash gọi mọi CLI qua $PATH — không chợ plugin. OpenClaw = 152 extension, Hermes = 30 toolset.

Bộ nhớ truy hồi: chỗ Claude Code yếu (index phẳng, model tự đoán); OpenClaw mạnh (vector+keyword, tự dọn); Hermes yếu (snapshot lúc mở phiên).

Bộ não: cả 3 đều là Claude/GPT. OpenClaw gọi thẳng xuống Claude Code.

nguồn: 02-bang-doi-chieu.md (16 dòng năng lực) · 30-chi-phi.md

Bằng chứng · luận điểm gốc

CLI + MCP thiết kế có chủ đích cho công việc của mình — không phải "general computer use" như OpenClaw/Hermes.

OpenClaw/Hermes buộc phải general (152 extension, chợ plugin) vì bán cho người lạ, không biết bạn làm gì.

Phục vụ một người → quyết sẵn từng câu lệnh: amy trello, gws, sk, qmd. Việc đã thành lệnh thì không cần nhớ.

nguồn: 01-ket-luan.md §G (luận điểm gốc)

Bằng chứng · luồng Personal Operator

Luồng: Ý định → Skill → Context+Workflow → Surface → Proof → Memory, khép bằng vòng chạy-thật → chấm → sửa.

Skill (đầu điều phối) biết khi nào chạy verb nào, đọc context gì, dừng ở ranh giới duyệt nào, ghi proof đâu. Verb (surface) chỉ làm một việc.

Đây là cấu trúc kit thật: .claude/skills/ + bin/ (verb) + hooks/+memory/ + docs.

nguồn: 60-kit-structure.md · 70-kit-final.md

Bằng chứng · đáng giá = việc xong

Lỗ hổng thật của Claude Code chỉ có 1 nhóm: bộ nhớ + học hỏi. 12/16 dòng năng lực nó đã ngang hoặc thắng.

Không bán "tiết kiệm token" — bán "việc đó chạy xong".

nguồn: _index.md (5 điều quan trọng nhất)

Bằng chứng · quick win read-only

Verb thật: bin/operator-verb weekly-close --json. Comment trong code ghi rõ:

SAFETY GUARDRAIL: this verb is READ-ONLY and runs on SAMPLE DATA only. A first win must never be a first incident.

Nguồn dữ liệu: bin/sample-data/board.json. Không ghi Trello/order/member/production. Guardrail baked vào code (Codex thêm).

nguồn: 70-kit-final.md §5 · 60-kit-structure.md (guardrail) · repo

Bằng chứng · output thật của verb

Chạy trên máy 2026-07-16, output nguyên văn (rút gọn): total: 6, stuck gồm "Book the venue" (days_idle 15), "Legal review of terms" (days_idle 19), "Write welcome email" (days_idle 12).

days_idle tính động từ epoch trong sample board — verify: "trả JSON + proof, days-idle động".

nguồn: 70-kit-final.md §6 (đã VERIFY) · repo bin/operator-verb

Bằng chứng · số đo 29x + bỏ cuộc

Việc: lấy hết card từ board Trello thật (694bf0d4b8a51f36a088e2d5), gom theo list, chỉ ra card kẹt. Model haiku cả 2 bên. MỘT phiên, BA yêu cầu liên tiếp (--resume).

Điểm chính không phải tiết kiệm token. Điểm chính là cách tự mò không làm xong việc.

Bẫy đo lường: chạy 3 lần riêng → overhead che chênh lệch (ra 1.5x vô nghĩa). Đúng: một phiên, context ấm → ra 29x.

nguồn: 31-so-do-token.md · raw 31-so-do-token-raw.json

Bằng chứng · lệnh chưa phải trợ lý

Skill workflow-runner nói thẳng: một verb làm một việc; skill quyết KHI NÀO chạy, đọc gì trước, ranh giới ở đâu, proof ghi đâu.

Một lệnh chạy được thì chưa phải trợ lý. Nó là hạt giống đúng. Context, quy trình và skill mới làm nó biết khi nào cần chạy.

nguồn: .claude/skills/workflow-runner/SKILL.md · 60-kit-structure.md (câu chốt)

Bằng chứng · kit là project, copy-and-run

This IS a Claude Code project. Clone it, open it in Claude Code, and the skill loads automatically — no copy step.

Nguyên tắc số 1: copy-and-run. Script chỉ lo hai thứ thật sự cần thiết lập: memory hook (đường tuyệt đối) + đưa verb lên PATH.

nguồn: CLAUDE.md (repo) · 70-kit-final.md §1–2

Bằng chứng · file đúng chỗ CC mới thấy

Sửa lỗi thiết kế: bản đầu đánh số 00-context/…05-feedback-loop/ cho dễ đọc, NHƯNG đặt SKILL.md vào thư mục tài liệu → Claude Code không thấy skill. Tony bắt đúng.

Hai loại file, không lẫn: CC-load (CLAUDE.md, .claude/skills/*/SKILL.md, .claude/settings.json) vs người-đọc (docs/).

Verify: "skill ở đúng chỗ CC load ✅ .claude/skills/".

nguồn: 70-kit-final.md §2, §6 · repo tree

Bằng chứng · trải nghiệm vs cây thư mục

Tách hai thứ tự: 00→05 = logic hệ thống (cây); quick win → vertical slice → compound = logic trải nghiệm (README + deck).

Người mua đang mệt vì nhiều app. Bắt nuốt 4 khái niệm mới trước khi thấy gì chạy = bức tường. Kết quả trước, khung sau.

README 6 bước: kiểm máy → thắng lợi đầu (~10 phút) → biến verb thành operator → áp vào việc của bạn → compound → advanced.

nguồn: 60-kit-structure.md (README 6 bước) · feedback_sell_outcome_not_mechanism

Bằng chứng · vertical slice

Vòng vận hành: ý định → skill → bối cảnh → CLI/MCP → kết quả → nhớ lại.

Skill workflow-runner nạp context và workflow phù hợp, chọn tool, dừng ở chỗ cần xin xác nhận, rồi ghi proof về đúng nơi.

Act 5 = build một vertical slice (workflow + surface + skill), KHÔNG phải "build một CLI" — đơn vị nhỏ nhất đủ để thấy một Personal Operator hoạt động.

nguồn: 71-slide-outline.md (Peak 2) · 60-kit-structure.md (Act 5)

Bằng chứng · context binds Claude

Skill bước 2: "Read CLAUDE.md (who they are, their rules) and docs/operating-contract.md (the approval boundary). These bind you."

Operating contract (repo CLAUDE.md): READ-ONLY chạy tự do; WRITES vào hệ thống thật (Trello, orders, members, production) phải hỏi trước, cho xem sẽ đổi gì; irreversible luôn confirm; mọi action để lại proof, không silent write.

nguồn: .claude/skills/workflow-runner/SKILL.md · CLAUDE.md (repo) · docs/operating-contract.md

Bằng chứng · workflow brief = "xong"

Skill bước 1: "Find the brief in docs/workflow-brief.md. If none exists, ask the user to fill it first — don't improvise a workflow."

Brief chứa: trigger, steps, approval boundary, proof, done-when. Ví dụ có sẵn: docs/weekly-close.example.md.

nguồn: .claude/skills/workflow-runner/SKILL.md · docs/workflow-brief.md

Bằng chứng · skill ≠ verb (không gộp)

Quyết định tranh cãi đã chốt: 02-surfaces ≠ 03-skills — KHÔNG gộp.

Verb = tay (làm một việc). Skill = đầu (biết khi nào chạy, đọc gì, xin xác nhận ở đâu, proof ghi đâu). Gộp = biến kit thành thư viện command, mất điểm bán "operator workflow".

workflow-runner là lớp nối chúng lại.

nguồn: 60-kit-structure.md (quyết định đã chốt)

Bằng chứng · demo là chuyển hóa

Demo bằng một yêu cầu weekly close an toàn hoặc đã sanitize — chính verb ở Peak 1, giờ đã bọc trong skill.

Skill: run the verb (prefer --json) → respect boundary (read-only chạy thẳng; writes STOP, show, wait yes) → save proof → report.

nguồn: 71-slide-outline.md (slide 15) · .claude/skills/workflow-runner/SKILL.md

Bằng chứng · tool-sourcing ladder

CLI cho việc deterministic mình sở hữu; MCP cho capability ngoài; giữ ở model cho phán đoán thay đổi. Không chọn theo trend.

Docs: docs/tool-sourcing-ladder.md + docs/cli-vs-mcp.md.

nguồn: 71-slide-outline.md (slide 16) · repo docs/

Bằng chứng · neo & CLI-Anything là nâng cao

Guardrail deck: KHÔNG dạy cài neo hoặc CLI-Anything — đường nâng cao khi thật sự cần. Decision guide một phút, không cài, không demo.

Kit chỉ trỏ về research (26), không copy nội dung: 90-advanced/see-research.md.

nguồn: 71-slide-outline.md (guardrail) · 60-kit-structure.md · 26-neo-vs-cli-anything.md

Bằng chứng · đơn vị thực hành

README bước 3: chọn một recurring job → dùng tool-sourcing ladder quyết CLI/MCP/model → tạo vertical slice đầu tiên.

Act 5 đổi: KHÔNG còn "build một CLI". Là "build một vertical slice gồm workflow + surface + skill".

nguồn: 60-kit-structure.md (README bước 3 · Act 5)

Bằng chứng · ranh giới an toàn

Quick-win verb phải READ-ONLY hoặc chạy trên SAMPLE DATA. KHÔNG bao giờ là command ghi thẳng vào Trello / order / member / production.

Vì sao: 30 người học × "thắng lợi đầu bằng verb thật" = 30 card rác hoặc đụng hệ thống thật. "Thắng lợi đầu" thành "sự cố đầu".

Operating contract: writes phải confirm, cho xem sẽ đổi gì, chờ yes. Baked vào code.

nguồn: 60-kit-structure.md (guardrail) · 70-kit-final.md §5

Bằng chứng · memory đến sau

README bước 4: thêm 04-memory/ khi có durable context cần giữ — SAU khi vertical slice chạy thật.

Việc đã thành lệnh thì không cần nhớ (đó là lý do OpenClaw cần module dreaming 14k dòng, kit này thì không). Memory chỉ giữ phần còn lại chưa thành verb.

nguồn: 60-kit-structure.md (bước 4) · _index.md (luận điểm gốc)

Bằng chứng · memory loop — verify & khe hở

Kiến trúc bị ép bởi hợp đồng hook (T1): PreCompact chỉ VETO (schema {"decision":"block",…}, không inject context) → phải ghi liên tục ở Stop, nạp lại ở SessionStart.

Đã VERIFY riêng lẻ: hook bắn trên Desktop; SessionStart(source=compact) chạy; fact sống qua /compact (ở phiên trước, kit cũ); merge không ghi đè hook người khác; idempotent; extractor ra fact có nhãn loại ([decision]/[constraint]/…), bỏ noise.

CHƯA VERIFY (khe hở duy nhất): "clone sạch → install → phiên Desktop THẬT → dạy fact → /compact → nhớ lại" liền một mạch trên kit MỚI. Cần Tony gõ vài câu trong Desktop.

⇒ Slide này dạy KIẾN TRÚC + giới hạn cài đặt. KHÔNG trình bày như live proof cho tới khi test pass.

nguồn: 70-kit-final.md §4, §7 · 40-cac-bay-ky-thuat.md (T1) · 50-nguon.md (trạng thái kiểm chứng)

Bằng chứng · TRAPS (IP đắt nhất)

19 bẫy không Google ra được. Vài cái đầu bảng:

README trỏ đúng bẫy theo từng bước, không bắt đọc hết.

nguồn: 40-cac-bay-ky-thuat.md (19 bẫy) · 60-kit-structure.md (TRAPS trỏ-bước)

Bằng chứng · feedback loop có track record

Loop: chạy → held / partial / broke → đề xuất sửa → người dùng duyệt → chạy lại.

Playbook có track record. Retrospective chỉ ĐỀ XUẤT sửa memory, skill hoặc SOP; chủ hệ thống mới là người approve/reject.

nguồn: 71-slide-outline.md (Peak 3) · docs/retrospective.md · docs/playbook-track-record.md

Bằng chứng · trả lời "self-improvement" của Hermes

Hermes prompt vòng lặp tự học (agent/background_review.py:181-284): "Be ACTIVE — most sessions produce at least one skill update… A pass that does nothing is a missed learning opportunity."

Nhưng nó mù tín hiệu: skill_usage.py chỉ có view/use/patch count, curator tự bảo LLM bỏ qua. Consolidation thông minh mặc định TẮT. ⇒ tự học có thể học sai.

Đừng tự động hóa phán đoán. Hãy tự động hóa nhịp học. — retrospective đề xuất; chủ hệ thống duyệt hoặc từ chối.

nguồn: 50-nguon.md (câu trích Hermes) · 71-slide-outline.md (Peak 3 câu chốt)

Bằng chứng · take-home = một đường đi

Bạn không mang về tám thư mục để đọc. Bạn mang về một đường đi: chuẩn bị máy → gõ một lệnh thay cho dặn từng bước → để Claude tự làm từ đầu tới cuối → xem kết quả thật → cho nó nhớ điều cần nhớ → chấm lại và sửa.

nguồn: 71-slide-outline.md (copy take-home) · 60-kit-structure.md

Bằng chứng · khép câu hỏi mở đầu

Nhịp deck (đã chốt): mở bằng verb đang chạy → hỏi "tại sao một command chưa thành trợ lý" → reveal khung → đóng bằng CHÍNH verb ban đầu, giờ đã thành vertical slice.

Lỗ hổng thật của Claude Code chỉ 1 nhóm: bộ nhớ + học hỏi. Kit lấp đúng nhóm đó — không cần agent biết mọi thứ, cần operator biết hệ thống việc của bạn.

nguồn: 60-kit-structure.md (nhịp deck) · _index.md (lỗ hổng thật)