Plugin cho AI Coding Agents · v2.2.4

Hướng dẫn sử dụng
Supergraph

Bộ plugin kết hợp quy trình AI bắt buộc, phân tích codebase dạng đồ thị và tích hợp LSP thông minh — biến AI coding agent của bạn thành một kỹ sư phần mềm có kỷ luật.

Mục lục

  1. Tổng quan
  2. Cài đặt nhanh
  3. Danh sách Skills
  4. Quy trình làm việc
  5. Phân tích Graph
  6. Serena LSP
  7. Agents
  8. Hooks tự động
  9. Quy tắc bắt buộc
  10. Xử lý lỗi & Leo thang
  11. Tự nhận diện ngôn ngữ
  12. CONTEXT.md

Supergraph là gì?

Supergraph là một plugin dành cho các AI coding agent (Claude Code, Antigravity CLI, Codex CLI, OpenCode), kết hợp ba công cụ mạnh mẽ thành một hệ thống nhất:

Superpowers Workflow

Quy trình AI bắt buộc: không code khi chưa có plan, không merge khi chưa review. Tuân thủ TDD nghiêm ngặt.

🔗

Codebase Memory MCP

Index codebase cục bộ (>= 0.9.0) để truy vấn blast radius, caller/callee, cluster kiến trúc, cycle, test gap và complexity hotspot.

🧠

Serena LSP

Tích hợp Language Server Protocol: điều hướng symbol, chẩn đoán lỗi kiểu, rename và replace an toàn toàn codebase.

Workflow bắt buộc: scan → analyze → plan → TDD → execute → fix → verify → review. Serena là tuỳ chọn để bổ sung LSP references và diagnostics. Trên Windows, hook tự tìm Git Bash theo cả đường dẫn system-wide và user-level; nếu không có, hook báo Git Bash not found — hooks skipped và thoát non-blocking.

Cài đặt nhanh

Hỗ trợ Claude Code, Antigravity CLI, Codex CLI và OpenCode. Chọn nền tảng bạn đang dùng.

Nền tảngCách càiFile cấu hình
Claude CodePlugin marketplaceCLAUDE.md
Antigravity CLIInstaller localAGENTS.md
Codex CLIMarketplace hoặc installer localAGENTS.md
OpenCodeInstaller localOPENCODE.md
Lưu ý: Antigravity CLI và Codex CLI dùng AGENTS.md; OpenCode dùng OPENCODE.md. Không cần CLAUDE.md. Biến môi trường hook của Antigravity là best-effort cho tới khi được verify trên cài đặt thật.

Cách 1 — Claude Code

# Cài từ Git marketplace (khuyến nghị)
/plugin marketplace add https://github.com/datit309/supergraph.git
/plugin install supergraph

# Cập nhật sau này
/plugin marketplace update supergraph

Cách 2 — Antigravity CLI

git clone https://github.com/datit309/supergraph.git
cd supergraph
# Cài file plugin cho Antigravity
plugins/supergraph/install.sh --platform antigravity

Cách 3 — Codex CLI

# Thêm marketplace + cài plugin (khuyến nghị)
codex plugin marketplace add datit309/supergraph
codex plugin install supergraph

# Cập nhật sau này
codex plugin marketplace upgrade supergraph

# Hoặc cài thủ công từ checkout local
git clone https://github.com/datit309/supergraph.git
cd supergraph
plugins/supergraph/install.sh --platform codex

Cách 4 — OpenCode

git clone https://github.com/datit309/supergraph.git
cd supergraph

# Symlink skills + in snippet opencode.json
plugins/supergraph/install.sh --platform opencode

# Cài MCP
pip install codebase-memory-mcp==0.9.0

# Lần chạy đầu
/supergraph:scan

Installer symlink từng skill vào .opencode/skills/<name>, copy OPENCODE.md vào project root, và in snippet để thêm vào opencode.json:

{
  "instructions": ["OPENCODE.md"],
  "mcp": {
    "codebase-memory-mcp": { "type": "stdio", "command": "codebase-memory-mcp", "args": [] },
    "serena": { "type": "stdio", "command": "serena", "args": ["start-mcp-server", "--context=opencode", "--project-from-cwd"] }
  }
}

OpenCode dùng OPENCODE.md cho project instructions. Skills và MCP chạy ngay. Hooks không có trên OpenCode (nền tảng này dùng mô hình plugin JS/TS).

Cách gọi skill: dùng /skills, rồi chọn scan, plan, tdd, v.v. Không dùng /supergraph:* trong OpenCode.

