Lucid-toolkit render-output
Renders structured data to terminal with optimal formatting. Use when presenting agent results, displaying data to users, formatting command output, or showing validation reports. Transforms raw data into clear, scannable terminal output.
git clone https://github.com/rayk/lucid-toolkit
T=$(mktemp -d) && git clone --depth=1 https://github.com/rayk/lucid-toolkit "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/luc/skills/render-output" ~/.claude/skills/rayk-lucid-toolkit-render-output && rm -rf "$T"
plugins/luc/skills/render-output/SKILL.mdKey principle: Output should be scannable in under 5 seconds. Choose the simplest pattern that communicates the information effectively. </objective>
<quick_start> Select pattern based on data type:
| Data Type | Pattern | Use When |
|---|---|---|
| Machine-readable | TOON block | Returning data to subagents |
| Listings | Markdown table | Human comparisons, listings |
| Action result | Status line | Single operation outcome |
| Validation | Box report | Multi-check with pass/fail |
| Counts | Summary line | Aggregates, distributions |
Default to the simplest pattern. Escalate complexity only when needed. </quick_start>
<patterns> <toon_pattern> For structured data returned to subagents or machine processing:@type: [SchemaType] @id: [unique-identifier] [scalar properties] [table]{columns|tab}: [row1 tab-separated] [row2 tab-separated]
Rules:
- ALWAYS include
and@type@id - Use tab-separated tables for arrays
- Prefer flat structure (avoid nesting >2 levels)
- No prose - data only
- Use
language tag for syntax highlightingtoon
Example:
@type: AssessAction @id: 005-auth actionStatus: CompletedActionStatus validationStatus: VALID checksPerformed: 10 issues.critical: 0 issues.warning: 1
</toon_pattern>
<table_pattern> For human-readable listings and comparisons:
| Column1 | Column2 | Column3 | |---------|---------|---------| | value1 | value2 | value3 |
Rules:
- Maximum 6 columns (truncate or split if more)
- Align columns consistently
- Truncate cells >30 chars with
... - Right-align numbers
- Keep header row concise
Example:
| ID | Name | Stage | Priority | |------------|----------------|-------------|----------| | 005-auth | Implement Auth | in-progress | P1 | | 006-mgmt | User Management| ready | P2 |
</table_pattern>
<status_pattern> For single action outcomes:
[symbol] [action verb] [target]: [brief result]
Symbols:
success✓
failure✗
warning⚠
transition→
Examples:
✓ Created outcome 005-auth in queued/ ✓ Synced capabilities-info.toon (12 capabilities) ✗ Validation failed: 3 critical issues ⚠ Index stale, auto-syncing...
For short lists (<5 items), use indented bullets:
✓ Created 3 outcomes - 005-auth (queued) - 006-mgmt (queued) - 007-report (queued)
</status_pattern>
<box_pattern> For validation reports and multi-section results:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [Title] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Section1: [✓/✗] [details] Section2: [✓/✗] [details] Section3: [✓/✗] [details] Overall: [PASS ✓ / FAIL ✗ / NEEDS_ATTENTION ⚠] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Use box drawing characters:
horizontal line━
vertical line (if needed)│
corners (if needed)┌┐└┘
Reserve for:
- Validation reports (>3 checks)
- Multi-section summaries
- Error reports with details </box_pattern>
<summary_pattern> For counts, distributions, and quick stats:
Single line for simple counts:
Summary: 11 total | 3 queued | 2 ready | 1 in-progress | 5 completed
Two lines for distributions:
Summary: 11 total | 3 queued | 2 ready | 1 in-progress | 5 completed 9 parent | 2 child | P1: 6 | P2: 4 | P3: 1
Rules:
- Use
as separator| - Align related groups
- Maximum two lines </summary_pattern>
<distribution_pattern> For visual distribution of values:
Maturity Distribution: 0-29%: ### (3) 30-59%: ##### (5) 60-79%: ### (3) 80-100%: # (1)
Rules:
- Use
for bar chart# - Include count in parentheses
- Align labels and bars </distribution_pattern> </patterns>
<pattern_selection> Choose pattern based on:
- Audience: Subagent (TOON) vs Human (table/status/box)
- Complexity: Simple (status) → Complex (box)
- Data shape: List (table) vs Result (status) vs Validation (box)
Decision tree:
Is output for another agent? ├─ Yes → TOON block └─ No → Is it a single action result? ├─ Yes → Status line └─ No → Is it validation with pass/fail? ├─ Yes → Box report └─ No → Is it a list/comparison? ├─ Yes → Markdown table └─ No → Summary line
</pattern_selection>
<symbols> Standard symbols for consistent output:| Symbol | Meaning | Unicode | Usage |
|---|---|---|---|
| ✓ | Success/pass | U+2713 | Completed actions, passing checks |
| ✗ | Failure/fail | U+2717 | Failed actions, failing checks |
| ⚠ | Warning | U+26A0 | Needs attention, non-critical |
| → | Transition | U+2192 | State changes, version bumps |
| • | Bullet | U+2022 | List items |
| ━ | Horizontal | U+2501 | Box borders |
| │ | Vertical | U+2502 | Box borders |
DO NOT use emoji. Stick to these standard symbols. </symbols>
<anti_patterns> Avoid these common mistakes:
- Excessive whitespace: Don't add blank lines between every element
- Nested boxes: Don't put boxes inside boxes
- Mixed styles: Don't combine table + box in same output
- Emoji overuse: Stick to standard symbols (✓✗⚠)
- Long prose: Output should be data-focused, not explanatory
- Missing language tags: Always tag code blocks (
,toon
)markdown - Inconsistent alignment: Align columns and values consistently
- Over-engineering: Don't use box for simple status
- Column overflow: Keep tables under 6 columns </anti_patterns>
<success_criteria> Output meets quality standards when:
- Pattern matches data type (use decision tree)
- Symbols used consistently throughout
- No excessive whitespace or blank lines
- Code blocks have language tags
- Tables stay under 6 columns
- Box reports used only for complex validation
- TOON used for machine-readable returns
- Human output is scannable in <5 seconds
- No mixed patterns in single output </success_criteria>
Summary: 11 total | 3 queued | 2 ready | 1 in-progress | 0 blocked | 5 completed
Current Focus: 005-implement-auth (in-progress)
| ID | Name | Stage | Priority | Capabilities |
|---|---|---|---|---|
| 005-implement-auth | Implement Auth | in-progress | P1 | auth-system:30% |
| 006-user-mgmt | User Management | ready | P2 | user-mgmt:25% |
| 007-reporting | Reporting | queued | P3 | reporting:20% |
Blocked: None </example>
<example name="action_result"> ws Plugin Published4745a58 feat(ws): add out/list command 0.9.2 → 0.9.3 (minor)
✓ Committed, pushed, synced </example>
<example name="validation_report"> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Validation Report: 005-auth ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━Schema: ✓ Valid YAML frontmatter Achievement: ✓ Behavioral focus Effects: ✓ 3 Given-When-Then Capabilities: ✓ Links valid Actors: ⚠ 1 unknown actor ID
Overall: NEEDS_ATTENTION ⚠ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ </example>
<example name="toon_return"> ```toon @type: ItemList @id: outcome-list-result numberOfItems: 11summary.total: 11 summary.queued: 3 summary.completed: 5
outcome{id,name,stage|tab}: 005-auth Implement Auth in-progress 006-mgmt User Management ready
</example> </examples>