toon-format

$npx mdskill add closedloop-ai/claude-plugins/toon-format

Generate compact TOON files for LLM-optimized data serialization.

  • Reduces token usage by 40% while keeping JSON round-trip compatible.
  • Handles .toon file operations and org-patterns.toon generation.
  • Applies strict syntax rules for arrays, objects, and quoting.
  • Delivers formatted output ready for direct LLM prompt ingestion.
SKILL.md
.github/skills/toon-formatView on GitHub ↗
---
name: toon-format
description: This skill should be used when writing or parsing TOON (Token-Oriented Object Notation) files. Triggers on .toon file operations, org-patterns.toon generation, or when converting between JSON and TOON formats. Provides syntax rules, quoting conventions, and examples for LLM-optimized data serialization.
---

# TOON Format (Token-Oriented Object Notation)

TOON is a compact, human-readable encoding of the JSON data model optimized for LLM prompts. It achieves ~40% token reduction compared to JSON while maintaining lossless round-trip compatibility.

## Core Syntax Rules

### Array Declaration

Arrays use bracketed headers with mandatory length count:

```toon
tags[3]: admin,ops,dev
```

### Tabular Arrays (Uniform Object Arrays)

For arrays of objects with identical structure, use field headers in braces:

```toon
patterns[2]{id,category,summary}:
  P-001,pattern,"Use tokens for colors"
  P-002,mistake,"Check auth before routes"
```

- Field names declared once in `{...}` after the count
- Each row contains values in declared field order
- Rows indented with 2 spaces (NEVER tabs)

### Objects

Objects use indentation-based nesting (2 spaces per level):

```toon
user:
  id: 123
  name: Ada
```

## Quoting Rules (Critical)

Strings MUST be quoted if they contain:
- The active delimiter (comma by default)
- Empty string, leading/trailing whitespace
- Reserved literals (`true`, `false`, `null`)
- Numeric-like patterns
- Colons, quotes, backslashes, brackets, braces
- Control characters or leading hyphens

**Escape sequences:** `\\`, `\"`, `\n`, `\r`, `\t`

## org-patterns.toon Format

Standard format for ClosedLoop organization learnings:

```toon
patterns[N]{id,category,summary,confidence,seen_count,success_rate,flags,applies_to,context,repo}:
  P-001,pattern,"Summary here",high,5,0.85,,implementation-subagent,UI|styling,*
  P-002,mistake,"Check auth before routes",medium,3,0.60,[REVIEW],*,auth|routes,astoria-frontend
```

**Field notes:**
- `summary` - **Always quoted** (contains natural language with commas)
- `flags` - `[REVIEW]`, `[STALE]`, `[UNTESTED]`, `[PRUNE]`, or empty
- `applies_to` - Pipe-separated agent names or `*` for all
- `context` - Pipe-separated tags
- `repo` - Repository name (derived from git remote basename) or `*` for all repos

## Validation Checklist

1. Count matches actual rows/items
2. Field count in rows matches declaration
3. Strings needing quotes are quoted
4. 2-space indentation (no tabs)
5. No blank lines within array blocks

## References

- See `references/examples.md` for comprehensive examples
- [TOON Specification](https://github.com/toon-format/spec)
- [Reference Implementation](https://github.com/toon-format/toon)
More from closedloop-ai/claude-plugins