Hợp đồng kiến trúc Night Market
Ghi lại các quyết định thiết kế trọng yếu, bất biến và điểm yếu đã biết của repo claude-night-market để tham chiếu khi đánh giá một thay đổi thiết kế.
Lập trìnhNâng cao★ 342⑂ 36Điểm AI 7/10Cập nhật lần cuối: 2 thg 10, 2026
Làm được gì
- Trình bày 6 quyết định thiết kế "chịu lực" của repo claude-night-market, mỗi tuyên bố đều dẫn chứng ADR, commit hash hoặc file kiểm soát có trong repo: plugin tự chứa, ràng buộc Python 3.9 cho hook, một phiên bản duy nhất lan ra mọi manifest, ngân sách phát hiện skill, bộ nhớ tập thể qua GitHub Discussions, và phân loại vai trò skill.
- Bảng bất biến ghi rõ "ai cưỡng chế" và "hỏng gì nếu vi phạm", kèm đường dẫn tới workflow CI, script ratchet và guard test.
- Nêu thẳng 6 điểm yếu đang mở: tràn ngân sách skill xảy ra âm thầm, mdbook chưa ghim phiên bản, vòng lặp tự trị dựa vào hành vi Stop hook không được tài liệu hóa, mypy/pytest phải chạy theo từng plugin, v.v.
- Bảng tóm tắt 23 ADR, bảng "khi nào nên dùng skill khác", và bộ lệnh
rg/git/python3để kiểm chứng lại các con số dễ lỗi thời.
Phù hợp với ai
- Người đóng góp hoặc vận hành fork của repo claude-night-market.
- Tech lead muốn học cách viết tài liệu quy tắc kiến trúc cho một monorepo nhiều plugin/skill.
- Ai đang tìm ví dụ thực tế về việc nối ADR với cơ chế cưỡng chế trong CI.
Ví dụ sử dụng
- Có đề xuất "gom
tasks_manager.pytrùng lặp ở 3 plugin thành module dùng chung" → skill chỉ ra ADR-0001 và chuỗi commit054e2679(gom) →29961cd2(revert) →d89a55c7(giữ bản riêng mỗi plugin) để bác đề xuất. - Trước khi thêm một hook mới → nhắc đọc payload JSON từ stdin (không dùng biến môi trường
CLAUDE_TOOL_*), không dùng đường dẫn tương đối, và đặt timeout subprocess nhỏ hơn ngân sách tronghooks.json. - Khi nâng phiên bản → không sửa tay từng manifest mà chạy
uv run python plugins/sanctum/scripts/update_versions.py <version>. - Khi viết description cho skill mới → giữ dưới 160 ký tự và dành số ký tự đó cho câu kích hoạt thay vì lặp lại tên skill.
· · · Hướng dẫn cài đặt · · ·
Dùng thử ngay, không cần cài
Dán đoạn dưới vào Claude là dùng được skill này mà không cần cài đặt.
Hãy đọc hướng dẫn trong tệp này và làm theo để giúp mình: https://raw.githubusercontent.com/athola/claude-night-market/HEAD/.claude/skills/night-market-architecture-contract/SKILL.md Mình muốn: (viết việc bạn cần ở đây)
Nếu Claude không mở được liên kết, hãy mở liên kết và copy nội dung vào rồi dán.
↓ Thấy hữu ích thì tải ZIP bên dưới và cài. Sau đó skill tự chạy, không phải dán lại mỗi lần.
Cài vào ứng dụng Claude (không cần terminal)
- Tải tệp ZIP bằng nút bên dưới.
- Trong Claude, mở Settings → Capabilities và bật 'Code execution and file creation'. (chỉ một lần)
- Vào Customize → Skills → + → 'Upload a skill' rồi tải tệp ZIP lên.
Cài vào Claude Code
Để Claude làm — dán câu dưới đây vào Claude Code
Hãy cài skill mình tìm thấy trên Claude Skill Mart. Copy thư mục .claude/skills/night-market-architecture-contract từ repo GitHub athola/claude-night-market vào ~/.claude/skills/night-market-architecture-contract/ của mình. Sau khi cài xong, cho mình biết skill này làm được gì trong một câu.
Cài bằng lệnh thủ công
git clone https://github.com/athola/claude-night-market.git && mkdir -p ~/.claude/skills && cp -r claude-night-market/.claude/skills/night-market-architecture-contract ~/.claude/skills/⚠ Đây là skill do người khác tạo. Hãy kiểm tra repo gốc trước khi cài.
- Mở terminal và vào thư mục làm việc của bạn.
- Clone repo:
git clone https://github.com/athola/claude-night-market.git - Tạo thư mục skill:
mkdir -p ~/.claude/skills - Sao chép skill:
cp -r claude-night-market/.claude/skills/night-market-architecture-contract ~/.claude/skills/ - Khởi động lại Claude Code, thử yêu cầu "đánh giá thay đổi thiết kế này" để xem skill có được nạp không.
- Lưu ý: mọi đường dẫn và lệnh trong skill chỉ thực sự chạy được bên trong repo claude-night-market. Ở dự án khác, hãy đọc nó như tài liệu tham khảo hoặc viết lại nội dung theo đúng sự thật của repo bạn.
Xem mã nguồn trên GitHub ↗Giấy phép: MIT