Claude Academy
Sign in

Learner 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

FieldValues / meaning
*.statusnot_startedin_progresscompleted
courses[].score0–100, the course's self-check quiz result
courses[].official_cert_earnedtrue once you claim Anthropic's real certificate for that course
projects[].self_rating🟢 got it · 🟡 almost · 🔴 revisit (from the project rubric)
concepts[].confidence0 (unseen) – 5 (mastered). Drives pacing & review spacing
review_queue[].interval_daysspaced-repetition interval: 1 → 3 → 7 → 16 → 35; reset to 1 on a miss
certification.overall_readiness_pctrough % ready for the CCA-F exam; recomputed each session
certification.domain_readiness_pctper-domain readiness (the five CCA-F domains and their weights)

How mastery is computed (so the number means something)

  • A course is completed only 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)

  1. Never overwrite history arrays — append to sessions, quiz_history, questions_log.
  2. Keep it valid JSON, indent: 2.
  3. Keep progress (the human-readable mirror) loosely in sync.
  4. Only record mastery that was actually demonstrated. An honest 40% beats a flattering 90%.

See also