#+TITLE: Inbox - V2MOM Aligned Tasks #+AUTHOR: Craig Jennings #+DATE: 2025-10-31 #+FILETAGS: :v2mom:active: * Instructions This inbox contains ONLY tasks that serve the V2MOM vision. Before adding any task here, ask: 1. Does it serve the Vision? 2. Does it align with the Values? 3. Is it addressed in the Methods? 4. Does it overcome an Obstacle? 5. Does it improve a Metric? If the answer is "no" to all five → DON'T ADD IT. V2MOM is located at: [[file:docs/emacs-config-v2mom.org][emacs-config-v2mom.org]] Research/ideas that don't serve vision: [[file:docs/someday-maybe.org][someday-maybe.org]] * Method 1: Make Using Emacs Frictionless ** DONE [#A] Remove network check from startup (saves 1+ seconds) CLOSED: [2025-10-31 Fri] ✅ Deleted blocking ping check. Startup improved from 6.2s to 5.4s. Now uses package priorities: .localrepo (200) > online repos (25). ** TODO [#A] Fix cj/goto-git-gutter-diff-hunks (missing function causing errors) Quick win - 15 minutes. Just needs to be defined. ** DONE [#A] Fix chime-check throw with no catch block CLOSED: [2025-11-01 Fri] Error: "(no-catch --cl-block-chime-check-- nil)" Chime was throwing to a catch block that doesn't exist. Location: chime package - chime-check() function at line 1540 Fix: Changed defun to cl-defun to provide implicit catch block for cl-return-from. Fixed in ~/code/chime.el/chime.el:1540 Added regression test: test-integration-startup-early-return-on-validation-failure Created Makefile with test targets (unit, integration, all, by-file, by-name) Updated README.org with Development/Testing section All integration tests pass (5/5) ✅ ** DONE [#A] Implement cj/diff-buffer-with-file (compare buffer with saved version) CLOSED: [2025-10-31 Fri] Bound to C-; b D. Weekly need satisfied. ** TODO [#B] Fix go-ts-mode-map keybinding error (void-variable) Error: "Debugger entered--Lisp error: (void-variable go-ts-mode-map)" Location: modules/prog-go.el - trying to bind keys before mode loads. Fix: Wrap keybinding in with-eval-after-load or check if variable is bound. ** TODO [#B] Fix org-noter (reading/annotation workflow currently "so painful") High priority - daily pain point. ** TODO [#B] Fix video/audio recording module (use constantly, just broke) Main issue: No way to select audio devices when multiple are available. Plugging in external audio interface broke recording - only captured input, not output. Use constantly, needs to work reliably. *** TODO [#A] Add diagnostic command cj/recording-list-devices Show ALL available PulseAudio/PipeWire sources. Helps debug why auto-detection fails. User can copy device names if needed. *** TODO [#A] Add device selection UI Prompt user to select mic and system audio sources. Cache selected devices for future recordings. Allow switching devices without restarting Emacs. *** TODO [#B] Improve error messages Show which devices were found/not found. Include actual pactl output in error messages. Suggest manual device configuration. *** TODO [#B] Make device detection more flexible Try multiple regex patterns for different audio setups. Fallback to prompting user to select from list. Support both PulseAudio and PipeWire. *** TODO [#B] Validate recording startup Check process status after starting. Parse ffmpeg output for errors. Show actual ffmpeg command for debugging. *** TODO [#C] Add device testing command cj/recording-test-devices Records 3 seconds of audio. Plays it back. Confirms devices work before real recording. *** TODO [#C] Add recording status display (optional via flag, default off) Show "Recording: 00:05:23" in modeline or echo area. Timer showing duration. File size updating. *** TODO [#C] Add recording presets Screencast (video + audio, high quality). Podcast (audio only, voice optimized). Meeting (balanced, lower filesize). Quick note (audio, low quality, small file). *** TODO [#C] Build recording history buffer *Recordings* buffer showing history. Duration, file size, location. Quick actions: play, delete, rename, move. *** TODO [#C] Add post-processing hooks Auto-compress after recording. Move to cloud sync directory. Generate transcript (once transcription workflow exists). ** TODO [#B] Fix mail attachment workflow (currently awkward) Daily workflow improvement. ** TODO [#B] Optimize org-agenda performance using built-in profiler THE BOTTLENECK. Currently 30+ seconds, target < 5 seconds. Use M-x profiler-start before Method 3 debug-profiling.el is built. ** TODO [#B] Optimize org-capture target building performance 15-20 seconds every time capturing a task (12+ times/day). Major daily bottleneck - minutes lost waiting, plus context switching cost. ** TODO [#C] Fix grammar checker performance (currently disabled) Currently disabled because it breaks flow when writing. ** TODO [#D] Fix EMMS keybinding inconsistency with other buffers EMMS keybindings conflict with standard buffer keybindings, causing mistypes. Results in accidental destructive actions (clearing buffers), requires undo + context switch. Violates Intuitive value - muscle memory should help, not hurt. * Method 2: Stop Problems Before They Appear ** TODO [#B] Migrate from Company to Corfu :PROPERTIES: :COMPLETE_CONFIG: [[file:docs/someday-maybe.org::1611][todo.org:1611-1639]] :END: Complete config already exists in someday-maybe.org. Just needs to be executed. ** TODO [#C] Switch to mood-line Already researched. Lighter modeline. ** TODO [#C] Remove deprecated tree-sitter package (rely on treesit-auto) Already have treesit-auto installed. Just remove old package. ** TODO [#C] Add org-appear (show emphasis markers only when point is on them) Cleaner org files, supports Intuitive value. ** TODO [#C] Integrate prescient with Corfu (smart sorting) Already using prescient with vertico. Extend to Corfu after migration. * Method 3: Make *Fixing* Emacs Frictionless ** TODO [#B] Build debug-profiling.el module Reusable profiling infrastructure for any future performance work. ** TODO [#C] Document localrepo limitations (treesitter grammars not included) .localrepo only contains packages from package.el archives. Treesitter grammars are downloaded separately by treesit-auto on first use. For true offline reproducibility, need to cache treesitter grammars separately. ** TODO [#C] Integrate Buttercup (behavior-driven integration tests) Complex workflow testing capability. ** TODO [#C] Build localrepo out (package snapshot system) Repeatable installs and safe rollbacks. ** TODO [#C] Integrate difftastic (structural diffs) Structural diffs that show semantic changes. Hook into cj/diff-buffer-with-file. * Method 4: Contribute to the Emacs Ecosystem ** TODO [#C] Set up package-lint for elisp linting (chime, org-msg, wttrin) Catch packaging issues automatically. ** TODO [#C] Set up melpazoid CI for MELPA submissions Validates packages meet MELPA standards. ** TODO [#C] Set up elisp-check GitHub Action Zero-config CI for Emacs packages. ** TODO [#C] Integrate undercover.el for test coverage Measure and track test coverage over time. * Method 5: Be Kind To Your Future Self ** TODO [#C] Add transcription workflow :PROPERTIES: :COMPLETE_CONFIG: [[file:docs/someday-maybe.org::2][todo.org:2-99]] :END: Complete code already exists in someday-maybe.org. Need today and recurring. ** TODO [#C] Implement org-reveal presentation workflow Create reveal.js slides from org-mode. * Method 6: Develop Disciplined Engineering Practices ** TODO [#A] First weekly triage by Sunday (establish habit) SCHEDULED: <2025-11-03 Sun> Review this inbox, cancel stale items, keep < 20 active. Track in calendar. ** TODO [#B] Track current metrics baseline - [ ] Measure current startup time (time emacs --eval '(save-buffers-kill-emacs)') - [ ] Count current active todos - [ ] Set up tracking document for weekly metrics ** TODO [#C] Set up monthly research:shipped ratio tracking Can't research next thing until current thing is implemented. * Emacs Config Inbox ** DONE [#A] Irritant: Print should be keybound to capital P CLOSED: [2025-11-03 Sun] Swapped keybindings: - C-; b p → copy file path (safe, common action) - C-; b P → print to PS (dramatic, requires shift) ** DONE [#A] Irritant: send buffer to printer must have confirmation CLOSED: [2025-11-03 Sun] Added y-or-n-p confirmation to cj/print-buffer-ps. C-u prefix skips confirmation and prints in color.