Note Mastery

unlisted

by BeaconSage

Shows note-level mastery from Spaced Repetition card schedules.

Updated 2mo agoMIT
View on GitHub

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.json
  • main.js
  • styles.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.