Extension ideas backlog¶
A prioritized backlog of extension ideas for the Plugin SDK. Each idea names the
capabilities it needs so feasibility can be checked against
the capability catalog. Nothing here is a
contract; ideas graduate into fixtures or packages by following
Developing a .tuesh extension.
Status markers: picked up (work started or shipped), otherwise open.
Shipped / in progress¶
- Infinite canvas — picked up (
public/plugin-fixtures/infinite-canvas). A single-surface, workspace-scope whiteboard: pan/zoom, freehand strokes, shapes, arrows, sticky notes, undo/redo. Native runtime;ui.page,commands.register,storage.namespacedonly. Persistence is one debounced write per gesture with a compact scene graph (quantized integer coordinates) to stay inside the 2 MiB quota and the 60-calls-per-10 s window. - Streak garden — daily-goal grid that grows a plant per consecutive study day. Pure
storage.namespaced+ui.page; high delight per line of code. - Soundscapes page — rain/café/noise loops generated or looped inside the guest document.
Zero capabilities beyond
ui.page.
Study and review¶
- Mock exam builder — harvest question/quiz blocks across topics via
course.read, assemble a timed randomized exam on its own course page, grade at the end. Fills a real gap: exam training exists per block but no cross-topic assembly. - Read-aloud — narrate theory blocks with play/pause/speed controls in a sidebar panel;
course.read+speechSynthesis. - Leitner box trainer —
review.providewith its own box scheduling stored locally. - Vocabulary drill — NL/EN term pairs extracted from course content fed back as review items.
- Mistake journal — log wrong answers from quiz/question interactions; pre-fill entries from
events.subscribe. - Spaced-repetition scheduler variants — SM-2/Leitner over stored card state feeding the existing review queue.
- Formula sheet builder — pin/star formula-reference blocks into a personal cheat sheet;
export via
transfer.provide. - Exam countdown dashboard — days-remaining cards on a workspace page plus sidebar panel.
Workspace and navigation¶
- Layout presets — commands that call
workspace.splitto put a topic view beside notes; save/recall arrangements in storage. - Quick switcher — command-palette-first navigation to allowlisted core views via
workspace.openView({ href }). - Random practice launcher — "Surprise me" command opening an unvisited topic in a new pane.
- Focus mode — collapse the workspace to one reading surface with
workspace.closePane/focusPane, restore afterwards.
Change awareness¶
- Revision watchdog — subscribe to
course.revisionPublished; list what changed since you last studied each course, deep-linking into updated topics. - Block annotation layer — private sticky notes pinned to block ids, rendered as a
course-inspectorpanel. - Revision diff viewer — pick two published revisions, open them in
workspace.splitpanes, walk changed blocks side by side.
Data and export¶
- Anki/CSV deck importer —
transfer.importconverting foreign formats into flashcards-lite-compatible JSON. - Per-plugin data backup — one-click dump/restore of a storage namespace via
transfer.providewith schema version checks. - Handout printer — assemble selected blocks into print-optimized HTML through transfer export.
- Grade tracker — record exam-trainer/practice scores over time; trend charts per topic.
- Calendar bridge — ICS import/export of deadlines and exam dates; countdown panel next to task-board.
- Sync bridge — replicate the namespaced store between devices against a declared endpoint
via
network.fetch; the only realistic multi-device path until a host sync capability exists. - Share packs — export any single deck/rubric/note set as
.jsonothers import through their own copy of the same plugin.
Authoring quality (owner-facing)¶
- Course linter — editor actions scanning for missing alt text, empty sections, inconsistent
terminology; proposes fixes through
course.writeone confirmation at a time. - Link checker — walk resource/link blocks, HEAD-check URLs via
network.fetch, report dead links in a panel. - Terminology guard — flag synonyms/inconsistent casing of defined terms while editing.
- Cloze generator — editor action deriving a cloze block from a selected theory block.
- Glossary extractor — scan defined terms into an A–Z course tab with
search.provide.
Accessibility¶
- Bionic/ruler reading mode — native-runtime typographic transforms beyond what tokens allow.
- Dictation notes — Web Speech API voice capture into an annotation store.
Ambience¶
- Scratchpad whiteboard — per-topic durable canvas (the host drawing overlay is deliberately ephemeral). Largely covered by the infinite canvas fixture; a course-scoped variant remains open.
Stretch (needs host work)¶
- AI tutor panel — blocked on
ai.completebeing reserved; prototype as native or wait for the host provider. - Cross-device sync as a platform capability — would supersede the sync bridge's bring-your-own-endpoint approach.