Part of the 0.3.0 adoption roadmap — First-run UX.
Why (adoption impact)
Even once a beginner is in the TUI, the core loop (edit the file in your editor → save → checks rerun → remove # I AM NOT DONE to advance) is not obvious. A first-launch welcome removes the "what do I do now?" drop-off.
Current state
- The TUI starts on the first pending exercise (
pylings/screens/track.py, pylings/app.py). There is no first-run explainer.
- Keybindings exist (F1 hint, F3 list, etc.) but are only discoverable via the README/Interface table.
Scope / acceptance criteria
Where to look
pylings/app.py, pylings/screens/ (track.py, topic_picker.py, docs.py for modal patterns), pylings/core/state.py (persisting the flag), pylings/pylings.tcss.
Out of scope
Verify
- First launch in a fresh workspace shows the welcome; second launch does not; reopen key works.
Difficulty
enhancement · help wanted — Textual screen work; ~1 day. Good for someone comfortable with Textual.
Part of the 0.3.0 adoption roadmap — First-run UX.
Why (adoption impact)
Even once a beginner is in the TUI, the core loop (edit the file in your editor → save → checks rerun → remove
# I AM NOT DONEto advance) is not obvious. A first-launch welcome removes the "what do I do now?" drop-off.Current state
pylings/screens/track.py,pylings/app.py). There is no first-run explainer.Scope / acceptance criteria
.pylings"seen_welcome" flag), show a dismissible welcome screen/modal that explains: edit the file in your own editor, save, watch the check rerun, remove the# I AM NOT DONEmarker to advance, and the key shortcuts..pylings/state.jsonor similar).?/help key) is nice-to-have.pylings/pylings.tcss).Where to look
pylings/app.py,pylings/screens/(track.py, topic_picker.py, docs.py for modal patterns),pylings/core/state.py(persisting the flag),pylings/pylings.tcss.Out of scope
Verify
Difficulty
enhancement·help wanted— Textual screen work; ~1 day. Good for someone comfortable with Textual.