Skip to content
documentation logo

Documentation Standards

documentation

Documentation standards. Apply when completing full feature development, introducing new architecture patterns, or adding new public APIs.

SKILL.md

Full skill instructions

Documentation Standards

Core Principle

"Code tells you how; Comments tell you why; Docs tell you how to use." Documentation is not a dev diary; it's a user manual for future maintainers.

Trigger Conditions

  • ✅ Must create: Completed a full Feature module, introduced new architecture pattern, or added new public API
  • ❌ Forbidden: Just fixed a bug, refactored internal private method, or adjusted styles. Don't pollute /​docs/ with fragmented docs

File Path & Naming

  • Path: /​docs/​specs/
  • Naming: {feature-name}.md (use kebab-case, e.g., user-authentication.md)

Documentation Structure Template

Documentation must be concise and powerful, strictly following:

1. Core Concept

  • One sentence explaining what this module does
  • Linus perspective: What's its core data structure?

2. Data Flow (optional)

  • Use Mermaid flowchart or text to describe data flow path
  • What's the input? What's the output? Who holds state?

3. Usage Guide

  • Show, don't tell. Less talk, more code
  • Provide 1-2 Minimal Working Examples
// ✅ Correct usage example
const user = await authService.login(credentials);

4. Edge Cases

  • When will this module crash?
  • What are known limitations? (e.g., concurrency cap, unsupported file types)

5. Maintainer Notes

  • If you're the architect, what do you want the successor to know?
  • Any non-intuitive design decision rationales

Example

File: /​docs/​specs/​payment-flow.md

Content:

Payment Flow Module

Handles Stripe payment intent creation and callback verification. Core based on PaymentIntent state machine.

Usage

...

Edge Cases

  • ⚠️ Doesn't support transactions below 0.50 USD
  • Webhooks may be resent, must ensure idempotent handling