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/notesor/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 operationsjournelly-manager- Journal entry creation and management- Helper scripts -
get-location,get-weatherfor 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-sessionfunction 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.)
- File types changed (
- 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
- “Fixed bug in authentication handler” → auto-tagged with
- Never write in first person or user’s voice
- Keep entries concise (1-2 lines per timestamp)
When User Asks to “Save This Session”
- Save detailed summary to history system (
~/.config/claude/history/sessions/) - Only add Claude session entry if user explicitly requests it
- 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
==pkaisignature 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 referencereference/JournellyFormat.md- Complete journelly journal reference
Related Skills
- 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.