prompts/skills/johnny-decimal/SKILL.md
Apply Johnny.Decimal organization system when sorting, filing, organizing, or categorizing information. Use when creating or maintaining a structured numbering scheme for files, projects, or any hierarchical data. Enforces the strict containment rules and format patterns required by the Johnny.Decimal specification.
npx skillsauth add ramblurr/nix-devenv johnny-decimalInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Johnny.Decimal is a structured numbering scheme for organizing information with the hierarchy: System → Area → Category → ID
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.
Each record in a Johnny.Decimal system has a type. Type values MUST be lowercase:
| Type | Value |
|----------|------------|
| System | system |
| Area | area |
| Category | category |
| ID | id |
Systems, areas, categories, and IDs MUST each have a title.
A system is a contained collection of areas, categories, and IDs.
A system identifier is OPTIONAL.
If present, the system identifier:
[A-Z][0-9][0-9]A00 through Z99An area is a high-level grouping of categories. Areas represent broad domains within a system.
An area identifier:
[0-9]0-[0-9]9 where both digits are identical00-09, 10-19, 20-29, 30-39, 40-49, 50-59, 60-69, 70-79, 80-89, 90-9910-19 MAY contain categories 10 through 1910-19 MUST NOT contain category 20A category is a grouping of IDs. Categories represent a specific domain of work or collection of related items.
A category identifier:
[0-9][0-9]00 through 9911 MUST belong to area 10-1911 MUST NOT belong to area 20-29An ID is the fundamental unit of organisation in a Johnny.Decimal system. An ID represents a single project, topic, or collection of related items.
An ID:
[0-9][0-9].[0-9][0-9]00.00 through 99.99The portion before the decimal is the "category component". The portion after the decimal is the "ID component".
15.52 MUST belong to category 1515.52 MUST NOT belong to category 16Metadata is a collection of key/value pairs attached to an ID.
IDs are the leaf nodes of a Johnny.Decimal system and the only place where data exists. Metadata about higher-level structures is stored using standard zeros:
| Structure | Standard Zero |
|---------------|---------------|
| System | 00.00 |
| Area 20-29 | 20.00 |
| Category 21 | 21.00 |
To store metadata about category 21, attach it to ID 21.00. To store metadata about area 20-29, attach it to ID 20.00. To store metadata about the system itself, attach it to ID 00.00.
A metadata key:
[a-zA-Z][a-zA-Z0-9_]*The following keys are reserved and have defined semantics:
| Key | Type | Description |
|---------------|------------------------|--------------------------------------------|
| description | string | A human-readable description of the ID |
| relatesTo | array of ID references | References to other IDs in the same system |
| url | array of URIs | External resources associated with this ID |
Implementations MUST validate reserved keys according to their type definitions.
The description value:
The relatesTo value:
[0-9][0-9].[0-9][0-9])The url value:
Keys not listed as reserved MAY be used freely by users.
User-defined keys SHOULD use camelCase for consistency with reserved keys.
A metadata value:
The recommended index file format is plain text, saved as 00.00 Index.txt in your system.
10-19 Your first area's title
11 Your first category's title
11.01 Your first ID's title
11.02 The second ID in category 11
12 Category twelve
20-29 Your second area
21 Category twenty-one
21.01 ...and so on
The index file MUST appear in order. This is incorrect:
20-29 Second area
10-19 First area
This is fine:
10-19 An area with no children
20-29 Another area
21 A category with no children
This is not:
11 A category without a parent area
21.01 An ID without a parent category
While indentation is encouraged for legibility, white space should be ignored by a parser. This is legal, if ugly:
10-19 Your first area's title
11 Your first category's title
11.01 The title of your first ID
JavaScript comments are allowed. Multi-line comments may be used if they are the only text on the line.
10-19 My area // which I can comment like this
11 My category /* or like this */
/* multiline comments
are allowed on their own lines
*/
11.01 Whereas this /* is not, as it breaks
the ID
*/
Arbitrary metadata may be stored in key/value pairs directly below any item by entering:
The value may not span a newline. All values are strings.
10-19 Area
11 Category
11.01 ID
- Location: work email.
When creating or validating a Johnny.Decimal structure:
[a-zA-Z][a-zA-Z0-9_]*)?| Type | Pattern | Example | Valid Range | Parent Required |
|----------|-----------------------------|-----------|--------------------------|-----------------|
| System | [A-Z][0-9][0-9] | A01 | A00–Z99 (optional) | No |
| Area | [0-9]0-[0-9]9 | 10-19 | 00-09 through 90-99 | System |
| Category | [0-9][0-9] | 11 | 00–99 | Area |
| ID | [0-9][0-9].[0-9][0-9] | 11.01 | 00.00–99.99 | Category |
testing
Use this OCP when executing or preparing to execute commands that change a live or important system, service reloads/restarts, package changes, deployments, migrations, firewall/network/access changes, credential rotation, NixOS switch/test/boot/deploy, or incident mitigation. It guides safe operations with a persisted ledger for scope, preflight, baseline, rollback, validation, and evidence.
development
Create new agent skills with proper structure, progressive disclosure, and bundled resources. Use when user wants to create, write, or build a new skill.
documentation
Naming conventions for workflow documents in prompts/. Use when creating plans, PRDs, research reports, idea capture or other workflow documents. Triggers on (1) creating new planning documents, (2) naming PRDs or research reports, (3) questions about document organization in prompts/.
testing
Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.