بنقرة واحدة
ascii-rendering
Render ASCII art (boxes, diagrams, scatter plots, tables) via the ascii_box and ascii_render tools.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Render ASCII art (boxes, diagrams, scatter plots, tables) via the ascii_box and ascii_render tools.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Decompose and route work through multi-agent Kanban systems
Task lifecycle management and workspace handoff for Kanban workers
Terminal-based Node.js debugging via V8 inspector protocol
Python debugging with pdb, debugpy, and remote attach
Root-cause investigation methodology before applying fixes
Enforce RED-GREEN-REFACTOR TDD cycle
| name | ascii-rendering |
| description | Render ASCII art (boxes, diagrams, scatter plots, tables) via the ascii_box and ascii_render tools. |
| version | 1.0.0 |
Render ASCII art back to the user — diagrams, boxed messages, scatter plots, tables. Use this instead of hand-drawing borders character-by-character (which is slow, token-heavy, and rarely lines up).
| You want to… | Use |
|---|---|
| Wrap a short message in a box (status, warning, callout) | ascii_box |
| Wrap text with a title banner ("STATUS", "ERROR", section header) | ascii_box with title |
| Build any structured diagram (multiple boxes, lines, plots) | ascii_render |
| Render numeric data as a scatter chart | ascii_render with a plot element |
| Draw a table grid with rows × columns | ascii_render with a table element |
| Need rich HTML output (interactive, styled, images) | not this skill — use the canvas_* tools |
ascii_box is the 90% shortcut. Reach for ascii_render when you need
more than one shape on the canvas.
ascii_box — text in a box{
"content": "Build green — all tests passing.",
"title": "STATUS",
"border": "double"
}
Output:
╔════════════════════════════════════════════════════════════╗
║[ STATUS ] ║
║Build green — all tests passing. ║
╚════════════════════════════════════════════════════════════╝
Parameters:
| Key | Required | Default | Notes |
|---|---|---|---|
content | yes | — | Text. Embedded \n honoured; long lines wrap at word boundaries. |
width | no | 60 | Max inner width. The box itself is two chars wider. Clamped to [4, 500]. |
border | no | single | One of single, double, bold, rounded. Unknown styles fall back to single. |
title | no | — | Rendered on the top edge as [ title ]. Dropped if it doesn't fit the box width. |
Border previews:
single: ┌─┐ double: ╔═╗ bold: ┏━┓ rounded: ╭─╮
│ │ ║ ║ ┃ ┃ │ │
└─┘ ╚═╝ ┗━┛ ╰─╯
ascii_render — declarative sceneSpecify a canvas size and a z-ordered list of elements:
{
"width": 40,
"height": 5,
"elements": [
{"type": "rectangle"},
{"type": "label", "params": {"text": "Hello, JaiClaw", "x": 12, "y": 2}}
]
}
Top-level keys:
| Key | Required | Default | Notes |
|---|---|---|---|
width | yes | — | Canvas width in characters. |
height | yes | — | Canvas height in characters. |
elements | yes | — | List of {type, params} entries; drawn in order. |
trim | no | true | Trim trailing whitespace from each rendered line. |
Every element accepts a params object. Position/size keys are
optional — omitting them uses a sensible default (centred, full canvas).
Coordinates: origin (0, 0) top-left; x grows right, y grows down.
| Type | Required params | Optional params | Use for |
|---|---|---|---|
rectangle | — | x, y, width, height | borders, panels, callouts |
line | x1, y1, x2, y2 | pen (single char) | connectors, arrows, dividers |
label | text | x, y, width | single-line text; truncated with … if too long |
text | text | x, y, width, height | multi-line text; word-wraps inside the region |
dot | — | x, y | a single marker |
circle | — | x, y, radius | circular outline |
ellipse | — | x, y, width, height | oval outline |
table | rows, columns (both > 0) | x, y, width, height | grid lines |
plot | points (list of [x, y]), width, height (> 0) | x, y | scatter chart |
{
"width": 60, "height": 7,
"elements": [
{"type": "rectangle", "params": {"x": 0, "y": 1, "width": 18, "height": 5}},
{"type": "label", "params": {"text": " source", "x": 1, "y": 3}},
{"type": "rectangle", "params": {"x": 42, "y": 1, "width": 18, "height": 5}},
{"type": "label", "params": {"text": " destination", "x": 43, "y": 3}},
{"type": "line", "params": {"x1": 18, "y1": 3, "x2": 42, "y2": 3, "pen": "─"}},
{"type": "label", "params": {"text": "transfer", "x": 26, "y": 2}}
]
}
{
"width": 50, "height": 14,
"elements": [
{"type": "rectangle"},
{"type": "label", "params": {"text": " latency vs load ", "x": 16, "y": 0}},
{"type": "plot", "params": {
"x": 2, "y": 2, "width": 46, "height": 10,
"points": [[0,1], [1,1.4], [2,2.7], [3,3.6], [4,4.1], [5,4.4], [6,4.7]]
}}
]
}
Both tools return ToolResult.Error on bad input with a precise message:
"Missing or non-positive 'width'.""Element[3] (table): 'columns' and 'rows' must be positive.""Element[2]: unknown element type 'marshmallow'."If you see an error, fix the indicated element and retry. Don't try to hand-render the result.
text (not label) — label
is single-line only.pen to a Unicode horizontal
(─) or vertical (│) for clean look; default is ● which is dotty
but visible everywhere.plot auto-normalises the points to fit the region; you don't have to
scale your data first.canvas_present) — ASCII has hard limits.