skills/consiliency/toon-format/SKILL.md
TOON (Token-Oriented Object Notation) encoding for LLM-efficient data representation. 30-60% token savings vs JSON for structured data.
npx skillsauth add aiskillstore/marketplace toon-formatInstall 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.
TOON is a compact, human-readable encoding of JSON designed for LLM prompts.
| Variable | Default | Description |
|----------|---------|-------------|
| VALIDATION_MODE | strict | strict (CLI validation required) or lenient (parser permissive) |
| AUTO_FIX | true | Run fix scripts automatically on validation failure |
MANDATORY - Follow the format rules in this skill and reference/format-rules.md.
[count] for arraysIf you're about to:
[count] from array declarations- item list syntax#STOP -> Check reference/format-rules.md -> Then proceed
npx @toon-format/cli --decodereference/validation-tools.mdreference/format-rules.mdreference/validation-tools.mdGood candidates:
Use JSON instead for:
name: John
age: 30
active: true
tags[3]: red, green, blue
# Syntax: name[count]{col1,col2,col3}:
# Followed by 2-space indented CSV-like rows
users[3]{id,name,email}:
1,John,[email protected]
2,Jane,[email protected]
3,Bob,[email protected]
IMPORTANT: Rows MUST be indented with 2 spaces. Always add a blank line after the last row.
Use semicolons or quote values containing multiple items:
pages[2]{path,keywords,priority}:
/intro,"overview;basics;start",core
/api,"reference;methods;types",core
Use quoted strings with \n for line breaks:
description: "This is a multi-line\nstring value that preserves\nline breaks."
config:
database:
host: localhost
port: 5432
cache:
enabled: true
meta:
category: libraries
generated: 2025-01-15T10:30:00Z
count: 5
items[5]{id,name,description,path,keywords}:
baml,BAML,Structured LLM outputs,ai-docs/libraries/baml/_index.toon,"llm;types;structured"
mcp,MCP,Tool integration protocol,ai-docs/libraries/mcp/_index.toon,"tools;context;servers"
prisma,Prisma,Type-safe database ORM,ai-docs/libraries/prisma/_index.toon,"database;orm;sql"
meta:
library: baml
page: error-handling
source_url: https://docs.boundaryml.com/guide/error-handling
content_hash: a3f2c1d4e5
summary:
purpose: "Configure retry policies and fallback strategies for resilient LLM calls."
key_concepts[4]: RetryPolicy,FallbackClient,timeout,exponential backoff
gotchas[2]: Default timeout 60s may be too short,Retries count against rate limits
code_patterns[1]:
- lang: baml
desc: Retry policy configuration
code: "retry_policy Resilient {\n max_retries 3\n strategy exponential\n}"
JSON (~280 tokens):
{"pages":[{"path":"/intro","section":"guide","title":"Introduction","priority":"core"},{"path":"/setup","section":"guide","title":"Setup","priority":"core"}]}
TOON (~100 tokens):
pages[2]{path,section,title,priority}:
/intro,guide,Introduction,core
/setup,guide,Setup,core
Savings: ~64%
@toon-format/toon (npm)python-toon (pip)[count] for arrays - helps LLM parsing"val1;val2;val3")Enforced by official @toon-format/cli (use --decode to validate):
| Rule | ❌ Incorrect | ✅ Correct |
|------|-------------|-----------|
| No comments | # comment | (remove comments entirely) |
| No YAML-style lists | - item | key[N]{col}: + indented rows |
| Rows must be indented | row,data | row,data (2 spaces) |
| Arrays need count+cols | items{a,b}: | items[3]{a,b}: |
| No multiline strings | key: \| | key: "line1\nline2" |
| No pipe delimiters | val\|val | val,val or "val;val" |
| No commas in tabular cells | "a,b" | "a;b" |
| Blank line AFTER arrays | missing terminator | blank line after last row |
Validation tools:
# Validate with official CLI (use --decode, not validate!)
npx @toon-format/cli --decode file.toon > /dev/null
# Auto-fix common issues (run in this order)
python3 .claude/ai-dev-kit/dev-tools/scripts/fix_toon_comments.py path/
python3 .claude/ai-dev-kit/dev-tools/scripts/fix_toon_yaml_lists.py path/
python3 .claude/ai-dev-kit/dev-tools/scripts/fix_toon_nested_lists.py path/
python3 .claude/ai-dev-kit/dev-tools/scripts/fix_toon_commas.py path/
python3 .claude/ai-dev-kit/dev-tools/scripts/fix_toon_pipes.py path/
python3 .claude/ai-dev-kit/dev-tools/scripts/fix_toon_multiline.py path/
python3 .claude/ai-dev-kit/dev-tools/scripts/fix_toon_blank_lines.py path/
development
Apple Human Interface Guidelines for content display components. Use this skill when the user asks about charts component, collection view, image view, web view, color well, image well, activity view, lockup, data visualization, content display, displaying images, rendering web content, color pickers, or presenting collections of items in Apple apps. Also use when the user says how should I display charts, what's the best way to show images, should I use a web view, how do I build a grid of items, what component shows media, or how do I present a share sheet. Cross-references: hig-foundations for color/typography/accessibility, hig-patterns for data visualization patterns, hig-components-layout for structural containers, hig-platforms for platform-specific component behavior.
tools
Automate HelpDesk tasks via Rube MCP (Composio): list tickets, manage views, use canned responses, and configure custom fields. Always search tools first for current schemas.
testing
Expert Haskell engineer specializing in advanced type systems, pure functional design, and high-reliability software. Use PROACTIVELY for type-level programming, concurrency, and architecture guidance.
tools
GraphQL gives clients exactly the data they need - no more, no less. One endpoint, typed schema, introspection. But the flexibility that makes it powerful also makes it dangerous. Without proper controls, clients can craft queries that bring down your server. This skill covers schema design, resolvers, DataLoader for N+1 prevention, federation for microservices, and client integration with Apollo/urql. Key insight: GraphQL is a contract. The schema is the API documentation. Design it carefully.