# Templates — hệ học (dùng cho `curriculum` + `study`)

> Khung CHUẨN cho các file học. Bob `$$READ$$` file này khi scaffold/ghi, thay `{{placeholder}}`. Giữ cấu trúc đồng nhất giữa mọi domain. KHÔNG đặt file này ở cấp 1 `_agent/skills/` (sẽ bị manifest quét nhầm) — nó nằm trong subfolder `learning/`.
>
> **Rubric 17 (canonical)** dùng cho 📘 Kiến thức + đo mastery:
> A. `definition` `essence` `problem` `origin-context` `mechanism` · B. `root-cause` `rationale` · C. `scope-boundary` · D. `tradeoffs` `consequences` · E. `application` `measurement` `create` · F. `connection` `discrimination` · G. `metacognition` `teach-back`
> **5 core** (gate): `essence` + `mechanism` + `application` + `discrimination` + `teach-back`.

---

## 1. `8.TRACK/Learning/curriculum-<domain>.md`  (curriculum MOC — DAG)

> **Cấu trúc = 10 HEADING LÕI (luôn có + điền thật) + 3 HEADING BỐI CẢNH (concept tổng quan · khung xuyên suốt · case throughline — chỉ thêm khi domain THỰC SỰ có, không có thì bỏ hẳn).** Trước đây drift vì template thiếu `domain`/`status` + không phân biệt bắt-buộc/điều-kiện. Chuẩn hoá 2026-07-21.

### Frontmatter CHUẨN (bắt buộc đủ field)
```yaml
---
title: Curriculum {{Domain}} — {{goal}} ({{scope}})
type: moc
domain: {{domain-slug}}          # BẮT BUỘC — khớp `learn_curriculum` của lesson (vd dataview-bases)
status: {{status}}               # enum: scaffolding | activated | learning | mature
created: {{YYYY-MM-DD}}
updated: {{YYYY-MM-DD}}
llm_managed: true
tags: [learning, curriculum, {{domain}}]
---
```
- `status` enum: **`scaffolding`** (mới dựng khung, chưa activate lesson) · **`activated`** (đã stamp learn_* nhưng chưa học) · **`learning`** (đang học, có ≥1 buổi) · **`mature`** (đa số lesson ≥🟢).
- `scope` trong title: `goal-first` (hẹp) hoặc `comprehensive` (toàn diện).

### 10 HEADING LÕI (luôn có + điền THẬT) + 3 HEADING BỐI CẢNH (có thì thêm, không thì BỎ HẲN)
> **Luật chống-lười (2026-07-21, theo yêu cầu Nguyên) — chia 2 nhóm để vừa chống lười vừa không đẻ heading rỗng buồn cười:**
> - **10 HEADING LÕI**: PHẢI xuất hiện đủ, đúng tên, đúng thứ tự, **điền nội dung THẬT** — không bao giờ "không áp dụng" (curriculum nào cũng có mục tiêu / lộ trình / nguồn / cách đo / sổ học / dashboard...).
> - **3 HEADING BỐI CẢNH** (concept tổng quan · khung xuyên suốt · case throughline): chỉ vài domain lớn có. **Domain CÓ → thêm heading + điền. Domain KHÔNG có → BỎ HẲN heading (đừng để "(không áp dụng)" — nhìn thừa).** Chống lười cho 3 cái này nằm ở GATE TỰ-RÀ: bắt tự hỏi rõ, không cho bỏ vì lười.

**10 heading LÕI (thứ tự cố định, đặt tên y hệt):**

