Documentation Index
Fetch the complete documentation index at: https://docs.vibelearn.dev/llms.txt
Use this file to discover all available pages before exploring further.
Learning Loop Metrics
VibeLearn’s learning loop has three measurable outputs: concept coverage (what was extracted from sessions), quiz accuracy (how you perform on questions), and mastery progression (how scores change over time). This page explains what each metric means and how to interpret it.
Concept Coverage
After each session, VibeLearn extracts concepts via ConceptExtractor. Coverage depends on:
- Files edited: More Write/Edit observations → more material for concept extraction
- Stack context:
StackDetector provides framework/ORM context that improves concept naming
- Session length: Longer sessions with more tool calls produce more concepts
Check what was extracted:
sqlite3 ~/.vibelearn/vibelearn.db \
"SELECT name, category, difficulty FROM vl_concepts ORDER BY id DESC LIMIT 20;"
Quiz Accuracy
vl quiz tracks every answer in vl_quiz_attempts. Each attempt records:
| Field | Description |
|---|
is_correct | 0 or 1 |
response_time_ms | Time to answer |
hmac_signature | Signed with your API key (anti-tamper) |
Your accuracy per concept is visible in:
vl status
# Example output:
# Sessions analyzed: 12
# Total concepts: 87
# Mastered: 34 | In progress: 41 | Not started: 12
Mastery Score
Each concept has a mastery_score (0.0–1.0) stored in vl_developer_profile. The score is computed server-side from your quiz attempts using a simplified SM-2 algorithm.
Local value is a cache — the server overwrites it on each sync.
| Score | Meaning |
|---|
0.0 | Never answered or all wrong |
< 0.5 | In progress — appears in vl gaps |
> 0.85 | Mastered — QuizGenerator skips this concept |
1.0 | Fully mastered |
Check your weakest concepts:
vl gaps
# SQLite WAL Mode ████░░░░░░ 38% (seen 3x)
# HMAC Token Signing ███░░░░░░░ 28% (seen 2x)
# React Suspense Boundaries ██░░░░░░░░ 22% (seen 1x)
Spaced Repetition
VibeLearn uses a simplified SM-2 algorithm. Questions resurface at increasing intervals after correct answers. The interval doubles after each correct answer and resets after an incorrect one.
This means:
- Answering a question correctly 3× in a row → it won’t appear again for a long time
- Getting a question wrong resets its interval — it resurfaces in the next quiz session
Question Types and Accuracy
VibeLearn generates three question types:
| Type | Format | When used |
|---|
multiple_choice | 4 options (A–D) | Most concepts |
fill_in_blank | Complete the code or sentence | Code patterns, syntax |
explain_code | Open-ended explanation | Complex patterns |
fill_in_blank and explain_code questions are graded by the LLM in the next analysis pass.
Checking Raw Data
# Questions per concept category
sqlite3 ~/.vibelearn/vibelearn.db \
"SELECT c.category, COUNT(q.id) as questions
FROM vl_concepts c
JOIN vl_questions q ON q.concept_id = c.id
GROUP BY c.category
ORDER BY questions DESC;"
# Mastery scores by concept
sqlite3 ~/.vibelearn/vibelearn.db \
"SELECT concept_name, mastery_score, encounter_count
FROM vl_developer_profile
ORDER BY mastery_score ASC
LIMIT 10;"