Trông ổn, nối sai
AI thêm service, mũi tên, fallback không có trong code.
Archify chỉ vẽ node và mối nối đã viết trong JSON.
Agent đọc code rồi viết JSON. Archify ra file HTML. Bắt đầu từ việc cần hiểu, không từ loại sơ đồ.
Cách chạy
Archify là gì
Mermaid, Excalidraw, tech-graph — và hầu hết prompt "vẽ sơ đồ" — ra một tấm hình. Archify bắt agent viết JSON có kiểu, rồi compile thành HTML. Khác chỗ: có nguồn để review, có kiểm, không tự bịa thêm box.
AI thêm service, mũi tên, fallback không có trong code.
Archify chỉ vẽ node và mối nối đã viết trong JSON.
Chỉ còn PNG/SVG — không có nguồn để đọc hay diff.
JSON là bản gốc. HTML chỉ là bản xem.
Cùng một prompt, layout và chữ đổi mỗi lần.
Cùng JSON thì luôn ra cùng sơ đồ.
Từ hỏi tới sơ đồ
Người xem sơ đồ — maintainer, reviewer — cần hiểu gì?
Chỉ fact đã mở, đã khoanh phạm vi.
Bản gốc có kiểu — đây là source of truth.
Kiểm JSON và hình học. Sai thì sửa đúng chỗ đó.
Ghi HTML một lần. Fail thì file cũ vẫn còn.
Screenshot là evidence, chưa phải pass.
File mở trên trình duyệt để share.
Cách nghĩ đúng
Sơ đồ AI hay trông ổn nhưng nối sai chỗ, không có nguồn để soi, lần sau ra hình khác. Archify bắt viết JSON có kiểu, rồi luôn render cùng một artifact.
Chọn phạm vi, main path, viết JSON. Không bịa service, edge, hay fallback.
Schema, geometry, identity, delivery atomic, viewer độc lập.
JSON + HTML + receipt. Ảnh tự động không được tuyên bố đã pass.
Bản gốc của sơ đồ — để đọc, sửa, diff trong git.
File mở trên trình duyệt — gửi docs, PR, slide.
Biên nhận đã kiểm — validate, hash, ảnh chụp.
Cài đặt
Team hoặc CI nên dùng lệnh project để mọi người cùng một Skill. Global chỉ khi bạn dùng Archify ở mọi repo trên máy.
Bạn dùng Cursor Agent trong editor.
npx -y skills add tt-a1i/archify --skill archify --agent cursor --global --copy --yes npx -y skills add tt-a1i/archify --skill archify --agent cursor --copy --yes Nếu Cursor chưa thấy skill, mở một session Agent mới.
# Chỉ dùng CLI thủ công khi bạn tự author hoặc kiểm JSON
git clone https://github.com/tt-a1i/archify
cd archify/archify
node bin/archify.mjs doctor
node bin/archify.mjs validate architecture examples/web-app.architecture.json --quality showcase --json
node bin/archify.mjs deliver architecture examples/web-app.architecture.json web-app.html --quality showcase --json
node bin/archify.mjs visual-check web-app.html --json Bắt đầu từ câu hỏi
Hỏi bạn cần hiểu gì, rồi chọn mẫu. Ảnh chỉ để xem output. Prompt viết từ code của bạn — đừng copy layout mẫu.
Hệ thống có gì, nối thế nào, ranh giới nào?
Không dùng khi cần đúng thứ tự gọi — dùng Sequence.
Công việc đi qua actor nào, có quyết định, duyệt, retry không?
Không dùng khi cần state được lưu của một object — dùng Lifecycle.
Trong một lần gọi, ai gọi ai trước, trả gì?
Không dùng khi cần map topic/queue — dùng Dataflow.
Data đi từ đâu, biến đổi thế nào, ai dùng?
Không dùng khi cần timeline hoặc ai làm từng task.
Object có state nào, chuyển tiếp và kết thúc ra sao?
Không dùng khi chỉ có bước chạy, chưa lưu state — dùng Workflow.
Lọc theo loại sự thật
Hiểu hệ thống đang có gì, ai sở hữu, ranh giới nào quan trọng.
Hệ thống có những thành phần nào, và chúng nối với nhau ra sao?
Dùng khi Nhận repo mới, onboarding, design review.
Không dùng khi Cần đúng thứ tự gọi.
Prompt — chỉnh theo repo
Dùng Archify trong repo này để trả lời: một maintainer mới cần thấy input đi qua những runtime component nào, dependency nào nằm ngoài process, và đâu là primary path?
Đọc commit hiện tại. Chỉ ghi file và line range sau khi đã mở. Author JSON trước: 8–12 node chính, một main path, nhánh phụ ngắn. Không copy topology từ gallery. Validate sau mỗi lần sửa. Deliver chỉ khi validate pass. Rồi visual-check; ảnh là evidence, không phải human review đã pass. Ghi rõ phần chưa chắc. Workload chạy ở đâu, ai sở hữu, cơ chế vượt ranh giới là gì?
Dùng khi Sẵn sàng production, bàn giao infra — khi đã có owner, region, phạm vi private và crossing mechanism.
Không dùng khi Local CLI, hoặc thiếu fact deploy. Profile này fail nếu thiếu fact — không bịa region/security-group.
Prompt — chỉnh theo repo
Dùng Archify Architecture với deployment ownership chỉ khi code/infra đã có owner, region, phạm vi private và crossing mechanism.
Câu hỏi: workload chạy ở đâu, ai sở hữu, vượt ranh giới bằng gì?
Nếu thiếu fact, dừng và báo — đừng bịa. Đọc commit hiện tại. Chỉ ghi file và line range sau khi đã mở. Author JSON trước: 8–12 node chính, một main path, nhánh phụ ngắn. Không copy topology từ gallery. Validate sau mỗi lần sửa. Deliver chỉ khi validate pass. Rồi visual-check; ảnh là evidence, không phải human review đã pass. Ghi rõ phần chưa chắc. Công việc đi qua actor nào, quyết định / duyệt / retry ra sao.
Agent lập plan, xin quyền, gọi tool và recover thế nào?
Dùng khi Agent runtime, MCP, chính sách duyệt.
Không dùng khi Chỉ cần map component tĩnh.
Prompt — chỉnh theo repo
Dùng Archify Workflow để trả lời: agent lập plan, xin quyền, gọi tool và recover thế nào?
Lanes theo trách nhiệm. Một main path. Retry và lỗi đi ngoài corridor chính.
Đọc commit hiện tại. Chỉ ghi file và line range sau khi đã mở. Author JSON trước: 8–12 node chính, một main path, nhánh phụ ngắn. Không copy topology từ gallery. Validate sau mỗi lần sửa. Deliver chỉ khi validate pass. Rồi visual-check; ảnh là evidence, không phải human review đã pass. Ghi rõ phần chưa chắc. Một change đi từ commit tới production thế nào?
Dùng khi Thiết kế CI/CD, review release.
Không dùng khi Câu hỏi là state của release object — dùng Lifecycle.
Prompt — chỉnh theo repo
Dùng Archify Workflow để trả lời: một change đi từ commit tới production qua build, cổng chặn, duyệt, verify, communicate và rollback thế nào?
Đọc commit hiện tại. Chỉ ghi file và line range sau khi đã mở. Author JSON trước: 8–12 node chính, một main path, nhánh phụ ngắn. Không copy topology từ gallery. Validate sau mỗi lần sửa. Deliver chỉ khi validate pass. Rồi visual-check; ảnh là evidence, không phải human review đã pass. Ghi rõ phần chưa chắc. Detect, triage, mitigate, communicate và verify thế nào?
Dùng khi Bàn giao on-call, tabletop.
Không dùng khi Cần dashboard monitoring live.
Prompt — chỉnh theo repo
Dùng Archify Workflow để trả lời: detect, triage, mitigate, communicate và verify một sự cố thế nào?
Đọc commit hiện tại. Chỉ ghi file và line range sau khi đã mở. Author JSON trước: 8–12 node chính, một main path, nhánh phụ ngắn. Không copy topology từ gallery. Validate sau mỗi lần sửa. Deliver chỉ khi validate pass. Rồi visual-check; ảnh là evidence, không phải human review đã pass. Ghi rõ phần chưa chắc. Ai gọi ai, thứ tự nào, điểm fallback.
Ai gọi ai, thứ tự nào, trả về gì?
Dùng khi API docs, debug auth/cache.
Không dùng khi Thứ tự không quan trọng.
Prompt — chỉnh theo repo
Dùng Archify Sequence để trả lời: trong một request, participant nào gọi participant nào trước, và trả gì?
Một interaction. Không biến thành map component.
Đọc commit hiện tại. Chỉ ghi file và line range sau khi đã mở. Author JSON trước: 8–12 node chính, một main path, nhánh phụ ngắn. Không copy topology từ gallery. Validate sau mỗi lần sửa. Deliver chỉ khi validate pass. Rồi visual-check; ảnh là evidence, không phải human review đã pass. Ghi rõ phần chưa chắc. Sau ACK ban đầu còn những bước nào?
Dùng khi Job, webhook, callback, eventual consistency.
Không dùng khi Cần map topic/consumer — dùng Dataflow.
Prompt — chỉnh theo repo
Dùng Archify Sequence để trả lời: sau ACK ban đầu, queue, worker, retry, webhook và polling còn chạy thế nào?
Đọc commit hiện tại. Chỉ ghi file và line range sau khi đã mở. Author JSON trước: 8–12 node chính, một main path, nhánh phụ ngắn. Không copy topology từ gallery. Validate sau mỗi lần sửa. Deliver chỉ khi validate pass. Rồi visual-check; ảnh là evidence, không phải human review đã pass. Ghi rõ phần chưa chắc. Data và event đi đâu, PII và đường lỗi.
Data đến từ đâu, biến đổi thế nào, ai dùng?
Dùng khi ETL, analytics, PII, feature model.
Không dùng khi Cần ownership task hoặc timeline.
Prompt — chỉnh theo repo
Dùng Archify Dataflow để trả lời: data đến từ đâu, biến đổi thế nào, lưu ở đâu, ai consume, PII đi qua boundary nào?
Đọc commit hiện tại. Chỉ ghi file và line range sau khi đã mở. Author JSON trước: 8–12 node chính, một main path, nhánh phụ ngắn. Không copy topology từ gallery. Validate sau mỗi lần sửa. Deliver chỉ khi validate pass. Rồi visual-check; ảnh là evidence, không phải human review đã pass. Ghi rõ phần chưa chắc. Event đi qua topic, consumer group, replay và DLQ nào?
Dùng khi Review nền tảng Kafka/event, semantics đã xác minh.
Không dùng khi Chưa xác minh at-least-once / exactly-once / replay.
Prompt — chỉnh theo repo
Dùng Archify Dataflow để trả lời: event đi qua producer, topic, consumer group, replay và DLQ nào? Chỉ ghi semantics đã xác minh.
Đọc commit hiện tại. Chỉ ghi file và line range sau khi đã mở. Author JSON trước: 8–12 node chính, một main path, nhánh phụ ngắn. Không copy topology từ gallery. Validate sau mỗi lần sửa. Deliver chỉ khi validate pass. Rồi visual-check; ảnh là evidence, không phải human review đã pass. Ghi rõ phần chưa chắc. State được lưu, transition, retry/cancel/fail, outcome cuối.
Object có những state nào, và kết thúc ra sao?
Dùng khi Order, ticket, job, agent run — khi state được lưu.
Không dùng khi Chỉ có bước thực thi, chưa có state machine được persist.
Prompt — chỉnh theo repo
Dùng Archify Lifecycle chỉ khi object có state được lưu, event chuyển state, retry và terminal outcome.
Câu hỏi: object có state nào, chuyển thế nào, kết thúc ra sao?
Nếu đây là đề xuất chứ không phải hiện trạng, ghi rõ Proposed Design. Đọc commit hiện tại. Chỉ ghi file và line range sau khi đã mở. Author JSON trước: 8–12 node chính, một main path, nhánh phụ ngắn. Không copy topology từ gallery. Validate sau mỗi lần sửa. Deliver chỉ khi validate pass. Rồi visual-check; ảnh là evidence, không phải human review đã pass. Ghi rõ phần chưa chắc. Release đang ở state nào, và chuyển tiếp thế nào?
Dùng khi GitOps, controller, status API.
Không dùng khi Cần thứ tự hành động của người và CI — dùng Workflow.
Prompt — chỉnh theo repo
Dùng Archify Lifecycle để trả lời: deployment object đi qua build, verify, approve, promote, pause, rollback và terminal state nào?
Đọc commit hiện tại. Chỉ ghi file và line range sau khi đã mở. Author JSON trước: 8–12 node chính, một main path, nhánh phụ ngắn. Không copy topology từ gallery. Validate sau mỗi lần sửa. Deliver chỉ khi validate pass. Rồi visual-check; ảnh là evidence, không phải human review đã pass. Ghi rõ phần chưa chắc. SDLC
SDLC (software development life cycle) là các giai đoạn làm phần mềm: nhận dự án, viết code, review, phát hành, vận hành. Áp cho mọi team — không gắn AgentKit. Không bắt sơ đồ mọi PR; chỉ khi cách hệ thống nối với nhau đổi.
Nhận dự án mới
Tạo mental model ban đầu.
Prompt mẫu
Dùng Archify Architecture để trả lời: hệ thống này có những phần nào, nối thế nào, phần nào nằm ngoài process? 8–12 box, một đường chính. Chỉ lấy file đã mở. Trước khi code
Chốt một contract — một câu hỏi, một sơ đồ.
Prompt mẫu
Dùng Archify để trả lời đúng một câu hỏi trước khi code: ai gọi ai theo thứ tự nào, data đi đâu, hoặc object có những state nào? Chọn Sequence, Dataflow, hoặc Lifecycle — không gộp. Đang implement
Sửa sơ đồ đang có, đừng vẽ lại từ đầu.
Prompt mẫu
Cập nhật JSON Archify hiện có cho thay đổi này. Giữ ID ổn định. Chỉ thêm/bỏ/đổi khi code evidence hỗ trợ. Không vẽ sơ đồ mới nếu topology không đổi. Review PR
Reviewer thấy chỗ JSON đổi — không suy impact.
Prompt mẫu
Dùng Archify Architecture Delta trên PR này. Baseline: JSON đã có trong repo. Trả đúng added, removed, changed, moved, rerouted. Không suy impact, risk, hay merge safety. Release
Một câu hỏi: việc làm, hoặc state của bản phát hành.
Prompt mẫu
Dùng Archify để trả lời đúng một câu hỏi lúc release: change đi từ commit tới production thế nào, hoặc bản phát hành đang ở state nào? Chọn Workflow hoặc Lifecycle — không gộp. Vận hành
Chuẩn hóa detect, triage, mitigate, verify.
Prompt mẫu
Dùng Archify Workflow để trả lời: khi sự cố xảy ra, detect, triage, mitigate, communicate và verify thế nào? Một main path, nhánh lỗi đi ngoài. Onboarding
Giảm thời gian đọc repo.
Prompt mẫu
Dùng Archify Architecture để một người mới thấy: request đi qua những phần nào, dependency nào ở ngoài, đâu là đường chính? 8–12 box. Compliance / data
Data đến từ đâu, biến đổi, lưu, ai dùng.
Prompt mẫu
Dùng Archify Dataflow để trả lời: data đến từ đâu, biến đổi thế nào, lưu ở đâu, ai dùng, PII đi qua chỗ nào? Chỉ ghi fact đã mở. Để Archify không thành việc giấy tờ: rename, refactor nội bộ, test, format, bug fix không đổi contract — bỏ qua.
AgentKit
Archify không phải skill /ak: chính thức. Cài riêng, rồi chèn vào cổng review của workflow AgentKit.
Cách 1 · Gọi tên skill
Dùng Archify tạo architecture map cho repo này. Cách 2 · Slash / lệnh $
/archify …
/skill:archify …
$archify … Claude Code / Cursor: /archify. Pi hoặc OMP: /skill:archify. Codex: tiền tố $.
Nguyên tắc đặt Archify
AgentKit đi hiểu → quyết định → làm → kiểm tra → ship. Chưa hiểu repo thì /ak:scout trước. Đã có plan, debug notes, hoặc PR diff thì Archify dùng evidence đó.
Không thay /ak:test, /ak:security, /ak:code-review, hay quyền quyết của người review.
Auth, payment, PII, token, webhook, migration, background job, incident — sơ đồ trước khi chốt plan/cook.
Task nhỏ giữ workflow ngắn nhất hữu ích (/ak:cook --fast). Chỉ thêm Archify khi sơ đồ giảm rủi ro hoặc làm handoff rõ hơn.
A1 · Build a new feature
Feature hình dạng chưa rõ hoặc đụng nhiều file. Bỏ qua với Quick implement.
Hiện trạng
/ak:scout → archify → /ak:brainstorm Một Architecture: hệ thống đang có gì trước khi chọn hướng.
Hướng đã chọn
/ak:brainstorm → archify → /ak:plan Một Workflow hoặc một Dataflow — không gộp cả hai. Rồi /ak:cook.
Trước brainstorm
Dùng Archify Architecture để trả lời: hiện trạng feature/refactor này có những component, dependency, external service và một request path chính nào?
Mục tiêu: input rõ cho /ak:brainstorm. Đọc commit hiện tại. Chỉ ghi file và line range sau khi đã mở. Author JSON trước: 8–12 node chính, một main path, nhánh phụ ngắn. Không copy topology từ gallery. Validate sau mỗi lần sửa. Deliver chỉ khi validate pass. Rồi visual-check; ảnh là evidence, không phải human review đã pass. Ghi rõ phần chưa chắc. Sau brainstorm
Dùng Archify để trả lời đúng một câu hỏi sau brainstorm: luồng công việc mới đi qua actor nào, hoặc data mới đi đâu?
Chọn Workflow hoặc Dataflow, không cả hai. Ghi component đổi, boundary chạm, câu hỏi còn mở. Mục tiêu: /ak:plan bám architecture. Đọc commit hiện tại. Chỉ ghi file và line range sau khi đã mở. Author JSON trước: 8–12 node chính, một main path, nhánh phụ ngắn. Không copy topology từ gallery. Validate sau mỗi lần sửa. Deliver chỉ khi validate pass. Rồi visual-check; ảnh là evidence, không phải human review đã pass. Ghi rõ phần chưa chắc. G2 · Auth feature · Payments
Đụng tiền, PII, token, webhook, quyền, hoặc data rời hệ thống.
Trước plan cứng
/ak:better-auth hoặc domain skill → archify → /ak:plan Một Dataflow (data đi đâu) hoặc một Sequence (ai gọi ai). Rồi cook → security → test.
Một câu hỏi rủi ro
Dùng Archify để trả lời đúng một câu hỏi cho thay đổi auth/payment/data này: data nhạy cảm đi đâu và rời hệ thống ở đâu, hoặc ai gọi ai theo thứ tự nào?
Chọn Dataflow hoặc Sequence. Đánh dấu actor, quyền, token, webhook, PII, provider ngoài, failure path. Giả định chưa chắc phải ghi. Đọc commit hiện tại. Chỉ ghi file và line range sau khi đã mở. Author JSON trước: 8–12 node chính, một main path, nhánh phụ ngắn. Không copy topology từ gallery. Validate sau mỗi lần sửa. Deliver chỉ khi validate pass. Rồi visual-check; ảnh là evidence, không phải human review đã pass. Ghi rõ phần chưa chắc. C1 · Fix a bug
Lỗi nằm ở retry, queue, async state, hoặc nhiều service. Ưu tiên /ak:fix; đường sâu khi RCA chưa rõ.
Sau chẩn đoán
/ak:debug → archify → /ak:fix Một Sequence cho failing interaction. Lifecycle chỉ khi object có state được lưu.
Failing path
Dùng Archify Sequence để trả lời: failing path vừa debug gọi participant nào, theo thứ tự nào, retry/timeout trả về đâu?
Tách happy path khỏi failing path. Không biến bước thực thi thành Lifecycle trừ khi state được persist. Mục tiêu: chọn hướng /ak:fix trước khi sửa code. Đọc commit hiện tại. Chỉ ghi file và line range sau khi đã mở. Author JSON trước: 8–12 node chính, một main path, nhánh phụ ngắn. Không copy topology từ gallery. Validate sau mỗi lần sửa. Deliver chỉ khi validate pass. Rồi visual-check; ảnh là evidence, không phải human review đã pass. Ghi rõ phần chưa chắc. D1 · Review a PR · D3 · Ship
Chỉ khi architectural contract đổi. Không dùng cho mọi PR.
Delta cấu trúc
/ak:code-review / /ak:ship Architecture Delta: added, removed, changed, moved, rerouted. Không suy risk, impact, merge safety.
Architecture Delta
Dùng Archify Architecture Delta trên PR hiện tại.
Baseline: JSON architecture đã validate trong repo. Giữ stable ID cho component không đổi. Chỉ thêm/bỏ/đổi/reroute khi code evidence hỗ trợ.
Trả đúng: added, removed, changed, moved, rerouted. Không suy blast radius, production impact, risk, hay merge safety. Reviewer đọc JSON, receipt, và delta đã render. Đọc commit hiện tại. Chỉ ghi file và line range sau khi đã mở. Author JSON trước: 8–12 node chính, một main path, nhánh phụ ngắn. Không copy topology từ gallery. Validate sau mỗi lần sửa. Deliver chỉ khi validate pass. Rồi visual-check; ảnh là evidence, không phải human review đã pass. Ghi rõ phần chưa chắc. Đừng làm
Hay làm
Một prompt tạo đủ năm sơ đồ
Nên làm
Bắt đầu Architecture + Workflow. Thêm mode khi có câu hỏi mới.
Hay làm
Mega-diagram hàng chục service
Nên làm
Tối đa khoảng 12 node chính. Tách landscape và subsystem.
Hay làm
Chỉ commit HTML
Nên làm
JSON là nguồn. HTML là viewer. Receipt để audit.
Hay làm
Ép Deployment Ownership khi thiếu fact
Nên làm
Profile này fail nếu thiếu owner/region/crossing. Local CLI thì đừng dùng.
Hay làm
Biến bước thực thi thành Lifecycle
Nên làm
download → OCR → package là Workflow. Lifecycle cần state được lưu.
Hay làm
Xóa nhãn relationship để pass layout
Nên làm
Nhãn mang protocol/action/contract. Sửa bằng move, reroute, tăng spacing.
Hay làm
Gọi visual-check là human review
Nên làm
Ảnh là evidence. Người vẫn phải nhìn main path, boundary, label.
Hay làm
Set meta.locale: "vi"
Nên làm
Viết nội dung tiếng Việt, giữ identifier tiếng Anh, omit meta.locale. Viewer UI fallback English.