Thiết lập Codebase Memory MCP (mọi nền tảng)

pip install codebase-memory-mcp==0.9.0
codebase-memory-mcp cli index_repository --repo-path "$(pwd)" --name supergraph --mode moderate
Yêu cầu hệ thống: Claude Code, Antigravity CLI, Codex CLI, hoặc OpenCode; Python 3.10 trở lên; Git.

Danh sách Skills

Tất cả skill đều dùng tiền tố /supergraph: để tránh xung đột. Dưới đây là toàn bộ skill được phân nhóm theo chức năng.

🔧 Quy trình chính

SkillMục đíchKhi nào dùng
scanNạp graph, phát hiện dự án, lưu envĐầu phiên — chạy đầu tiên
analyzePhân tích rủi ro, hỏi kỹ, chọn hướng tiếp cậnYêu cầu mơ hồ, hub/bridge nodes
planQuét graph, blast radius, chia nhỏ taskTrước khi viết bất kỳ code nào
executeĐiều phối plan, chạy nhiều taskKhi plan đã lưu, sẵn sàng triển khai
tddRED → GREEN → REFACTOR cho từng taskKhi implement tính năng/fix bug
fixTự sửa: test + lint + format + graphSau khi code xong, trước verify
integrationChạy integration + e2e testsSau unit tests pass
verifyCổng kiểm tra bằng chứng thực tếTrước khi tuyên bố xong/commit
reviewReview code kết hợp graph → phán quyếtTrước merge/PR

🐛 Gỡ lỗi & Điều tra

SkillMục đíchKhi nào dùng
diagnoseGỡ lỗi 6 giai đoạn: feedback loop → giả thuyết → instrument → fixBug tồn tại, chưa rõ nguyên nhân
zoom-outBản đồ module với từ vựng miềnLạc trong code, cần định hướng lại
architectureBáo cáo kiến trúc HTML + MermaidTrước refactor, onboarding, hoạch định kiến trúc

📋 Lập kế hoạch & Yêu cầu

SkillMục đíchKhi nào dùng
prdChuyển đổi hội thoại → PRD + GitHub IssueYêu cầu từ cuộc thảo luận
triageMáy trạng thái issue → bàn giao cho agentXử lý backlog, chuẩn bị cho tự động hóa
prototypeNhánh logic/UI tạm thời để kiểm chứng hướng tiếp cậnHướng tiếp cận chưa chắc chắn

💼 Phiên & Năng suất

SkillMục đíchKhi nào dùng
handoffNén trạng thái phiên cho phiên tiếp theoCửa sổ ngữ cảnh đầy, chuyển phiên
cavemanNén token ~75%Phiên dài, ngân sách token hạn chế

🎯 Chuyên biệt

SkillMục đíchKhi nào dùng
serenaLSP: điều hướng symbol, chẩn đoán, refactor an toànRefactor phức tạp, phân tích cross-file
database-migrationsThay đổi schema, rollback, zero-downtimeBất kỳ migration DB nào
flutter-dart-code-reviewChecklist 15 mục cho Flutter/DartReview code Flutter/Dart
frontend-designUI production-grade, không thẩm mỹ AI chung chungComponents và layouts web UI
webapp-testingTest web dựa trên PlaywrightTest E2E ứng dụng web

Quy trình từ phiên làm việc đến merge

Supergraph tuân theo một luồng công việc chặt chẽ. Mỗi bước đều bắt buộc — không được bỏ qua.

1
/supergraph:scan

Khởi tạo phiên

Build graph, nhận diện ngôn ngữ, lưu cấu hình vào .supergraph-env

2
/supergraph:plan

Lập kế hoạch

Phân tích graph, tính blast radius, chia nhỏ thành từng task. Lưu vào docs/supergraph/plans/

3
/supergraph:execute

Triển khai

Điều phối song song cho task độc lập, tuần tự cho task phụ thuộc. Mỗi task chạy qua TDD.

4
/supergraph:tdd

TDD cho từng task

RED Viết test thất bại → GREEN Code tối thiểu → REFACTOR Cải thiện chất lượng

5
/supergraph:fix

Vòng sửa tự động

Chạy test + lint + format + cập nhật graph. Tối đa 3 vòng lặp.

6
/supergraph:integration

Test tích hợp

Chạy integration tests và E2E tests (nếu đã cấu hình).

7
/supergraph:verify

Xác minh

Cổng bằng chứng thực tế — không tuyên bố xong nếu không có bằng chứng mới.

8
/supergraph:review

Code Review

Review kết hợp graph → phán quyết: PASS NEEDS_CHANGES BLOCKED

