apply-richformat
Give any text-bearing surface (app screen, document, report, README, chat answer, CLI output, table) visible rank and separation.
Skill by mhshaon98
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/mhshaon98-apply-richformat
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/apply-richformat
What's inside
- Skill name
apply-richformat- Description
- Give any text-bearing surface (app screen, document, report, README, chat answer, CLI output, table) visible rank and separation. Use when building or reviewing one, or on "rich formatting", "text vomit", "needs better structure", "make this readable".
- License
- MIT
- Instructions
- 138 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Apply Rich Formatting
The same request comes back on project after project, in the same words: *"it looks
like someone vomited text"*, *"needs richer formatting and proper UI separation"*.
This skill exists so nobody has to ask.
**The standing instruction it encodes:** any surface you produce is formatted to the
standard a reviewer would ask for, the first time, without being prompted.
## The diagnosis — it is almost never density
The instinct is to blame the amount of text and start cutting. That is usually wrong,
and cutting real information to fix a layout problem makes the surface worse.
**The actual cause is undifferentiated rank.** A block reads as vomit when:
- every part of it has the same visual weight, and
- the gap between two *parts of one item* is the same as the gap between two
*separate items*.
When those two boundaries look identical, the eye cannot find where one thing ends and
the next begins, so eight perfectly legible parts read as one wall. Fixing it means
establishing rank — not deleting content.
> Worked example. An optimizer finding was a title, a paragraph,
> a value pair, an evidence list, a tick list and an outcome, stacked at one indent with
> 2-8px between every part, and 1px between two findings. Nothing was too long. Adding
> one indent, turning the value pair into a labelled grid, and naming the sub-blocks
> fixed it without removing a single fact.
## Step 1 — name the medium out loud
The vocabulary is different in each, and using the wrong one is its own kind of slop.
State it in one line before you format anything.
| Medium | What "rich" means here |
|---|---|
| **App / UI surface** | Indent spines, hairline rules, labelled sub-blocks, definition grids, chips, per-row consequence notes. **Governed by the project's design system** — go to Step 2. |
| **Document / README / report** | Headings that carry rank, tables where there are 2+ dimensions, fenced code, callouts, short paragraphs, tight lists. |
| **Chat answer** | Bold *lead-ins* that name the claim, short paragraphs, lists only for genuinely parallel items, code fences for anything runnable. |
| **Terminal / CLI output** | Alignment and columns, a stable prefix per line kind, colour only where it encodes state and always with a word too. |
| **Data / table** | One row per record, one column per attribute, units in the header, numbers right-aligned and tabular. |
## Step 2 — obey the project's design system first (UI only)
**Never invent a visual language.** Before adding a single style, read in this order and
build only from what you find:
1. The project's `CLAUDE.md` or design doc — a bound design language beats everything
else here.
2. Your own design-system skill or brand guideline, if you have one.
3. The project's own token file and existing component classes.
If the project has a locked language, this skill supplies the *method* and that
language supplies every *value*. Reach for an existing class before writing a new one.
## Step 3 — inventory the kinds of information
Before formatting, list the distinct KINDS in the blob. Most walls contain four to eight
and treat them all identically. Typical kinds:
- a **claim** (what is true, in prose)
- a **machine value** (path, pid, version, size, duration, setting)
- **evidence / citation** (what was measured, verbatim)
- a **choice** (something to tick, pick, or fill)
- a **consequence** (what this costs, what it changes)
- an **outcome** (what happened, after the fact)
- an **instruction** (what to do next)
## Step 4 — the seven moves
Apply what the inventory calls for. Each move exists to fix a specific failure.
1. **One treatment per kind, everywhere.** A machine value looks the same in every
place a machine value appears. Inconsistency is what makes a surface feel improvised.
2. **A separation rank.** Gap between parts of an item **<** gap between items **<**
gap between sections. If two of those are equal, the wall comes back. This is the
single highest-value move.
3. **One left edge per item.** Everything below a heading hangs at one indent under it.
That spine is what makes a tall block scannable.
4. **Pull machine values out of the prose.** `X becomes Y` mid-paragraph must be read;
`Now: X` over `After: Y` can be *seen*. Labelled pairs and definition grids beat
sentences for anything a reader compares.
5. **Name every sub-block.** An unlabelled list of values under a paragraph reads as
more paragraph. A three-word caption ("What was measured", "Choose which ones") turns
it into a citation the reader can skip or check. Sentence case and quiet — an
uppercase tracked eyebrow on a sub-block is itself slop.
6. **Pair, never parallel.** If two lists must be read against each other, bind them
structurally into one block per item. Two parallel lists whose lengths can diverge is
a bug, not a layout: the reader is left inferring the mapping from position.
7. **Hold prose to a measure.** 65-75 characters. A 12px paragraph across a 1400px pane
is ~190 characters a line and will read as filler however good the sentence is.
## Step 5 — the restraint gate (formatting is not decoration)
Rich means *legible structure*, not more ornament. Every one of these is a failure:
- **Formatting that encodes nothing.** Bold, a chip, a colour or a rule that marks no
real distinction is noise. If you cannot say what a treatment *means*, delete it.
- **Bullets that destroy an argument.** Connected reasoning stays prose. Lists are for
genuinely parallel items.
- **A table for one dimension.** Two columns of "Item / Description" is a list.
- **Nested cards, stacked shadows, coloured bars on any card edge** (top, side or
bottom) — the single most-repeated slop finding there is.
- **Emoji in any user-facing output**, unless the user asks for it in that piece of work.
- **Em-dashes in user-facing copy.** Hyphens and math minus only.
- **State carried by colour alone.** Always a word too.
- **More than one signal-coloured fill per view**, counting persistent chrome.
- **Headings that describe the heading** ("Overview of the overview").
## Step 6 — verify by looking, not by reading the diff
- **UI:** render it. Screenshot both themes and a narrow width — browser automation, or
the project's own dev command. A formatting task is never done from
code review alone — a scrolling dialog that hides its own title and buttons looks
perfect in the diff.
- **Document / chat:** reread it cold. Can you find the answer to the obvious question
in under three seconds without reading a paragraph?
- **Terminal:** run it and look at the real column widths with real data.From mhshaon98/agent-skills, MIT.
More from mhshaon98/agent-skills
- 0.570score
client-cms
mhshaon98
Add a secure client-facing admin/content layer to the current website so nontechnical staff can edit approved content without touching source.
SkillAFreshness: AClaude Code +9 - 0.570score
eng-report
mhshaon98
Apply an engineering house style (vendor-manual layout, the user's own logo and colours, ANSI safety notices, document-control blocks) to a Word, Markdown or…
SkillAFreshness: AClaude Code +9 - 0.567score
commissioning-logger
mhshaon98
Only when explicitly asked to log a multi-step hands-on process (commissioning, wiring, bring-up, troubleshooting): "log this", "start a commissioning log"…
SkillAFreshness: AClaude Code +9 - 0.567score
doc-metadata
mhshaon98
Stamp the project's chosen author and company on every Word, Excel, PowerPoint or PDF file the agent creates or edits, and strip tool and AI fingerprints such…
SkillAFreshness: AClaude Code +9 - 0.567score
call-handoff
mhshaon98
Cold-start briefing from the project's newest handoff, open bugs and next-session prompt in two round-trips, then stop.
SkillAFreshness: AClaude Code +9 - 0.567score
compliance-check
mhshaon98
Check what is actually live (store listing and labels, published policies, deployed backend, retention jobs) against the code and published words, then work…
SkillAFreshness: AClaude Code +9 - 0.567score
codex-bridge
mhshaon98
Delegate a task to OpenAI Codex or get a non-Claude second review via the codex plugin.
SkillAFreshness: AClaude Code +9 - 0.567score
antigravity-bridge
mhshaon98
Delegate bounded work or get a third-provider opinion from Google's Antigravity CLI (agy, Gemini).
SkillAFreshness: AClaude Code +9 - 0.565score
new-project
mhshaon98
Bootstrap a brand-new project with proven architecture defaults and continuity scaffolding.
SkillAFreshness: AClaude Code +9 - 0.565score
bug-ledger
mhshaon98
Use when a bug is reported, found, fixed, or reopened, or before working in a bug-prone area.
SkillAFreshness: AClaude Code +9 - 0.565score
deepen
mhshaon98
Before planning a substantial build, redesign, feature, research question or subagent brief, answer four questions (what a top professional would add, the…
SkillAFreshness: AClaude Code +9 - 0.563score
app-audit
mhshaon98
Automated technical and disclosure compliance-assistance audit of a project: profiling, read-only specialist subagents, fresh research, optional Codex peer…
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 6, 2026 (23 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/mhshaon98/agent-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from mhshaon98
- 0.570score
client-cms
mhshaon98
Add a secure client-facing admin/content layer to the current website so nontechnical staff can edit approved content without touching source.
SkillAFreshness: AClaude Code +9 - 0.570score
eng-report
mhshaon98
Apply an engineering house style (vendor-manual layout, the user's own logo and colours, ANSI safety notices, document-control blocks) to a Word, Markdown or…
SkillAFreshness: AClaude Code +9 - 0.567score
call-handoff
mhshaon98
Cold-start briefing from the project's newest handoff, open bugs and next-session prompt in two round-trips, then stop.
SkillAFreshness: AClaude Code +9 - 0.567score
doc-metadata
mhshaon98
Stamp the project's chosen author and company on every Word, Excel, PowerPoint or PDF file the agent creates or edits, and strip tool and AI fingerprints such…
SkillAFreshness: AClaude Code +9 - 0.567score
commissioning-logger
mhshaon98
Only when explicitly asked to log a multi-step hands-on process (commissioning, wiring, bring-up, troubleshooting): "log this", "start a commissioning log"…
SkillAFreshness: AClaude Code +9 - 0.567score
antigravity-bridge
mhshaon98
Delegate bounded work or get a third-provider opinion from Google's Antigravity CLI (agy, Gemini).
SkillAFreshness: AClaude Code +9
Cite this page
apply-richformat skill. Agent Mart. https://agentmart.dev/skills/mhshaon98-apply-richformat (last updated 2026-10-24)