Skip to content
denote-org logo

Denote-Org Skills

denote-org

Use this skill when working with ~/org/ directory, Denote files (YYYYMMDDTHHMMSS--title__tags.org), or org-mode knowledge bases. Provides scripts for: parsing Denote filenames/metadata, extracting org file TOC, and navigating 3,000+ file PKM systems. Trigger on: ~/org/, ~/org/llmlog/, ~/org/bib/,...

SKILL.md

Full skill instructions

Denote-Org Skills

Overview

This skill enables Claude to work with Denote-based Personal Knowledge Management (PKM) systems at scale. Denote is a simple yet powerful note-taking system for Emacs that combines file naming conventions, org-mode structure, and knowledge graph links. This skill provides procedural knowledge and executable scripts for handling 3,000+ file knowledge bases efficiently.

When to Use This Skill

Claude should use this skill when:

  1. Working with Denote files - Files named YYYYMMDDTHHMMSS--title__tag1_tag2.org
  2. Large-scale PKM systems - Knowledge bases with hundreds or thousands of org files
  3. Knowledge graph navigation - Following [[denote:TIMESTAMP]] links across files
  4. Multi-silo management - Searching across multiple Denote directories (~/​org/, ~/​claude-memory/, project docs/)
  5. Literate programming - Executing org-mode code blocks with :tangle and :results options
  6. Denote metadata extraction - Parsing file names and org-mode frontmatter
  7. Org-mode as primary collaboration format - When both .org and .md exist for the same content, treat the org file as the primary, authoritative source and use markdown only as an export/​share format.

What is Denote?

Denote is a note-taking system created by Protesilaos Stavrou that uses:

  • File naming: YYYYMMDDTHHMMSS--title__tag1_tag2.org

    • Timestamp = Unique identifier (Denote ID)
    • Title = Hyphen-separated (supports 한글/​Korean)
    • Tags = Underscore-separated (English)
  • Org-mode frontmatter:

    #+title:      Title
    #+date:       [2025-10-21 Tue 10:53]
    #+filetags:   :tag1:tag2:tag3:
    #+identifier: 20251021T105353
    
  • Knowledge graph: [[denote:20251021T105353]] links between files

  • Silo concept: Separate directories for different knowledge domains

Validated with 3,000+ org files in production PKM systems.

Knowledge Base Structure

Location: ~/​org/ (symlink to ~/​sync/​org/) Scale: 3,100+ org files

Main Directories

DirectoryPurposeScale
bib/Bibliography notes (books, people, concepts)800+ files
meta/Meta topics (programming, tools, workflows)-
notes/Personal notes and collections-
journal/Daily/​weekly journals-
llmlog/AI/​LLM conversation logs-

Content Areas

Philosophy, Science, Programming, AI, Education, Literature, Spirituality, etc.

How to Find Files

# Find by Denote ID
fd "20251217T105827" ~/​org/ --type f

# Find by tag
fd "__llmlog" ~/​org/ --type f

# Find by title keyword
fd "wsl2" ~/​org/ --type f

# Search content
rg "검색어" ~/​org/ -t org

# List recent files
ls -lt ~/​org/​llmlog/​*.org | head -10

Reference

For detailed knowledge base configuration, see ~/​org/​AGENTS.md.

Core Capabilities

Important: Scripts are executed via Bash, not Python import. Use the CLI commands shown below.

Behavioral rule: When reading org-mode documents, use structured approach: headings → history → focused sections. Only use grep as secondary tool.

1. Denote File Name Parsing (✅ Implemented)

CLI Usage:

# Parse a file (filename + frontmatter)
python3 ~/​.claude/​skills/​denote-org/​scripts/​denote_parser.py ~/​org/​path/​to/​file.org

# Parse filename only
python3 ~/​.claude/​skills/​denote-org/​scripts/​denote_parser.py --filename "20251021T105353--제목__tag.org"

# JSON output (recommended for parsing)
python3 ~/​.claude/​skills/​denote-org/​scripts/​denote_parser.py --json ~/​org/​path/​to/​file.org

Example output (--json):

{
  "path": "/​home/​user/​org/​llmlog/​20241127T161109--제목__tag1_tag2.org",
  "filename_meta": {
    "timestamp": "20241127T161109",
    "title": "제목",
    "tags": ["tag1", "tag2"],
    "ext": "org"
  },
  "frontmatter": {
    "title": "제목",
    "identifier": "20241127T161109",
    "filetags": ["tag1", "tag2"],
    "date": "[2024-11-27 Wed 16:11]"
  }
}

When to use:

  • Extracting Denote ID from filename
  • Getting title and tags without manual parsing
  • Processing multiple files in batch