Thay đổi nhỏ (dưới 10 dòng, 1-2 file): có thể bỏ qua plan và execute, nhảy thẳng đến tdd → fix → verify → review.

Phân tích Codebase Graph

Dựa trên codebase-memory-mcp, Supergraph ánh xạ toàn bộ codebase thành đồ thị liên kết — giúp hiểu rõ rủi ro trước khi chạm vào code.

💥

Blast Radius

Nếu sửa file X, bao nhiêu file khác bị ảnh hưởng? Cảnh báo nếu vượt 20 file.

🔥

Hub Nodes

Các file trung tâm có độ kết nối cao — điểm rủi ro. Cần xin phép trước khi sửa.

🌉

Bridge Nodes

Nơi coupling xuyên ranh giới module. Thay đổi ở đây ảnh hưởng nhiều vùng.

🏘️

Communities

Code được phân cụm thế nào? Phát hiện cấu trúc module tự nhiên.

🧪

Test Coverage Gaps

File nào thiếu test? Ưu tiên viết test cho vùng rủi ro cao.

⚠️

Surprising Connections

Phụ thuộc bất ngờ ẩn nấp. Điểm surprise > 0.7 cần điều tra ngay.

Quy tắc quan trọng: Luôn dùng công cụ graph MCP trước khi giả định mối quan hệ giữa các file. Không bao giờ đọc toàn bộ codebase — chỉ dùng blast radius.

Tích hợp Serena LSP

Serena cung cấp trí tuệ code cấp IDE, bổ sung cho phân tích graph ở cấp symbol.

Công cụChức năng
find_referencing_symbolsTìm tất cả nơi gọi/sử dụng một symbol
find_implementationsTìm tất cả implementation của interface/abstract
get_diagnostics_for_fileLỗi kiểu cấp IDE cho một file
rename_symbolĐổi tên symbol an toàn toàn codebase
replace_symbol_bodyThay thế thân hàm có chủ đích
get_symbols_overviewBản đồ cấu trúc dự án

Dùng /supergraph:serena trước khi refactor phức tạp (rename xuyên codebase, thay đổi API signature), khi blast radius chưa rõ ở cấp symbol, hoặc sau thay đổi kiến trúc để kiểm tra không còn tham chiếu mồ côi.

Agents — Ai làm gì?

Agents là các thực thể khép kín, chỉ nhận ngữ cảnh liên quan, không có lịch sử phiên.

📝

plan-writer

Chỉ tạo plan, không bao giờ code. Phân tích graph → tạo file plan.

plan-reviewer

Review plan trước khi execute. Kiểm tra tính đầy đủ và phù hợp với spec.

⚙️

executor

Chỉ thực thi, không bao giờ tạo plan. Chạy task qua TDD + checkpoint.

🔍

code-reviewer

Review code cuối cùng. Xem diff → đưa phán quyết PASS / NEEDS_CHANGES / BLOCKED.

Hooks — Nhắc nhở tự động

Skills được gọi thủ công. Hooks tự chèn nhắc nhở dựa trên tín hiệu — không gây nhiễu, chỉ kích hoạt khi có tín hiệu rõ ràng.

HookKích hoạtHành động
SessionStartMỗi phiên, có CONTEXT.mdNạp từ vựng miền vào ngữ cảnh
SessionStartCó handoff file < 48hNhắc đọc handoff trước khi bắt đầu
SessionStartSUPERGRAPH_CAVEMAN=trueKích hoạt chế độ nén token
UserPromptSubmitNhận từ "caveman", "compress"...Bật/tắt chế độ caveman
PostToolUse Bashexit_code ≠ 0 + test failGợi ý /supergraph:diagnose
PreToolUse WriteChưa có plan được duyệtCảnh báo và chặn viết code
PostToolUse WriteFile source thay đổiCodebase Memory auto-watch cập nhật bất đồng bộ
PreCompactTrước nén ngữ cảnhNhắc khẩn /supergraph:handoff
StopClaude dừng + có planBáo cáo tiến độ task + thay đổi chưa commit

Bật chế độ Caveman vĩnh viễn

# Lưu vào .supergraph-env — giữ qua các phiên
echo "SUPERGRAPH_CAVEMAN=true" >> .supergraph-env

11 quy tắc bắt buộc

