agentleFS
kaynetikkaynetik/skills/markdown-documentation/SKILL.md

markdown-documentation

Skill1 starsChanged 8 months agoMITView on GitHub

Standards and practices for Markdown and GitHub Flavored Markdown (GFM) documentation. Covers heading hierarchy, prose style, GFM alerts, task lists, collapsible sections, Mermaid diagrams, tables, badges, and anti-patterns. Enforces no-AI-slop rules: no Unicode artifacts, no emojis, no filler language, no hard line breaks in prose. Use when writing READMEs, docs pages, changelogs, API docs, contributing guides, or any Markdown file.

The file

Show its rules and text

We split this skill into the rules it gives an agent

37 rules. About 0 are common, 27 are distinctive, and 10 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈27

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 10

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Never fabricate information.

    line 18
  2. Distinctive:

    Never generate filler text, placeholder prose, or generic content to pad length.

    line 19
  3. Distinctive:

    Every sentence must carry meaning.

    line 20
  4. Distinctive:

    Avoid weasel words: "simply", "just", "easily", "obviously", "of course".

    line 21
  5. Distinctive:

    Avoid hollow qualifiers: "robust", "powerful", "seamless", "cutting-edge", "world-class", "state-of-the-art".

    line 22
  6. Distinctive:

    Do not produce marketing copy disguised as documentation.

    line 23
  7. Distinctive:

    Write for a technical reader who values precision over politeness.

    line 24
  8. Distinctive:

    Never use emoji characters in documentation output.

    line 28
  9. Very specific:

    Never use emoticon sequences (:), :/, etc.).

    line 29
  10. Very specific:

    Never use GitHub emoji shortcodes (:rocket:, :sparkles:, etc.).

    line 30
  11. Very specific:

    Other invisible markers: No soft hyphens (U+00AD), no word joiners (U+2060), no BOM characters.

    line 43
  12. Very specific:

    Run a mental check on every output: would a hexdump reveal anything beyond standard ASCII printable characters, newlines, and tabs?

    line 45
  13. Very specific:

    Never use Unicode box-drawing characters (─ U+2500, ━ U+2501, ═ U+2550, etc.) as decorative section separators in code comments or …

    line 49
  14. Distinctive:

    When writing essays and blogs

    line 68
  15. Very specific:

    Use ## H2 for major sections.

    line 99
  16. Very specific:

    Use ### H3 for subsections.

    line 100
  17. Very specific:

    Never skip levels (e.g., ## to ####).

    line 101
  18. Distinctive:

    Keep headings concise and descriptive -- they double as anchor links.

    line 102
  19. Distinctive:

    Use lists when presenting 3+ related items.

    line 128
  20. Distinctive:

    Never split a sentence with a hard line break to enforce paragraph brevity.

    line 129
  21. Distinctive:

    Always specify the language in fenced code blocks.

    line 133
  22. Distinctive:

    Use inline code for: file names, function names, variable names, CLI commands, config keys.

    line 134
  23. Distinctive:

    Use code blocks for: multi-line code, configuration files, terminal output.

    line 135
  24. Distinctive:

    Use descriptive link text.

    line 139
  25. Distinctive:

    Prefer relative paths for internal documentation links.

    line 140
  26. Distinctive:

    Verify links are not broken before finalizing.

    line 141
  27. Distinctive:

    Always include alt text that describes the image content.

    line 145
  28. Distinctive:

    Never use images as the sole carrier of textual information (accessibility).

    line 146
  29. Distinctive:

    Prefer SVG or diagrams-as-code (Mermaid) over raster screenshots where possible.

    line 147
  30. Distinctive:

    Use GitHub's alert syntax for callouts:

    line 153
  31. Distinctive:

    Use for supplementary content that would otherwise clutter the main flow:

    line 181
  32. Distinctive:

    Prefer Mermaid over image-based diagrams when the diagram is structural (flowcharts, sequences, ER diagrams):

    line 194
  33. Very specific:

    Do not impose artificial line length limits on prose.

    line 209
  34. Distinctive:

    Never break a sentence across lines just to stay under an arbitrary character limit.

    line 217
  35. Very specific:

    Use alignment syntax (:---, :---:, ---:) when it aids comprehension.

    line 222
  36. Distinctive:

    Prefer tables over nested lists for structured data with consistent fields.

    line 223
  37. Distinctive:

    Place badges immediately after the H1 title, before any prose.

    line 227

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Markdown Documentation

Overview

Standards and practices for creating well-formatted, readable documentation using Markdown and GitHub Flavored Markdown (GFM).

Critical Rules -- Writing Integrity

These rules are non-negotiable and override all other instructions.

No AI Slop

  • Never fabricate information. If unsure, say so explicitly.
  • Never generate filler text, placeholder prose, or generic content to pad length.
  • Every sentence must carry meaning. Remove anything that restates the obvious.
  • Avoid weasel words: "simply", "just", "easily", "obviously", "of course".
  • Avoid hollow qualifiers: "robust", "powerful", "seamless", "cutting-edge", "world-class", "state-of-the-art".
  • Do not produce marketing copy disguised as documentation.
  • Write for a technical reader who values precision over politeness.

No Emojis or Emoticons

  • Never use emoji characters in documentation output.
  • Never use emoticon sequences (:), :/, etc.).
  • Never use GitHub emoji shortcodes (:rocket:, :sparkles:, etc.).
  • Exception: only when the user explicitly requests them.

No Hidden Unicode Artifacts

