toon — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited toon (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
TOON (Token-Oriented Object Notation) is a compact encoding of JSON designed for LLM input. Combines YAML-style indentation w/ CSV-style tables for uniform arrays.
Key benefits:
user:
name: John
age: 30
address:
city: NYC
zip: 10001users[3]{id,name,email}:
1,John,[email protected]
2,Jane,[email protected]
3,Bob,[email protected][N] = array length (req for validation){fields} = column schema (declared once)tags[4]: api,rest,json,toonitems:
- id: 1
type: book
meta:
pages: 200
- id: 2
type: video
meta:
duration: 3600[N]{fields}: format- list notation, or special charsJSON:
{"orders":[{"id":1,"item":"Book","qty":2,"price":29.99},{"id":2,"item":"Pen","qty":10,"price":1.99}]}TOON:
orders[2]{id,item,qty,price}:
1,Book,2,29.99
2,Pen,10,1.99Nested JSON:
{"config":{"db":{"host":"localhost","port":5432},"cache":{"enabled":true,"ttl":300}}}TOON:
config:
db:
host: localhost
port: 5432
cache:
enabled: true
ttl: 300TOON replaces data serialization formats when sending to LLMs.
| Format | Convert? | Notes |
|---|---|---|
| JSON | Yes | Primary use case |
| JSON compact | Yes | Same as JSON |
| YAML | Yes | Structured data |
| XML | Yes | Verbose, big savings |
| Format | Convert? | Reason |
|---|---|---|
| Markdown | No | Keep as markdown |
| Plain text | No | Keep as text |
| Code files | No | Keep original syntax |
| CSV | No | Already compact for flat tables |
Uniform arrays of objects (same fields per item) from JSON/YAML/XML.
TOON replaces data serialization formats when the consumer is an LLM.
| Data Type | TOON Syntax | Example |
|---|---|---|
| Object | indent | user:\n name: John |
| Uniform array | [N]{fields}: | items[2]{a,b}:\n 1,x\n 2,y |
| Scalar array | [N]: | ids[3]: 1,2,3 |
| Nested array | - item | - name: x\n- name: y |
| Quoted str | "val" | name: "a,b,c" |
| Null | null | val: null |
| Bool | true/false | active: true |
.toontext/toonOfficial npm: @toon-format/toon, @toon-format/cli
// npm install @toon-format/toon
import { encode, decode } from '@toon-format/toon';
// JSON to TOON
const data = { users: [{ id: 1, name: 'John' }] };
const toonStr = encode(data);
// TOON to JSON
const parsed = decode(toonStr);# npm install -g @toon-format/cli
toon encode input.json > output.toon
toon decode input.toon > output.jsonTOON's [N] notation enables:
# This declares exactly 3 items w/ 2 fields each
products[3]{name,price}:
Widget,9.99
Gadget,19.99
Tool,14.99If LLM receives incomplete data, length mismatch signals corruption.
scripts/validate.py)Validates TOON syntax and structure before use.
# Validate TOON file
python .claude/skills/document-skills/toon/scripts/validate.py input.toon
# Check JSON compatibility for TOON conversion
python .claude/skills/document-skills/toon/scripts/validate.py --json input.json
# Quiet mode (errors only)
python .claude/skills/document-skills/toon/scripts/validate.py -q input.toonChecks:
[N] matches actual row count{a,b,c} matches values per rowscripts/convert.js) - RecommendedUses official @toon-format/toon library for full spec compliance.
# Install official library
npm install @toon-format/toon
# JSON to TOON
node .claude/skills/document-skills/toon/scripts/convert.js input.json
# JSON to TOON with output file
node .claude/skills/document-skills/toon/scripts/convert.js input.json -o output.toon
# TOON to JSON
node .claude/skills/document-skills/toon/scripts/convert.js --to-json input.toon
# Verify round-trip
node .claude/skills/document-skills/toon/scripts/convert.js --verify input.jsonscripts/convert.py) - FallbackBasic implementation when Node.js is not available.
# JSON to TOON
python .claude/skills/document-skills/toon/scripts/convert.py input.json
# TOON to JSON
python .claude/skills/document-skills/toon/scripts/convert.py --to-json input.toon
# Verify round-trip
python .claude/skills/document-skills/toon/scripts/convert.py --verify input.json[N] for validation~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.