Auto ship through release, level 3 — /ship-auto <việc>. Runs the full /ship process (plan → code → test → UAT → review → commit) then ONE "Ship" AskUserQuestion, then PR → CI → merge → tag/release → install → monitor until green. Owner-only.
Install
npx skillscat add 8-sync-dev/8sync/ship-auto Install via the SkillsCat registry.
SKILL.md
Task: $ARGUMENTS
Level 3. Chỉ owner khởi động (disable-model-invocation: true — Claude không tự gọi; cũng không chạy khi scheduled task dùng skill này làm prompt, theo https://code.claude.com/docs/en/skills#frontmatter-reference).
- Làm như
/ship— đọcship/SKILL.mdvà chạy đủ phase 1–8 (plan, R&D khi có ẩn số, code, test, UAT, review/QC, docs + memory, commit) theo nhịp/sprint(cổng quy mô: việc ≤3 file thì không mở sprint): planning chọn role theo quy mô và giao theo đợt, standup8sync ccc standup <slug>ở mỗi phase (exit 3 = có role ngồi không → giao item thật hoặcrest <lý do>), sprint review trước câu Ship, retro →/remember. Trạng thái ởsu-code/ship/<slug>/STATE.md(tạo nếu chưa có, kể cả việc nhỏ) + dòng trongsu-code/ship/ACTIVE. Việc quá lớn/nhiều ẩn số → nói owner chia thành mục tiêu có tiêu chí và dùng/ship-loop. - Rails trước khi hỏi —
8sync ccc riskin gate bắt buộc từ tên file đổi;/sectrên diff: gọi skillsec(Skill tool) trước commit, bắt buộc, không thay bằng grep tay; dán kết luận của nó vào báo cáo. Không chạy được → dừng trước commit, báo owner;/rules+/aup-auditkhi diff đụng auth/OAuth, thu thập dữ liệu, nhắn người ngoài, tool bên thứ ba, high-risk (BLOCK → dừng, báo owner). Build/test nặng chỉ chạy trên CI: push nhánh feature +gh workflow runcho CI được phép TRƯỚC câu hỏi Ship (guard chỉ chặn merge/push main/tag/release/publish/deploy) →gh run watch <id> --exit-statuschạy nền →gh run view <id> --log-failed; local chỉ lint/test một module,nice -n 19 ionice -c3,-j2. Ngay sau lần push đầu:CronCreate*/5 * * * *→/ship-tick <slug>(recurring) để lượt sau đọc kết quả CI, sửa đỏ, rồi đi tiếp tới câu hỏi Ship mà owner không phải gõ lại; standup8sync ccc standup <slug>mỗi tick, ẩn số →researcher/deep-researchtheoship-tick. - Không có remote/CI (
git remoterỗng hoặc repo không có workflow) → commit xong thì dừng, ghiShip: n/a (no remote)vào STATE + báo cáo; không tạo remote, không hỏi Ship. - Ship một lần — gom TẤT CẢ bước có tác dụng ngoài máy (push, PR, merge, tag, release, publish, install/deploy) liệt kê từng cái cụ thể (tên nhánh, PR, tag dự kiến) vào MỘT
AskUserQuestionheaderShip, options đúng:Duyệt tất cả (Recommended)·Chỉ merge, chưa deploy·Dừng. Hook ghi giấy phép 8 giờ cho session; guard không hỏi lại từng lệnh. Owner chọnDừng, hoặc nói "dừng"/"stop" bất cứ lúc nào → kết thúc ngay, ghi STATE. Không bao giờ dùngbypassPermissions/--dangerously-skip-permissions; guard vẫn chặn force-push, secret, thao tác phá huỷ. - Thực thi theo lựa chọn:
- push nhánh →
gh pr create→gh pr checks --watchchạy nền (run_in_background); đỏ →gh run view <id> --log-failed, sửa gốc, push lại (tối đa 3 vòng rồi báo thật, không sửa test cho pass); CI phải xanh trên cả Windows, macOS và Linux (test + build release) trước merge/tag; OS nào chưa có job → ghi "not verified: " và không merge;8sync ccc auto cibáolocal(GitHub chỉ lưu code) → CI là test + build trên máy release này, OS khác ghi "not verified: " và vẫn merge (ngoại lệ của luật not-verified ở trên), không chờgh pr checks; - xanh →
gh pr merge; chọn "Chỉ merge, chưa deploy" thì dừng sau bước này; - tag/release theo quy ước repo (CHANGELOG Unreleased → version; repo có
changelog.d/: gộp các file đó vào mục version rồi xoá chúng) → theo dõi workflow release (local: build release trên máy này); - nếu có:
8sync up(cập nhật binary đã cài) và kit refresh (8sync ccc kit) — repo không có thì ghi "n/a".
- push nhánh →
- Monitor — theo dõi workflow/health tới khi xanh (
gh run watch --exit-statusnền, hoặc/loopnếu cần poll; lưu ý/loopchỉ chạy khi session mở, hết hạn sau 7 ngày — https://code.claude.com/docs/en/scheduled-tasks). Đỏ → đọc log, quay lại sửa. Ghi kết quả vào STATE, xoá dòng khỏiACTIVE,CronList→CronDeletejob/ship-tick <slug>.
Báo cáo cuối: phase xong + bằng chứng (lệnh + output), PR/tag/run URL, cái chưa verify, việc owner cần làm. Mọi câu "xong/pass" phải kèm lệnh + output; không có → "not verified".