auto-update-daily-20260202

name: Org description: Org-mode operations for notes, journals, and TODOs. USE WHEN user wants to create notes, write journal entries, work with org-mode files, or manipulate org content.

Org-Mode Operations

Purpose

Unified skill for all org-mode operations including note-taking (denote format), journaling (Journelly format), and org-mode file manipulation.

Context Detection

This skill activates when:

  • User asks to create a note, write a note, or document something
  • User asks to create a journal entry or write reflections
  • User mentions denote, Journelly, or note-taking
  • User needs to manipulate org-mode files (.org)
  • Working directory is /home/vincent/desktop/org/notes or /home/vincent/desktop/org/
  • User asks about organizing knowledge or documentation

Quick Reference

File Locations

  • Notes: ~/desktop/org/notes/ - Denote-formatted notes
  • Journal: ~/desktop/org/Journelly.org - Single journal file
  • TODOs: ~/desktop/org/todos.org - Task management (see TODOs skill)

Tools Available

  • org-manager - Org-mode file manipulation, denote operations
  • journelly-manager - Journal entry creation and management
  • Helper scripts - get-location, get-weather for journal metadata

Workflow Routing

Workflow Trigger File
CreateNote “create note”, “document this”, “take notes about” workflows/CreateNote.md
CreateJournal “journal entry”, “write reflection”, “add to journal” workflows/CreateJournal.md
SearchOrg “find notes”, “search journal”, “what did I write about” workflows/SearchOrg.md

Core Tools

org-manager

Location: tools/org-manager

Batch-mode Emacs wrapper for org-mode operations.

Denote Operations (note-taking):

# Create new note
org-manager denote-create "Note Title" "tag1,tag2,tag3" \
  --category=homelab --directory=~/desktop/org/notes

# Create with signature (automated notes)
org-manager denote-create "Session Summary" "history,session" \
  --signature=pkai --category=history

# Update note metadata
org-manager denote-update ~/desktop/org/notes/20251205T*.org \
  --title="New Title" --tags="new,tags"

Org-mode Operations:

