[loop-generated] [refactor] Split timmy/quest_system.py — 581 lines, goal management system #1392

Closed
opened 2026-03-24 11:35:54 +00:00 by Timmy · 1 comment
Owner

Current State:

  • src/timmy/quest_system.py is 581 lines managing goal/quest lifecycle
  • Contains quest creation, tracking, completion, persistence, and UI
  • Mixed concerns: business logic, persistence, presentation

Proposed Split:

src/timmy/quest_system/
├── __init__.py         # Main quest manager interface
├── models.py           # Quest data models and validation
├── lifecycle.py        # Quest creation, progression, completion
├── persistence.py      # Quest storage and retrieval
├── tracking.py         # Progress tracking and metrics
└── ui.py              # Quest display and user interaction

Benefits:

  • Better testability of quest logic
  • Cleaner data models
  • Easier to add quest types
  • Reduced memory usage

Acceptance Criteria:

  • All quest functionality preserved
  • Quest data integrity maintained
  • Tests pass
  • Each module under 150 lines
  • No data migration required
**Current State:** - `src/timmy/quest_system.py` is 581 lines managing goal/quest lifecycle - Contains quest creation, tracking, completion, persistence, and UI - Mixed concerns: business logic, persistence, presentation **Proposed Split:** ``` src/timmy/quest_system/ ├── __init__.py # Main quest manager interface ├── models.py # Quest data models and validation ├── lifecycle.py # Quest creation, progression, completion ├── persistence.py # Quest storage and retrieval ├── tracking.py # Progress tracking and metrics └── ui.py # Quest display and user interaction ``` **Benefits:** - Better testability of quest logic - Cleaner data models - Easier to add quest types - Reduced memory usage **Acceptance Criteria:** - [ ] All quest functionality preserved - [ ] Quest data integrity maintained - [ ] Tests pass - [ ] Each module under 150 lines - [ ] No data migration required
Author
Owner

Implementation Instructions for Kimi

Files to modify:

  • src/timmy/quest_system.py (581 lines) - split into package

Target structure:

src/timmy/quest_system/
├── __init__.py         # Import QuestManager + main interfaces
├── models.py           # Quest, QuestStep, QuestStatus data classes
├── lifecycle.py        # Quest creation, progression, completion logic
├── persistence.py      # Quest storage and retrieval
├── tracking.py         # Progress tracking and metrics
└── ui.py              # Quest display formatting

Test Command: tox -e unit -k quest

Verification:

  • All quest functionality preserved
  • Import from timmy.quest_system import QuestManager works
  • Each module under 150 lines
## Implementation Instructions for Kimi **Files to modify:** - `src/timmy/quest_system.py` (581 lines) - split into package **Target structure:** ``` src/timmy/quest_system/ ├── __init__.py # Import QuestManager + main interfaces ├── models.py # Quest, QuestStep, QuestStatus data classes ├── lifecycle.py # Quest creation, progression, completion logic ├── persistence.py # Quest storage and retrieval ├── tracking.py # Progress tracking and metrics └── ui.py # Quest display formatting ``` **Test Command:** `tox -e unit -k quest` **Verification:** - All quest functionality preserved - Import `from timmy.quest_system import QuestManager` works - Each module under 150 lines
kimi was assigned by Timmy 2026-03-24 11:36:37 +00:00
kimi was unassigned by Timmy 2026-03-24 19:33:27 +00:00
Timmy closed this issue 2026-03-24 21:54:17 +00:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Rockachopa/Timmy-time-dashboard#1392