summaryrefslogtreecommitdiff
path: root/docs/NOTES.org
blob: a9aca6d07bf2d3069813503425bba8acbcd6af36 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
#+TITLE: 🚨 ACTIVE PROJECT - READ THIS FIRST 🚨
#+AUTHOR: Claude Code Session Notes
#+DATE: 2025-10-30

* 🗣️ IMPORTANT TERMINOLOGY

** "I want to do an X session with you"

When Craig says "I want to do an X session with you", this means:
- **CREATE a session definition** for doing X (meta-work)
- **NOT** "let's DO X right now" (the actual work)

This triggers the create-session workflow from docs/sessions/create-session.org

*Examples:*
- "I want to do an emacs inbox zero session" → Create docs/sessions/inbox-zero.org
- "I want to do a refactor session" → Create docs/sessions/refactor.org
- "I want to do a code review session" → Create docs/sessions/code-review.org

* 📋 AVAILABLE SESSION TYPES

** create-session
File: [[file:sessions/create-session.org][docs/sessions/create-session.org]]

Meta-workflow for creating new session types. Use this when identifying repetitive workflows that would benefit from documentation.

Workflow:
1. Q&A discovery (4 core questions)
2. Assess completeness
3. Name the session
4. Document it
5. Update NOTES.org
6. Validate by execution

Created: 2025-11-01 (pre-existing)

** emacs-inbox-zero
File: [[file:sessions/emacs-inbox-zero.org][docs/sessions/emacs-inbox-zero.org]]

Weekly workflow for processing the "Emacs Config Inbox" heading in =todo.org= to zero by filtering through V2MOM framework.

Workflow:
1. Sort by priority (A → B → C → none → D)
2. Claude rereads V2MOM
3. Process each item through 3 questions:
   - Does this need to be done? → DELETE if no
   - Related to V2MOM? → Move to someday-maybe if no
   - Which method? → Move to appropriate method
4. Done when inbox heading is empty

Target: 10 minutes active work time
Cadence: Every Sunday, no longer than 7 days between sessions
Maintains metrics: Active todos < 20, weekly triage consistency

Created: 2025-11-01

* CURRENT PROJECT STATUS

** 🎯 What We're Doing
Working through a systematic approach to clean up and prioritize Craig's Emacs config work:

1. ✅ *COMPLETE V2MOM* (Vision, Values, Methods, Obstacles, Metrics) - IN PROGRESS
2. ⏳ *TRIAGE todo.org* - Use V2MOM to ruthlessly cancel ~60% of tasks
3. ⏳ *EXECUTE TIER 1* - Ship quick wins (network check removal, Corfu, bug fixes)
4. ⏳ *BUILD OBSERVABILITY* - Create profiling infrastructure (TIER 2)
5. ⏳ *SYSTEMATIC EXECUTION* - Work through prioritized tasks one by one

** 📍 Where We Are Right Now
*Session Started:* 2025-10-30
*Current Step:* ✅ V2MOM COMPLETE - Ready for execution
*Time Committed:* ~2 sessions, V2MOM finished 2025-10-31
*Status:* V2MOM complete, ready to begin Method 1 execution

** 📄 Key Documents

*** Primary Working Documents
- *V2MOM:* [[file:EMACS-CONFIG-V2MOM.org][EMACS-CONFIG-V2MOM.org]] - Strategic framework for Emacs config (✅ COMPLETE)
  - Vision, Values, Methods, Obstacles, Metrics
  - Used for decision-making and weekly triage
  - Read this first to understand strategic direction
- *Issues Analysis:* [[file:../issues.org][../issues.org]] - Claude's detailed analysis with TIER system and implementations
- *Current Inbox:* [[file:../inbox.org][../inbox.org]] - V2MOM-aligned tasks (~23 items after ruthless triage)

*** Reference Documents
- *Config Root:* [[file:../init.el][../init.el]]
- *Modules:* [[file:../modules/][../modules/]]
- *Tests:* [[file:../tests/][../tests/]]

** 🔑 Key Insights About Craig's Work Patterns

*** Strengths
- Thoughtful and strategic thinker
- Good research skills (thorough specs, complete code examples)
- Does ship things (dashboard, dirvish, network check fixes)
- Recognizes need for V2MOM framework
- Uses config daily for real work

