format-documentation
Guide for formatting Claude-facing documentation with proper line wrapping and YAML multi-line syntax
From catnpx claudepluginhub cowwoc/cat --plugin catThis skill uses the workspace's default tool permissions.
Format Documentation Skill
Use this skill when editing Claude-facing documentation files to ensure proper formatting.
Maximum Line Length
110 characters for Claude-facing documentation files
Format-Safe Wrapping Rules
| Format | Technique | Example |
|---|---|---|
| YAML frontmatter | Use > or ` | ` for multi-line |
| Markdown prose | Break at word boundaries | Natural paragraph flow |
| Code blocks | Do NOT wrap | Leave as-is (preserve formatting) |
| URLs | Do NOT wrap | Leave as-is (would break link) |
| Tables | Do NOT wrap | Leave as-is (would break structure) |
| Inline code | Do NOT wrap within backticks | Leave as-is |
YAML Multi-line String Syntax
Problem: Long YAML values exceed 110 character limit
Solution: Use folded (>) or literal (|) style operators
Example - Folded Style (for prose):
# BEFORE (unsafe - long line):
description: This is a very long description that exceeds 110 characters and would cause readability issues
# AFTER (safe - using folded style >):
description: >
This is a very long description that exceeds 110 characters
and would cause readability issues
Key YAML Operators:
>(folded): Newlines become spaces (use for prose)|(literal): Newlines preserved (use for code/commands)>-/|-: Same but strips trailing newline
Example - Literal Style (for code):
# For commands or code that must preserve line breaks
command: |
git commit -m "$(cat <<'EOF'
Multi-line commit message
with preserved formatting
EOF
)"
Markdown Wrapping
Technique: Break at word boundaries, maintain natural paragraph flow
Example:
# BEFORE (exceeds 110 chars):
This is a very long line of markdown prose that exceeds the 110 character limit and should be wrapped for readability.
# AFTER (wrapped at word boundary):
This is a very long line of markdown prose that exceeds the 110 character
limit and should be wrapped for readability.
Tips:
- Break after complete phrases when possible
- Maintain sentence flow across line breaks
- Avoid breaking in middle of inline code spans
- Preserve blank lines between paragraphs
Applies To
Claude-facing documentation (110 char limit):
CLAUDE.md.claude/configuration files (hooks, skills, commands)docs/project/protocol documentationdocs/code-style/*-claude.mddetection patterns
Human-facing documentation (no strict limit):
README.mdchangelog.mddocs/code-style/*-human.mdexplanations
Workflow
When editing Claude-facing docs:
- Check line length: Look for lines exceeding 110 characters
- Identify format: YAML frontmatter, markdown prose, code block, etc.
- Apply appropriate technique:
- YAML: Use
>or|operators - Prose: Break at word boundaries
- Code/URLs/Tables: Leave unwrapped
- YAML: Use
- Verify readability: Ensure wrapped text flows naturally
- Test if YAML: Validate YAML syntax if you modified frontmatter
Common Mistakes
❌ Wrapping URLs: Breaks links
❌ Wrapping code blocks: Breaks formatting
❌ Forgetting YAML operator: Long description without > still violates limit
❌ Breaking mid-word: Use word boundaries only
❌ Inconsistent indentation: YAML multi-line requires consistent indent (usually 2 spaces)
Examples
YAML Frontmatter - Before/After:
# BEFORE (violation):
description: Comprehensive guide for formatting markdown documentation with proper line wrapping and YAML syntax
# AFTER (correct):
description: >
Comprehensive guide for formatting markdown documentation with proper line
wrapping and YAML syntax
Markdown Prose - Before/After:
# BEFORE (violation):
This mandatory protocol ensures that all agents follow the complete backup-verify-cleanup workflow when performing git operations to prevent data loss.
# AFTER (correct):
This mandatory protocol ensures that all agents follow the complete
backup-verify-cleanup workflow when performing git operations to prevent data
loss.
Leave Unwrapped - Code Block:
# CORRECT (code block not wrapped even if long):
```bash
git commit -m "$(cat <<'EOF'
Very long commit message that exceeds 110 characters but must be preserved exactly as-is
EOF
)"
\```
Validation
After formatting:
- Lines ≤110 chars (except unwrappable content)
- YAML parses correctly (test with
yqorpython -c "import yaml") - Markdown renders properly
- URLs work
- Code blocks execute correctly