Đây là các quy tắc không thể thương lượng. Vi phạm bất kỳ quy tắc nào sẽ dẫn đến code bị chặn hoặc phiên bị dừng.

  1. Không bao giờ code khi chưa có plan — chỉ bỏ qua với thay đổi nhỏ (<10 dòng, 1 file)
  2. Không bao giờ implement khi chưa có test thất bại — TDD là bắt buộc
  3. Không bao giờ đọc toàn bộ codebase — dùng blast radius, không grep tràn lan
  4. Không bao giờ sửa hub node khi chưa được phê duyệt — dừng lại và hỏi
  5. Không bao giờ bỏ qua vòng auto-fix — phải chạy /supergraph:fix sau khi code
  6. Không bao giờ commit nếu test fail hoặc review là CRITICAL
  7. Luôn dùng công cụ graph MCP trước khi giả định mối quan hệ
  8. Luôn phát hiện ngôn ngữ và dùng đúng lệnh test/lint
  9. Luôn đọc file skill trước khi thực thi mỗi giai đoạn
  10. Luôn lưu plan vào docs/supergraph/plans/ cho công việc dài hạn
  11. Dùng công cụ Serena khi có — ưu tiên replace_symbol_body / rename_symbol hơn sửa text thô

Xử lý lỗi & Leo thang

Supergraph có đường dẫn xử lý lỗi rõ ràng cho mọi tình huống kẹt. Không bao giờ commit code hỏng.

Tình huốngHành động
TDD thất bại 3 lầnĐánh dấu task stuck, bỏ qua, chuyển task tiếp
Fix loop thất bại 3 vòngDỪNG — báo cáo lỗi, không bao giờ commit code hỏng
Review trả về NEEDS_CHANGESQuay lại fix (tối đa 2 chu kỳ review)
Review trả về BLOCKEDLEO THANG cho con người xử lý ngay
Blast radius > 20 fileDỪNG — thảo luận với người dùng trước khi tiếp
Sửa hub nodeYÊU CẦU phê duyệt rõ ràng từ người dùng
Điểm surprise > 0.7YÊU CẦU điều tra và giải trình
Phụ thuộc vòng mớiCHẶN — sửa trước khi merge

Nhận diện ngôn ngữ tự động

Khi bắt đầu phiên, skill scan tự phát hiện loại dự án dựa trên file cấu hình.

File cấu hìnhNgôn ngữTestLintFormat
pubspec.yamlFlutter/Dartflutter testflutter analyzedart format
package.jsonNode.js / TypeScriptjest, vitest, mochaeslintprettier
composer.jsonPHPphpunit, pestphpstanphp-cs-fixer
pyproject.tomlPythonpytestruffruff format
go.modGogo testgolangci-lintgofmt
Cargo.tomlRustcargo testcargo clippycargo fmt

CONTEXT.md — Bảng thuật ngữ miền

CONTEXT.md là bảng thuật ngữ cấp dự án, được xây dựng dần khi chuỗi skill chạy. Các skill đọc nó trước khi hành động và ghi vào khi khái niệm miền mới kết tinh.

Tạo file một lần cho mỗi dự án

# Tại thư mục gốc repo
touch CONTEXT.md

Cách các skill sử dụng

SkillĐọc / GhiMục đích
analyzeĐọc + GhiĐọc trước khi phân tích; ghi thuật ngữ mới khi hướng tiếp cận được chốt
planĐọcDùng thuật ngữ miền trong mô tả task thay vì tên class/file thô
reviewGhiGhi khi review phát hiện bất biến miền ẩn
architectureĐọc + GhiĐọc và ghi trong quá trình review kiến trúc
prdĐọc + GhiĐọc thuật ngữ hiện có; ghi thuật ngữ mới từ yêu cầu
zoom-outĐọcDùng từ vựng miền trong bản đồ module; đánh dấu thuật ngữ thiếu
Kết quả: Cải thiện liên tục qua các phiên — chuỗi skill ngày càng thông minh hơn khi dự án phát triển.

Thiết lập cho cả team

Sao chép scaffolding vào repo của bạn để đảm bảo nhất quán toàn đội.

# Copy cấu hình plugin
cp -r plugins/supergraph/.claude-plugin /path/to/your/repo/.claude-plugin
cp -r plugins/supergraph/.github /path/to/your/repo/.github

# Thiết lập pre-commit hook
cp plugins/supergraph/.githooks/pre-commit /path/to/your/repo/.githooks/
chmod +x /path/to/your/repo/.githooks/pre-commit
cd /path/to/your/repo && git config core.hooksPath .githooks

# Thêm vào .gitignore
echo ".claude/settings.local.json" >> .gitignore

Index local: ~/.cache/codebase-memory-mcp. Artifact chia sẻ tuỳ chọn: .codebase-memory/graph.db.zst.