Claude-night-market markdown-formatting

install
source · Clone the upstream repo
git clone https://github.com/athola/claude-night-market
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/athola/claude-night-market "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/leyline/skills/markdown-formatting" ~/.claude/skills/athola-claude-night-market-markdown-formatting && rm -rf "$T"
manifest: plugins/leyline/skills/markdown-formatting/SKILL.md
source content

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.