42 lines
2.1 KiB
Org Mode
42 lines
2.1 KiB
Org Mode
#+TITLE: SKILL: Org-Mode & Org-Roam (Technical Implementation)
|
|
#+author: Amero Garcia
|
|
#+created: [2026-03-16 Mon 14:28]
|
|
#+ID: skill-org-mode
|
|
#+DATE: 2026-03-11
|
|
#+STARTUP: content
|
|
|
|
* Philosophy
|
|
Plain text is forever. Structure is metadata. Everything is a node.
|
|
|
|
* Technical Implementation
|
|
|
|
** 1. Document Structure
|
|
- *Headlines:* Use `*` for top-level, `**` for second-level, etc.
|
|
- *Properties:* Every node (headline) that is intended to be an atomic note must have a `:PROPERTIES:` drawer.
|
|
- *Unique IDs:* Use `:ID:` for Org-roam style linking (e.g., `:ID: 550e8400-e29b-41d4-a716-446655440000`).
|
|
- *Dates:* Use `[YYYY-MM-DD Day HH:MM]` for inactive timestamps and `<YYYY-MM-DD Day HH:MM>` for active/scheduled ones.
|
|
|
|
** 2. Task Management (GTD)
|
|
- *Hub:* Use `memex/gtd.org` for all TODOs, Projects, and Habits.
|
|
- *Statuses:* `TODO`, `DOING`, `DONE` (with `CLOSED:`), `WAITING`, `SOMEDAY`.
|
|
|
|
** 3. File Naming
|
|
- *Daily & Fleeting:* `memex/1_daily/YYYY-MM-DD.org`
|
|
- *Atomic Notes:* `memex/2_notes/slug-of-the-concept.org`
|
|
- *Projects:* `memex/5_projects/ProjectName/SPEC.org`
|
|
|
|
** 4. Code Blocks
|
|
- Use `#+BEGIN_SRC <language>` and `#+END_SRC` for all code snippets.
|
|
- Use `#+RESULTS:` to capture output when running code within Org-mode (Babel).
|
|
|
|
** 6. Binary Management (org-attach)
|
|
- **Philosophy:** Treat binaries (PDFs, images, data) as first-class citizens linked to symbolic nodes. Never use fragile local file paths.
|
|
- **The Protocol (System 2):**
|
|
1. **Identify the Host Node:** Every attachment must be linked to a specific Org headline (e.g., in `memex/gtd.org` or a Literature Note).
|
|
2. **Generate Native ID:** Use `(org-id-get-create)` via Emacs to ensure the node has a globally unique, persistent identifier.
|
|
3. **Perform the Attachment:** Use `(org-attach-attach "/path/to/file" nil 'mv)` to move the file into the ID-based storage.
|
|
4. **Linking:** Use `[[attachment:filename.ext]]` for all internal references. This ensures the link survives if the file or node is moved.
|
|
- **Storage Root:** The system-wide attachment directory is `$MEMEX_ATTACHMENTS` (typically `memex/7_resources/` or `memex/attachments/`).
|
|
|
|
** 7. Learning Rituals (Closing the Loop)
|