# Search for content
org-manager search ~/desktop/org/notes/*.org "keyword"

# Count TODOs in file
org-manager count ~/desktop/org/todos.org

# List sections
org-manager sections ~/desktop/org/notes/20251205T*.org

Output: Returns JSON with operation results.

journelly-manager

Location: tools/journelly-manager

Journal entry creation and management for Journelly.org.

Basic Usage:

# Create simple entry
journelly-manager create ~/desktop/org/Journelly.org \
  "Location" "Entry content here"

# Create with weather/GPS metadata
journelly-manager create ~/desktop/org/Journelly.org \
  "Paris" "Today's reflection" \
  --latitude=48.8534 --longitude=2.3488 \
  --temperature="15°C" --condition="Cloudy" --symbol="cloud"

# Append to today's entry
journelly-manager append ~/desktop/org/Journelly.org \
  "Additional thoughts for today"

With automatic location/weather:

LOC=$(get-location --json)
WEATHER=$(get-weather --json)

journelly-manager create ~/desktop/org/Journelly.org \
  "$(echo $LOC | jq -r .city)" "Entry content" \
  --latitude="$(echo $LOC | jq -r .lat)" \
  --longitude="$(echo $LOC | jq -r .lon)" \
  --temperature="$(echo $WEATHER | jq -r .temperature)" \
  --condition="$(echo $WEATHER | jq -r .condition)" \
  --symbol="$(echo $WEATHER | jq -r .symbol)"

Helper Scripts

get-location - IP-based geolocation:

get-location              # Saint-Denis (48.9356,2.3539)
get-location --coords     # 48.9356,2.3539
get-location --json       # {"city":"Saint-Denis","lat":"48.9356","lon":"2.3539"}

get-weather - Weather from wttr.in:

get-weather                    # 15°C Partly cloudy (cloud.sun)
get-weather --temperature      # 15°C
get-weather --json             # {"temperature":"15°C","condition":"Partly cloudy","symbol":"cloud.sun"}
get-weather Paris              # Weather for specific location

Notes:

  • Location: IP-based (city-level), cached 1 hour
  • Weather: From wttr.in (no API key), cached 30 minutes
  • Symbols: Mapped to iOS SF Symbols for Journelly app compatibility

Format Documentation

Denote Format (Note-Taking)

See: reference/DenoteFormat.md for complete documentation

Quick overview:

  • Filename: YYYYMMDDTHHMMSS--title__tag1_tag2_tag3.org
  • With signature: YYYYMMDDTHHMMSS==pkai--title__tags.org
  • Frontmatter: title, date, filetags, identifier, category
  • Location: ~/desktop/org/notes/

Common use cases:

  • Technical documentation
  • Learning notes and research
  • Project planning
  • Reference material
  • Knowledge organized by topic

Example:

#+title:      Setting up Wireguard VPN
#+date:       [2025-12-03 Wed 15:45]
#+filetags:   :homelab:networking:vpn:
#+identifier: 20251203T154500
#+category: homelab

* Overview
Setting up Wireguard VPN for secure remote access to homelab.

* Configuration
** Server Setup
...

Journelly Format (Journaling)

See: reference/JournellyFormat.md for complete documentation

Quick overview:

  • Single file: ~/desktop/org/Journelly.org
  • Entry format: * [YYYY-MM-DD Day HH:MM] @ Location
  • Optional properties: GPS coordinates, weather data
  • Reverse chronological order (newest first)
  • NO sub-headings - use indented lists instead

Common use cases:

  • Daily reflections and thoughts
  • Personal experiences
  • Time-based chronicle
  • Location-tagged memories
  • Work logs and quick captures

Example:

* [2025-12-10 Wed 17:05] @ Paris
:PROPERTIES:
:LATITUDE: 48.8534
:LONGITUDE: 2.3488
:WEATHER_TEMPERATURE: 15°C
:WEATHER_CONDITION: Partly cloudy
:END:
Productive day working on Claude skills.

- Work
  - [X] Completed PR review
  - [X] Fixed authentication bug

- Personal
  - Started reading new book
  - Evening walk with family

When to Use What

Use Case Format Tool Location
Document technical knowledge Denote org-manager denote-create ~/desktop/org/notes/
Daily reflection Journelly journelly-manager create ~/desktop/org/Journelly.org
Track tasks (separate skill) Org-mode TODOs skill ~/desktop/org/todos.org
Meeting notes Denote org-manager denote-create ~/desktop/org/notes/
Quick thought Journelly journelly-manager append ~/desktop/org/Journelly.org
Learning notes Denote org-manager denote-create ~/desktop/org/notes/

Rule of thumb:

  • Notes (Denote): Knowledge you need to retrieve by topic
  • Journal (Journelly): Experience you want to remember chronologically
  • TODOs: Actions you need to track and complete

Claude Guidelines for Journal Entries

CRITICAL: Claude should NEVER automatically create journal entries.

Regular Journal Entries (@ Location (hostname))

  • NEVER create these - These are the user’s personal voice and reflections only
  • The user writes these manually via:
    • Journelly iOS app
    • Emacs org-capture (C-c o c j)
    • Manual editing

Claude Session Entries (@ Claude session)

  • Only create when explicitly asked by the user
  • Use the journelly-claude-session function via Emacs batch mode
  • Format: Brief, factual, technical summaries of work accomplished
  • Auto-tagging: Tags are automatically detected and appended based on:
    • File types changed (.nix#nixos, .el#emacs, .go#golang)
    • Git repository (home#homelab, tekton*#tekton)
    • Keywords (fix/bug#debugging, feature/implement#development)
    • Tools mentioned (docker, kubernetes, etc.)
  • Examples:
    • “Fixed bug in authentication handler” → auto-tagged with #debugging
    • “Implemented feature X with tests” → auto-tagged with #development #testing
    • “Refactored module Y for better performance” → auto-tagged with #refactoring
  • Never write in first person or user’s voice
  • Keep entries concise (1-2 lines per timestamp)

When User Asks to “Save This Session”

  1. Save detailed summary to history system (~/.config/claude/history/sessions/)
  2. Only add Claude session entry if user explicitly requests it
  3. Let user write their own personal journal reflections

Remember: Journal entries are personal. Claude provides technical logging only when requested.

Common Operations

Create a Note

# With org-manager
org-manager denote-create "NixOS Flakes Best Practices" \
  "nixos,flakes,reference" \
  --category=reference \
  --directory=~/desktop/org/notes

# Returns: filepath to new note

Create a Journal Entry

# Simple entry
journelly-manager create ~/desktop/org/Journelly.org \
  "Home" "Reflection on today's work with Claude skills"

# With automatic location/weather
LOC=$(get-location --json)
WEATHER=$(get-weather --json)
journelly-manager create ~/desktop/org/Journelly.org \
  "$(echo $LOC | jq -r .city)" \
  "Today's entry content" \
  --latitude="$(echo $LOC | jq -r .lat)" \
  --longitude="$(echo $LOC | jq -r .lon)" \
  --temperature="$(echo $WEATHER | jq -r .temperature)" \
  --condition="$(echo $WEATHER | jq -r .condition)" \
  --symbol="$(echo $WEATHER | jq -r .symbol)"

Search Notes

# Find notes with tag
ls ~/desktop/org/notes/*__*homelab*.org

# Search content
org-manager search ~/desktop/org/notes/*.org "wireguard"

# Using ripgrep
rg "kubernetes" ~/desktop/org/notes/

Search Journal

# Find entries from date
grep "^\* \[2025-12-" ~/desktop/org/Journelly.org

# Search by location
grep "@ Kyushu" ~/desktop/org/Journelly.org

# Search content
rg "homelab" ~/desktop/org/Journelly.org

Org-Mode Features

All org-mode features work in both notes and journal entries:

Lists:

- Unordered item
  - Sub-item
1. Ordered item
- [ ] TODO checkbox
- [X] Completed checkbox

Links:

[[file:~/desktop/org/notes/other-note.org][Link Text]]
[[https://example.com][External Link]]

Code Blocks:

#+begin_src bash
nix build .#package
#+end_src

Tables:

| Col 1 | Col 2 |
|-------+-------|
| Val 1 | Val 2 |

Emphasis:

*bold* /italic/ _underline_ =code= ~verbatim~

Integration

History System

  • Notes with :history: tag link to ~/.config/claude/history/
  • Use ==pkai signature for automated history notes
  • Cross-reference between notes and history entries

Journelly iOS App

  • Primary mobile interface for journaling
  • Auto-adds GPS and weather
  • Syncs via iCloud
  • Can include photos

Syncthing

  • Journal file synced across devices
  • Available on desktop for reading/searching

Emacs

  • Full org-mode editing capabilities
  • org-sparse-tree for filtering
  • Export to HTML, PDF, etc.

Best Practices

Note-Taking

  • Use descriptive, specific titles
  • Tag consistently (2-5 tags)
  • Link related notes
  • Include code examples
  • Add references to sources

Journaling

  • Write regularly, even brief entries
  • Use location meaningfully
  • Be authentic and specific
  • Use org-mode features (lists, checkboxes)
  • Review periodically

Organization

  • Notes: Organized by tags and topics
  • Journal: Chronological by nature
  • Cross-link when relevant
  • Use categories consistently

Examples

Example 1: Creating a technical note

User: "Create a note about NixOS flakes best practices"
→ Uses org-manager denote-create
→ Generates timestamp identifier
→ Creates denote-formatted filename
→ Adds org-mode frontmatter
→ Saves to ~/desktop/org/notes/
→ Result: 20251206T153000--nixos-flakes-best-practices__nixos_flakes_reference.org

Example 2: Daily journal reflection

User: "Create my journal entry for today"
→ Uses journelly-manager create
→ Gets current location and weather
→ Formats with timestamp and location
→ Adds properties drawer with metadata
→ Inserts at top of Journelly.org
→ Result: Entry with full context captured

Example 3: Searching across both

User: "Find everything about Tekton from last month"
→ Searches notes: ~/desktop/org/notes/*__*tekton*.org
→ Searches journal: grep "tekton" ~/desktop/org/Journelly.org
→ Shows both structured notes and journal reflections
→ Result: Complete picture of Tekton work

Reference Documentation

For complete format specifications and advanced features:

  • reference/DenoteFormat.md - Complete denote note-taking reference
  • reference/JournellyFormat.md - Complete journelly journal reference
  • TODOs - Task management in org-mode (separate skill)
  • CORE - History system integration
  • Git - Version control for org files

This completes the unified Org skill. All org-mode operations, note-taking, and journaling are now in one place.