| name | diagram-ascii |
| description | Fast emoji-rich ASCII diagrams for brainstorming, folder/code overviews, and experiment progress tracking. Use when the user wants to sketch an idea, map a codebase, visualize a flow inline during discussion, or show pipeline progress. Output is plain-text with liberal emoji for visual punch. |
| metadata | {"version":"0.1.0","last_updated":"2026-05-31","summary":"Fast emoji-rich ASCII diagrams for brainstorming, folder/code overviews, and experiment progress tracking."} |
/diagram-ascii โ Brainstorm & Progress Diagrams
Purpose: quickly sketch ideas and track progress as emoji-rich ASCII. Optimized for speed, readability, and scannability โ not mechanical precision. For complex diagrams with many crossing arrows, suggest Mermaid instead.
๐จ Emoji-first โ use as many as possible. Emoji are the primary visual scaffolding of every diagram in this skill, not decoration. Use them densely: ๐ฆ every box, ๐ท๏ธ every header cell, ๐ every row label, ๐ข every status indicator. More is better than fewer. Mix categories freely โ a diagram packed with 6+ emoji types is the goal, not a problem. If you can put an emoji somewhere, do.
Gallery (ref/) โ full worked examples. Read the relevant file when an inline template isn't enough:
| File | Use for |
|---|
ref/01-pipeline.txt | leftโright flows, branched, with error path |
ref/02-layered-arch.txt | 3-tier / 5-tier / event-driven systems |
ref/03-folder-tree.txt | 4 variants: basic / annotated / grouped / combined; before-after refactor |
ref/04-table.txt | status table, comparison matrix, decision log, risk grid |
ref/05-progress-tracker.txt | experiment dashboard, multi-run grid, burn-down |
ref/06-numbered-series.txt | multi-diagram answers with [N/TOTAL] headers |
ref/08-paper-section.txt | argument-style diagram for a paper method section (progression + contrast + synthesis combined) |
When to Use
- Mid-discussion idea plotting โ "sketch how this works"
- Folder / codebase โ visual overview
- Experiment progress tracking (pipeline stages, status grids)
- Any text diagram where emoji add scannable meaning
When to Defer
- Crossing arrows โ suggest Mermaid
- User wants a rendered image โ suggest Mermaid / PlantUML / image tool
- More than ~20 nodes โ split into sub-diagrams or use a real diagramming tool
Inputs
| Input | Upstream step | Output shape |
|---|
| Natural language | Extract nouns โ boxes, verbs โ arrows | Inline sketch |
| Folder path | Glob top-level dirs; peek README | Tree, .txt file |
| Code area | Grep imports/calls; map modules | architecture.txt |
| Experiment run | Capture stages + their current state | progress.txt |
| Ongoing discussion | Capture the concept just named | Inline block, no file |
Output
- Inline (brainstorm default): fenced
```text block in chat.
- Saved file:
.txt (never .md โ markdown breaks monospace alignment).
Save Location
- User specifies the path when invoking this skill. Example: "sketch the pipeline and save to
examples/hainn-v0319/architecture.txt".
- If no path given: default to CWD, confirm with user before writing.
- If only a directory given: pick a sensible filename (
architecture.txt, flow.txt, pipeline.txt).
Folder convention: one diagram/ per module
When a repo or module accumulates 4+ ASCII diagrams describing it, put them in a dedicated diagram/ folder at the module's root โ not in docs/ next to prose docs. This keeps the "things you scan visually" separate from the "things you read line-by-line."
my-module/
โโโ README.md
โโโ docs/ prose docs (md, tutorials, references)
โโโ diagram/ โ ASCII diagrams live here
โโโ 00-index.txt navigation across this diagram set
โโโ 01-repo-layout.txt
โโโ 02-architecture.txt
โโโ canvas-YYMMDD.excalidraw produced by diagram-ascii-canvas
- Numbered prefix (
00-, 01-, โฆ) for ordering and easy reference ("see 03").
- Cross-references between diagrams use the relative path inside the folder (e.g.
diagram/03-foo.txt), not docs/.... After a rename this stays correct.
_pngs/ (intermediate renders) and canvas-*.excalidraw are produced by diagram-ascii-canvas and can stay in the same folder; gitignore them if you want.
When you're producing a new diagram for a module that doesn't yet have a diagram/ folder, create it. Don't add to docs/.
Style โ Emoji-Rich
Use as many emoji as possible. Pull from multiple categories in the same diagram โ combining People + Services + Data + Status in one sketch is encouraged, not "spam." The palette below is a menu, not a quota.
| Category | Examples |
|---|
| People | ๐ง user ยท ๐ฅ team ยท ๐งโ๐ป dev |
| Services | ๐ค agent ยท ๐ web ยท ๐ง tool ยท โ๏ธ process ยท ๐ฆ package |
| Data | ๐๏ธ database ยท ๐ metrics ยท ๐ folder ยท ๐ file ยท ๐ฅ input ยท ๐ค output |
| AI / Model | ๐ง model ยท ๐ฏ target ยท ๐ก idea |
| Flow | ๐ loop ยท ๐ branch ยท โก event ยท ๐ launch |
| Status | โ
done ยท โ failed ยท โณ running ยท โฌ pending ยท ๐ฅ hot ยท ๐ข๐ก๐ด |
| Experiment | ๐งช experiment ยท ๐ฅ load ยท โ๏ธ preprocess ยท ๐ง train ยท ๐ eval ยท ๐ deploy |
| Issues | ๐ฉ flag ยท โ ๏ธ warning ยท ๐ bug |
Box & Arrow Defaults
Single-line ASCII unless cramped. Don't mix styles in one diagram.
+----------+ +----------+ +----------+
| ๐ฅ Input |----->| ๐ง Model |----->| ๐ค Save |
+----------+ +----------+ +----------+
Section dividers (for canvas-friendly files)
When a .txt is going to be split into sections (for diagram-ascii-canvas, or just for human scanning), put an explicit divider line between sections:
โยง Section Title โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ASCII fallback when Unicode is awkward to type:
--ยง Section Title ------------------------------------
Format:
- Begins with one or more dashes (
โ or -), then ยง, then the title.
- Optional trailing run of dashes pads the line out for visual weight (โ 60 chars total looks good).
- The marker line itself is consumed by the canvas tool (not rendered into the PNG); only the title is kept and shown above the section's image.
- The
ยง symbol is the unambiguous trigger โ it's what makes detection 100% precise. Don't use stand-alone === or --- lines to mark sections; box borders use those, and the canvas tool will not split on them.
Example skeleton:
๐ณ Repo Layout
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
(intro paragraph + headline diagram)
โยง Folder tree โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ฆ my-project/
โโโ ๐ src/
โโโ ๐ tests/
โยง Navigation hint โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ "Where is X?"
โโ HTTP route? โ app/main.py
โโ MCP tool? โ app/mcp_server.py
Tool behavior:
- File with markers โ one PNG per section (titles from the marker).
- File with no markers โ one PNG for the whole file (the canvas tool does not guess section boundaries from box borders).
Light Rules
- Spaces only โ no tabs.
- Box width โ longest label + 4 (padding + borders).
- Gutters โฅ 3 chars horizontally; โฅ 1 row vertically.
- Tables: pad cells in the same column to equal width; all
| separators must line up vertically.
- Emoji in tables: prefer emoji in headers/labels rather than inside cells โ monospace fonts render emoji as 1 or 2 character widths inconsistently. If emoji must appear in cells, assume 2 widths and pad accordingly.
- If output drifts after writing, re-render from scratch โ don't patch individual lines.
- Numbered series: when a response contains 3 or more diagrams, prefix each with a numbered header (see template below) so the user can reference them by number in follow-up questions.
Folder Tree Rules
- Use Unicode tree characters (
โโโ, โโโ, โ), never ASCII dashes for tree lines.
- Annotations go to the right of the path, separated by 2+ spaces, padded to a consistent column across siblings.
- Floating group labels (e.g.
(umbrella)) sit on their own line, indented to align with the โ column of their parent โ not on the same line as the path entry.
- Blank lines between sibling groups are allowed and encouraged for scannability โ they do not break the tree structure.
- Omit
๐ / ๐ emoji when the path suffix (trailing / or extension) already makes the type obvious.
Templates
Pipeline (left โ right)
+----------+ +------------+ +----------+
| ๐ฅ Load |---->| โ๏ธ Process |---->| ๐ค Save |
+----------+ +------------+ +----------+
Layered (top โ bottom)
+-------------------+
| ๐ง User |
+-------------------+
|
+-------------------+
| ๐ API |
+-------------------+
|
+-------------------+
| ๐๏ธ Database |
+-------------------+
Folder tree โ basic
๐ฆ my-project/
โโโ ๐ src/
โ โโโ ๐ index.ts
โ โโโ ๐ components/
โโโ ๐ tests/
โโโ ๐ README.md
Folder tree โ annotated (inline role labels, right-aligned to a consistent column)
code/
โโโ haipipe/ # core framework (editable)
โโโ hainn/ # ML models (editable)
โโโ haifn/ # generated fns (DO NOT EDIT)
Folder tree โ grouped (blank lines between logical clusters; floating callout on its own line)
Tools/plugins/haipipe-toolkit/skills/
โโโ task/
โโโ haipipe-task/SKILL.md
โ
โโโ 1_data/
โ (umbrella)
โ โโโ haipipe-data/SKILL.md
โ โโโ haipipe-data-source/SKILL.md
โ โโโ haipipe-data-record/SKILL.md
โ โโโ haipipe-data-case/SKILL.md
โ โโโ haipipe-data-aidata/SKILL.md
โ
โโโ 2_nn/
โ โโโ haipipe-nn/SKILL.md
โ
โโโ 3_end/
โ โโโ haipipe-end/SKILL.md
โ
โโโ 4_individual/
โโโ haipipe-individual/SKILL.md
Folder tree โ annotated + grouped (combines both: role labels and blank-line clusters)
code-dev/1-PIPELINE/
โ
โโโ 1-Source-WorkSpace/ โ code/haifn/fn_source/
โโโ 2-Record-WorkSpace/ โ code/haifn/fn_record/
โโโ 3-Case-WorkSpace/ โ code/haifn/fn_case/
โโโ 4-AIData-WorkSpace/ โ code/haifn/fn_aidata/
โ
โโโ 5-Instance-WorkSpace/ โ code/haifn/fn_model/
โ (run builder to regenerate)
โ
โโโ 6-Endpoint-WorkSpace/ โ code/haifn/fn_endpoint/
Branch (fan-out)
+----------+
+-->| โ
Pass |
+----------+ / +----------+
| ๐ง Model |--+
+----------+ \ +----------+
+-->| โ Fail |
+----------+
Table (column widths equal, separators aligned)
+----------+---------+----------+
| Name | Type | Status |
+----------+---------+----------+
| Client | Node | โ
OK |
| API | Service | โณ Busy |
| Database | Storage | โ
OK |
+----------+---------+----------+
Progress tracker (experiment pipeline with status)
๐งช Experiment: hainn-v0319
+------------+------------------+------------+
| Stage | Task | Status |
+------------+------------------+------------+
| ๐ฅ Load | Pull raw CGM | โ
Done |
| โ๏ธ Clean | Dedupe + impute | โ
Done |
| ๐ง Train | Fit ConvLSTM | โณ Running |
| ๐ Eval | ROC / AUC | โฌ Pending |
| ๐ Deploy | Push endpoint | โฌ Pending |
+------------+------------------+------------+
Compact inline form:
๐ฅ Load โ โ๏ธ Clean โ ๐ง Train โ ๐ Eval โ ๐ Deploy
โ
โ
โณ โฌ โฌ
Numbered series (3+ diagrams in one response โ number each so it's easy to reference)
โโ [1/3] Overall Architecture โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
+----------+ +------------+ +----------+
| ๐ฅ Input |---->| ๐ง Model |---->| ๐ค Output|
+----------+ +------------+ +----------+
โโ [2/3] Folder Layout โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
code/
โโโ haipipe/ (editable)
โโโ hainn/ (editable)
โโโ haifn/ (generated)
โโ [3/3] Stage Status โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ฅ Load โ โ๏ธ Clean โ ๐ง Train โ ๐ Eval โ ๐ Deploy
โ
โ
โณ โฌ โฌ
Header format: โโ [N/TOTAL] Title โโ (dashes fill to ~60 chars). Omit the total if the count isn't fixed upfront.
Logical relations (for argument-style diagrams)
When diagramming a paper section, an idea, or a design rationale, the logical glue matters as much as the boxes. Use these primitives so progression / contrast / synthesis are visible at a glance.
1. Progression โ A builds on B builds on C
+-------+ +-----------+ +-------------+
| ๆด็ด | โโโถ | + ็บฆๆ | โโโถ | + ๅไบๅฎ |
+-------+ +-----------+ +-------------+
๐ ๐ โ
weak working best
Right-pointing chain. Each step shows the delta (+ X). Bottom emoji is a status thermometer.
2. Contrast / reversal โ "you'd expect X, but actually Y"
๐ค intuition โก reality
+-------------+ โ +-------------+
| more data | โ โ โ โถ | accuracy โ |
| โ better | fails | (noise wins)|
+-------------+ +-------------+
โ ๏ธ
"scale โ free"
Dashed arrow โ โ โโถ for "expected-but-disproven" causation. Tagline between.
3. Synthesis โ many sources, one conclusion (fan-in)
๐ exp A โโ
๐ exp B โโผโโโถ ๐ฏ shared finding
๐ exp C โโ
4. Tension / trade-off
๐ฏ
๐ accuracy โโโ ?? โโโถ โก speed
โ
๐ค our method
(Pareto corner)
5. Causation vs correlation (use different arrow styles)
A โโโถ B causal (thick)
A โ โโถ B only correlated (dashed)
A โโโถ B implies / theorem (double)
A โฏ B counter-example / does NOT imply
6. Hypothesis tree โ claim with branches of support
๐ฏ our claim
โโโโโโโโโโดโโโโโโโโโ
โ
support 1 โ
support 2
(exp ยง4.2) (theory ยง3)
โ โ
โโโดโโ โโโดโโ
๐ ๐ ๐ ๐
Paper section โ recommended pattern
| Section | Pattern(s) | Why |
|---|
| Intro / motivation | contrast + tension | sets up the gap |
| Related work | progression / matrix | "the line that leads to us" |
| Method | progression chain + causal arrows | step + dependency |
| Experiments | fan-in synthesis | many setups โ one finding |
| Ablation | matrix or progression | "remove X, drop to Y" |
| Discussion | hypothesis tree | claim โ supports โ evidence |
| Conclusion | synthesis triangle | wrap everything into one line |
For a worked-through method section using all of the above, see ref/08-paper-section.txt.
Anti-patterns (suggestive)
- Mixing ASCII
+--+ with Unicode โโโโ in one diagram
- Tabs instead of spaces
- Plain-text labels with no emoji โ looks dead; defeats the purpose of this skill. If a box, header, row, or status has no emoji, you've under-decorated it.
- 15+ nodes with crossings โ use Mermaid instead
See Also
-
haipipe-board โ owns the board FOLDER; this skill owns how to draw the diagrams that go inside it. Clean split:
๐ haipipe-board the CONTAINER <unit>/diagram/<NN>-<topic>-<YYMMDD>/ โ dated at BIRTH
one folder per TOPIC; one `Q<A><n>-<slug>.md` per question
the comment protocol: `> JL:` ยท `>> CC{MMDD}:`
โ๏ธ diagram-ascii the CONTENT the boxes, arrows, trees, emoji inside each `## ๅพ`
When design decisions must persist, put them on a board (haipipe-board) โ do not invent a per-session log file here.
-
diagram-ascii-canvas โ when you've produced 3+ .txt diagrams in one folder and the user wants to see them all on one canvas (for spatial layout, drawing connections between them, design review). Screenshots each .txt and embeds them into a single .excalidraw file. After producing multiple .txt files, offer this as a follow-up: "่ฆๆ่ฟไบๆผๆไธๅผ Excalidraw ๅคงๅพๅ๏ผ"