2. Org Headings TOC (✅ Implemented)

CLI Usage:

# Extract table of contents from org file
python3 ~/​.claude/​skills/​denote-org/​scripts/​org_headings_toc.py ~/​org/​path/​to/​file.org

Example output:

1	히스토리
1	로그 :LLMLOG:
2	[2024-11-27 Wed 16:11]
3	git 리포지토리에서...

Format: LEVEL<TAB>TITLE - easy to parse.

When to use:

  • Quick structural overview of large org files
  • Decide which sections to read in detail
  • Before reading entire file into context

3. Finding Denote Files (🚧 Coming Soon)

# Not yet implemented - use glob/​grep for now
fd --type f "20251021T105353" ~/​org/

4. Denote Link Resolution (🚧 Coming Soon)

# Not yet implemented - use grep for now
grep -r "20251021T105353" ~/​org/ --include="*.org" -l

**When to use:

  • File contains [[denote:...]] links
  • Need to open linked files
  • Validate link integrity

5. Multi-Silo Management

5.1 Preferred org-mode reading strategy

When working with org-mode files in this environment, follow this structured process instead of treating them as plain text:

  1. Identify org-context and silos

    • If a file path matches any of the following, assume it is part of a Denote/​org knowledge base and prefer org-mode behavior over ad-hoc grep:
      • ~/​org/​**
      • ~/​org/​meta/​**
      • ~/​org/​bib/​**
      • ~/​org/​notes/​**
      • ~/​org/​llmlog/​**
      • ~/​claude-memory/​**
      • ~/​repos/​gh/​*/​docs/​**
      • ~/​repos/​work/​*/​docs/​**
    • Treat these as silos with different roles:
      • ~/​org/​meta : meta-level models, config, and system design
      • ~/​org/​bib : bibliography and reference material
      • ~/​org/​notes : long-form notes and thinking
      • ~/​org/​llmlog: LLM conversation logs and experiments
      • project docs/: per-repo documentation tied to code
  2. Parse headings before content

    • For large org files, do not read the entire file into context at once.
    • Instead, first extract only:
      • The top-level headings (*, **, ***)
      • Their titles and hierarchy
    • Build a lightweight table of contents (TOC) and use that to decide which sections to inspect in detail.
  3. Locate and summarize history sections early

    • If any heading matches common history patterns, treat it as a version/​change log and inspect it early:
      • * 히스토리, * HISTORY, * History, * 작업 로그, * Changelog, or similar
    • Summarize:
      • How the document has evolved over time
      • Recent significant changes
      • Any explicit version markers or dates
  4. Drill down into relevant sections only

    • After building the TOC and understanding history, only expand the specific headings that are relevant to the current task or user question.
    • Use grep/​rg as a secondary tool to locate candidate sections, then return to structured org parsing for interpretation.
  5. Prefer org over markdown when both exist

    • If both X.org and X.md exist for the same conceptual document:
      • Treat X.org as canonical for structure, metadata, and detailed reasoning.
      • Use X.md only as an export/​share artifact or when the user explicitly prefers markdown.

This strategy exists to maximize collaboration on org documents as first-class knowledge artifacts, not just as flat text blobs.

Common silos:

  • ~/​org/ - Main knowledge base (3,000+ files)
  • ~/​claude-memory/ - AI memory system
  • ~/​repos/​*/​docs/ - Project-specific docs

Quick Start Examples

Example 1: Parse Denote File

# Get metadata from a Denote file
python3 ~/​.claude/​skills/​denote-org/​scripts/​denote_parser.py --json ~/​org/​llmlog/​20241127T161109--제목__tag.org

Example 2: Get TOC Before Reading Large File

# First, get structure overview
python3 ~/​.claude/​skills/​denote-org/​scripts/​org_headings_toc.py ~/​org/​notes/​large-file.org

# Output: 
# 1	섹션1
# 2	하위섹션
# Then read only relevant sections

Example 3: Find Denote File by ID (using standard tools)

# Until denote_finder.py is implemented
fd "20251021T105353" ~/​org/ --type f
# or
find ~/​org -name "*20251021T105353*"

Common Pitfalls

Korean Encoding

Problem: 한글 filenames may cause encoding issues Solution: All scripts use UTF-8

Large Files

Problem: Reading entire large org file exceeds context Solution: Use org_headings_toc.py first, then read specific sections

Available Scripts

scripts/
├── denote_parser.py       ✅ Parse filenames and frontmatter (--json)
├── org_headings_toc.py    ✅ Extract TOC from org file
├── denote_finder.py       🚧 Coming soon
├── denote_linker.py       🚧 Coming soon
└── denote_rename.py       🚧 Coming soon

See Also

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View