home / skills / partme-ai / full-stack-skills / ascii-table-renderer

ascii-table-renderer skill

/skills/ascii-table-renderer

This skill renders structured data as aligned ASCII tables with configurable borders, widths, overflow handling, and two variants for log or readable output.

npx playbooks add skill partme-ai/full-stack-skills --skill ascii-table-renderer

Review the files below or copy the command above to add this skill to your agents.

Files (4)
SKILL.md
2.0 KB
---
name: ascii-table-renderer
description: Render structured data as aligned ASCII tables (column width rules, truncate/wrap, border styles, compact/readable variants) for terminal/log/email.
license: Complete terms in LICENSE.txt
dependencies:
  - python>=3.8
---


## When to use this skill
**CRITICAL TRIGGER RULE**
- Use this skill ONLY when the user explicitly mentions the exact skill name: `ascii-table-renderer`.

**Trigger phrases include:**
- "ascii-table-renderer"
- "use ascii-table-renderer"
- "用 ascii-table-renderer 把列表打印成表格"
- "使用 ascii-table-renderer 生成 ASCII 表格(对齐/列宽)"

## Boundary
- Do not fetch data (DB/API). Only render and format output.
- Default borders are ASCII-only: `+ - |`.
- Out of scope: merged cells, multi-row headers, complex spanning layouts.

## How to use this skill
### Inputs
- headers (required)
- rows (required)
- maxWidth (default 80)
- maxColWidth (default 20)
- borderStyle (light | minimal, default light)
- overflow (ellipsis | wrap, default ellipsis)
- align (left | right | center, default left)

### Outputs (required)
- tableCompact (log-friendly)
- tableReadable (interactive-friendly)
- rules (width/truncation/null/alignment rules)

### Steps
1. Compute per-column widths: `min(maxColWidth, max(contentWidth))`
2. Handle overflow:
   - ellipsis: use `...` consistently
   - wrap: wrap within column width while keeping row alignment
3. Output two variants:
   - compact: minimal or fewer separators
   - readable: clearer borders

## Script
- `scripts/render_table.py`: render tables from JSON stdin (compact/readable)

## Examples
- `examples/basic.md`

## Quality checklist
1. Columns align consistently; each line does not exceed maxWidth
2. Null values are rendered as `-`
3. Copy/paste safe (no trailing spaces)

## Keywords
**English:** ascii-table-renderer, ascii table, align, columns, rows, truncate, wrap, terminal, log
**中文:** ascii-table-renderer, ASCII 表格, 对齐, 列宽, 截断, 换行, 终端, 日志, 工单

Overview

This skill renders structured data as aligned ASCII tables suited for terminals, logs, and email. It produces two variants — compact (log-friendly) and readable (interactive-friendly) — while enforcing column width, alignment, and overflow rules. The renderer is safe for copy/paste and ensures each output line does not exceed the configured max width.

How this skill works

The renderer computes per-column widths using min(maxColWidth, observed content width) and applies a global maxWidth cap across the row. It handles overflow by either truncating with a consistent ellipsis (...) or wrapping cell content while preserving row alignment. Two ASCII border styles are produced: a compact minimal variant and a clearer readable variant using ASCII characters (+ - |) as defaults.

When to use it

  • When you explicitly invoke the skill name ascii-table-renderer
  • Formatting tabular output for terminal display or plain-text emails
  • Generating log-friendly compact tables for machine-readable logs
  • Producing readable, bordered tables for interactive CLI output
  • Converting lists or JSON arrays into aligned ASCII tables

Best practices

  • Provide headers and rows; both are required to render a table
  • Set maxWidth to match your target medium (default 80) to avoid line wraps
  • Use maxColWidth to avoid extremely wide columns; defaults to 20
  • Pick overflow=ellipsis for logs and overflow=wrap for readable terminals
  • Keep align simple (left/right/center) to ensure predictable column layout

Example use cases

  • Render API response rows into a compact log-friendly ASCII table for CI logs
  • Display database query results in a readable bordered table in a terminal tool
  • Convert CSV or JSON arrays into email-friendly plain-text tables with wrapped cells
  • Produce side-by-side status reports where long notes are truncated with ellipsis
  • Generate aligned report previews in developer tools or REPL environments

FAQ

What inputs are required to render a table?

Provide headers (list) and rows (list of lists). Optional settings: maxWidth, maxColWidth, borderStyle, overflow, and align.

Does the renderer fetch external data?

No. It only formats the provided headers and rows; it does not perform any network or database fetches.

What border styles are supported?

Default ASCII-only borders use + - |. Two style variants are supported: light (default) and minimal (compact).

How are null or empty cells shown?

Null or missing values are rendered as a single dash (-) to preserve alignment and readability.