"Quản lý feature LỚN nhiều phase, nhiều ngày, xuyên session (>10 file, nhiều milestone) theo nguyên lý GSD. State sống ở su-code/planning/<slug>/ (PROJECT/REQUIREMENTS/ROADMAP/STATE) + ACTIVE switch giữa nhiều feature. Việc nhỏ/bug/1-concern (≤10 file, 1 pass) dùng /auto (lái engine trực tiếp)."
Resources
2Install
npx skillscat add 8-sync-dev/8sync/feature Install via the SkillsCat registry.
Feature Skill — GSD cho feature lớn
Chống "đi 1 nẻo": tổng thể + vị trí lưu ở FILE (
su-code/planning/<slug>/), không ở context tạm.
Mỗi feature lớn = 1 folder. Loop phase: Discuss → Plan → Execute → Verify → Ship.
Execute KHÔNG tự dựng engine riêng — nó FEED engineengine_*có sẵn của su-code (verify-gate, doom-loop guard, worktree đã enforce trong code).
Usage
/feature new <slug> -> Scaffold su-code/planning/<slug>/ + 4 file + set ACTIVE. Điền → user duyệt.
/feature plan -> Discuss + Plan phase hiện tại (fan-out research) -> M<x>-CONTEXT + M<x>-NN-PLAN.md
/feature go -> Execute phase: feed PLAN vào engine_plan → loop engine_next/verify/advance
/feature ship -> Verify (review multi-lens + test) BÁM AC -> M<x>-VERIFICATION + tick ROADMAP + archive
/feature status -> In STATE.md hiện tại
/feature switch <slug> -> Đổi feature active (ghi ACTIVE.md + config.active_feature)
/feature --auto -> AUTONOMOUS: chạy TRỌN 1 phase (plan→go) không hỏi user, dừng ở ranh giới phase kế.
Auto-discuss qua task subagent thay ask; block thì skip+ghi NEEDS-CONFIRM+code nốt.
Có thể kèm subcommand: `/feature plan --auto`, `/feature go --auto`.Deterministic ops cũng có ở verb
8sync feature(nhanh, không cần model):8sync feature new|switch|status|list.
Cònplan/go/shipcần model phán đoán → chạy trong 1 session omp qua/feature.
Dispatch (đọc STATE → biết đang đâu)
BẮT BUỘC trước mọi subcommand (trừ new) — đọc 3 file vào context NGAY đầu lệnh:
- Đọc
su-code/planning/ACTIVE.mddòng đầu (không comment, không blank) → slug active. Trống → báo user chạy/feature newhoặc/feature switch. - Đọc
su-code/planning/<slug>/STATE.md→ frontmatteractive_phase,status,next_action,ticket,branch(ticket/branch có thể trống — không sao). - Đọc
su-code/planning/config.json→ giữ trong context cả lệnh:workflow.*(parallelization, min_parallel_tasks, review_dimensions, plan_review, code_review, verifier),paths.*(planning_root, archive). Thiếu key → dùng default rồi cảnh báo user. - Load
references/feature-rules.mdNGAY (luật xuyên suốt mọi subcommand: R1 resolve config→literal, R3 2-lớp load skill, R5 AC discipline, R6 guardrail, R7 codebase anchor, R8 commit, R10 code-intelligence FIRST). Reference từng subcommand chỉ thêm bước RIÊNG, KHÔNG lặp luật này. - Dispatch theo bảng:
| Subcommand | Load reference | Khi nào hợp lệ |
|---|---|---|
new |
references/new.md |
luôn |
plan |
references/plan.md |
phase chưa có PLAN, hoặc cần re-plan |
go |
references/execute.md |
phase đã có PLAN (status=executing/planned) |
ship |
references/ship.md |
phase code xong (status=executing, plan tasks done) |
status |
— (in STATE trực tiếp) | luôn |
switch |
sửa ACTIVE.md dòng đầu + config.active_feature | luôn |
Nếu user gõ /feature không subcommand → đọc STATE → đề xuất next theo next_action.
⚡ Cờ --auto (autonomous mode) — check NGAY khi parse lệnh
Nếu args chứa --auto (dù có/không subcommand) → BẮT BUỘC load references/auto.md TRƯỚC rồi mới dispatch. Auto-mode đổi hành vi của plan + go:
- KHÔNG dùng
askcho điểm-quyết-định triển khai → thay bằng spawntasksubagent (agent: explore/agent: plan/agent: task) đóng vai discuss + tự quyết theo ràng buộc PROJECT/REQUIREMENTS. Tự tra repo/DB trước khi coi là "phải hỏi". - KHÔNG dừng ở user-gate (gate 2 plan, gate cuối go) → tự duyệt (plan-review thay vai gate chất lượng) rồi chạy tiếp.
- Block (thiếu credential/môi trường/dữ liệu thật subagent không tra được) → SKIP item đó, ghi NEEDS-CONFIRM vào VERIFICATION/STATE, code nốt phần còn lại của phase. Không stall cả phase vì 1 item.
- 1 lệnh
--auto= chạy TRỌN 1 phase:plan(nếu chưa có PLAN) →go(code hết wave qua engine) → self-check AC. Dừng ở ranh giới phase kế (không tự nhảy phase sau trừ khi user nói "code hết các phase"). - Chỉ escalate user thật sự khi: hành động không đảo được/outward-facing (push, xoá data, gọi API production).
Chi tiết luật + cách spawn subagent discuss: references/auto.md.
Phân biệt với /auto (QUAN TRỌNG)
| Loại việc | Dùng | State ở |
|---|---|---|
| Nhỏ/bug/1-concern (≤10 file, 1 pass, đường đi rõ) | /auto (lái engine_* trực tiếp) |
su-code/STATE.md (spine session) |
| Feature LỚN (nhiều domain, nhiều phase, nhiều ngày, xuyên session) | /feature (skill này) |
su-code/planning/<slug>/ + ACTIVE switch |
/featureKHÔNG thay/auto— nó ngồi TRÊN engine: quản ROADMAP nhiều phase + hợp đồng AC + switch giữa nhiều feature; khigo, mỗi phase được FEED vào chính engine mà/autolái.
Quy ước cốt lõi
- Phase = mảng nghiệp vụ, đặt tên
M<n>-<slug>(M0-foundation, M1-ket-ban...). - Plan = batch task trong 1 phase:
M<x>-NN-PLAN.md. - STATE.md < 100 dòng — digest, không archive. Frontmatter ràng buộc:
---đầu file · không comment trongprogress:·next_phasessingle-line. - Cập nhật: task xong → STATE.Log + next_action · phase xong → ROADMAP tick + STATE.progress · feature xong →
su-code/KNOWLEDGE.md+su-code/DECISIONS.md. - Parallel:
config.workflow.parallelization === false→ TẮT mọi swarm, chạy tuần tự main thread (debug/máy yếu). Khitrue: việc độc lập + khác file + ≥config.workflow.min_parallel_tasks→ spawntasksubagent đồng thời; dưới ngưỡng → main thread. - Commit: commit atomic mỗi task xong qua
engine_advance {commit:true}tronggo(verify-gate enforce trước). Conventional Commits, tiếng Anh,<type>: M<x> - T<n> <desc>, no AI ref. Feature branch + ticket là TUỲ CHỌN (STATEbranch/ticketcó thể trống). KHÔNGgit push/PR trừ khi user yêu cầu. Chi tiết:references/execute.md§Commit + R8. - Model: su-code sở hữu chọn model qua
~/.config/8sync/models.toml(xem/sửa:8sync harness model) + role củatasksubagent. Skill NEVER hardcode tên model; chỉ chọnagent: <role>(explore/plan/reviewer/Tester/task) đúng vai.
Neo vào codebase (brownfield) — R7
- Tổng thể dự án:
AGENTS.md+su-code/PROJECT.md— KHÔNG mô tả lại. - Nghiệp vụ/kiến trúc module:
su-code/KNOWLEDGE.md+codegraph explore— đọc/tra trước khi code. - Convention + quyết định:
AGENTS.md+su-code/DECISIONS.md+su-code/PREFERENCES.md. - Project-local skill:
su-code/skills/<name>/SKILL.md; global:~/.omp/skills/<name>/SKILL.md.
Flow chuẩn 1 feature
/feature new zalo-group -> điền 4 file (neo AGENTS.md + su-code/) -> USER DUYỆT (gate 1)
mỗi phase:
/feature plan -> Discuss + Goal/AC (UAT) + Plan (task↔AC) -> USER DUYỆT plan (gate 2)
/feature go -> feed PLAN → engine_plan/next/verify/advance -> append STATE mỗi task
/feature ship -> review+test BÁM AC -> M<x>-VERIFICATION (AC matrix) -> tick ROADMAP
lặp tới phase cuối -> ship (phase cuối) -> update su-code/KNOWLEDGE.md + DECISIONS.md + archiveMỗi phase BẮT BUỘC có Requirement scope + Goal + Acceptance Criteria (AC-NN, đo được) trong
M<x>-CONTEXT.md. Requirement scope map từREQUIREMENTS.mdUC; AC = hợp đồng nghiệm thu:planviết,gocode bám (verify của mỗi engine task = lint/test/build thật),shipreview+test verify từng UC/AC →M<x>-VERIFICATION.md. Phase done ⇔ mọi UC/AC PASS. KHÔNG dùng "DoD" mơ hồ.
Đọc references/<subcommand>.md để biết chi tiết từng bước.