PK Analyze: Phân tích trạng thái (read-only)
Ensure snapshot (bắt buộc, đầu flow)
- Precondition:
.cockpit/tồn tại. Thiếu → routepk-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 markerSNAPSHOT_LOADED. Đã có marker (vd harness Phase 1 đã đặt) → skip, không đọc lại.
Đọc .cockpit/, tính metrics, phát hiện vấn đề, xếp ưu tiên. KHÔNG BAO GIỜ ghi file.
Nguyên tắc
- Read-only: không tạo, sửa, xoá file nào.
- Song song: đọc nhiều file cùng lúc.
- Chính xác: dùng công thức chuẩn (
../pk-shared/references/metrics.md). Số liệu trích từ file. - Root cause (mode deep): "tại sao?" >= 3 lần trước khi kết luận.
- Cụ thể: mọi nhận định kèm evidence.
Đọc state
Snapshot Contract (../pk-shared/references/snapshot-contract.md, mục "Context Snapshot") đã preload chỉ mục/định danh, và full body cho các file nền nhỏ (objective.md, tools.md, SCHEMA.md, 3 registry). KHÔNG đọc lại các nguồn này, trừ khi skill khác vừa ghi chúng trong phiên (luật "ghi thì mất hiệu lực").
Đọc thêm (DELTA) ngoài snapshot, song song:
| File | Đọc gì | Dùng để |
|---|---|---|
objective.md body |
Bảng KR/KI targets + current | Tính metrics. Snapshot đã preload full body → chỉ đọc lại khi pk-track vừa ghi KR/KI current trong phiên này (luật "ghi thì mất hiệu lực": ../pk-shared/references/snapshot-contract.md, mục "Dedup 6 file khối @") |
plan.md body |
Roadmap section | Đọc milestone/action structure (focus track, full) |
log/ |
Entries gần nhất | mode deep: tốc độ hoàn thành, trends. HOẶC (mọi mode) tính System Pulse capture_7d + last_distill_days: chỉ đọc tên file log (7 ngày gần) + grep source_skill, KHÔNG đọc full body |
Tính metrics
Mọi công thức ở ../pk-shared/references/metrics.md. KHÔNG chép lại.
Phát hiện issues
Quét theo nghiêm trọng:
- Period overdue
- Action overdue (ghi số ngày)
- Action blocked (liệt kê blocker)
- KR at-risk/off-track
- Checkpoint slip (effort xl)
- Inbox aging (> 30 ngày, phân execution vs knowledge)
- Capacity xung đột
- Knowledge health (mức số liệu, công thức tại
../pk-shared/references/metrics.md): orphan count, freshness thấp. Nghi ngờ index lệch → gợi ý chạypk-lint check(registry sync là việc pk-lint, không phải metrics pk-analyze).
Xếp priority (top N actions)
First-match: overdue → block action khác → deadline trong horizon → priority cao doing → KR at-risk.
Dashboard hợp nhất
Dashboard hiển thị CẢ HAI module:
Layout: Execution
Dashboard: [Tên Objective]
[Câu tổng quan]
[Nhắc review nếu có]
Period: [start] > [end] ([X]% thời gian)
Key Results
KR1: ████░░░░░░ 40/100 (40%) > on-track
Active: 2 doing | 1 blocked | 0 pending
Actions: N tổng | X done | Y doing | Z blocked
Inbox execution: [N] pending
Layout: Knowledge
Knowledge
Wiki: [N] pages ([M]% fresh)
Skills: [N] | Workflows: [N]
Inbox knowledge: [N] pending
Nhịp thở
Capture 7d: [N] | Inbox: [P] pending (già nhất [X]d)
Distill gần nhất: [Y]d trước | Phiếu chờ: [S]
[1 dòng đề xuất nếu chạm ngưỡng nhắc — trỏ schemas.md]
Cần chú ý
- [issues]
Block "Nhịp thở" = System Pulse (canonical công thức: ../pk-shared/references/metrics.md, mục "System Pulse"). Capture 7d=capture_7d, Inbox P pending (già nhất Xd)=inbox_pressure, Distill gần nhất Yd=last_distill_days (null → "chưa từng"), Phiếu chờ S=pending_signals. Dòng đề xuất chỉ hiện khi inbox_pressure chạm bảng "Ngưỡng nhắc xử lý" (../pk-shared/references/schemas.md) → gợi ý pk-distill/pk-track, user gật mới chạy.
Knowledge-only mode (không có objective)
Chỉ hiện Knowledge section. Skip execution hoàn toàn.
Mode deep
Bổ sung:
- Đọc log history
- Root cause mỗi issue (>= 3 "tại sao?")
- Tốc độ hoàn thành (done/tuần)
- Output thêm "Root cause" section
Tham số
| Param | Mặc định | Mô tả |
|---|---|---|
| mode | light | light: dashboard tiêu chuẩn (không đọc log history/body, không root cause) — nhưng VẪN grep tên file log 7 ngày gần cho System Pulse (capture_7d, last_distill_days), là read rẻ không đọc body. mode=deep bật phần "Mode deep" (đọc log history đầy đủ, root cause >= 3 "tại sao?", tốc độ hoàn thành). |
| focus | full | "full", "progress", "issues", "priority", "knowledge", "track" |
| max_items | 2 (dashboard), 3 (track) | Số priority items |
| horizon_days | 3 (dashboard), 7 (track) | Cửa sổ deadline |
Ghi chú: focus=track (tracking nhẹ) chỉ tính progress + quét issues loại 1-3. Ngữ cảnh track dùng max_items=3, horizon_days=7. mode và focus là hai chiều độc lập: mode kiểm soát độ sâu phân tích, focus kiểm soát phạm vi hiển thị.