documentation-fundamentals
Auto-invoke when reviewing README files, JSDoc comments, or inline documentation. Enforces "WHY not WHAT" principle.
Best use case
documentation-fundamentals is best used when you need a repeatable AI agent workflow instead of a one-off prompt. It is especially useful for teams working in multi. Auto-invoke when reviewing README files, JSDoc comments, or inline documentation. Enforces "WHY not WHAT" principle.
Auto-invoke when reviewing README files, JSDoc comments, or inline documentation. Enforces "WHY not WHAT" principle.
Users should expect a more consistent workflow output, faster repeated execution, and less time spent rewriting prompts from scratch.
Practical example
Example input
Use the "documentation-fundamentals" skill to help with this workflow task. Context: Auto-invoke when reviewing README files, JSDoc comments, or inline documentation. Enforces "WHY not WHAT" principle.
Example output
A structured workflow result with clearer steps, more consistent formatting, and an output that is easier to reuse in the next run.
When to use this skill
- Use this skill when you want a reusable workflow rather than writing the same prompt again and again.
When not to use this skill
- Do not use this when you only need a one-off answer and do not need a reusable workflow.
- Do not use it if you cannot install or maintain the related files, repository context, or supporting tools.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/documentation-fundamentals/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How documentation-fundamentals Compares
| Feature / Agent | documentation-fundamentals | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Auto-invoke when reviewing README files, JSDoc comments, or inline documentation. Enforces "WHY not WHAT" principle.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
Best AI Skills for Claude
Explore the best AI skills for Claude and Claude Code across coding, research, workflow automation, documentation, and agent operations.
AI Agent for SaaS Idea Validation
Use AI agent skills for SaaS idea validation, market research, customer discovery, competitor analysis, and documenting startup hypotheses.
SKILL.md Source
# Documentation Fundamentals Review
> "Code tells you HOW, comments tell you WHY. If you only explain what the code does, you're wasting everyone's time."
## When to Apply
Activate this skill when:
- Reviewing or creating README files
- Writing JSDoc/docstring comments
- Inline code comments
- API documentation
- Architecture decision records
---
## The Golden Rule: WHY, Not WHAT
```typescript
// ❌ BAD: Explains what (code already says this)
// Increment counter by 1
counter++;
// ✅ GOOD: Explains why (context the code can't provide)
// Counter must be incremented before validation runs
// to account for the edge case where initial value is 0
counter++;
```
---
## README Structure (The 5 Essentials)
Every README must answer these questions:
### 1. What Is This? (1 sentence)
> "What problem does this solve in one sentence?"
```markdown
## What
A CLI tool that converts Figma designs to React components.
```
### 2. Why Does It Exist?
> "What pain point motivated this project?"
```markdown
## Why
Manually converting designs to code takes hours and introduces inconsistencies.
This tool automates the process, ensuring pixel-perfect components.
```
### 3. How to Install
> "Copy-paste instructions that work."
```markdown
## Installation
npm install your-package
```
### 4. How to Use
> "The simplest possible example that works."
```markdown
## Quick Start
npx your-tool --input design.fig --output ./components
```
### 5. How to Contribute (Optional)
> "For open source projects."
```markdown
## Contributing
1. Fork the repo
2. Create your feature branch
3. Submit a pull request
```
---
## Comment Types & When to Use Them
### Function/Method Documentation (JSDoc)
```typescript
/**
* Validates email format and checks domain against blocklist.
*
* @param email - The email address to validate
* @returns ValidationResult with success status and error message
*
* @example
* const result = validateEmail('user@example.com');
* if (!result.success) {
* showError(result.error);
* }
*
* Note: This uses the RFC 5322 regex pattern, which is intentionally
* strict to prevent disposable email addresses.
*/
function validateEmail(email: string): ValidationResult {
// Implementation
}
```
### Inline Comments (Only for WHY)
```typescript
// Rate limit is 100/min but we use 80 to leave headroom for retries
const RATE_LIMIT = 80;
// Sort descending because newest items should appear first
// (business requirement from PM - see ticket #1234)
items.sort((a, b) => b.date - a.date);
// HACK: API returns dates as strings, need to parse manually
// TODO: Remove after backend migration (Q2 2026)
const date = new Date(response.dateString);
```
### Block Comments (Complex Logic)
```typescript
/*
* Authentication Flow:
* 1. Check local token cache
* 2. If expired, attempt silent refresh
* 3. If refresh fails, redirect to login
*
* We use refresh tokens instead of re-authentication to avoid
* disrupting the user experience during long sessions.
*/
```
---
## Common Mistakes (Anti-Patterns)
### 1. Commenting the Obvious
```typescript
// ❌ BAD: Useless comment
// Set name to "John"
const name = "John";
// Get the user's age
const age = user.age;
// Loop through items
for (const item of items) { ... }
// ✅ GOOD: No comment needed (code is self-explanatory)
const name = "John";
```
### 2. Outdated Comments
```typescript
// ❌ BAD: Comment doesn't match code (dangerous!)
// Filter out inactive users
const users = data.filter(u => u.role === 'admin');
// ✅ GOOD: Comment matches reality
// Only show admin users in management view
const users = data.filter(u => u.role === 'admin');
```
### 3. No Context on Magic Numbers
```typescript
// ❌ BAD: What is 86400?
const expiresIn = 86400;
// ✅ GOOD: Explains the magic
const SECONDS_PER_DAY = 86400;
const expiresIn = SECONDS_PER_DAY; // Tokens expire after 24 hours
```
### 4. Commented-Out Code
```typescript
// ❌ BAD: Dead code polluting the file
// const oldImplementation = () => { ... };
// function deprecatedHelper() { ... }
// ✅ GOOD: Delete it! Git remembers everything
```
### 5. Empty README
```markdown
<!-- ❌ BAD: Auto-generated, never updated -->
# my-project
This project was bootstrapped with Create React App.
```
---
## Socratic Questions
Ask these instead of giving answers:
1. **WHY not WHAT**: "Does this comment tell me something the code doesn't?"
2. **Audience**: "Would a developer joining tomorrow understand this?"
3. **Maintenance**: "If you change the code, would you remember to update this comment?"
4. **README**: "Can someone run this project with just the README instructions?"
5. **JSDoc**: "What would a developer need to know to use this function correctly?"
6. **Necessity**: "If you delete this comment, is anything lost?"
---
## README Template
```markdown
# Project Name
One-sentence description of what this does.
## Why
The problem this solves and why it matters.
## Installation
npm install project-name
## Quick Start
Minimal code example that works.
## API
### functionName(param)
Description of what it does.
**Parameters:**
- `param` (string): What this parameter is for
**Returns:** What gets returned
**Example:**
```js
// Usage example
```
## Configuration
Available options and their defaults.
## Contributing
How to contribute (if applicable).
## License
MIT (or your license)
```
---
## JSDoc Essentials
```typescript
/**
* Brief description of what this function does.
*
* @param paramName - Description of parameter
* @returns Description of return value
* @throws {ErrorType} When this error occurs
* @example
* // Show how to use it
* const result = myFunction('input');
*
* @see RelatedFunction for similar functionality
* @deprecated Use newFunction instead (v2.0+)
*/
```
---
## Red Flags to Call Out
| Flag | Question |
|------|----------|
| Empty README | "Can a new developer run this project right now?" |
| `// Set x to 5` | "Does this comment add value? The code already says this." |
| Outdated comments | "Does this comment still match what the code does?" |
| No JSDoc on exports | "How would someone know how to use this function?" |
| Commented-out code | "Why is this here? Git has history if you need it back." |
| Magic numbers | "What does 3600 mean? Why this number?" |
---
## Interview Connection
> "I maintain comprehensive documentation including READMEs, JSDoc comments, and architecture decision records, ensuring code is maintainable by the entire team."
Documentation habits demonstrate:
- Communication skills
- Long-term thinking
- Team player mentality
- Senior-level maturity
---
## MCP Usage
### Context7 - Framework Docs
```
Fetch: JSDoc documentation
Fetch: Markdown best practices
```
### Octocode - Real Examples
```
Search: README.md patterns in popular repos
Search: JSDoc examples in TypeScript projects
```Related Skills
routeros-fundamentals
RouterOS v7 domain knowledge for AI agents. Use when: working with MikroTik RouterOS, writing RouterOS CLI/script commands, calling RouterOS REST API, debugging why a Linux command fails on RouterOS, or when the user mentions MikroTik, RouterOS, CHR, or /ip /system /interface paths. Scope: RouterOS 7.x (long-term and newer) only — v6 is NOT covered and accuracy for v6 problems will be low.
geo-fundamentals
Generative Engine Optimization for AI search engines (ChatGPT, Claude, Perplexity).
documentation-templates
Documentation templates and structure guidelines. README, API docs, code comments, and AI-friendly documentation.
documentation-generation-doc-generate
You are a documentation expert specializing in creating comprehensive, maintainable documentation from code. Generate API docs, architecture diagrams, user guides, and technical references using AI-powered analysis and industry best practices.
code-documentation-doc-generate
You are a documentation expert specializing in creating comprehensive, maintainable documentation from code. Generate API docs, architecture diagrams, user guides, and technical references using AI-powered analysis and industry best practices.
code-documentation-code-explain
You are a code education expert specializing in explaining complex code through clear narratives, visual diagrams, and step-by-step breakdowns. Transform difficult concepts into understandable explanations.
srs-documentation
Software Requirements Specification documentation following IEEE 830 standard. Use when generating formal SRS documents or compiling gathered requirements into structured documentation.
notion-research-documentation
Research across Notion and synthesize into structured documentation; use when gathering info from multiple Notion sources to produce briefs, comparisons, or reports with citations.
testing-fundamentals
Auto-invoke when reviewing test files or discussing testing strategy. Enforces testing pyramid, strategic coverage, and stack-appropriate frameworks.
seo-fundamentals
Auto-invoke when reviewing HTML head, meta tags, or Next.js page components. Enforces semantic HTML and search optimization.
security-fundamentals
Auto-invoke when reviewing authentication, authorization, input handling, data exposure, or any user-facing code. Enforces OWASP top 10 awareness and security-first thinking.
performance-fundamentals
Auto-invoke when reviewing loops, data fetching, rendering, database queries, or resource-intensive operations. Identifies N+1 queries, unnecessary re-renders, memory leaks, and scalability issues.