Vault / course/tracking/learner-db.schema.md
updated 2026-06-25Learner Database — Schema
course/tracking/learner-db.json is the local database that powers the CLAUDE.md learning companion. It is a plain JSON file — no server, no setup. Claude reads it at the start of every study session and updates it as you learn. You can also edit it by hand.
If the file is ever deleted, recreate it from this schema with every courses/projects/tracks entry at status: "not_started" (see catalog and course/projects/ for the canonical slug lists).
Top-level shape
{
"schema_version": 1,
"learner": { "name", "goal", "started", "current_track", "current_course" },
"preferences": { "pace", "depth", "primary_surface", "wants_quizzes", "wants_spaced_review" },
"courses": [ { "slug", "title", "domain", "status", "score", "started", "completed", "official_cert_earned", "notes" } ],
"projects": [ { "slug", "status", "completed", "artifact_link", "self_rating", "notes" } ],
"tracks": [ { "slug", "title", "status", "completed" } ],
"concepts": [ { "name", "domain", "confidence", "last_reviewed" } ],
"review_queue": [ { "concept", "due", "interval_days" } ],
"quiz_history": [ { "date", "scope", "score_pct", "missed" } ],
"questions_log": [ { "date", "question", "answer_summary", "follow_up" } ],
"sessions": [ { "date", "did", "next", "minutes" } ],
"certification": { "target_date", "overall_readiness_pct", "domain_readiness_pct": { "agents", "tools-mcp", "claude-code", "prompting", "context-reliability" }, "practice_exam_scores": [] }
}
Field reference
| Field | Values / meaning |
|---|---|
*.status | not_started → in_progress → completed |
courses[].score | 0–100, the course's self-check quiz result |
courses[].official_cert_earned | true once you claim Anthropic's real certificate for that course |
projects[].self_rating | 🟢 got it · 🟡 almost · 🔴 revisit (from the project rubric) |
concepts[].confidence | 0 (unseen) – 5 (mastered). Drives pacing & review spacing |
review_queue[].interval_days | spaced-repetition interval: 1 → 3 → 7 → 16 → 35; reset to 1 on a miss |
certification.overall_readiness_pct | rough % ready for the CCA-F exam; recomputed each session |
certification.domain_readiness_pct | per-domain readiness (the five CCA-F domains and their weights) |
How mastery is computed (so the number means something)
- A course is
completedonly when its checkpoints are answered, its quiz ≥ 80%, and its project's acceptance criteria are met. - A concept's confidence rises only when recalled correctly after a gap (not right after learning).
domain_readiness_pct≈ average confidence (scaled to 100) of that domain's concepts, weighted by how many of the domain's courses/projects are complete.overall_readiness_pct≈ the CCA-F-weighted sum of domain readiness (Agents 27%, Tools/MCP 18%, Claude Code 20%, Prompting 20%, Context/Reliability 15%).
Invariants for Claude (and for you)
- Never overwrite history arrays — append to
sessions,quiz_history,questions_log. - Keep it valid JSON,
indent: 2. - Keep progress (the human-readable mirror) loosely in sync.
- Only record mastery that was actually demonstrated. An honest 40% beats a flattering 90%.
See also
- CLAUDE — how the companion uses this file
- progress — the human-readable mirror
- certification-roadmap — what "ready" means