The description of Mastery
Mastery helps you organize your practice so you can stay focused on what's important. Add the skills you want to learn, prioritize them, and categorize them; then, when you're ready to practice, Mastery will suggest skills to practice based on their priority, the categories you're interested in, and how much you've practiced each skill recently.
Start by adding the skills you need to practice. For example, if you are a musician, these can be pieces, drills, scales, etc. Each skill can be given a priority, which indicates how much it needs to be practiced. If you've mastered the skill, or it's not important to learn now, give it a low priority; if you're just starting to learn it or it's critical you improve quickly, give it a high priority.
Skills can be organized into groups; for example, a musician may have a "Scales" group. Groups can also be nested: the "Scales" group can be placed inside the "Warm-Ups" group.
Next, create a schedule: a schedule is a sequence of slots, each with a time duration, that can be filled by skills. Slots can be configured so that they can only be filled by skills in a particular skill group.
Now, press the schedule's Play button, and Mastery will fill the slots with skills to practice. It chooses skills that are high priority and/or have not been practiced much recently. (You can configure the relative importance of these factors.) Not happy with the selections? Go back and press Play again: Mastery uses a biased random sampling algorithm so you'll get other options that also deserve to be practiced.
Finally, it's time to practice: press the Play button on your practice session and Mastery will keep track of how much you practice each skill, and notify you when it's time to move on to the next skill. This is important, because as you practice skills more, they will be less likely to be chosen for your next practice. If you feel you've progressed on a skill, lower its priority --- then it will be even less likely to be chosen next time.
I hope you find Mastery useful in organizing your practice. If you have any suggestions on how to improve the app or find bugs, please add issues here: https://github.com/markpaskin/mastery/issues