Chọn một file bên trái.
Hai thứ mỗi thành viên cần: (1) biết dùng GitHub + GitHub Desktop + Claude Code / Codex, và (2) cài bộ skill để AI agent làm việc theo một quy trình có kế hoạch, có test, có memo bàn giao — rút ra từ những lỗi đã gặp thật khi làm các dự án của chúng ta.
careful-engineering là quy trình chung cho mọi loại dự án (web, bot, ứng dụng LLM, dữ liệu, game…). inno-aec thêm luật riêng của INNO cho plugin AutoCAD / Revit, tool tính diện tích – khối lượng và dữ liệu dự án – hợp đồng. caveman (bật khi cần) để AI trả lời gọn.
Tạo tài khoản GitHub, cài GitHub Desktop, VS Code, Claude Code / Codex, kết nối dự án với repo, Commit / Push / Pull. Dành cho người chưa từng dùng Git.
Mở hướng dẫn A–Z →Một lệnh PowerShell. Sau đó mọi phiên Claude Code trên máy bạn đều có quy trình 8 pha của careful-engineering (đọc → hiểu → kế hoạch → làm → kiểm chứng → ghi sổ → commit → deploy) và lệnh /caveman khi muốn AI trả lời gọn.
Dùng prompt mẫu: bắt AI viết lại yêu cầu + kế hoạch có bước kiểm chứng trước khi sửa, tái hiện lỗi trước khi sửa lỗi, báo cáo bằng số đo.
Xem prompt mẫu →AI đọc hướng dẫn từ ba nơi. Mỗi điều chỉ nên nằm ở một lớp — lớp thấp nhất mà nó đúng cho mọi trường hợp. Điều đúng cho mọi dự án của bạn để ở lớp 1; điều đúng cho mọi dự án INNO để ở lớp 2; điều chỉ đúng cho một repo để ở lớp 3.
%USERPROFILE%\.claude\CLAUDE.md — vài dòng sở thích chung: tiếng Việt, Windows, không push khi chưa bảo, dùng skill nào khi nào. Mẫu · cài bằng -GlobalMemory.CLAUDE.md ở mọi phiên; skill khi việc khớp mô tả hoặc gõ /careful-engineering./inno-aec.AGENTS.md (nguồn duy nhất) + CLAUDE.md (chỉ @AGENTS.md) — bản đồ repo, lệnh test, host & phiên bản, luật không được phá.docs/RUNBOOK.md, docs/HANDOFF.md, docs/plans/, sổ bất biến, quyết định.Nhóm Google Research (harness2) gọi mọi thứ bao quanh model là harness và chia làm 8 thành phần. Đối chiếu với bộ của mình để biết muốn đổi hành vi agent thì sửa ở đâu:
| Thành phần | Ở bộ này |
|---|---|
| System prompt | ~/.claude/CLAUDE.md (lớp 1) · AGENTS.md / CLAUDE.md của repo (lớp 3) |
| Guardrails (hàng rào) | Quyền của Claude Code / Codex (hỏi trước khi chạy lệnh) · hook · test canh bất biến BI-* · luật "khó lùi ⇒ phải xin phép" |
| Memory | Memory của Claude Code · docs/HANDOFF.md, DECISIONS.md, OPEN-ISSUES.md |
| Skills | careful-engineering, inno-aec, caveman + skill ngoài nếu chọn |
| Tool guidance | references/windows-unicode.md (shell, PowerShell, tiếng Việt) · docs/RUNBOOK.md |
| Scripts | templates/patch.js, mutate.js · build.ps1, script test trong host của từng repo |
| Subagents | references/review-delegation.md: giao việc, review độc lập |
| Plugins | MCP / plugin cài thêm — chỉ cài khi cần, mỗi cái là thêm quyền cho agent |
Bộ skill gồm careful-engineering (quy trình, mọi dự án), inno-aec (luật INNO, CAD/BIM, tính toán, dữ liệu hợp đồng) và nhóm caveman: caveman, ultracave, megacave (giọng trả lời gọn — xem mục Caveman). Lệnh cài mặc định chép cả năm. inno-aec chỉ được nạp khi việc thuộc lĩnh vực của nó, nên cài cho máy cũng không làm phiền các dự án khác.
Mở PowerShell (không cần quyền Admin) và chạy:
irm https://darkend16987.github.io/inno-ai-coding-guide/install.ps1 | iexMỗi skill được chép vào %USERPROFILE%\.claude\skills\<tên skill>. Nếu đã có bản cũ, bản cũ được đổi tên thành …\<tên skill>.bak-<ngày giờ> (không mất).
Chỉ muốn cài một vài skill: thêm -Skill (cách nhau bằng dấu phẩy):
& ([scriptblock]::Create((irm https://darkend16987.github.io/inno-ai-coding-guide/install.ps1))) -Skill careful-engineering,cavemanThêm hướng dẫn chung cá nhân (lớp 1) cùng lúc: thêm -GlobalMemory. Script chỉ tạo %USERPROFILE%\.claude\CLAUDE.md khi file đó chưa có; đã có thì để nguyên và lưu mẫu cạnh nó thành CLAUDE.inno-guide.md để bạn tự gộp.
& ([scriptblock]::Create((irm https://darkend16987.github.io/inno-ai-coding-guide/install.ps1))) -GlobalMemoryKiểm tra: mở một phiên Claude Code mới, gõ /careful-engineering, /inno-aec hoặc /caveman, hoặc hỏi "Which skills are available?" — phải thấy các skill vừa cài.
Dùng khi muốn skill đi theo repo (ai clone repo cũng có). Mở PowerShell tại thư mục gốc của repo rồi chạy:
& ([scriptblock]::Create((irm https://darkend16987.github.io/inno-ai-coding-guide/install.ps1))) -ProjectSkill vào .claude\skills\<tên skill> của repo. Commit thư mục đó bằng GitHub Desktop như mọi file khác. Có thể ghép -Project -Skill careful-engineering,inno-aec để chỉ đưa skill quy trình (và luật INNO, với repo của công ty) vào repo — caveman là sở thích cá nhân, nên cài cho máy.
Codex và nhiều agent khác đọc file AGENTS.md ở gốc repo. Cách chắc chắn chạy được với mọi phiên bản:
skills/careful-engineering (và skills/inno-aec với repo INNO) của repo này vào repo dự án, giữ nguyên đường dẫn skills/…/. Hướng dẫn chung cá nhân của Codex đặt ở %USERPROFILE%\.codex\AGENTS.md (dùng cùng mẫu).starter/AGENTS.md và starter/CLAUDE.md vào gốc repo dự án. AGENTS.md là nguồn hướng dẫn duy nhất (bảo agent làm theo skills/careful-engineering/SKILL.md); CLAUDE.md chỉ có dòng @AGENTS.md để Claude Code đọc cùng nội dung — không phải giữ hai bản.Nếu phiên bản Codex của bạn hỗ trợ "Agent Skills" (thư mục skill riêng của Codex), có thể đặt thư mục skill vào đó theo tài liệu chính thức của Codex; cách AGENTS.md ở trên vẫn là cách dự phòng.
skills\ (careful-engineering, inno-aec, caveman, ultracave, megacave) vào %USERPROFILE%\.claude\skills\ (tạo thư mục nếu chưa có).%USERPROFILE%\.claude\skills\careful-engineering\SKILL.md, …\caveman\SKILL.md, v.v.irm … | iex khi bạn tin nguồn của nó. Muốn xem trước script làm gì: mở install.ps1 — nó chỉ tải ZIP của repo này từ GitHub, sao lưu bản cũ, chép thư mục skill, rồi kiểm tra SKILL.md có mặt. Nó không cài hook, plugin hay chương trình nào của dự án caveman gốc.Đầu mỗi việc, AI chọn mức theo rủi ro và nói ra một dòng (ví dụ "Mức: M — vì chạm module xuất Excel, revert được"). Mức quyết định làm những pha nào — việc nhỏ không phải đi đủ 8 pha, việc chạm tiền hay dữ liệu thật thì không được bỏ pha nào.
| Mức | Khi nào | Phải làm |
|---|---|---|
| S · Nhỏ | Sửa chữ, cấu hình cục bộ, một chỗ hiển nhiên; không đổi hành vi người khác thấy, không chạm dữ liệu | Đọc file đích + tìm chỗ dùng · sửa · kiểm cú pháp + test liên quan · commit an toàn |
| M · Chuẩn | Tính năng / sửa lỗi trong một vùng, lùi được bằng revert | Pha 0–4 và 6 · handoff ngắn · test của lỗi đã sửa phải đỏ được (đột biến) |
| L · Nghiêm | Dữ liệu nghiệp vụ, schema / migration, production, nhiều module, bản phát hành, con số người khác dùng để ra quyết định (tiền, diện tích, khối lượng, hợp đồng) | Đủ 8 pha · memo kế hoạch, chờ duyệt rồi mới sửa · đột biến · thử trên app thật có so với mã cũ · sổ bất biến |
Phân vân thì chọn mức cao hơn; giữa chừng thấy rủi ro lớn hơn thì AI phải nâng mức và làm bù. Ở mọi mức: không bịa, kiểm chứng trước khi nói xong, commit an toàn. Skill cũng có lối riêng cho dự án mới (dựng khung chạy được trước), prototype (được bỏ ghi sổ, ghi rõ chưa dùng thật được), repo chưa có test (chụp hành vi hiện tại thành golden test trước khi sửa) và không chạy được môi trường thật (kịch bản thử tay).
Mỗi pha có một phép kiểm — AI chỉ chuyển pha khi kiểm xong.
git status (chưa có git ⇒ dừng, đề xuất git init); grep mọi nơi bị ảnh hưởng; biết mình chạy được gì (test, app, DB, CI).git commit -F; kiểm lại tiếng Việt; push khi được bảo.git log -1 không có ký tự vỡ\, backtick, tiếng Việt ⇒ không sửa qua shell (heredoc, sed): dùng công cụ sửa file hoặc script patch.Nền tảng: 4 nguyên tắc của Andrej Karpathy — nghĩ trước khi code · đơn giản trước · sửa đúng chỗ · chạy theo mục tiêu kiểm chứng được.
Quy trình giống nhau; khác nhau ở cách kiểm chứng (pha 4), bẫy hay gặp và cách phát hành. Chọn loại gần nhất với dự án của bạn. Bản đầy đủ: project-types.md.
build sạch, không chỉ dev chạy đượcservice_role / Admin SDK bỏ qua RLS — chỉ ở server, không bao giờ NEXT_PUBLIC_except: pass ⇒ 200 rỗngProgram Files chỉ đọcCore — unit test không cần AutoCAD/Revitaccoreconsole.exe (không giao diện), profile cách lySECURELOAD chặn DLL ngoài vùng tin cậy.addin đúng nămChi tiết: mục INNO · CAD/BIM.
AREA / schedule RevitMath.Round / round() làm tròn về số chẵn — Excel thì không--dry-run; so đầu ra với golden fileEXCEL.EXEtests/fixtures/, test parser trên đóđạt 27/30 trước và sau đổi prompt / modelgoogle-genai, không phải gói cũdocs/RULES.md)Skill inno-aec là lớp công ty: nó không lặp lại quy trình, chỉ thêm luật và kinh nghiệm riêng của lĩnh vực. Phần AutoCAD đã được đo thật trên một plugin AutoCAD 2024 của team; phần Revit hiện là kiến thức chung về API (team chưa có dự án Revit) — dự án Revit đầu tiên nên kiểm lại và gửi bổ sung.
git init, .gitignore, commit nguyên trạng, tạo repo Private — rồi mới cho AI sửa.AGENTS.md ghi host & phiên bản: AutoCAD / Revit năm nào, target .NET, lệnh test ngoài host và trong host, nơi phát hành.google-genai. Tiền VND: số nguyên.…_SELFTESTTRUSTEDPATHS, NETLOAD, lệnh tự kiểm, QUIT/isolate profile riêng — không đụng cài đặt AutoCAD thậtfail=0 và số kiểm tra > 0; plot PNG để xem bằng mắtPalette, ribbon, hộp thoại, nhấp đúp không chạy được trong accoreconsole ⇒ kịch bản thử tay trên GUI trong docs/RUNBOOK.md, và báo cáo phải ghi "chưa thử trên GUI".
Target theo năm, Transaction, LockDocument, SECURELOAD, bundle autoloader, LISPSYS, đọc DWG ngoài AutoCAD, TCVN3 / VNI.
Mở autocad.md →.NET 8 ↔ 4.8, đơn vị feet, Transaction, ExternalEvent, .addin, xung đột DLL, test khi không có chế độ không giao diện.
Định nghĩa có căn cứ, đơn vị bản vẽ, bẫy hình học, làm tròn khác Excel, golden test, đối chiếu chéo.
Mở calc-quantities.md →Nguồn Excel / hệ thống nội bộ, tiền & VAT, mã là chuỗi, máy trạng thái hợp đồng, dữ liệu cá nhân, quyền truy cập.
Mở business-data.md →Ba dự án được đánh giá cao trên GitHub mà team đã xem xét. Nguyên tắc chung: mỗi loại việc chỉ một skill chỉ huy quy trình — hai quy trình cùng tự kích hoạt trên một việc sẽ giành nhau (hai chỗ lưu kế hoạch, hai luật test khác nhau). Ý hay của skill ngoài thì viết lại vào bộ của mình, có ghi nguồn.
| Dự án | Là gì | Team dùng thế nào |
|---|---|---|
| obra/superpowers MIT | Quy trình đầy đủ cho agent: làm rõ ý định → kế hoạch → subagent làm từng việc + review → TDD → kết thúc nhánh. | Không cài song song với careful-engineering. Đã viết lại vào bộ của mình: gỡ lỗi có hệ thống (debugging.md), làm rõ ý định ở pha 1, thiết kế ngắn + "trọng tâm review" trong kế hoạch, giao việc & review độc lập (review-delegation.md), câu chữ báo hiệu "chưa kiểm", cách thử skill. Không lấy: TDD tuyệt đối (xoá code viết trước test), bắt buộc git worktree, cho agent tự chạy hàng giờ không chờ duyệt. |
| leonxlnx/taste-skill MIT | Skill thiết kế giao diện web: chọn phong cách từ thư viện, ảnh thật, tự chụp màn hình và sửa. | Tuỳ chọn cho landing page, trang sự kiện, portfolio. Cài từ nguồn gốc (cần Node 22+, Chrome / Edge); mỗi repo một skill thiết kế. Đã lấy vào project-types.md: chụp 3 độ rộng rồi tự chấm, không bịa số liệu, tránh "mặt tiền mặc định của AI". |
| google-research/harness2 Apache-2.0 | Framework nghiên cứu tối ưu "harness" của agent trên benchmark (Linux, Vertex AI). | Không dùng làm công cụ. Lấy hai ý: bảng 8 thành phần (mục 3 lớp) và vòng "đề xuất → chạy thử → chỉ giữ bài học có bằng chứng" cho việc sửa skill (evals/). |
npx skills add https://github.com/Leonxlnx/taste-skill --skill "design-taste-frontend"Lệnh cài taste-skill theo README của dự án gốc (cần Node.js). Đọc README đó trước khi cài; skill tự tìm và tải ảnh trên mạng — kiểm nguồn và ghi công ảnh trước khi đưa lên trang thật.
Thư mục evals/ chứa các tình huống thử (có cả tình huống bị thúc ép: "6 giờ rồi, commit luôn, test để mai"). Muốn sửa một skill: chạy tình huống khi không có skill và khi có, chấm theo danh sách "phải có / không được", và chỉ nhận thay đổi khi số đo tốt lên mà các tình huống cũ không tụt.
caveman (Julius Brussee, Apache-2.0) là một giọng trả lời: nói kết quả trước, bỏ câu chào, rào đón, tóm tắt lại và câu mời. Code, lệnh, đường dẫn, con số và thông báo lỗi giữ nguyên văn. Skill chỉ đổi cách AI viết trong khung chat, không đổi cách AI làm việc. Vì vậy dùng chung với careful-engineering được.
| Lệnh | Tác dụng |
|---|---|
/caveman | Giọng gọn (mặc định). Giữ đủ câu khi bỏ chữ có thể làm hiểu sai. |
/ultracave | Gọn tối đa: câu cụt, mỗi ý một lần. Hợp với người đã quen dự án. |
/caveman status | Cho biết chế độ đang bật, không đổi gì. |
stop caveman hoặc normal mode | Trở lại cách viết bình thường. |
/megacave | Trả lời bằng Hán văn cổ. Team mình không cần; có trong bộ cài chỉ để lệnh /caveman wenyan của bản gốc không bị lỗi. |
Skill tự quay về câu đầy đủ khi: cảnh báo bảo mật, xin xác nhận thao tác khó lùi (push, deploy, xoá), liệt kê các bước theo thứ tự, bạn hỏi lại vì chưa hiểu, và AI hỏi bạn. Mọi thứ được ghi ra ngoài khung chat cũng viết bình thường: code, comment, commit message, tài liệu, memo bàn giao, sổ bất biến. Nghĩa là các pha 5–6 của careful-engineering không bị ảnh hưởng. Skill viết theo ngôn ngữ của bạn: hỏi tiếng Việt thì trả lời tiếng Việt, chỉ gọn hơn.
caveman chỉ ngắn hơn câu lệnh "Answer concisely." khoảng 3% — nằm trong sai số; ultracave ngắn hơn khoảng 35%. Tác giả không công bố số đo nào về việc chất lượng câu trả lời có giữ nguyên hay không. Lợi ích chính là dễ đọc hơn, không phải rẻ hơn. Khi AI báo cáo theo careful-engineering, vẫn đòi đủ số đo và phần chưa kiểm. Caveman làm câu ngắn lại, nhưng không được bỏ nội dung.Bộ cài của trang này chỉ chép các file SKILL.md. Bản cài đầy đủ của dự án gốc còn có hook (tự bật caveman ở mọi phiên), proxy và nhiều công cụ khác. Muốn dùng những thứ đó thì đọc README của dự án gốc và tự quyết định.
Dùng skill careful-engineering, pha 0. Đọc AGENTS.md / CLAUDE.md / README / cấu trúc thư mục và giải thích bằng tiếng Việt: dự án làm gì, công nghệ, cách chạy và chạy test, các file quan trọng, những chỗ dễ vỡ. Chỉ đọc và báo cáo — chưa sửa file nào. Chỗ nào không chắc thì nói là không chắc.
Dùng skill careful-engineering để làm: <mô tả tính năng>. Trước khi sửa: nói mức (S/M/L) và vì sao, viết lại yêu cầu bằng lời của bạn + tiêu chí thành công đo được, các file sẽ chạm, kế hoạch từng bước kèm cách kiểm chứng, và những gì tuyệt đối không được đổi. Chỗ nào mơ hồ thì hỏi tôi (kèm phương án bạn khuyến nghị). Chờ tôi duyệt kế hoạch rồi mới sửa. Khi làm: test trước và sau, test mới phải đỏ được, chạy thử trên app thật, báo cáo bằng số đo và nói rõ phần nào chưa kiểm.
Dùng skill careful-engineering. Lỗi: <mô tả triệu chứng, cách bấm để thấy lỗi>. Bắt buộc: (1) tái hiện lỗi có chủ đích và ghi số đo trước khi sửa; (2) tìm nguyên nhân gốc theo references/debugging.md (hệ nhiều tầng thì đo ở từng ranh giới trước), không vá triệu chứng — sửa hỏng 3 lần thì dừng lại bàn với tôi; (3) viết test tái hiện lỗi — phải đỏ trên mã cũ; (4) sửa; (5) chạy toàn bộ test + thử trên app thật, so với mã cũ; (6) ghi một mục vào sổ chống hồi quy. Không sửa gì ngoài phạm vi lỗi này — thấy lỗi khác thì báo riêng.
Commit thay đổi vừa rồi theo quy ước của repo (xem AGENTS.md / CLAUDE.md: có dấu hay không dấu). Stage đúng từng file của việc này, không commit secret / build output. Viết message ra file rồi git commit -F; thân message nêu nguyên nhân, cách sửa, số đo kiểm chứng và phần chưa kiểm. Commit xong đọc lại git log -1 để chắc tiếng Việt không bị vỡ. Chưa push.
Cập nhật memo bàn giao (docs/HANDOFF.md, khối mới nhất ở trên cùng): đã làm gì (commit + số đo), nghiệm thu, trạng thái git/deploy, phần CHƯA kiểm, việc tôi cần làm, bước kế tiếp, quyết định bạn tự làm mà phiên sau có thể đảo, lỗi của chính bạn trong phiên và luật rút ra.
Dùng skill careful-engineering. Khởi tạo dự án <tên> bằng <công nghệ> trong thư mục hiện tại: tạo AGENTS.md theo mẫu https://darkend16987.github.io/inno-ai-coding-guide/starter/AGENTS.md (điền đúng lệnh chạy và test), CLAUDE.md theo mẫu https://darkend16987.github.io/inno-ai-coding-guide/starter/CLAUDE.md (chỉ nhập AGENTS.md), docs/RUNBOOK.md theo mẫu https://darkend16987.github.io/inno-ai-coding-guide/starter/docs/RUNBOOK.md (chỉ ghi điều đã chạy thật, còn lại để CHƯA BIẾT), .gitignore phù hợp, docs/HANDOFF.md, một test chạy được ngay, và README ngắn. Chưa viết tính năng. Cuối cùng liệt kê file đã tạo và lệnh để tôi kiểm tra.
Dùng skill careful-engineering. Viết hoặc cập nhật docs/RUNBOOK.md theo mẫu https://darkend16987.github.io/inno-ai-coding-guide/starter/docs/RUNBOOK.md: tìm trong repo cách cài, khởi động, dấu hiệu sẵn sàng, dữ liệu thử, lấy log, dọn dẹp — rồi CHẠY THẬT từng bước. Chỉ ghi điều đã thấy chạy (kèm ngày); giá trị nào là cố định / mặc định / cấu hình / quan sát được thì ghi rõ; điều chưa xác minh để ở mục CHƯA BIẾT. Không dùng dữ liệu production, không in secret. Dừng đúng những tiến trình bạn đã mở.
Dùng skill careful-engineering, references/invariants.md. Luật: <mô tả, ví dụ "UI không được gọi thẳng DB">. Căn cứ: <quyết định / lỗi đã gặp / spec>. Trước khi viết check: ghi ranh giới (phạm vi, ví dụ được phép, ví dụ bị cấm, ngoại lệ, thông báo khi đỏ) — chỗ nào có hai cách hiểu thì hỏi tôi. Gắn check vào lệnh test sẵn có, chứng minh hai chiều (ca hợp lệ xanh, đưa vi phạm vào thì đỏ đúng thông báo), ghi mục BI vào docs/REGRESSION-GUARD.md, và báo riêng từng mức bảo vệ: chạy tay / hook / CI / chặn merge. Không tự sửa CI hay branch protection.
Thư mục này chưa là git repo. Chỉ làm các việc sau, chưa sửa code: (1) liệt kê file có thể là secret (.env, token, client_secret, *.pem, file mật khẩu), file build output, file lớn > 50 MB, file dữ liệu khách hàng; (2) đề xuất .gitignore theo công nghệ của dự án; (3) sau khi tôi duyệt: git init, thêm .gitignore, commit nguyên trạng với message "chore: dua du an vao git (nguyen trang)", rồi chạy git status và liệt kê những gì đã bị bỏ qua. Không push.
Dùng skill careful-engineering và inno-aec. Khởi tạo plugin AutoCAD <tên> cho AutoCAD <năm>: <lệnh làm gì>. Trước khi viết: xác nhận target .NET theo năm, nơi lấy DLL của AutoCAD trên máy này, và hỏi tôi nếu cần hỗ trợ nhiều năm. Dựng khung theo inno-aec (Core tách khỏi phần gọi AutoCAD, unit test cho Core, test trong accoreconsole với profile cách ly, build.ps1 một lệnh, AGENTS.md có mục Host & phiên bản). Lệnh đầu tiên chỉ cần chạy được từ đầu tới cuối trong accoreconsole và ghi log pass/fail. Phần cần giao diện thì viết kịch bản thử tay vào docs/RUNBOOK.md.
Dùng skill careful-engineering và inno-aec (references/calc-quantities.md). Việc này là mức L. Yêu cầu: <mô tả>. Trước khi sửa: (1) nêu định nghĩa diện tích / quy tắc tính đang dùng và căn cứ của nó — không có căn cứ thì hỏi tôi chỗ tìm; (2) nếu chưa có golden test thì chụp kết quả hiện tại trên các bản vẽ mẫu thành golden; (3) viết kế hoạch, chờ tôi duyệt. Khi xong: bảng chênh lệch từng ca giữa mã cũ và mã mới, giải thích mọi chênh lệch, đối chiếu với lệnh AREA của AutoCAD, nêu rõ quy tắc làm tròn và danh sách đối tượng bị loại.
Dùng skill careful-engineering và inno-aec (references/revit.md). Add-in Revit <năm>: <mô tả>. Đưa tối đa logic vào thư viện Core không tham chiếu RevitAPI và unit test nó; phần gọi Revit API mỏng nhất có thể, mọi thay đổi trong Transaction có tên, cửa sổ không modal thì dùng ExternalEvent, chuyển đơn vị feet ở biên. Máy này không chạy được Revit tự động ⇒ viết kịch bản thử tay (file .rvt mẫu, bước bấm, kết quả đo được) và báo cáo tách rõ phần đã test / chưa test. Điều nào về Revit API bạn chưa kiểm được trên đúng năm thì nói là chưa kiểm.
Dùng skill careful-engineering, references/review-delegation.md. Giao cho một subagent MỚI review các commit <BASE_SHA>..<HEAD_SHA> theo yêu cầu / kế hoạch ở <đường dẫn>. Reviewer chỉ đọc, trả hai kết luận riêng: (1) đúng yêu cầu chưa — thiếu, thừa, hiểu lệch, và mục nào không kiểm được chỉ từ diff; (2) chất lượng — lỗi, ca biên, test có đỏ được không, có phá BI nào không; xếp mức Nghiêm trọng / Quan trọng / Nhỏ. Sau đó bạn tự kiểm từng phát hiện với code thật, sửa cái đúng, phản biện cái sai kèm bằng chứng, và báo tôi bảng kết quả.
Dùng skill careful-engineering, pha 1. Tôi muốn: <mô tả>. Đọc những gì đã có trước khi hỏi. Mỗi lượt hỏi tôi một câu — câu ảnh hưởng nhiều nhất tới cái sẽ làm. Khi đủ hiểu: đưa 2–3 hướng làm kèm đánh đổi và khuyến nghị, chờ tôi chọn; rồi viết bản thiết kế ngắn theo references/memo-handoff.md §0 (mục tiêu, thành công đo được, không làm, thất bại dù đúng kỹ thuật, ràng buộc, hướng đã chọn) vào docs/plans/active/. Chưa viết code, chưa lập kế hoạch chi tiết cho tới khi tôi duyệt thiết kế.
Nội dung dưới đây được nạp trực tiếp từ thư mục skills/ của repo — luôn là bản mới nhất.
Chọn một file bên trái.
AGENTS.md của repo đó.AGENTS.md. Việc mức L mà không kiểm tự động được thì AI đề xuất dựng lưới test thành một đợt riêng, làm trước.git commit -F, sau đó xem lại git log -1 — thấy †hoặc à là vỡ, sửa trước khi push.stop caveman và hỏi lại. Báo cáo cuối việc lớn nên đọc ở chế độ thường.<tên skill>.bak-<ngày giờ> trước khi thay. caveman trong repo này là bản chép nguyên văn từ dự án gốc (commit ghi trong skills/caveman/NOTICE); team chủ động chép lại khi bản gốc có thay đổi đáng giá.skills/careful-engineering/references/. Ghi bài học dưới dạng: chuyện gì đã xảy ra (đã đo), luật rút ra, cách áp dụng. Sửa luật của skill thì thêm hoặc chạy tình huống thử trong evals/, ghi số đo trước / sau vào Pull Request. Không đưa số liệu / tên khách hàng / dữ liệu nội bộ vào.