askill
documentation-standards

documentation-standardsSafety 100Repository

Documentation standards and conventions based on Diataxis framework. Use this skill to learn project documentation conventions before creating, reviewing, or updating docs.

0 stars
1.2k downloads
Updated 2/3/2026

Package Files

Loading files...
SKILL.md

Documentation Standards

This skill provides the structure, policies, and quality standards for all project documentation. Any human or agent creating documentation must follow these standards.

Based on ISO/IEC/IEEE 26514:2022 and the Diataxis Framework.

Customization Check

Before applying these standards, check for project-specific customizations:

  1. .claude/docs-management.md (project-specific, shared with team) - if it exists
  2. .claude/docs-management.local.md (user-specific, personal preferences) - if it exists

Apply standards in order: local overrides > project overrides > plugin defaults


Project File Structure

Root-Level Files

Certain files belong in the project root for maximum visibility and tooling support:

FileLocationPurpose
README.md/ (root)Project overview - GitHub/GitLab displays on homepage
CHANGELOG.md/ (root)Version history - tools like semantic-release expect this
CONTRIBUTING.md/ (root)Contribution guide - GitHub links in Community tab
LICENSE/ (root)License file - package managers detect automatically
CODE_OF_CONDUCT.md/ (root)Community standards - GitHub surfaces in health score
SECURITY.md/ (root)Security policy - GitHub displays security information

Why Root Level?

  • GitHub, GitLab, and npm automatically detect and surface these files
  • Tools like standard-version and semantic-release expect CHANGELOG.md at root
  • Package managers validate LICENSE location
  • Improves discoverability for new contributors

Directory Structure

All other documentation lives in /docs/:

/                                  # Project root
├── README.md                      # Project overview (GitHub displays)
├── CHANGELOG.md                   # Version history (single source of truth)
├── CONTRIBUTING.md                # How to contribute
├── LICENSE                        # License file
│
└── docs/                          # All documentation
    ├── README.md                  # Documentation index & navigation
    │
    ├── getting-started/           # TUTORIALS (Learning-oriented)
    │   ├── QUICK-START.md         # First steps walkthrough
    │   ├── SETUP-GUIDE.md         # Environment setup
    │   └── PREREQUISITES.md       # Required knowledge/tools
    │
    ├── guides/                    # HOW-TO GUIDES (Task-oriented)
    │   ├── user/                  # End-user guides
    │   └── developer/             # Developer guides
    │       ├── CONTRIBUTING.md    # Code contribution guide
    │       ├── TESTING.md         # How to run tests
    │       └── DEPLOYMENT.md      # Deployment procedures
    │
    ├── reference/                 # REFERENCE (Information-oriented)
    │   ├── api/                   # API documentation
    │   │   ├── ENDPOINTS.md       # Endpoint reference
    │   │   ├── AUTHENTICATION.md  # Auth methods
    │   │   └── ERROR-CODES.md     # Error reference
    │   ├── CONFIGURATION.md       # Config options reference
    │   └── CLI-COMMANDS.md        # Command line reference
    │
    ├── architecture/              # EXPLANATION (Understanding-oriented)
    │   ├── OVERVIEW.md            # System architecture
    │   ├── DESIGN-DECISIONS.md    # ADRs (Architecture Decision Records)
    │   ├── DATA-FLOW.md           # How data moves through system
    │   └── SECURITY.md            # Security model explanation
    │
    ├── technical/                 # Technical specifications
    │   ├── API-SPECIFICATION.md   # Complete API spec with schemas
    │   ├── DATA-MODELS.md         # Data structures and relationships
    │   └── DATABASE-SCHEMA.md     # Database design
    │
    ├── research/                  # Discovery & research findings
    │   ├── README.md              # Research index
    │   └── findings/              # Investigation results
    │
    └── assets/                    # Supporting media
        ├── images/                # Screenshots, photos
        └── diagrams/              # Architecture diagrams

Diataxis Framework

Documentation is organized into four types based on user needs:

The Four Documentation Types

TypePurposeUser NeedCharacteristics
TutorialsLearning"I want to learn"Step-by-step, beginner-focused, works every time
How-to GuidesGoals"I want to accomplish X"Task-focused, assumes knowledge, practical
ReferenceInformation"I need to look up Y"Factual, complete, consistent structure
ExplanationUnderstanding"I want to understand why"Conceptual, discusses trade-offs, opinionated

Where Each Type Lives

Diataxis TypeDirectoryExamples
Tutorialsgetting-started/Quick-start, setup guides
How-to Guidesguides/Contributing, testing, deployment
Referencereference/, technical/API docs, config options, data models
Explanationarchitecture/Design decisions, data flow, security model

Documentation Policy

Where to Create Documentation

Document TypeLocationExample
Project overview/README.md (root)Main project description
Version history/CHANGELOG.md (root)Release notes
API specificationsdocs/technical/API-SPECIFICATION.md
Data modelsdocs/technical/DATA-MODELS.md
Architecture explanationsdocs/architecture/DESIGN-DECISIONS.md
Research findingsdocs/research/Investigation results
Setup/getting starteddocs/getting-started/QUICK-START.md
User guidesdocs/guides/user/Feature guides
Developer guidesdocs/guides/developer/Contributing, testing

Critical Rules

  1. NEVER create documentation in .claude/ directory
  2. ALL new documentation goes in /docs/ structure (except root-level files)
  3. ALWAYS prefer editing existing files over creating new ones
  4. NEVER create README.md files unless explicitly requested
  5. UPDATE docs/README.md index when adding new documents
  6. KEEP CHANGELOG.md in project root, not in docs/
  7. USE relative links for cross-references within docs/