Prevent all invisible or suspicious Unicode characters that mark content as AI-generated:

  • Em dash (--): Use two hyphens (--) or restructure the sentence. Never output --.
  • En dash (-): Use a regular hyphen (-).
  • Zero-width spaces (U+200B), zero-width joiners (U+200D), zero-width non-joiners (U+200C): Never include these.
  • Non-breaking spaces (U+00A0): Use regular spaces only.
  • Smart/curly quotes (""''): Use straight quotes (" ') exclusively.
  • Ellipsis character (...): Use three periods (...) instead.
  • Other invisible markers: No soft hyphens (U+00AD), no word joiners (U+2060), no BOM characters.

Run a mental check on every output: would a hexdump reveal anything beyond standard ASCII printable characters, newlines, and tabs? If yes, fix it.

No Unicode Separator Decorators in Code or Config

Never use Unicode box-drawing characters (─ U+2500, ━ U+2501, ═ U+2550, etc.) as decorative section separators in code comments or configuration files. This pattern:

# ── section name ──────────────────────────────────────────────
// ── State ─────────────────────────────────────────────────────

is AI slop. It appears in no Rust, TOML, Solidity, or any other language standard. It is invisible noise in diffs, fails to render meaningfully in most editors, and is a reliable marker of low-quality AI-generated content. Use plain labels or ASCII hyphens if a visual break is truly needed:

# section name
// ---

When to Apply

  • README files
  • Documentation pages
  • GitHub/GitLab wikis
  • When writing essays and blogs
  • Technical writing and guides
  • Project documentation
  • Changelog and contributing guides
  • API documentation

Documentation Structure

File Organization

docs/
  README.md
  CONTRIBUTING.md
  CHANGELOG.md
  LICENSE
  CODE_OF_CONDUCT.md
  SECURITY.md
  guides/
    getting-started.md
    installation.md
    configuration.md
  api/
    authentication.md
    endpoints.md
    errors.md

Heading Hierarchy

  • One # H1 per document (the title).
  • Use ## H2 for major sections.
  • Use ### H3 for subsections. Rarely go deeper than ####.
  • Never skip levels (e.g., ## to ####).
  • Keep headings concise and descriptive -- they double as anchor links.

Table of Contents

Include a ToC for documents exceeding ~3 screens of content:

## Table of Contents

- [Section One](#section-one)
- [Section Two](#section-two)
  - [Subsection](#subsection)

Writing Style

Tone

  • Direct and declarative. Prefer imperative mood for instructions.
  • Technical accuracy over conversational warmth.
  • Assume the reader is competent. Do not over-explain standard concepts.

Sentence Structure

  • One idea per paragraph. Paragraphs should be focused, not artificially short.
  • Lead with the most important information.
  • Use lists when presenting 3+ related items.
  • Never split a sentence with a hard line break to enforce paragraph brevity.

Code References

  • Always specify the language in fenced code blocks.
  • Use inline code for: file names, function names, variable names, CLI commands, config keys.
  • Use code blocks for: multi-line code, configuration files, terminal output.

Links

  • Use descriptive link text. Never use "click here" or "this link".
  • Prefer relative paths for internal documentation links.
  • Verify links are not broken before finalizing.

Images

  • Always include alt text that describes the image content.
  • Never use images as the sole carrier of textual information (accessibility).
  • Prefer SVG or diagrams-as-code (Mermaid) over raster screenshots where possible.

GFM-Specific Features

Alerts (Admonitions)

Use GitHub's alert syntax for callouts:

> [!NOTE]
> Supplementary information the reader should be aware of.

> [!TIP]
> Advice to help the reader succeed.

> [!IMPORTANT]
> Key information the reader needs to know.

> [!WARNING]
> Urgent information about potential problems.

> [!CAUTION]
> Consequences of an action that could cause harm.

Task Lists

- [x] Completed item
- [ ] Pending item

Collapsible Sections

Use for supplementary content that would otherwise clutter the main flow:

<details>
<summary>Additional details</summary>

Content hidden by default.

</details>

Mermaid Diagrams

Prefer Mermaid over image-based diagrams when the diagram is structural (flowcharts, sequences, ER diagrams):

```mermaid
graph TD
    A[Start] --> B{Decision}
    B -->|Yes| C[Action]
    B -->|No| D[Other action]
```

Formatting Rules

Line Length

Do not impose artificial line length limits on prose. Never insert hard line breaks (\n) mid-sentence or mid-paragraph to meet a column width. Let paragraphs flow as continuous text -- renderers wrap naturally and hard breaks create broken, choppy output in rendered views.

Hard line breaks are only appropriate in:

  • Code blocks and terminal output (where they are structurally meaningful)
  • Markdown tables (one row per line)
  • List items that are genuinely separate entries
  • Headings

Never break a sentence across lines just to stay under an arbitrary character limit.

Tables

  • Align columns for readability in source.
  • Use alignment syntax (:---, :---:, ---:) when it aids comprehension.
  • Prefer tables over nested lists for structured data with consistent fields.

Badges

Place badges immediately after the H1 title, before any prose. Use shields.io format:

# Project Name

[![Build](https://img.shields.io/github/actions/workflow/status/user/repo/ci.yml)](...)
[![License](https://img.shields.io/github/license/user/repo)](LICENSE)

Anti-Patterns

  • Walls of text with no visual breaks.
  • Headings that don't describe their section content.
  • Mixed HTML and Markdown without justification.
  • Absolute paths to local files in documentation.
  • Language-unspecified code blocks.
  • Nested blockquotes beyond two levels.
  • Tables with excessive columns that break on narrow viewports.
  • Hard line breaks mid-sentence or mid-paragraph to enforce a column limit. Prose must flow as continuous text; let the renderer wrap it.

Additional Resources

  • For full Markdown syntax reference, see reference.md
  • For README and documentation templates, see templates.md

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.