← ClaudeAtlas

semantic-linefeedslisted

Use when writing or editing code comments, doc comments (godoc, javadoc, JSDoc, rustdoc, docstrings), or Markdown prose (README, CHANGELOG, docs, specs, rule files), and when a linefeeds hook reports fused, wrap, or long findings on text just written.
arloliu/semantic-linefeeds · ★ 3 · Code & Development · score 71
Install: claude install-skill arloliu/semantic-linefeeds
# Semantic Linefeeds Break lines by meaning, not by column. A line ends where a thought ends: one sentence per line, and a long sentence splits only at a real clause boundary. Column-wrapped prose reflows the whole paragraph when one clause changes; semantic linefeeds keep the diff to the line that actually changed. Do NOT imitate the wrapping of surrounding legacy text. Much existing godoc is column-wrapped at ~80 characters; that style predates this rule and is exactly what to avoid. ## Phase 1 — while drafting Hold only one habit while writing: **start a new line after every sentence** (`.`, `!`, `?`). Do not police line length while drafting — that is Phase 2's job, and doing both at once fails. ## Phase 2 — mechanical check (run after writing any prose block) Run the checker on every file whose prose you touched: ```bash python3 "${CLAUDE_PLUGIN_ROOT}/scripts/check_linefeeds.py" --file <files> ``` (If `CLAUDE_PLUGIN_ROOT` is unset, the script is at `../../scripts/check_linefeeds.py` relative to this SKILL.md.) Then judge each finding — the checker flags suspicion, it does not decide: - **fused** — split the line after the terminal punctuation. This one is almost always correct to fix. Before you split, read the line below. If the text after the stop does not finish its sentence and the next line opens on a lowercase word, the sentence continues there: join that text to the line below instead of leaving it standing alone. A line holding no whole thou