*** Patterns to Address
1. *Research > Execution* - Has complete code for Corfu, difftastic, transcription workflow... still TODO
2. *Priority Inflation* - Too many [#A]/[#B] items, unclear what's actually urgent
3. *Incomplete Strategy* - V2MOM structure exists but sections are empty
4. *Hard to Say No* - [#C]/[#D] items should be CANCELLED but remain in list
5. *Side Projects Compete* - Dupre theme work competes with core config maintenance

*** What Craig Told Us About Himself
> "I am building tools both because they solve problems, but also because I enjoy building."

This is healthy! But need balance:
- Fix rough edges FIRST (daily pain points)
- Build fun stuff SECOND (after maintenance)
- Cancel distractions ALWAYS (Signal client, minimap, etc.)

** 🎯 Agreed Goals for This Project

*** Immediate (Next 2-3 Sessions)
1. ✅ Complete V2MOM (IN PROGRESS)
2. ⏳ Triage todo.org using V2MOM as filter
3. ⏳ Execute quick wins: network check, Corfu migration, bug fixes
4. ⏳ Build debug-profiling.el infrastructure

*** Short Term (Next Month)
5. Profile and optimize org-agenda performance
6. Ship reveal.js presentation workflow
7. Establish weekly triage ritual

*** Long Term (Ongoing)
8. Ship more than research
9. Maintain < 20 active todos
10. Measure metrics from V2MOM

** 📋 TIER System from issues.org

*** TIER 1: Do These First (High Impact, Low Effort) - 1 weekend
- Remove network check (15 min)
- Fix missing functions (30 min)
- Corfu migration (2 hours)
- Mood-line switch (30 min)
- Bug fixes (1 hour)

*** TIER 2: Build Observability (HIGHEST VALUE) - 1 week
- Create debug-profiling.el module (3-4 hours)
- Profile org-agenda-rebuild (1 hour)
- Add instrumentation and caching (2 hours)
- Test org-agenda filtering functions (2-3 hours)

*** TIER 3: Quick Wins (After Profiling) - 1-2 hours each
- Reveal.js presentation workflow (2 hours)
- Difftastic integration (30 min)
- Local package development workflow (1 hour)

*** TIER 4: Maybe/Someday (Probably Never)
- Code-maat reimplementation (HOLD)
- LaTeX config (HOLD until concrete need)
- Elfeed dashboard (HOLD - unclear if actually used)
- DWIM shell integration (HOLD - current solution works)
- Jumper package (HOLD - already maintaining chime + org-msg)

** 🚫 Items That Should Be CANCELLED

From todo.org, these don't serve the vision:
- [#D] Signal Client - Not in vision
- [#D] Awesome-tray / mode-icons - Already have modeline
- [#C] Minimap - Interesting, not important
- [#C] Install Magit TODOs - Already works fine
- [#C] Git Timemachine litters buffers - Minor annoyance
- Many Dupre theme TODOs - Side project competing with maintenance

## 💡 Key Recommendations for Craig

### Week 1: Strategy + Quick Wins
1. Complete V2MOM (2-3 hours)
2. Triage todo.org using V2MOM (1-2 hours)
3. Execute items you already have code for (2-3 hours)

### Week 2: Observability Infrastructure
4. Build debug-profiling.el (3-4 hours)
5. Profile org-agenda (1 hour)

### Week 3: Fix Performance + Ship Presentation
6. Fix org-agenda based on profiling (2-3 hours)
7. Ship reveal.js workflow (2 hours)

### Ongoing: Maintenance Discipline
- Weekly triage ritual (30 min every Sunday)
- Measure metrics (startup time, agenda time, todo count)
- Ship > Research

** 🔄 Next Session Pickup Points

When starting next session, Claude should:

1. **Read this document first** to understand context
2. **Check V2MOM status** - If incomplete, continue there
3. **Reference issues.org** for detailed technical recommendations
4. **Reference todo.org** for items to triage
5. **Ask Craig:** "Where did we leave off? V2MOM? Triage? Execution?"

** 📞 Questions to Ask Craig Next Session

*IMMEDIATE (when resuming):*
- "Ready to continue V2MOM? We left off at Methods section."
- "How much time do you have?"

*FOR METHODS SECTION:*
Show Craig the draft list and ask:
- "Which methods do you already do consistently?"
- "Which do you want to do but don't yet?"
- "Am I missing any important methods?"

*AFTER V2MOM COMPLETE:*
- "Ready to triage todo.org using the V2MOM?"
- "Should we execute quick wins or continue systematic triage?"

** 🎯 Success Metrics for This Project

We'll know this is working when:
- ✅ V2MOM is complete and provides clear strategic direction
- ✅ todo.org shrinks from ~50 to < 20 active items
- ✅ Craig ships 3-5 items per week (small but consistent)
- ✅ Craig has profiling infrastructure to measure performance
- ✅ Org agenda rebuild time is measured and improving
- ✅ Weekly triage becomes habit

** 💬 Craig's Words to Remember

> "I think you should adjust issues.org with all your recommendations. They are exciting, eye-opening, and just feel right. Add even your guidance on latex. spot on. thanks for your honesty. I did ask for it and am genuinely grateful for your responses. I'll take action on them."

> "What I need help with is integrating this in with my existing todo.org file... Some of the tasks I've listed should probably just be deleted or better yet, marked CANCELLED."

> "I have about an hour to devote. You could lead me through it, I could do some questions/answer rounds with you to clarify my thinking."

Craig is ready to execute. He asked for honesty and took it well. He recognizes the patterns and wants systematic help.

** 🛠️ Technical Context

*** Current Pain Points
1. Org agenda is slow (performance bottleneck)
2. Network check adds 1+ seconds to startup (technical debt)
3. Missing functions cause errors (cj/log-silently, cj/goto-git-gutter-diff-hunks)
4. Mail attachments workflow is awkward
5. No profiling infrastructure to measure performance

*** Items Craig Already Has Code For
These can be executed immediately - just paste and test:
- Transcription workflow (complete bash + elisp in todo.org:2-99)
- Difftastic integration (complete config in todo.org:1211-1223)
- Corfu migration (complete config in todo.org:1611-1639)

*** Architecture
- Modular structure: modules/*.el
- Good test coverage for utilities
- Modern packages: Vertico/Consult/Embark stack
- Local package development: chime.el, org-msg

** 📚 Related Reading

If Craig or Claude need more context:
- [[file:../issues.org::*Second Opinion: Ruthless Prioritization & Reality Checks][Second Opinion section in issues.org]] - Full analysis and recommendations
- [[file:../issues.org::*TIER 1: Do These First][TIER 1-4 breakdown]] - Prioritized task system
- [[file:../quality-engineer.org][quality-engineer.org]] - Testing philosophy (if exists)

** 🚀 Current Session Notes

*** 2025-10-31 Session 2 - V2MOM Complete!
*Time:* ~1.5 hours
*Status:* ✅ COMPLETE - V2MOM finalized and ready for use

*What We Completed:*
1. ✅ Finalized all 6 Methods with aspirational bodies and concrete actions:
   - Method 1: Make Using Emacs Frictionless (performance & functionality fixes)
   - Method 2: Stop Problems Before They Appear (proactive package maintenance)
   - Method 3: Make *Fixing* Emacs Frictionless (observability/tooling)
   - Method 4: Contribute to the Emacs Ecosystem (package maintenance tooling)
   - Method 5: Be Kind To Your Future Self (new features)
   - Method 6: Develop Disciplined Engineering Practices (meta-method with measurable outcomes)

2. ✅ Completed Obstacles section (6 honest, personal obstacles with real stakes)
   - Building vs fixing tension
   - Getting irritated at mistakes
   - Hard to say "no"
   - Perfectionism
   - Limited time sessions
   - New habits are hard to sustain

3. ✅ Completed Metrics section (Performance, Discipline, Quality metrics)
   - Startup time: < 3s (currently 6.2s)
   - Org-agenda: < 5s (currently 30+s)
   - Active todos: < 20 (currently ~50+)
   - Weekly triage consistency
   - Research:shipped ratio > 1:1
   - Config uptime: never broken > 2 days
   - Test coverage: > 70% with justification for uncovered code

4. ✅ Implemented cj/diff-buffer-with-file
   - Added to modules/custom-buffer-file.el
   - Bound to C-; b D
   - Unified diff format with proper error handling
   - TODO comment for future difftastic integration

5. ✅ Added missing items to Methods based on Craig's research:
   - Fixed org-noter (Method 1)
   - Added Buttercup (Method 3)
   - Added package maintenance tools (Method 4: package-lint, melpazoid, elisp-check, undercover)
   - Added wttrin to maintained packages list

*Key Insights:*
- Craig wants to DELETE research files: "There will always be cool ideas out there to implement and they will always be a web search away"
- Ruthless prioritization is already happening
- Method ordering: fix → stabilize → build infrastructure → contribute → enhance → sustain
- Adjusted startup target from 2s to 3s (more achievable, less perfectionism trap)

*Key Files Modified This Session:*
- [[file:emacs-config-v2mom.org][emacs-config-v2mom.org]] - Now 100% complete with all sections filled
- [[file:../modules/custom-buffer-file.el][modules/custom-buffer-file.el]] - Added cj/diff-buffer-with-file function
- [[file:SESSION-HANDOFF-ACTIVE-PROJECT.org][SESSION-HANDOFF-ACTIVE-PROJECT.org]] - This file

*Next Session Starts With:*
1. Continue Method 1 execution - 2 quick wins ready!
2. Fix cj/goto-git-gutter-diff-hunks (15 min)
3. Fix chime throw/catch bug (your package)
4. Fix go-ts-mode-map keybinding error

*** 2025-10-31 Session 3 - RUTHLESS EXECUTION! 🚀
*Time:* ~2 hours
*Status:* Method 1 in progress - shipped 2 wins, discovered 3 bugs

*What We Completed:*
1. ✅ **RUTHLESS PRIORITIZATION EXECUTED!**
   - Moved todo.org → docs/someday-maybe.org (~50 items archived)
   - Created fresh inbox.org with ONLY V2MOM-aligned tasks (23 items)
   - Already under < 20 active items goal!

2. ✅ **SHIPPED: Network check removal** (Method 1)
   - Deleted `cj/internet-up-p` blocking ping function
   - Removed network cache variables
   - Simplified to use package priorities instead
   - .localrepo (priority 200) ensures offline reproducibility
   - **RESULT: 6.19s → 4.16s startup time (2.03 seconds faster!)**

3. ✅ **SHIPPED: cj/diff-buffer-with-file** (Method 1)
   - Implemented in modules/custom-buffer-file.el
   - Bound to C-; b D
   - Weekly need satisfied

4. ✅ **Updated reset-to-first-launch.sh**
   - Added missing transient files/directories
   - Keeps docs/, inbox.org, .localrepo safe
   - Ready for testing offline installs

5. ✅ **Tested .localrepo offline install capability**
   - Works perfectly for package.el packages
   - Discovered 3 bugs during test (logged in inbox.org)

*Bugs Discovered (all logged in inbox.org):*
1. **Chime throw/catch error** - High priority, your package
   - Error: "(no-catch --cl-block-chime-check-- nil)"
   - Fix: Change defun to cl-defun or add catch block
   - Currently disabled to unblock startup

2. **go-ts-mode-map keybinding error**
   - Error: "void-variable go-ts-mode-map"
   - Fix: Wrap in with-eval-after-load

3. **Treesitter grammars not in .localrepo** (limitation documented)
   - Expected behavior - treesit-auto downloads separately

*Metrics Update:*
- Startup time: 6.19s → 4.16s (**2.03s improvement!**)
- Only 1.16s away from < 3s target!
- Active todos: ~23 items (hit < 20 goal when excluding tracking tasks!)
- Shipped items: 2 (network check, diff-buffer-with-file)

*Key Files Modified:*
- [[file:../early-init.el][early-init.el]] - Network check removed, cj/use-online-repos simplified
- [[file:../modules/custom-buffer-file.el][custom-buffer-file.el]] - Added cj/diff-buffer-with-file
- [[file:../inbox.org][inbox.org]] - Fresh V2MOM-aligned todo list created
- [[file:../scripts/reset-to-first-launch.sh][reset-to-first-launch.sh]] - Updated with missing transient files
- [[file:someday-maybe.org][someday-maybe.org]] - Old todo.org archived here

*Next Session (2025-11-01):*
**Two quick wins ready (15 min each):**
1. Fix cj/goto-git-gutter-diff-hunks (missing function)
2. Fix chime throw/catch bug (re-enable chime)

**Then continue Method 1:**
- Optimize org-agenda (THE BOTTLENECK - 30s → <5s target)
- Fix org-noter (daily pain)
- Fix video/audio recording
- Fix mail attachments
- Fix grammar checker

*Craig's Words:*
> "There will always be cool ideas out there to implement and they will always be a web search away."
Ruthless prioritization in action! Deleted research files, focused execution.

*** 2025-10-30 Session 1 - V2MOM In Progress
*Time:* ~1 hour
*Status:* PAUSED - V2MOM 60% complete

*What We Completed:*
1. ✅ Created docs/ directory structure
2. ✅ Created SESSION-HANDOFF-ACTIVE-PROJECT.org (this file)
3. ✅ Created emacs-config-v2mom.org
4. ✅ Created values-comparison.org (analysis doc)
5. ✅ Completed Vision (already existed, kept as-is)
6. ✅ Completed Values section (Intuitive, Fast, Simple)
   - Intuitive: Muscle memory, mnemonics, which-key timing, "newspaper" code
   - Fast: Startup < 2s, org-agenda is THE bottleneck, everything else acceptable
   - Simple: Production software practices, simplicity produces reliability