OKR Capture: Ghi nhanh vào inbox
Chạy inline, thao tác nhẹ: chỉ phân loại + ghi inbox.
Preload Contract Tier 2
Trước khi phân loại, đảm bảo .okr/lessons/index.md (toàn bộ) đã có trong context (../okr-shared/references/preload.md Tier 2). Idempotent: qua harness đã có, chạy lẻ tự đọc index nếu thiếu. Dùng để phân loại type bám bài học đã có. KHÔNG nạp objective/plan/resources/actions (capture không suy luận tiến độ).
Flow
- Nhận input user
- Phân loại type:
action / blocker / resource / thought
- Tạo file
.okr/inbox/YYYY-MM-DD-HHmm-slug.md
- Báo: "Đã ghi vào inbox. Xử lý khi track tiếp."
Tiêu chí phân loại type
| Type |
Khi nào |
Tín hiệu nhận biết |
action |
Việc cụ thể cần làm, có thể thành task |
Động từ hành động + có output ("viết", "gọi", "sửa", "mua") |
blocker |
Thứ đang chặn việc khác tiến triển |
"không thể", "đang chờ", "bị kẹt", "server down", "chưa có access" |
resource |
Tool/tài liệu/ngân sách mới phát hiện |
Tên công cụ/tài liệu/link, "dùng được X", "có thư viện Y" |
thought |
Ý tưởng/ghi chú chưa rõ scope |
Suy nghĩ mở, "hay là", "cân nhắc", chưa rõ thành việc gì |
Không chắc → chọn thought (track làm rõ khi xử lý). Phân loại chỉ là gợi ý, okr-track verify lại lúc xử lý inbox.
Schema
Canonical đầy đủ ở references/data-format.md. Frontmatter (khớp canonical):
---
captured_at: "YYYY-MM-DDTHH:mm" # thời điểm user gọi capture (có giờ), không phải lúc ghi file
type: action | blocker | resource | thought
title: "string"
description: "string (1-2 câu)"
related_kr: KR1 | null # gợi ý, track verify lại
related_action: A005 | null # gợi ý, track verify lại
status: pending
---
Body: ## Mô tả (agent viết, actionable) + ## Context gốc (nguyên văn user, để trace). Chi tiết: references/data-format.md.
Quy tắc
- KHÔNG xử lý inbox. Chỉ capture + phân loại.
- Xử lý inbox là việc của okr-track.
1---2name: okr-capture3description: Ghi nhanh ý tưởng, note, action, blocker, resource vào inbox.4---56# OKR Capture: Ghi nhanh vào inbox78Chạy inline, thao tác nhẹ: chỉ phân loại + ghi inbox.910## Preload Contract Tier 21112Trước khi phân loại, đảm bảo `.okr/lessons/index.md` (toàn bộ) đã có trong context (`../okr-shared/references/preload.md` Tier 2). Idempotent: qua harness đã có, chạy lẻ tự đọc index nếu thiếu. Dùng để phân loại type bám bài học đã có. KHÔNG nạp objective/plan/resources/actions (capture không suy luận tiến độ).1314## Flow15161. Nhận input user172. Phân loại type: `action` / `blocker` / `resource` / `thought`183. Tạo file `.okr/inbox/YYYY-MM-DD-HHmm-slug.md`194. Báo: "Đã ghi vào inbox. Xử lý khi track tiếp."2021## Tiêu chí phân loại type2223| Type | Khi nào | Tín hiệu nhận biết |24|------|---------|--------------------|25| `action` | Việc cụ thể cần làm, có thể thành task | Động từ hành động + có output ("viết", "gọi", "sửa", "mua") |26| `blocker` | Thứ đang chặn việc khác tiến triển | "không thể", "đang chờ", "bị kẹt", "server down", "chưa có access" |27| `resource` | Tool/tài liệu/ngân sách mới phát hiện | Tên công cụ/tài liệu/link, "dùng được X", "có thư viện Y" |28| `thought` | Ý tưởng/ghi chú chưa rõ scope | Suy nghĩ mở, "hay là", "cân nhắc", chưa rõ thành việc gì |2930Không chắc → chọn `thought` (track làm rõ khi xử lý). Phân loại chỉ là gợi ý, `okr-track` verify lại lúc xử lý inbox.3132## Schema3334Canonical đầy đủ ở `references/data-format.md`. Frontmatter (khớp canonical):3536```yaml37---38captured_at: "YYYY-MM-DDTHH:mm" # thời điểm user gọi capture (có giờ), không phải lúc ghi file39type: action | blocker | resource | thought40title: "string"41description: "string (1-2 câu)"42related_kr: KR1 | null # gợi ý, track verify lại43related_action: A005 | null # gợi ý, track verify lại44status: pending45---46```4748Body: `## Mô tả` (agent viết, actionable) + `## Context gốc` (nguyên văn user, để trace). Chi tiết: `references/data-format.md`.4950## Quy tắc5152- KHÔNG xử lý inbox. Chỉ capture + phân loại.53- Xử lý inbox là việc của okr-track.