Trình dựng slice tính năng Compose
Bộ quy tắc giúp hoàn thiện trọn một màn hình trong dự án Compose/CMP: API → repository → ViewModel → UI → navigation → DI → test.
Lập trìnhNâng cao★ 300⑂ 25Điểm AI 9/10Cập nhật lần cuối: 2 thg 10, 2026
Làm được gì
- Thêm, sửa hoặc review một slice tính năng (screen, sheet, dialog, destination) trong dự án Compose / Compose Multiplatform, từ đầu đến cuối.
- Cố định thứ tự viết file:
Contract.kt→ ViewModel → Route/Screen → DI & navigation → tests. - Áp đặt các mẫu: hợp đồng MVI (UiState/UiAction/UiEffect),
launchGuardedvớionErrortường minh, draft lưu trongSavedStateHandle, cold load/reconcile bằngLifecycleStartEffect, chặn load trùng lặp. - Buộc liệt kê "ma trận trạng thái" (cold load, refreshing, error, retry, empty, not-found, load chồng nhau, phục hồi sau process death) trước khi code và viết test ViewModel thật cho từng dòng.
- Cổng kiểm tra bằng
rgđể bảo đảm không cònTODO,FIXME,SEAMhay hàm rỗng khi báo hoàn thành. - Dùng
scripts/new-feature.shđể scaffold; với màn hình đã có thì chỉ viết diff nhỏ nhất, không scaffold lại.
Phù hợp với ai
- Lập trình viên Android / KMP dùng Jetpack Compose với kiến trúc MVI.
- Team muốn chuẩn hoá tiêu chí review tính năng và giữ kiến trúc ổn định lâu dài.
- Người mệt với việc AI gọi hàm không tồn tại hoặc để lại TODO.
Ví dụ sử dụng
- "Thêm màn hình danh sách/chi tiết Notes" → scaffold bằng
scripts/new-feature.sh --name Notes --item Note ..., hiện thực các SEAM, đăng ký module Koin ở composition root. - "Thêm lưu nháp cho form" → dùng draft trong
SavedStateHandle, UiState dẫn xuất, không mirrorrememberSaveable. - "Review PR tính năng của đồng nghiệp" → theo
references/review-mode.md: chỉ ra UiState field không ai đọc, refresh thất bại im lặng, thiếu test, và đưa ra đúng một bản sửa cho mỗi file bị block.
· · · 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/Meet-Miyani/compose-skill/HEAD/skills/compose-feature/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 skills/compose-feature từ repo GitHub Meet-Miyani/compose-skill vào ~/.claude/skills/compose-feature/ 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/Meet-Miyani/compose-skill.git && mkdir -p ~/.claude/skills && cp -r compose-skill/skills/* ~/.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.
- Clone repo:
git clone https://github.com/Meet-Miyani/compose-skill.git - Tạo thư mục skill:
mkdir -p ~/.claude/skills - Copy skill:
cp -r compose-skill/skills/* ~/.claude/skills/- Skill này tham chiếu các skill cùng bộ (
compose,compose-architecture,compose-ui,compose-data), nên hãy copy toàn bộ.
- Skill này tham chiếu các skill cùng bộ (
- (Tuỳ chọn) Kiểm tra dự án có
scripts/new-feature.shvà.composekit.conf; nếu không, Claude sẽ viết code thủ công thay vì scaffold. - Khởi động lại Claude Code và yêu cầu ví dụ: "Thêm slice màn hình danh sách Notes" — skill sẽ tự kích hoạt.
Xem mã nguồn trên GitHub ↗Giấy phép: MIT