---
url: https://docs.nemo12.com/workflows/recommendation-cockpit.md
description: >-
  WF-05: từ Learner Model, context và goal tính readiness và next best action
  cho cockpit (buildCockpit).
---

# WF-05 — Recommendation & Cockpit

Từ Learner Model + Context + goal → readiness + **next best action** (việc tốt nhất tiếp theo). Đã hiện thực baseline (`buildCockpit`).

```mermaid
flowchart TD
  M[Learner Model: mastery/node] --> RD[computeReadiness theo blueprint]
  CTX[Context: goal, grade, school] --> RD
  RD --> G[Gaps xếp hạng: critical/important]
  G --> PR{Prereq của gap đã đạt?}
  PR -- chưa --> FIX[fix_prerequisite: học prereq đang chặn]
  PR -- rồi & chưa có evidence --> AS[assess: chẩn đoán ngắn node]
  PR -- rồi & có evidence --> LP[learn / practice node]
  FIX --> OUT[Next actions xếp theo priority]
  AS --> OUT
  LP --> OUT
```

## Priority (SDD-002 §10)

`priority ≈ weight × deficit` (baseline), sẽ mở rộng `ExpectedImpact × GoalRelevance × Urgency × PrereqImportance × P(success) ÷ Cost`. Ưu tiên fix prerequisite đang chặn nhiều node (đúng tinh thần "không yếu fraction nói chung — gap đó đang chặn 6 skills").

## Trace ngược "vì sao học cái này" (REQ-VIS-06)

Mỗi action kèm `reason` + `blocks`/`node_id` → Task → Skill Gap → Area → Goal.

## Hiện thực

`GET /v1/learners/:id/cockpit?subject_id=` + trả sau `submit`. UI cockpit tại learn.nemo12.com (readiness bar + next actions). Verified end-to-end.

## Trace

REQ-INT-05→priority · REQ-LRN-02→next action · REQ-VIS-03→readiness · REQ-VIS-06→reason.
