Agent skill
johnny-decimal
Helps organize files in a Johnny Decimal system at ~/Documents. Use this skill when filing documents, finding files, creating folders, taking notes about JD items, or understanding where something belongs in the system.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/johnny-decimal
SKILL.md
Johnny Decimal File Organization
Skill base directory: {baseDir}
This skill helps you work with the Johnny Decimal (JD) file system located at
~/Documents (or $XDG_DOCUMENTS_DIR).
Quick Reference
The system has 10 areas:
| Area | Purpose |
|---|---|
| 00-09 System | Meta-management (inbox, templates, scripts, archive) |
| 10-19 Personal | People (Self, Spouse, Kids, Parents, Friends, Pets) |
| 20-29 Finances | Banks, investments, credit, taxes, insurance |
| 30-39 Home and Property | Homes, vehicles, major assets |
| 40-49 Career and Education | Education, research, employers |
| 50-59 Health and Wellness | General health resources (not personal records) |
| 60-69 Hobbies and Recreation | Games, computing, creative works, travel |
| 70-79 Legal and Records | Legal documents and archival records |
| 80-89 Household and Services | Services, products, utilities, meals |
| 90-99 Reference | Library, research, manuals, datasets |
Structure Format
XX-XX Area Name/ # Area (decade range)
└── XX Category Name/ # Category (two digits)
└── XX.YY Subcategory/ # Subcategory (ID)
Example path:
~/Documents/20-29 Finances/21 Banks/21.10 Example Bank/
Key Principles
- One place for everything - Each item has exactly one correct location
- Person-first for personal records - A spouse's health records go in
12 Spouse, not50 Health - Purpose determines area - A bill goes in
27 Bills, not with the service provider - JDex is the brain - Notes and decisions live in
00.00 JDex for System
Finding Where Things Go
Before filing, consult:
- Flowchart:
00-09 System/00 System/00.00 JDex for System/flowchart.md - Full structure:
00-09 System/00 System/00.00 JDex for System/overview.md
Or use your judgment with the filing hierarchy:
- Is it about a specific person? →
10-19 Personalunder their folder - Is it about yourself specifically? →
11 Self - Otherwise, match by purpose → Areas 20-99
Notes System
Notes about JD items live as markdown files in the JDex:
00-09 System/00 System/00.00 JDex for System/
├── overview.md # System structure documentation
├── flowchart.md # Filing decision tree
├── 31.14.md # Notes about current home
├── 21.10.md # Notes about a bank account
└── ...
Use jd-note to add timestamped entries to these files.
Naming Conventions
Folders:
- Areas:
XX-XX Name(e.g.,20-29 Finances) - Categories:
XX Name(e.g.,21 Banks) - Subcategories:
XX.YY Name(e.g.,21.10 Example Bank)
Files:
- Date-prefixed for transient items:
2024-12-27_statement.pdf - Descriptive for permanent items:
policy_declaration.pdf - Statements:
statements/YYYY/MM.pdforcc_MM.pdffor credit cards
Available Scripts
Scripts are located in {baseDir}/scripts/. Use the full path when invoking:
| Script | Purpose |
|---|---|
{baseDir}/scripts/jd-list.sh [ID] |
List contents of an area, category, or ID |
{baseDir}/scripts/jd-tree.sh [-L depth] [ID] |
Show directory structure using tree |
{baseDir}/scripts/jd-validate.sh <filename> |
Check if filename follows conventions |
{baseDir}/scripts/jd-mkdir.sh <category> <name> |
Create a new subcategory folder (auto-numbers) |
{baseDir}/scripts/jd-move.sh <file> <ID> |
Move a file to a JD location (with validation) |
{baseDir}/scripts/jd-note.sh [ID] [text] |
Add a timestamped note (browse if no ID given) |
{baseDir}/scripts/jd-read.sh [ID] [--edit] |
Display notes for an ID (browse if no ID given) |
Also available: jd <query> for navigation (in ~/bin/).
Interactive Features
When run by a human (not an agent), these commands have interactive modes:
jd-note(no args) - Hierarchical browse (Area → Category → ID), then opens editorjd-note <ID>(without text) - Opens editor to write a notejd-read(no args) - Hierarchical browse (Area → Category → ID), then displays notesjd-read --edit(no args) - Hierarchical browse, then opens editorjd-read <ID> --edit- Opens the note file for editing
All properly handle TTY redirection for compatibility with any editor.
Agent Usage (--porcelain)
All scripts support a --porcelain flag for machine-readable output:
{baseDir}/scripts/jd-list.sh 21 --porcelain # Full paths, no colors
{baseDir}/scripts/jd-tree.sh -L3 --porcelain # Full structure, no colors
{baseDir}/scripts/jd-mkdir.sh 21 "Name" --porcelain # Outputs created path
{baseDir}/scripts/jd-move.sh file.pdf 21.10 --porcelain # Outputs destination path
{baseDir}/scripts/jd-note.sh 21.10 "text" --porcelain # Adds note (text required)
{baseDir}/scripts/jd-read.sh 21.10 --porcelain # Outputs note file path
{baseDir}/scripts/jd-validate.sh file.pdf --porcelain # Machine-readable validation
When using these scripts as an agent:
- Always use
--porcelainfor reliable parsing - Paths are absolute and suitable for further operations
- Errors go to stderr with exit code 1
jd-noterequires text argument in agent mode (no editor)jd-read --editis not available in agent mode (requires TTY)- All scripts auto-detect agent mode when stdout/stdin are not TTYs
Safety Rules
- Scripts will refuse to overwrite existing files
- Scripts validate paths before operations
- Always confirm destructive operations with the user
- When uncertain about filing location, ask rather than guess
When to Explore
If you need current structure details not covered here, read:
overview.mdin the JDex for full category breakdownflowchart.mdin the JDex for filing decisions- Use
{baseDir}/scripts/jd-list.shto see what exists in a location
References
For more detailed guidance, use the Read tool to load:
{baseDir}/references/FILING-GUIDE.md- Detailed filing decisions and examples{baseDir}/references/NAMING.md- File and folder naming conventions
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?