| # | Heading | Điền gì (LUÔN có nội dung thật) |
|---|---|---|
| 1 | `# Curriculum {{Domain}}` + callout `>` mục tiêu | mục tiêu + scope (goal-first/comprehensive) + "Trạng thái hiểu biết ở frontmatter từng lesson (`learn_curriculum: {{domain}}`)". |
| 2 | `## Nguồn chuẩn` | nguồn rút TOC thật (GATE cứng). Chưa verify → gắn ⚠️. |
| 3 | `## Lộ trình học` | danh sách đánh số + prereq inline "cần (n)". >7 lesson / có nhóm → chia `### Phần N —` / `### Tầng N —` + callout. |
| 4 | `### Sơ đồ DAG lộ trình học` (```mermaid, trong mục 3) | LUÔN VẼ (thẳng vẫn là DAG). Curriculum quá lớn (33 node) → trỏ so-do thay vì vẽ 1 hình khổng lồ. |
| 5 | `## Cách đo hiểu biết` | Rubric 17 + 5 core. Chi tiết: [[curriculum-ai-pilot]] / `learning-mode`. |
| 6 | `## Sổ học & sơ đồ` | [[so-hoc-{{domain}}]] + [[so-do-{{domain}}]]. |
| 7 | `## Dashboard` | `![[dashboard-hoc-tap.base]]` + "Tiến độ phẳng: [[learning-progress]] — **{{N}} lesson**". |
| 8 | `## Quyết định đã chốt (log)` | ≥1 gạch đầu dòng (scope / nguồn / folder-home / cách activate). |
| 9 | `## Quest & tài liệu bổ trợ` | link quest/course, hoặc "_(chưa có — tạo khi ≥1 bài ≥🟢)_" (anchor cho study append). |
| 10 | `## Buổi học đã hoàn thành` | link buổi, hoặc "_(chưa có — study cập nhật)_" (anchor cho study append). |

**3 heading BỐI CẢNH (chèn đúng chỗ nếu domain CÓ; không có → không viết gì):**

| Heading | Thêm KHI (nếu không → BỎ HẲN, đừng ghi n/a) | Đặt ở |
|---|---|---|
| `## Concept tổng quan` | domain có 2-3 khái niệm trục dễ lẫn (vd dataview vs bases) | đầu, trước Lộ trình |
| `## {{Khung}} xuyên suốt` | domain có framework nền chạy suốt (vd IPO/4D) | sau mục tiêu |
| `## {{Case}} — throughline` | có 1 case minh hoạ chạy xuyên suốt (vd BMAD) | sau khung |

> ⛔ **GATE TỰ-RÀ trước khi ghi curriculum:**
> 1. **10 heading LÕI đủ chưa + mỗi cái điền nội dung THẬT chưa?** (9,10 cho phép "chưa có" làm anchor). Thiếu/rỗng = CHƯA XONG.
> 2. **3 câu hỏi bối cảnh — tự trả lời rõ ràng, KHÔNG lười bỏ qua:** domain này (a) có khái niệm trục cần phân biệt trước không? (b) có khung tư duy nền chạy suốt không? (c) có case minh hoạ xuyên suốt không? → CÓ thì BẮT BUỘC thêm heading tương ứng + điền; KHÔNG thì bỏ hẳn (không ghi n/a). Không được vì lười mà trả lời "không" cho cả 3 khi domain thực sự có.

---

## 2. `8.TRACK/Learning/<domain>/so-hoc-<domain>.md`  (sổ index — tạo RỖNG lúc scaffold)

```md
---
title: Sổ học — {{Domain}} ({{domain}})
type: log
created: {{YYYY-MM-DD}}
updated: {{YYYY-MM-DD}}
llm_managed: true
tags: [learning, {{domain}}, so-hoc]
learn_journal: {{domain}}
---

# Sổ học — {{Domain}} (curriculum [[curriculum-{{domain}}]])

> Tổ chức **theo topic**: mỗi topic 1 section = 📘 Kiến thức (17 tiêu chí) + ✍️ Bằng chứng + Mastery/gap. Cuối: **Bức tranh lớn**. Sơ đồ: [[so-do-{{domain}}]]. Cờ mastery ở topic note + dashboard.
> Buổi gần nhất: _(chưa có)_.

## Theo topic

### 1. [[{{topic-1}}]] — ⚪ chưa học
- 📘 _(chưa đào)_ · ✍️ — · Mastery: ⚪ chưa học
### 2. [[{{topic-2}}]] — ⚪ chưa học
- 📘 _(chưa đào)_ · ✍️ — · Mastery: ⚪ chưa học
{{… mỗi topic 1 dòng placeholder}}

## Bức tranh lớn (cross-topic — cập nhật khi đủ dữ liệu)
- Mạch: {{topic-1}} → {{topic-2}} → …
```

### Khung section topic ĐẦY ĐỦ (khi study lấp lúc học/ôn)
```md
### N. [[{{topic}}]] — {{🟢|✅|📖}} {{M}}/17 ({{ghi chú}})

#### 📘 Kiến thức học được (17 tiêu chí)
- **definition** — …
- **essence** — …
- **problem** — …
- **origin-context** — …
- **mechanism** — …
- **root-cause** — …
- **rationale** — …
- **scope-boundary** — …
- **tradeoffs** — …
- **consequences** — …
- **application** — …
- **measurement** — …
- **create** — …
- **connection** — …
- **discrimination** — …
- **metacognition** — …
- **teach-back** — …
(mục chưa đào → `_(chưa đào)_`)

#### ✍️ Bằng chứng hiểu (user tự nói)
- {{tiêu chí}}: "{{câu user}}"

#### Mastery + gap
- {{icon}} {{M}}/17; {{core thiếu}}.
- Gap ưu tiên: {{…}}.
- Lịch sử buổi: [[{{YYYY-MM-DD}}-{{topic}}]] ({{ghi chú}})
```

---

## 3. `8.TRACK/Learning/<domain>/so-do-<domain>.md`  (sơ đồ — tạo RỖNG lúc scaffold)

```md
---
title: Sơ đồ học — {{Domain}} ({{domain}})
created: {{YYYY-MM-DD}}
updated: {{YYYY-MM-DD}}
llm_managed: true
tags: [learning, {{domain}}, so-do]
type: log
learn_visual: {{domain}}
---

# Sơ đồ học — {{Domain}} (curriculum [[curriculum-{{domain}}]])

> Sơ đồ minh hoạ mỗi buổi (mermaid — mở full-pane). **Xếp từ cũ → mới (mới nhất ở CUỐI)**. Chữ: [[so-hoc-{{domain}}]].

_(Chưa có buổi học nào.)_
```

### Khung block buổi (study `$$APPEND$$` xuống CUỐI file — cũ trên, mới dưới)
```md
## {{YYYY-MM-DD}} · [[{{topic}}]]
### 🗺️ Bản đồ tổng quan
​```mermaid
{{flowchart tổng quan topic}}
​```
### ⚙️ {{Cơ chế / so sánh / cấu trúc}}
​```mermaid
{{…}}
​```
### 🖼️ Excalidraw minh hoạ {{(concept lõi — vẽ qua excalidraw-diagram)}}
![[{{slug}}.excalidraw]]
```

---

## 4. `8.TRACK/Learning/<domain>/buoi/<YYYY-MM-DD>-<topic>.md`  (bài học RICH — study tạo mỗi buổi)

```md
---
title: Buổi học {{YYYY-MM-DD}} — {{Topic}}
type: log
created: {{YYYY-MM-DD}}
updated: {{YYYY-MM-DD}}
llm_managed: true
tags: [learning, {{domain}}, buoi-hoc]
learn_session: {{domain}}
topic: {{topic}}
date: {{YYYY-MM-DD}}
---

# Buổi học {{YYYY-MM-DD}} — [[{{topic}}]]

> Bài học ĐẦY ĐỦ (đọc lại là hiểu). Tóm tắt: [[so-hoc-{{domain}}]] · Sơ đồ: [[so-do-{{domain}}]].
> Mục tiêu buổi: {{…}}

## 1. WHY — vì sao tồn tại / quan trọng
## 2. WHAT — là gì (định nghĩa, bản chất, phân biệt hàng xóm, vị trí trong cây/mạng)
## 3. HOW — cơ chế vận hành (kèm ví dụ thật)
## 4. SO WHAT — *vậy thì sao?* (ý nghĩa với user + DÙNG/QUYẾT/THAY ĐỔI gì; hệ quả bậc 2)
## 5. Giới hạn (scope/boundary/edge-cases)
## 6. Trade-off & hệ quả
## 7. Áp dụng (case thật + bài test)
## 8. Chỗ được chỉnh trong buổi
## 9. Sơ đồ buổi (NHÚNG để note tự đủ)
​```mermaid
{{sơ đồ chính của buổi — chèn lại đúng block đã ghi vào so-do}}
​```
![[{{slug}}.excalidraw]]
## 10. Chốt: đã hiểu gì / còn hổng / next
```

> Cấu trúc buổi linh hoạt theo topic — không bắt buộc đủ mục; **tối thiểu WHY→WHAT→HOW→SO WHAT + Chốt**. Ưu tiên RICH, có ví dụ, đọc lại học được.

---

## 5. `8.TRACK/Learning/dashboard-hoc-tap.base`  (dashboard TOÀN CỤC — tạo 1 lần, dùng chung mọi domain)

> Obsidian Base. Derive trạng thái từ frontmatter `learn_*`. Tạo nếu chưa có (curriculum tự bootstrap). KHÔNG cần thay placeholder — domain-agnostic.

```yaml
filters:
  and:
    - learn_curriculum != null
    - type != "log"
formulas:
  status: if(learn_understood.length >= 17, "✅ master", if(learn_understood.containsAll("essence", "mechanism", "application", "discrimination", "teach-back"), "🟢 nắm cơ bản", if(learn_reviewed, "📖 đang học", "⚪ chưa học")))
  con_lai_ngay: if(learn_next, (date(learn_next) - today()).days, "")
properties:
  formula.status: { displayName: Trạng thái }
  formula.con_lai_ngay: { displayName: Còn (ngày) }
  learn_curriculum: { displayName: Lĩnh vực }
  learn_order: { displayName: TT }
  learn_understood: { displayName: Tiêu chí đã đạt }
  learn_reviewed: { displayName: Ôn gần nhất }
  learn_next: { displayName: Ôn kế }
views:
  - type: table
    name: Tiến độ học
    groupBy: { property: learn_curriculum, direction: ASC }
    order: [learn_order, file.name, formula.status, learn_understood, learn_reviewed, learn_next]
    sort: [{ property: learn_order, direction: ASC }]
  - type: table
    name: Cần ôn (tới hạn)
    filters: { and: [ "learn_next && date(learn_next) <= today()" ] }
    order: [file.name, learn_curriculum, learn_next, formula.con_lai_ngay]
```

---

## 6. `8.TRACK/Learning/learning-progress.md`  (bảng phẳng TOÀN CỤC — tạo RỖNG 1 lần)

> Materialized view: 1 dòng/topic để `study` dựng menu rẻ. **TỰ SINH từ frontmatter** — `study` chỉ emit `$$REGEN_PROGRESS$$`, plugin tính lại cả bảng. KHÔNG sửa tay block AUTO.

```md
---
title: Tiến độ học — bảng phẳng (materialized view)
type: log
created: {{YYYY-MM-DD}}
updated: {{YYYY-MM-DD}}
llm_managed: true
tags: [learning, progress, index]
learn_progress_index: true
---

# Tiến độ học — bảng phẳng (đọc 1 lần thay vì mở mọi topic)

> Gom `learn_*` frontmatter của mọi topic vào 1 bảng để `study` dựng MENU không phải đọc body từng note. Nguồn chân lý vẫn là frontmatter topic; file này là bản nén. Cờ: 🟢 nắm cơ bản · ✅ master · 📖 đang dở · ⚪ chưa học · ⏰ tới hạn.

<!-- AUTO:LEARNING-PROGRESS:START -->

| # | Topic | Domain | Mastery | Trạng thái | Ôn kế |
|---|---|---|---|---|---|
| _(chưa có topic — curriculum/study sẽ thêm dòng)_ |

<!-- AUTO:LEARNING-PROGRESS:END -->
```
