| # | Date | Decision | Alternatives considered | Reason chosen |
|---|---|---|---|---|
| 1 | 2026-03-25 | Keep Tkinter for the UI | Streamlit, PySide6, web rewrite | The original repo was a desktop teaching example; Tkinter preserves that spirit with zero extra runtime complexity. |
| 2 | 2026-03-25 | Split logic into loaders, analytics, renderers, and UI modules | Keep monolithic scripts | This removes global state, makes testing practical, and supports future feature work without UI regressions. |
| 3 | 2026-03-25 | Use one tabbed app instead of many buttons opening ad-hoc flows | Separate windows per dataset | A single shell is cleaner for UX and easier to maintain. |
| 4 | 2026-03-25 | Keep datasets in data/ outside the package |
Embed files into package data | This keeps the repo transparent and friendly for learners who want to inspect raw files. |
| 5 | 2026-03-25 | Enforce ruff + pytest + coverage in CI | Manual-only testing | The formula emphasizes repeatable quality gates and regression protection. |