Required Documents (Minimum Viable Documentation)

DocumentPriorityLocation
Project READMECritical/README.md
Quick start guideCriticaldocs/getting-started/QUICK-START.md
API reference (if applicable)Criticaldocs/reference/api/
Architecture overviewHighdocs/architecture/OVERVIEW.md
Contributing guideHigh/CONTRIBUTING.md or docs/guides/developer/
CHANGELOGHigh/CHANGELOG.md

Naming Conventions

Files

ConventionExampleNotes
UPPERCASE with hyphensAPI-REFERENCE.mdStandard for docs/
Descriptive namesAUTHENTICATION-FLOW.mdNot AUTH.md
Include version where relevantMIGRATION-V2-TO-V3.mdFor upgrade guides
Match directory patternsSee existing filesConsistency over preference

Folders

ConventionExampleNotes
lowercase with hyphensgetting-started/Never camelCase or PascalCase
Descriptive purposearchitecture/Not arch/
Group by purposereference/api/Not by file format

Section Headers

ConventionExampleNotes
Sentence case"Getting started"Not "Getting Started"
Be specific"Configure authentication"Not "Configuration"
Action-oriented for guides"Install dependencies"Imperative mood

Content Standards

Writing Principles

  1. Know Your Audience - Adjust technical depth appropriately
  2. Be Concise - Respect reader's time
  3. Be Specific - Avoid vague statements
  4. Be Consistent - Same terms, same format throughout
  5. Be Current - Update when things change

Formatting Standards

ElementFormatExample
Code inlineBackticksnpm install
Code blocksTriple backticks + language```bash
File pathsBackticksdocs/README.md
CommandsCode blocks$ npm run build
Key termsBold first useDiataxis framework
EmphasisItalicsnot recommended
Warnings> Warning:Blockquote with bold prefix

Architecture-Agnostic Principles

All technical documentation must be architecture-agnostic - it should work regardless of whether the implementation is a PWA, mobile app, desktop application, CLI, or any other platform.

DO Document

TopicExample
What data is needed"Player stats require: batting_average, on_base_percentage"
API mechanics"Endpoint returns paginated results with has_next boolean"
Data dependencies"Must fetch team_id before requesting roster"
Authentication requirements"Requires API key in Authorization header"
Caching requirements"Team data should be cached for 5 minutes"
Error handling requirements"401 errors require re-authentication"
Business logic"Season stats aggregate all games for selected year"

DON'T Document

TopicWhy Not
UI component structureArchitecture-specific
Framework-specific codeChanges between implementations
Store/state implementationVaries by framework
Component data bindingUI-specific
CSS/stylingPresentation layer
Route configurationFramework-specific

Test Your Documentation

Ask: "Could a developer use this to build a CLI tool that does the same thing?"

  • If yes → Good, architecture-agnostic
  • If no → Too implementation-specific

Maintenance Practices

Review Cycle

FrequencyActivity
Per-releaseUpdate affected docs before deployment
QuarterlyFull documentation accuracy audit
ContinuousAccept doc updates with code changes

When to Update Documentation

EventRequired Updates
New featureAdd to relevant guides, update reference
Bug fixUpdate troubleshooting if user-facing
API changeUpdate all API references
Breaking changeAdd migration guide, update CHANGELOG
DeprecationAdd deprecation notices with timeline

Style Guide

Key Principles

  1. Active voice - "The system processes requests" not "Requests are processed"
  2. Present tense - "The function returns" not "The function will return"
  3. Second person - "You can configure" not "Users can configure"
  4. Contractions OK - "Don't use" is friendlier than "Do not use"
  5. Oxford comma - "A, B, and C" not "A, B and C"

Cross-Referencing

# Good - relative links within docs/
See [API Specification](technical/API-SPECIFICATION.md) for details.

# Good - root-level files
See [CHANGELOG](/CHANGELOG.md) for version history.

# Bad - absolute filesystem paths
See /home/user/project/docs/technical/API-SPECIFICATION.md

Version Information

When documenting versioned or time-sensitive information:

## Authentication Flow
*Last verified: 2025-01-15 against v2 API*

[Documentation content...]

Customization

Projects can customize these standards by creating configuration files:

Project-Specific Configuration

Create .claude/docs-management.md for project-wide customizations that are shared with the team (committed to version control).

User-Specific Configuration

Create .claude/docs-management.local.md for personal preferences (should be gitignored).

Configuration File Contents

These files can include:

  • Additional templates or template locations
  • Custom checklist items
  • Project-specific naming conventions
  • Additional documentation requirements
  • Links to company style guides
  • Override instructions for specific situations

Example:

# Project Documentation Config

## Additional Templates
- Use `docs/templates/runbook-template.md` for operational docs

## Project-Specific Rules
- All docs must include "Last reviewed: YYYY-MM-DD" header
- API docs require OpenAPI spec link

## Custom Checklist Items
- [ ] Checked by tech writer
- [ ] Added to docs index

Sources and References


This document is the single source of truth for documentation standards. When in doubt, follow these guidelines.

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

92/100Analyzed 2/18/2026

A comprehensive documentation standard and policy skill based on the Diataxis framework. It provides detailed rules for file structure, naming conventions, and content standards, serving as a robust reference for agents to ensure documentation quality and consistency.

100
95
90
90
85

Metadata

Licenseunknown
Version-
Updated2/3/2026
Publishernitromike502

Tags

apici-cddatabasegithubllmsecuritytesting