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.
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:
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.
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.
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.
Hỗ trợ Claude Code, Antigravity CLI, Codex CLI và OpenCode. Chọn nền tảng bạn đang dùng.
| Nền tảng | Cách cài | File cấu hình |
|---|---|---|
| Claude Code | Plugin marketplace | CLAUDE.md |
| Antigravity CLI | Installer local | AGENTS.md |
| Codex CLI | Marketplace hoặc installer local | AGENTS.md |
| OpenCode | Installer local | OPENCODE.md |
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à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
git clone https://github.com/datit309/supergraph.git
cd supergraph
# Cài file plugin cho Antigravity
plugins/supergraph/install.sh --platform antigravity
# 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
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.
pip install codebase-memory-mcp==0.9.0
codebase-memory-mcp cli index_repository --repo-path "$(pwd)" --name supergraph --mode moderate
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.
| Skill | Mục đích | Khi nào dùng |
|---|---|---|
scan | Nạp graph, phát hiện dự án, lưu env | Đầu phiên — chạy đầu tiên |
analyze | Phân tích rủi ro, hỏi kỹ, chọn hướng tiếp cận | Yêu cầu mơ hồ, hub/bridge nodes |
plan | Quét graph, blast radius, chia nhỏ task | Trước khi viết bất kỳ code nào |
execute | Điều phối plan, chạy nhiều task | Khi plan đã lưu, sẵn sàng triển khai |
tdd | RED → GREEN → REFACTOR cho từng task | Khi implement tính năng/fix bug |
fix | Tự sửa: test + lint + format + graph | Sau khi code xong, trước verify |
integration | Chạy integration + e2e tests | Sau unit tests pass |
verify | Cổng kiểm tra bằng chứng thực tế | Trước khi tuyên bố xong/commit |
review | Review code kết hợp graph → phán quyết | Trước merge/PR |
| Skill | Mục đích | Khi nào dùng |
|---|---|---|
diagnose | Gỡ lỗi 6 giai đoạn: feedback loop → giả thuyết → instrument → fix | Bug tồn tại, chưa rõ nguyên nhân |
zoom-out | Bản đồ module với từ vựng miền | Lạc trong code, cần định hướng lại |
architecture | Báo cáo kiến trúc HTML + Mermaid | Trước refactor, onboarding, hoạch định kiến trúc |
| Skill | Mục đích | Khi nào dùng |
|---|---|---|
prd | Chuyển đổi hội thoại → PRD + GitHub Issue | Yêu cầu từ cuộc thảo luận |
triage | Máy trạng thái issue → bàn giao cho agent | Xử lý backlog, chuẩn bị cho tự động hóa |
prototype | Nhánh logic/UI tạm thời để kiểm chứng hướng tiếp cận | Hướng tiếp cận chưa chắc chắn |
| Skill | Mục đích | Khi nào dùng |
|---|---|---|
handoff | Nén trạng thái phiên cho phiên tiếp theo | Cửa sổ ngữ cảnh đầy, chuyển phiên |
caveman | Nén token ~75% | Phiên dài, ngân sách token hạn chế |
| Skill | Mục đích | Khi nào dùng |
|---|---|---|
serena | LSP: điều hướng symbol, chẩn đoán, refactor an toàn | Refactor phức tạp, phân tích cross-file |
database-migrations | Thay đổi schema, rollback, zero-downtime | Bất kỳ migration DB nào |
flutter-dart-code-review | Checklist 15 mục cho Flutter/Dart | Review code Flutter/Dart |
frontend-design | UI production-grade, không thẩm mỹ AI chung chung | Components và layouts web UI |
webapp-testing | Test web dựa trên Playwright | Test E2E ứng dụng web |
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.
Build graph, nhận diện ngôn ngữ, lưu cấu hình vào .supergraph-env
Phân tích graph, tính blast radius, chia nhỏ thành từng task. Lưu vào docs/supergraph/plans/
Đ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.
RED Viết test thất bại → GREEN Code tối thiểu → REFACTOR Cải thiện chất lượng
Chạy test + lint + format + cập nhật graph. Tối đa 3 vòng lặp.
Chạy integration tests và E2E tests (nếu đã cấu hình).
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.
Review kết hợp graph → phán quyết: PASS NEEDS_CHANGES BLOCKED
tdd → fix → verify → review.
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.
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.
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.
Nơi coupling xuyên ranh giới module. Thay đổi ở đây ảnh hưởng nhiều vùng.
Code được phân cụm thế nào? Phát hiện cấu trúc module tự nhiên.
File nào thiếu test? Ưu tiên viết test cho vùng rủi ro cao.
Phụ thuộc bất ngờ ẩn nấp. Điểm surprise > 0.7 cần điều tra ngay.
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_symbols | Tìm tất cả nơi gọi/sử dụng một symbol |
find_implementations | Tìm tất cả implementation của interface/abstract |
get_diagnostics_for_file | Lỗi kiểu cấp IDE cho một file |
rename_symbol | Đổi tên symbol an toàn toàn codebase |
replace_symbol_body | Thay thế thân hàm có chủ đích |
get_symbols_overview | Bả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 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.
Chỉ tạo plan, không bao giờ code. Phân tích graph → tạo file plan.
Review plan trước khi execute. Kiểm tra tính đầy đủ và phù hợp với spec.
Chỉ thực thi, không bao giờ tạo plan. Chạy task qua TDD + checkpoint.
Review code cuối cùng. Xem diff → đưa phán quyết PASS / NEEDS_CHANGES / BLOCKED.
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.
| Hook | Kích hoạt | Hành động |
|---|---|---|
SessionStart | Mỗi phiên, có CONTEXT.md | Nạp từ vựng miền vào ngữ cảnh |
SessionStart | Có handoff file < 48h | Nhắc đọc handoff trước khi bắt đầu |
SessionStart | SUPERGRAPH_CAVEMAN=true | Kích hoạt chế độ nén token |
UserPromptSubmit | Nhận từ "caveman", "compress"... | Bật/tắt chế độ caveman |
PostToolUse Bash | exit_code ≠ 0 + test fail | Gợi ý /supergraph:diagnose |
PreToolUse Write | Chưa có plan được duyệt | Cảnh báo và chặn viết code |
PostToolUse Write | File source thay đổi | Codebase Memory auto-watch cập nhật bất đồng bộ |
PreCompact | Trước nén ngữ cảnh | Nhắc khẩn /supergraph:handoff |
Stop | Claude dừng + có plan | Báo cáo tiến độ task + thay đổi chưa commit |
# Lưu vào .supergraph-env — giữ qua các phiên
echo "SUPERGRAPH_CAVEMAN=true" >> .supergraph-env
Đâ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.
/supergraph:fix sau khi codedocs/supergraph/plans/ cho công việc dài hạnreplace_symbol_body / rename_symbol hơn sửa text thô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ống | Hà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òng | DỪNG — báo cáo lỗi, không bao giờ commit code hỏng |
Review trả về NEEDS_CHANGES | Quay lại fix (tối đa 2 chu kỳ review) |
Review trả về BLOCKED | LEO THANG cho con người xử lý ngay |
| Blast radius > 20 file | DỪNG — thảo luận với người dùng trước khi tiếp |
| Sửa hub node | YÊU CẦU phê duyệt rõ ràng từ người dùng |
| Điểm surprise > 0.7 | YÊU CẦU điều tra và giải trình |
| Phụ thuộc vòng mới | CHẶN — sửa trước khi merge |
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ình | Ngôn ngữ | Test | Lint | Format |
|---|---|---|---|---|
pubspec.yaml | Flutter/Dart | flutter test | flutter analyze | dart format |
package.json | Node.js / TypeScript | jest, vitest, mocha | eslint | prettier |
composer.json | PHP | phpunit, pest | phpstan | php-cs-fixer |
pyproject.toml | Python | pytest | ruff | ruff format |
go.mod | Go | go test | golangci-lint | gofmt |
Cargo.toml | Rust | cargo test | cargo clippy | cargo fmt |
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ại thư mục gốc repo
touch CONTEXT.md
| Skill | Đọc / Ghi | Mụ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 | Đọc | Dùng thuật ngữ miền trong mô tả task thay vì tên class/file thô |
review | Ghi | Ghi 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 | Đọc | Dùng từ vựng miền trong bản đồ module; đánh dấu thuật ngữ thiếu |
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.