Skip to content
Development
Skill

/markdown-formatting

Enforces markdown line-wrap and structure rules for clean git diffs. Use when writing or editing any committed markdown documentation or skill file.

From plugin
claude-night-market
337200 skills59 agents162 commands1 MCP
Install
$ npx -y skills add athola/claude-night-market --skill markdown-formatting --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/markdown-formatting

Context preview

The summary Claude sees to decide when to auto-load this skill.

Enforces markdown line-wrap and structure rules for clean git diffs. Use when writing or editing any committed markdown documentation or skill file.

SKILL.md

markdown-formatting.SKILL.md
name: markdown-formatting
description: Enforces markdown line-wrap and structure rules for clean git diffs. Use when writing or editing any committed markdown documentation or skill file.
globs: "**/*.md"
alwaysApply: false
category: cross-plugin-patterns
tags:
  - markdown
  - formatting
  - documentation
  - line-wrapping
  - style
tools: []
complexity: low
model_hint: fast
estimated_tokens: 800
progressive_loading: true
modules:
  - modules/wrapping-rules.md
dependencies: []

Markdown Formatting Conventions

When To Use

  • Writing or editing any markdown documentation
  • Reviewing prose for line-wrapping compliance
  • Generating markdown from plugins (scribe, sanctum, etc.)

When NOT To Use

  • Editing code blocks, tables, or frontmatter (these have

their own formatting rules)

  • Quick scratch notes that will not be committed

These conventions apply to all markdown documentation generated or modified by any plugin. The goal: produce prose that creates clean, reviewable git diffs and reads well on mobile devices.

Quick Reference

When writing or editing markdown prose:

1. **Wrap prose at 80 chars** using hybrid wrapping (prefer sentence/clause boundaries over arbitrary word breaks) 2. **Blank line before and after every heading** 3. **ATX headings only** (`# Heading`, never setext underlines) 4. **Blank line before every list** 5. **Reference-style links** when inline links push lines beyond 80 chars

What to Wrap

Wrap these content types at 80 characters:

  • Paragraphs (flowing prose text)
  • Blockquote text (the content after `>`)
  • List item descriptions (text after `- ` or `1. `)
  • Descriptions in definition lists

What NOT to Wrap

Never wrap or reflow these content types:

  • **Tables**: pipe-delimited rows stay on one line
  • **Code blocks**: fenced (` ``` `) or indented content
  • **Headings**: lines starting with `#`
  • **Frontmatter**: YAML/TOML between `---` or `+++`
  • **HTML blocks**: raw HTML elements
  • **Link definitions**: `[id]: url` reference lines
  • **Image references**: `![alt](url)` on their own line
  • **Single-line list items**: short bullets that fit on one line

Wrapping Algorithm (Summary)

For each prose paragraph:

1. If a sentence fits within 80 chars, keep it on one line 2. If a sentence exceeds 80 chars, break at the nearest **sentence boundary** (`. ` `! ` `? `) before column 80 3. If no sentence boundary, break at the nearest **clause boundary** (`, ` `; ` `: `) before column 80 4. If no clause boundary, break before a **conjunction** (`and ` `but ` `or `) before column 80 5. If none of the above, break at the last **word boundary** before column 80 6. Never break inside backtick spans, link text, or URLs

See `modules/wrapping-rules.md` for the full algorithm with examples.

Structural Rules

Blank Lines Around Headings

WRONG:
Some text.
## Heading
More text.

RIGHT:
Some text.

## Heading

More text.

Exception: the first line of a file may be a heading without a preceding blank line.

ATX Headings Only

WRONG:
Heading
=======

WRONG:
Subheading
----------

RIGHT:
# Heading

RIGHT:
## Subheading

Blank Line Before Lists

WRONG:
Some introductory text:
- Item one
- Item two

RIGHT:
Some introductory text:

- Item one
- Item two

Reference-Style Links for Long URLs

When an inline link pushes a line beyond 80 characters, use reference-style syntax:

WRONG (line too long):
See the [formatting guide](https://google.github.io/styleguide/docguide/style.html) for details.

RIGHT:
See the [formatting guide][fmt-guide] for details.

[fmt-guide]: https://google.github.io/styleguide/docguide/style.html

Place link definitions at the end of the current section or at the end of the document. When the same URL appears multiple times, use a single shared reference definition.

Short inline links that keep the line under 80 chars are fine:

OK:
See [the guide](https://example.com) for details.

Exit Criteria

  • [ ] All prose lines in the edited file wrap at 80 characters or

fewer; verified with `awk 'length>80' <file>` returning no matches on prose blocks (tables, code, headings, frontmatter excluded)

  • [ ] Every heading has a blank line before and after it (except

the first line of a file); no setext-style underline headings present

  • [ ] Every list is preceded by a blank line
  • [ ] Inline links that would push a line past 80 characters

converted to reference-style syntax with the URL definition at the end of the section or document

Read more
Ships withclaude-night-market

A plugin marketplace for Claude Code. Install only the plugins you need to run git workflows, code review, spec-driven development, and autonomous agents from inside your Claude Code session.

Get the whole plugin

Other skills on claude-night-market.