Note Mastery
unlistedby BeaconSage
Shows note-level mastery from Spaced Repetition card schedules.
Note Mastery
Note Mastery is an Obsidian companion plugin for the community plugin Spaced Repetition. It shows note-level mastery by aggregating the scheduling data from flashcards in each Markdown file.
Requirements
- Obsidian 1.2.8 or newer.
- The Spaced Repetition community plugin installed and used for flashcard review.
- Spaced Repetition must store card scheduling data in notes (
dataStore: NOTES). - Cards need review history comments such as
<!--SR:!2026-05-12,3,250-->.
Note Mastery does not review cards and does not create scheduling data. It only reads existing Markdown files and its own plugin settings.
What It Shows
The sidebar dashboard lists every note that contains #flashcards or SR
scheduling comments and shows:
- note mastery percentage
- total estimated cards
- reviewed cards
- due cards
- average interval
- average ease
- next due date
The first version supports Spaced Repetition's Markdown comment format:
Question::Answer
<!--SR:!2026-05-12,3,250-->
Multiple schedule segments in one comment are also supported:
Question:::Answer
<!--SR:!2026-05-12,3,250!2026-05-13,4,260-->
Mastery Formula
For each reviewed card:
cardMastery = 0.5 * intervalScore + 0.3 * easeScore + 0.2 * dueScore
The note score is the average reviewed-card mastery multiplied by review coverage:
noteMastery = average(cardMastery) * (reviewedCards / totalCards)
Unreviewed cards therefore lower the note score instead of being treated as known.
Development
npm install
npm test
npm run build
npm run install:dev-vault
The development vault path is:
/Users/tella/Development/note-mastery-dev-vault
To install the built plugin into the main vault:
npm run install:vault
Only manifest.json, main.js, and styles.css are copied into the vault.
Release Files
An Obsidian install needs only:
manifest.jsonmain.jsstyles.css
License
MIT
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.