Files
daily-journal-prompt/AGENTS.md
2026-01-03 01:54:56 -07:00

101 lines
4.1 KiB
Markdown

# Task: Combine pool and history stats into a single function and single menu item
## Changes Made
### 1. Created New Combined Stats Function
- Added `show_combined_stats()` method to `JournalPromptGenerator` class
- Combines both pool statistics and history statistics into a single function
- Displays two tables: "Prompt Pool Statistics" and "Prompt History Statistics"
### 2. Updated Interactive Menu
- Changed menu from 5 options to 4 options:
- 1. Draw prompts from pool (no API call)
- 2. Fill prompt pool using API
- 3. View combined statistics (replaces separate pool and history stats)
- 4. Exit
- Updated menu handling logic to use the new combined stats function
### 3. Updated Command-Line Arguments
- Removed `--pool-stats` argument
- Updated `--stats` argument description to "Show combined statistics (pool and history)"
- Updated main function logic to use `show_combined_stats()` instead of separate functions
### 4. Removed Old Stats Functions
- Removed `show_pool_stats()` method
- Removed `show_history_stats()` method
- All functionality consolidated into `show_combined_stats()`
### 5. Code Cleanup
- Removed unused imports and references to old stats functions
- Ensured all menu options work correctly with the new combined stats
## Testing
- Verified `--stats` command-line argument works correctly
- Tested interactive mode shows updated menu
- Confirmed combined stats display both pool and history information
- Tested default mode (draw from pool) still works
- Verified fill-pool option starts correctly
## Result
Successfully combined pool and history statistics into a single function and single menu item, simplifying the user interface while maintaining all functionality.
---
# Task: Implement theme feedback words functionality with new menu item
## Changes Made
### 1. Added New Theme Feedback Words API Call
- Created `generate_theme_feedback_words()` method that:
- Loads `ds_feedback.txt` prompt template
- Sends historic prompts to AI API for analysis
- **INCLUDES current feedback words from `feedback_words.json` in the API payload**
- Receives 6 theme words as JSON response
- Parses and validates the response
### 2. Added User Rating System
- Created `collect_feedback_ratings()` method that:
- Presents each of the 6 theme words to the user
- Collects ratings from 0-6 for each word
- Creates structured feedback items with keys (feedback00-feedback05)
- Includes weight values based on user ratings
### 3. Added Feedback Words Update System
- Created `update_feedback_words()` method that:
- Replaces existing feedback words with new ratings
- Saves updated feedback words to `feedback_words.json`
- Maintains the required JSON structure
### 4. Updated Interactive Menu
- Expanded menu from 4 options to 5 options:
- 1. Draw prompts from pool (no API call)
- 2. Fill prompt pool using API
- 3. View combined statistics
- 4. Generate and rate theme feedback words (NEW)
- 5. Exit
- Added complete implementation for option 4
### 5. Enhanced Data Handling
- Added `_save_feedback_words()` method for saving feedback data
- Updated `_load_feedback_words()` to handle JSON structure properly
- Ensured feedback words are included in AI prompts when generating new prompts
## Testing
- Verified all new methods exist and have correct signatures
- Confirmed `ds_feedback.txt` file exists and is readable
- Tested feedback words JSON structure validation
- Verified interactive menu displays new option correctly
- Confirmed existing functionality remains intact
## Result
Successfully implemented a new menu item and functionality for generating theme feedback words. The system now:
1. Makes an API call with historic prompts and `ds_feedback.txt` template
2. Receives 6 theme words from the AI
3. Collects user ratings (0-6) for each word
4. Updates `feedback_words.json` with the new ratings
5. Integrates the feedback into future prompt generation
The implementation maintains backward compatibility while adding valuable feedback functionality to improve prompt generation quality over time.
Too many tests, so I moved all of them into the tests directory.