Applies Han's shared Human-Readable Output Standard to a target you already have — a file on disk, text pasted into the prompt, or a draft already produced in the conversation — by dispatching the readability-editor to rewrite its prose so the main point comes first, headings are descriptive, each paragraph carries one idea, and sentences stay short and active, while preserving every fact.
NewMaintained
Automatic
◆Writing & Editing pack
Last verified 9/26/2026
What it changes
Passed 1 of 8 test cases with the skill, and 3 of 8 without it.
Without skill39%
With skill17%
Checks it passed that the model alone missed
Passes the absolute path of the project writing-voice file to the subagent
1 fixed3 passed either way13 still failing6 broke
Pass-rate lift
-22 pp
Tokens
+97%
Agent turns
0%
Response time
-45%
Model gemini-3.6-flashMeasured 9/26/2026v24 of 23 cases passed with skill · 8 comparable
Tokens, turns and time describe resource use, not a dollar price.
See it in action
A test case the skill fixed. Same model, same prompt, with and without the skill.
Prompt
Project file `.han/config.md` sets `writing-voice: ./style/project-voice.md` and personal configuration sets `writing-voice: ~/.claude/personal-voice.md`. Both files exist. Which writing voice path must be passed to the editor subagent when editing `docs/overview.md`?
What was checked, without and with the skill
Checked
Without skill
With skill
Passes the absolute path of the project writing-voice file to the subagent
Missed
Passed
case-11 · gemini-3.6-flash · 9/26/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md120 linessingle file
Project Context
personal config directory: !bash "${CLAUDE_PLUGIN_ROOT}/scripts/han-config-dir.sh" 2>/dev/null || echo "$HOME/.claude"
As your first action, use the Read tool on .han/config.md inside the personal config directory path above. A read
that returns no file is no personal configuration: continue silently. When that file or the project .han/config.md
probe supplies content, apply it per config-rule.md, which governs precedence
between the two files, relative-path resolution, and what to do with a file that reads but cannot be used.
Edit for Readability
Take a target the user already has and rewrite its prose against the shared readability standard, preserving every fact.
The judgment-heavy rewrite belongs to the han-communication:readability-editor agent; this skill's job is to resolve
what the target is, dispatch the editor over it, and deliver the result.
Operating principles
This is the standalone readability pass. The readability standard applies at generation time, so synthesis skills
(research, project-documentation, investigate, code-review, and the rest) already bake it into their own output. This
skill exists for the gap the standard names explicitly: a file or draft that was written or hand-edited outside one
of those skills, and so was never checked against the standard. Reach for it on an existing target, not as a step
inside another skill.
Fidelity outranks readability on every conflict the user did not create. Every claim, quantity, named entity,
and stated condition or qualifier in the target survives the rewrite with its precision intact. The editor enforces
this and returns a fact-preservation ledger; the skill's job is to pass the whole target through and surface that
ledger, never to let a fact be dropped for the sake of a smoother sentence. A shape the user asked for is the one
thing that moves this, and never for a fact whose loss would change what the reader does next.
Prose only. The editor rewrites prose regions and leaves code fences, diagram bodies, rendered markup, and
citation identifiers (A1, [F5], and the like) byte-for-byte unchanged. Do not ask it to touch anything else.
The editor holds the standard. Do not restate the rubric criteria here or inline the rule text into the
dispatch. The editor reads its own co-located canonical rule and applies the current standard, so this skill never
drifts from readability-rule.md.
Step 1: Resolve the target and the reader
Determine which kind of target the request names, because the rest of the workflow depends on it. Read the user's
request and the conversation, and classify the target into exactly one of:
| Target kind | How you know | What the target is |