PK Plan: Tạo + cập nhật plan & actions
Ensure snapshot (bắt buộc, đầu flow)
- Precondition:
.cockpit/ tồn tại. Thiếu → route pk-init (mode new), KHÔNG nạp gì thêm, dừng.
- Idempotent qua marker: phiên CHƯA có marker
SNAPSHOT_LOADED → tự nạp full theo Snapshot Contract
(../pk-shared/references/snapshot-contract.md) rồi đặt marker SNAPSHOT_LOADED. Đã có marker (vd
harness Phase 1 đã đặt) → skip, không đọc lại.
SOT chính: plan.md và actions/.
Modes
| Mode |
Trigger |
Mô tả |
new |
Chưa có plan.md |
Tạo plan + milestones + actions |
update |
Sửa plan/action/milestone |
Cập nhật cấu trúc |
pre-confirmed |
Áp dụng thay đổi đã duyệt từ pk-track |
Delegate protocol |
SOT quyền ghi
| File |
Fields |
| plan.md |
Milestones, counters (khi tạo), re-render Roadmap (view dẫn xuất) |
| actions/*.md |
title, due_date, deps, key_result, milestone, effort, priority, DoD, notes |
Subset của ../pk-shared/references/sot-ownership.md.
Điều kiện tiên quyết
objective.md tồn tại và có nội dung. Thiếu → "Cần init objective trước."
tools.md nên tồn tại (cross-check tools khả dụng).
Nguyên tắc
- Mỗi action BẮT BUỘC: DoD rõ ràng, Output/Deliverable, tiêu chí chất lượng.
- Action mơ hồ ("Nghiên cứu thêm" không output) → CẤM.
- Effort xl → BẮT BUỘC Checkpoints hoặc tách.
- Confirm bảng trước ghi. Render Roadmap sau ghi.
- Quality Gate (
../pk-shared/references/quality-gate.md): 3 câu trước mỗi follow-up.
- Capacity / xung đột tài nguyên: khi tạo hoặc sửa action, đối chiếu capacity và xung đột tài nguyên theo
../pk-shared/references/metrics.md mục "Capacity / xung đột tài nguyên". Không chép công thức; trỏ canonical.
Tích hợp tri thức (Plan → Consult)
Khi tạo action, gọi pk-consult (cross-call lớp 2 → lớp 3) tìm pattern, decision, troubleshooting liên quan. Nếu có skill/workflow phù hợp, link vào action notes.
Thực hiện:
- Rút 3-5 keyword từ action title/description
- Đối chiếu knowledge/index.md + skills/registry.md + workflows/registry.md (đã có trong snapshot)
- Match → đọc page detail, trích phần liên quan vào notes
- Có skill/workflow khớp → ghi
related_skill: [[slug]] hoặc related_workflow: [[slug]] trong action notes
Flow: mode new
- Đọc objective.md (KR/KI targets)
- Đọc tools.md (tools khả dụng)
- Hỏi milestones + timeline
- Mỗi milestone: hỏi actions, Quality Gate mỗi follow-up
- Với mỗi action: gắn
key_result (bắt buộc) và milestone (nếu có). Action không neo được vào KR nào → cảnh báo và hỏi user xác nhận trước khi giữ lại.
- Verify sequence action ID: khi sinh AXXX mới, kiểm tra gap trong dãy ID hiện có (ví dụ A003 → A005 thiếu A004). Nếu có khoảng trống, hỏi user xác nhận trước khi gán số tiếp.
- Tích hợp tri thức: pk-consult tìm knowledge liên quan
- Confirm bảng tổng
- Ghi plan.md + actions/*.md
- Render Roadmap
Flow: mode update
- Đọc plan.md + actions hiện tại
- Hỏi user thay đổi gì
- Quality Gate
- Tích hợp tri thức cho action mới
- Với action mới: gắn
key_result (bắt buộc) và milestone (nếu có). Verify sequence action ID (kiểm gap như mode new bước 6).
- Confirm diff
- Trước khi ghi đè body: đọc body hiện tại (bất biến:
../pk-shared/references/snapshot-contract.md, mục "Bất biến đọc body trước khi ghi body"). Ghi + re-render Roadmap.
Flow: mode pre-confirmed
Nhận payload từ pk-track (mọi mode, user đã duyệt trong flow track). Theo delegate protocol tại ../pk-shared/references/cross-call-rules.md:
- Hiển thị block lý do + diff
- Trước khi ghi đè body: đọc body hiện tại của file đích (bất biến:
../pk-shared/references/snapshot-contract.md, mục "Bất biến đọc body trước khi ghi body"). Ánh xạ payload.changes (xem payload format tại ../pk-shared/references/cross-call-rules.md Delegate Protocol) vào file tương ứng:
- field thuộc action (title, due_date, deps, effort, priority, DoD) → ghi vào
actions/{action-id}.md
- field thuộc milestones, counters → ghi vào
plan.md
- Ghi ngay (skip confirm)
- Kèm
(Đã được confirm tại track. Ghi ngay.)
Quy tắc
- KHÔNG ghi file trước confirm (trừ pre-confirmed).
- Không sửa KR/KI targets (việc pk-init).
- Không sửa action status (việc pk-track).
- Không tạo/sửa knowledge (việc pk-distill).
1---2name: pk-plan3description: Tạo hoặc sửa kế hoạch hành động: plan, milestones, actions, dependencies, deadline. Dùng khi user cần lập kế hoạch, phân rã mục tiêu thành bước cụ thể, thêm/sửa/xoá action, điều chỉnh milestone. Thay đổi CẤU TRÚC kế hoạch dùng skill này. Thay đổi TIẾN ĐỘ dùng pk-track.4---56# PK Plan: Tạo + cập nhật plan & actions78## Ensure snapshot (bắt buộc, đầu flow)9101. **Precondition**: `.cockpit/` tồn tại. Thiếu → route `pk-init` (mode new), KHÔNG nạp gì thêm, dừng.112. **Idempotent qua marker**: phiên CHƯA có marker `SNAPSHOT_LOADED` → tự nạp full theo Snapshot Contract12 (`../pk-shared/references/snapshot-contract.md`) rồi đặt marker `SNAPSHOT_LOADED`. Đã có marker (vd13 harness Phase 1 đã đặt) → skip, không đọc lại.1415SOT chính: `plan.md` và `actions/`.1617## Modes1819| Mode | Trigger | Mô tả |20| --- | --- | --- |21| `new` | Chưa có plan.md | Tạo plan + milestones + actions |22| `update` | Sửa plan/action/milestone | Cập nhật cấu trúc |23| `pre-confirmed` | Áp dụng thay đổi đã duyệt từ pk-track | Delegate protocol |2425## SOT quyền ghi2627| File | Fields |28| --- | --- |29| plan.md | Milestones, counters (khi tạo), re-render Roadmap (view dẫn xuất) |30| actions/*.md | title, due_date, deps, key_result, milestone, effort, priority, DoD, notes |3132> Subset của `../pk-shared/references/sot-ownership.md`.3334## Điều kiện tiên quyết3536- `objective.md` tồn tại và có nội dung. Thiếu → "Cần init objective trước."37- `tools.md` nên tồn tại (cross-check tools khả dụng).3839## Nguyên tắc4041- Mỗi action BẮT BUỘC: DoD rõ ràng, Output/Deliverable, tiêu chí chất lượng.42- Action mơ hồ ("Nghiên cứu thêm" không output) → CẤM.43- Effort xl → BẮT BUỘC Checkpoints hoặc tách.44- Confirm bảng trước ghi. Render Roadmap sau ghi.45- Quality Gate (`../pk-shared/references/quality-gate.md`): 3 câu trước mỗi follow-up.46- **Capacity / xung đột tài nguyên**: khi tạo hoặc sửa action, đối chiếu capacity và xung đột tài nguyên theo `../pk-shared/references/metrics.md` mục "Capacity / xung đột tài nguyên". Không chép công thức; trỏ canonical.4748## Tích hợp tri thức (Plan → Consult)4950Khi tạo action, gọi pk-consult (cross-call lớp 2 → lớp 3) tìm pattern, decision, troubleshooting liên quan. Nếu có skill/workflow phù hợp, link vào action notes.5152Thực hiện:531. Rút 3-5 keyword từ action title/description542. Đối chiếu knowledge/index.md + skills/registry.md + workflows/registry.md (đã có trong snapshot)553. Match → đọc page detail, trích phần liên quan vào notes564. Có skill/workflow khớp → ghi `related_skill: [[slug]]` hoặc `related_workflow: [[slug]]` trong action notes5758## Flow: mode new59601. Đọc objective.md (KR/KI targets)612. Đọc tools.md (tools khả dụng)623. Hỏi milestones + timeline634. Mỗi milestone: hỏi actions, Quality Gate mỗi follow-up645. Với mỗi action: gắn `key_result` (bắt buộc) và `milestone` (nếu có). Action không neo được vào KR nào → cảnh báo và hỏi user xác nhận trước khi giữ lại.656. Verify sequence action ID: khi sinh AXXX mới, kiểm tra gap trong dãy ID hiện có (ví dụ A003 → A005 thiếu A004). Nếu có khoảng trống, hỏi user xác nhận trước khi gán số tiếp.667. Tích hợp tri thức: pk-consult tìm knowledge liên quan678. Confirm bảng tổng689. Ghi plan.md + actions/*.md6910. Render Roadmap7071## Flow: mode update72731. Đọc plan.md + actions hiện tại742. Hỏi user thay đổi gì753. Quality Gate764. Tích hợp tri thức cho action mới775. Với action mới: gắn `key_result` (bắt buộc) và `milestone` (nếu có). Verify sequence action ID (kiểm gap như mode new bước 6).786. Confirm diff797. Trước khi ghi đè body: đọc body hiện tại (bất biến: `../pk-shared/references/snapshot-contract.md`, mục "Bất biến đọc body trước khi ghi body"). Ghi + re-render Roadmap.8081## Flow: mode pre-confirmed8283Nhận payload từ pk-track (mọi mode, user đã duyệt trong flow track). Theo delegate protocol tại `../pk-shared/references/cross-call-rules.md`:841. Hiển thị block lý do + diff852. Trước khi ghi đè body: đọc body hiện tại của file đích (bất biến: `../pk-shared/references/snapshot-contract.md`, mục "Bất biến đọc body trước khi ghi body"). Ánh xạ `payload.changes` (xem payload format tại `../pk-shared/references/cross-call-rules.md` Delegate Protocol) vào file tương ứng:86 - field thuộc action (title, due_date, deps, effort, priority, DoD) → ghi vào `actions/{action-id}.md`87 - field thuộc milestones, counters → ghi vào `plan.md`883. Ghi ngay (skip confirm)894. Kèm `(Đã được confirm tại track. Ghi ngay.)`9091## Quy tắc9293- KHÔNG ghi file trước confirm (trừ pre-confirmed).94- Không sửa KR/KI targets (việc pk-init).95- Không sửa action status (việc pk-track).96- Không tạo/sửa knowledge (việc pk-distill).