agentleFS
tmcfarlanetmcfarlane/team-avatar/skills/documentation-writing/SKILL.md

documentation-writing

Skill111 starsChanged 14 days agoMITView on GitHub

Writing clear, discoverable software documentation following the Eight Rules and Diataxis framework. Use when creating README files, API docs, tutorials, how-to guides, or any project documentation. Automatically enforces docs/ location, linking requirements, and runnable examples.

We split this skill into the rules it gives an agent

12 rules. 0 are common, 10 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 7 edited versions we read keep these.

  • 10

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Location: All docs in docs/ directory

    line 40
  2. Distinctive:

    Linking: Every doc linked from at least one other doc

    line 41
  3. Distinctive:

    Currency: Delete outdated docs, include update metadata

    line 47
  4. Distinctive:

    Test results or benchmarks

    line 54
  5. Distinctive:

    Test results → CI logs, GitHub Actions

    line 61
  6. Distinctive:

    Ask: What is the reader trying to accomplish?

    line 111
  7. Distinctive:

    Every concept needs a runnable example:

    line 131
  8. Very specific:

    Add entry to docs/index.md:

    line 144
  9. Distinctive:

    reference.md: - Read when you need:

    line 164
  10. Distinctive:

    examples.md: - Read when you need:

    line 171
  11. Distinctive:

    Before/after improvement examples

    line 175
  12. Distinctive:

    When writing documentation BEFORE implementation (document-driven development):

    line 190

“Common” is measured: kept by at least 6 in 10 of the 7 edited versions of this file we could read. “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

Documentation Writing Skill

Purpose

Creates high-quality, discoverable documentation following the Eight Rules and Diataxis framework. Ensures all docs are properly located, linked, and contain real runnable examples.

When I Activate

I load automatically when you mention:

  • "write documentation" or "create docs"
  • "document this feature/module/API"
  • "create a README" or "write a tutorial"
  • "explain how this works"
  • Any request to create markdown documentation

Core Rules (MANDATORY)

The Eight Rules

  1. Location: All docs in docs/ directory
  2. Linking: Every doc linked from at least one other doc
  3. Simplicity: Plain language, remove unnecessary words
  4. Real Examples: Runnable code, not "foo/bar" placeholders
  5. Diataxis: One doc type per file (tutorial/howto/reference/explanation)
  6. Scanability: Descriptive headings, table of contents for long docs
  7. Local Links: Relative paths, context with links
  8. Currency: Delete outdated docs, include update metadata

What Stays OUT of Docs

Never put in docs/:

  • Status reports or progress updates
  • Test results or benchmarks
  • Meeting notes or decisions
  • Plans with dates
  • Point-in-time snapshots

Where temporal info belongs:

  • Test results → CI logs, GitHub Actions
  • Status updates → GitHub Issues
  • Progress → Pull Request descriptions
  • Decisions → Commit messages

Quick Start

Creating a New Document

# [Feature Name]

Brief one-sentence description of what this is.

## Quick Start

Minimal steps to get started (3-5 steps max).

## Contents

- [Configuration](#configuration)
- [Usage](#usage)
- [Troubleshooting](#troubleshooting)

## Configuration

Step-by-step setup with real examples.

## Usage

Common use cases with runnable code.

## Troubleshooting

Common problems and solutions.

Document Types (Diataxis)

TypePurposeLocationUser Question
TutorialLearningdocs/tutorials/"Teach me how"
How-ToDoingdocs/howto/"Help me do X"
ReferenceInformationdocs/reference/"What are the options?"
ExplanationUnderstandingdocs/concepts/"Why is it this way?"

Workflow

Step 1: Determine Document Type

Ask: What is the reader trying to accomplish?

  • Learning something new → Tutorial
  • Solving a specific problem → How-To
  • Looking up details → Reference
  • Understanding concepts → Explanation

Step 2: Choose Location

docs/
├── tutorials/     # Learning-oriented
├── howto/         # Task-oriented
├── reference/     # Information-oriented
├── concepts/      # Understanding-oriented
└── index.md       # Links to all docs

Step 3: Write with Examples

Every concept needs a runnable example:

# Example: Analyze file complexity
from amplihack import analyze

result = analyze("src/main.py")
print(f"Complexity: {result.score}")
# Output: Complexity: 12.5

Step 4: Link from Index

Add entry to docs/index.md:

- [New Feature Guide](./howto/new-feature.md) - How to configure X

Step 5: Validate

Checklist before completion:

  • File in docs/ directory
  • Linked from index or parent doc
  • No temporal information
  • All examples tested
  • Follows one Diataxis type

Navigation Guide

When to Read Supporting Files

reference.md - Read when you need:

  • Complete frontmatter specification
  • Detailed Diataxis type definitions
  • Markdown style conventions
  • Documentation review checklist

examples.md - Read when you need:

  • Full document templates for each type
  • Real-world documentation examples
  • Before/after improvement examples
  • Complex documentation patterns

Anti-Patterns to Avoid

Anti-PatternWhy It's BadBetter Approach
"Click here" linksNo context"See auth config"
foo/bar examplesNot realisticUse real project code
Wall of textHard to scanUse headings and bullets
Orphan docsNever foundLink from index
Status in docsGets staleUse Issues/PRs

Retcon Documentation Exception

When writing documentation BEFORE implementation (document-driven development):

# [PLANNED - Implementation Pending]

This document describes the intended behavior of Feature X.

## Planned Interface

```python
# [PLANNED] - This API will be implemented
def future_function(input: str) -> Result:
    """Process input and return result."""
    pass
```

Once implemented, remove the [PLANNED] markers and update with real examples.


---

**Full reference**: See [reference.md](./reference.md) for complete specification.
**Templates**: See [examples.md](./examples.md) for copy-paste templates.

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.