skills/markdown-docs/SKILL.md
Markdown documentation standards for developer-facing and project documentation. Use when: writing or auditing a README, creating project documentation, structuring a docs/ folder, documenting design decisions, writing ADRs, linking documents for discoverability, or ensuring an existing project has adequate developer documentation.
npx skillsauth add michaelsvanbeek/personal-agent-skills markdown-docsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
docs/ folder structureScope: This skill covers developer-facing docs (README, docs/, ADRs). For in-product explanatory UX, use the ui-design skill.
Documentation lives with the code. It is version-controlled, reviewed in PRs, and updated alongside the code it describes. The README is the entry point — everything else is one or two links away.
Every project must have a README at the repository root.
# Project Name
One-sentence description of what this project does and why it exists.
## Overview
2-3 paragraphs describing the problem, key design choices, and what
someone should understand before working on this codebase.
## Quick Start
Minimum commands to get the project running locally:
git clone <repo>
cd <project>
npm install && npm run dev
## Usage
How to use the project — commands, endpoints, or screens.
## Local Development
Dependencies, run, test, and lint commands.
## Configuration
Table of environment variables with descriptions and defaults.
## Documentation
Links to docs/ contents: architecture, ADRs, runbooks.
docs/ for depth.docs/
├── README.md ← index linking to every document
├── architecture.md ← system architecture and data flows
├── concepts.md ← domain objects and terminology
├── runbooks/
│ ├── deploy.md
│ └── rollback.md
├── adr/
│ ├── README.md ← ADR index with status summaries
│ ├── 0001-use-dynamodb.md
│ └── 0002-oauth2-auth.md
└── changes/
└── v2.0-migration.md
Every file in docs/ must be linked from docs/README.md. No orphan
documents.
# Documentation
## Architecture
- [Architecture Overview](architecture.md)
- [Key Concepts](concepts.md)
## Runbooks
- [Deployment](runbooks/deploy.md)
- [Rollback](runbooks/rollback.md)
## Decisions
- [ADR Index](adr/README.md)
## Changes
- [Migration Guides](changes/)
Write an ADR when:
# ADR 0001: Title of Decision
**Date**: YYYY-MM-DD
**Status**: Proposed | Accepted | Superseded | Deprecated
## Context
What is the problem or situation that requires a decision?
## Decision
What was decided and why.
## Alternatives Considered
| Option | Pros | Cons |
|--------|------|------|
| Option A | ... | ... |
| Option B | ... | ... |
| **Chosen** | ... | ... |
## Consequences
What follows from this decision — both positive and negative.
| Status | Meaning |
|--------|---------|
| Proposed | Under discussion, not yet accepted |
| Accepted | Decision is approved and in effect |
| Superseded | Replaced by a later ADR |
| Deprecated | No longer recommended for new work |
Every document must be reachable from the README:
README.md
→ docs/README.md (index)
→ docs/architecture.md
→ docs/adr/README.md
→ docs/adr/0001-use-dynamodb.md
→ docs/runbooks/deploy.md
→ CHANGELOG.md
docs/ is linked from docs/README.mddocs/README.md is linked from the top-level READMEdocs/adr/README.md# H1 per document (the title)## for major sections, ### for subsections####- for unordered lists1. for ordered stepsAlways specify the language:
```python
def greet(name: str) -> str:
return f"Hello, {name}"
```
Use inline code for command names (ruff), file names (pyproject.toml),
environment variables (APP_DATABASE_URL), and short expressions (X | Y).
--- separators---:Every link has two parts with different jobs:
| Part | Role | Rule | |------|------|------| | Display text | Human-readable label | Friendly, descriptive, never a raw ID or "click here" | | URL | Machine-readable address | Stable, ID-based when possible, relative for repo links |
[Architecture Overview](docs/architecture.md)
[GitHub Issues](https://github.com/owner/repo/issues)
[click here](docs/architecture.md)
[docs/architecture.md](docs/architecture.md)
https://github.com/owner/repo/issues
Display text rules:
URL rules:
Use blockquotes for important notes:
> **Note:** This only applies to production environments.
> **Warning:** This operation is destructive and cannot be undone.
For major changes, write a focused guide in docs/changes/:
# Migrating from v1 to v2
## What Changed
Summary of breaking changes.
## Steps
### 1. Update Authentication
**Before (v1):**
GET /api/users
X-API-Key: your-key
**After (v2):**
GET /api/users
Authorization: Bearer your-token
Required for every major version release. Recommended for significant changes that alter development workflows, even if not breaking.
development
TypeScript coding standards and type safety conventions. Use when: creating TypeScript files, defining interfaces and types, writing type-safe code, reviewing TypeScript for type correctness, auditing a codebase for type safety gaps, eliminating any or ts-ignore usage, or improving strict-mode compliance. Covers strict typing, avoiding any and ts-ignore, discriminated unions, Zod runtime validation, immutability patterns, and proper type definitions.
testing
Writing clear, actionable tickets in any issue tracker (Jira, Linear, GitHub Issues, ServiceNow, etc.). Use when: creating epics, stories, tasks, bugs, or spikes; writing acceptance criteria; decomposing work for a sprint; linking dependencies between tickets; auditing backlog items for clarity; or coaching a team on ticket quality. Covers title conventions, description templates, acceptance criteria, decomposition rules, dependency linking, and org-specific pluggable configuration.
development
Testing strategy, patterns, and evaluation for software and LLM/AI systems. Use when: writing tests, choosing test boundaries, designing test data, structuring test suites, evaluating LLM outputs, building evaluation pipelines, setting coverage thresholds, auditing test coverage gaps in existing projects, or improving test quality and structure.
development
Writing effective status updates for different audiences and cadences. Use when: writing a weekly status update, preparing a monthly summary, drafting a quarterly review, sending updates to leadership, sharing progress with stakeholders, or improving the clarity and impact of team communications. Covers weekly, monthly, and quarterly formats tailored for upward, lateral, and downward communication.