diff options
Diffstat (limited to 'NOTES.org')
| -rw-r--r-- | NOTES.org | 184 |
1 files changed, 0 insertions, 184 deletions
diff --git a/NOTES.org b/NOTES.org deleted file mode 100644 index 0e7b92a2..00000000 --- a/NOTES.org +++ /dev/null @@ -1,184 +0,0 @@ -#+TITLE: Project Notes for Future Sessions -#+AUTHOR: Claude (AI Assistant) -#+DATE: 2025-11-01 - -* Session Startup Protocol - -When starting a new session with Craig: -1. Craig will point me to this NOTES.org file -2. Read this file completely to understand project context -3. **Scan =docs/sessions/= directory** for available session type filenames - - Do NOT read full contents (they're long) - - Just note the filenames to understand vocabulary - - Example: =refactor.org= means "refactor session workflow" -4. When Craig says "let's do a [session-type] session": - - **Check for exact match** in scanned filenames - - **If exact match found:** Read =docs/sessions/[session-type].org= and guide Craig through that workflow - - **If no exact match but similar word exists:** Ask for clarification - - Example: User says "refactoring" but we have "refactor.org" - - Ask: "Did you mean the 'refactor' session, or would you like to create a new 'refactoring' session?" - - **If no match at all:** Offer to create it - - Say: "I don't see a session type called '[session-type]' yet. Would you like to create it together using the create-session workflow?" - - **If yes to create:** Do a create-session session to define the new type, then use it immediately (validation) - -* Available Session Types - -** refactor -File: =docs/sessions/refactor.org= - -Workflow for comprehensive test-driven quality engineering: -1. Analyze test coverage for target file -2. Categorize functions by testability (easy/medium/hard) -3. Refactor for testability if needed (pure helpers + interactive wrappers) -4. Write ERT tests systematically (Normal/Boundary/Error categories) -5. Run tests and analyze failures -6. Decide: test bug or production bug? -7. Fix and verify -8. Repeat for all testable functions - -Recent completion: =modules/music-config.el= - 103 tests, 3 bugs fixed - -** create-session -File: =docs/sessions/create-session.org= - -Meta-workflow for creating new session types: -1. Q&A discovery (Problem, Exit criteria, Approach, Principles) -2. Assess completeness and agreement -3. Name the session -4. Document using standard structure -5. Update NOTES.org -6. Validate by immediate execution - -Defines how we formalize repetitive workflows into reusable, documented sessions. - -Created: 2025-11-01 - -* Current Project State - -** Completed Work - -*** music-config.el Testing Session (2025-11-01) -- **Module:** =modules/music-config.el= (EMMS music player configuration) -- **Test Coverage:** 9 functions, 103 tests total -- **Bugs Fixed:** 3 (nil handling x2, URL regex escaping bug) -- **Session Document:** =docs/sessions/refactor.org= - -Functions tested: -1. =cj/music--append-track-to-m3u-file= - 11 tests -2. =cj/music--valid-file-p= - 15 tests -3. =cj/music--valid-directory-p= - 13 tests -4. =cj/music--safe-filename= - 13 tests -5. =cj/music--m3u-file-tracks= - 15 tests (caught URL regex bug!) -6. =cj/music--get-m3u-files= - 7 tests -7. =cj/music--get-m3u-basenames= - 6 tests -8. =cj/music--collect-entries-recursive= - 12 tests -9. =cj/music--completion-table= - 12 tests - -Functions skipped (EMMS buffer-dependent, hard to test): -- =cj/music--ensure-playlist-buffer= -- =cj/music--playlist-tracks= -- =cj/music--playlist-modified-p= -- =cj/music--assert-valid-playlist-file= - -Test files location: =tests/test-music-config--*.el= - -Key bug found: URL regex escaping in =cj/music--m3u-file-tracks= caused HTTP/HTTPS/MMS URLs to be treated as relative paths, corrupting playlist data. - -** Work In Progress - -(None currently - ready for next task) - -** Backlog / Future Work - -(To be added as Craig identifies next priorities) - -* Project Structure Notes - -** Test Organization -- One test file per function: =test-<module>-<function>.el= -- Rationale: Fast discovery when tests fail -- Test utilities: =tests/testutil-general.el= - -** Test Categories -Every test file follows this structure: -- Normal Cases: Expected behavior under typical conditions -- Boundary Cases: Edge conditions, limits, unusual inputs -- Error Cases: Failure scenarios, invalid inputs - -** Quality Engineering Reference -See =ai-prompts/quality-engineer.org= for comprehensive guidelines. -Note: This file evolves as we learn best practices. - -* Session History - -** 2025-11-01: music-config.el Refactor Session -- Added comprehensive test coverage to music configuration -- Found and fixed 3 bugs -- Created refactor session workflow document -- Established session type pattern for future work - -** 2025-11-01: Create-Session Meta-Workflow -- Designed the process for creating new session types -- Used recursive application: created create-session using itself -- Defined four-question Q&A framework -- Established seven core principles for session creation -- Documented in =docs/sessions/create-session.org= - -** 2025-11-03: Method 2 Quick Wins Session -- Completed 6 tasks across Methods 1, 2, and 3 -- Focus: Low-risk improvements aligned with V2MOM Methods - -*** Key Technical Learnings - -**** Difftastic vs Ediff - Complementary Tools -- **Difftastic**: Read-only structural diffs for git (language-aware) -- **Ediff**: Interactive side-by-side editing for buffer comparison -- **Discovery**: User had ediff at C-c D but C-; b D used basic diff -- **Solution**: Hybrid approach - ediff for buffers, difftastic for git -- **Lesson**: Don't assume one replaces the other; they serve different purposes - -**** Org-mode Visual Emphasis -- =org-fontify-emphasized-text= controls bold/italic rendering -- =org-hide-emphasis-markers= hides markup characters (* / _) -- =org-appear= shows markers only when cursor is on emphasized text -- **Pattern**: Hide markers globally, reveal contextually with org-appear - -*** User Workflow Preferences - -**** Task Selection Strategy -- User prefers quick wins when energy is lower -- Appreciates effort estimates BEFORE committing to work -- Will defer mission-critical changes (e.g., Company → Corfu) -- Quote: "now I'm hungry for more" after successful quick wins - -**** Communication Patterns -- User sometimes needs clarification iterations ("whoops. I wasn't clear again") -- Always confirm understanding before major changes -- User values knowing keybindings for new features -- Appreciates when tasks are already complete (just need verification) - -**** V2MOM Task Management -- Tasks organized by 6 Methods with progress tracking (e.g., 7/13, 3/5) -- User maintains detailed completion notes in todo.org -- Each task includes context, rationale, and completion details -- Weekly triage scheduled to keep active todos < 20 - -*** Development Patterns - -**** Git Workflow -- Always push to BOTH remotes: origin (cjennings.net) AND github -- Commit messages include Claude Code attribution -- User reviews git status and diffs before committing - -**** Configuration Management -- User runs Emacs 30.2 with use-package -- Prefers editing existing files over creating new ones -- Values code reduction (mood-line: -40 lines, ediff upgrade: -12 lines) - -*** Tasks Completed -1. Switched doom-modeline → mood-line (Method 2) -2. Removed deprecated tree-sitter package (Method 2) -3. Fixed cj/goto-git-gutter-diff-hunks void-function (Method 1) -4. Cleaned up go-ts-mode-map declarations (Method 1) -5. Upgraded buffer diff to ediff + added difftastic for git (Method 3) -6. Added org-appear and enabled emphasis rendering (Method 2) |
