Documentation Writer

Write clear, comprehensive documentation. Covers README files, API docs, user guides, and code comments. Create documentation that users actually read and un...

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 17 · 0 current installs · 0 all-time installs
MIT-0
Security Scan
VirusTotalVirusTotal
Pending
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description (documentation writer: READMEs, API docs, guides, comments) align with the content of SKILL.md which contains templates, patterns, and examples. There are no unrelated binaries, environment variables, or config paths declared.
Instruction Scope
SKILL.md contains static templates, writing guidance, and code/documentation examples. It does not instruct the agent to run shell commands, read system files, access environment variables, or transmit data to external endpoints. Example snippets include placeholder API key strings but are demonstrative only.
Install Mechanism
No install spec and no code files — the skill is instruction-only, so nothing is downloaded or written to disk by an installer.
Credentials
The skill declares no required environment variables or credentials. Although example code shows placeholder api_key values, the skill neither requests nor needs real secrets to perform its stated task.
Persistence & Privilege
always:false and user-invocable:true (normal). The skill does not request persistent system presence or modify other skills/configs.
Assessment
This skill is coherent and low-risk: it provides templates and advice only. Before using, avoid pasting real credentials or sensitive files into prompts (examples show placeholders). Note the skill has no homepage and source is listed as unknown — if provenance matters for your environment prefer skills from known publishers or review the SKILL.md content yourself. Autonomous invocation is enabled by default (normal); if you do not want the agent to call the skill without your explicit prompting, disable autonomous skills in your agent settings.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.0.0
Download zip
api-docsvk978xwzwpfct5c9grdtfzqvhnn8309zedocumentationvk978xwzwpfct5c9grdtfzqvhnn8309zeguidevk978xwzwpfct5c9grdtfzqvhnn8309zelatestvk978xwzwpfct5c9grdtfzqvhnn8309zereadmevk978xwzwpfct5c9grdtfzqvhnn8309zewritingvk978xwzwpfct5c9grdtfzqvhnn8309ze

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

Documentation Writer

Create documentation that people actually read, understand, and follow.

Documentation Types

1. README Files

Structure:

# Project Name

Brief description (1-2 sentences)

## Features

- Key feature 1
- Key feature 2
- Key feature 3

## Quick Start

```bash
# Install
npm install package

# Use
package do-thing

Usage

Detailed usage examples

Configuration

Options and settings

API

API reference

Contributing

How to contribute

License

MIT


**What Makes Good README:**
- Clear project name
- One-sentence description
- Installation in 3 commands or less
- Working examples
- Common use cases
- Link to full docs

### 2. API Documentation

**Endpoint Documentation:**
```markdown
## Get User

`GET /api/users/{id}`

Retrieves user details by ID.

### Parameters

| Name | Type | In | Required | Description |
|------|------|------|----------|-------------|
| id | string | path | Yes | User ID |
| fields | string | query | No | Fields to return |

### Response

```json
{
  "id": "123",
  "name": "John Doe",
  "email": "john@example.com",
  "created_at": "2026-01-15T10:30:00Z"
}

Errors

CodeDescription
404User not found
401Unauthorized
500Server error

Example

curl -X GET "https://api.example.com/users/123" \
  -H "Authorization: Bearer {token}"

**API Doc Structure:**
- HTTP method and endpoint
- Brief description
- Parameters (path, query, body)
- Response format
- Error codes
- Example request
- Rate limits (if applicable)

### 3. User Guides

**Structure:**
```markdown
# Getting Started with X

## Prerequisites

- Requirement 1
- Requirement 2

## Step 1: First Action

Detailed explanation with screenshots

## Step 2: Second Action

Continue with clear instructions

## Troubleshooting

Common problems and solutions

## Next Steps

- Advanced feature 1
- Advanced feature 2

Writing Tips:

  • Start with simplest path
  • One concept per section
  • Use numbered steps
  • Include screenshots
  • Anticipate problems

4. Code Comments

When to Comment:

  • Why, not what
  • Complex logic
  • Non-obvious decisions
  • Workarounds
  • TODOs with context

Good Comments:

# Using binary search because the list is sorted and we need O(log n) performance
# for real-time autocomplete. Linear search was too slow on lists > 10,000 items.
def find_item(sorted_list, target):
    ...

# Workaround for Safari bug: Safari doesn't handle null values in localStorage
# See: https://bugs.webkit.org/show_bug?id=123456
def safe_store(key, value):
    ...

# TODO(john): This should be refactored into a separate service when we add
# support for multiple payment providers. Currently only handles Stripe.
def process_payment(amount):
    ...

Bad Comments:

# Increment counter
counter += 1  # Obvious

# Loop through items
for item in items:  # Obvious
    process(item)  # Obvious

Documentation Principles

1. Audience First

Identify Reader:

  • Beginner? Explain concepts
  • Expert? Focus on specifics
  • Internal team? Use shorthand
  • External users? Full context

Match Tone:

Beginner: "First, install Node.js from nodejs.org"
Expert: "Requires Node 18+"

2. Show, Don't Tell

Bad:

The function processes data efficiently.

Good:

The function processes 1 million records in under 2 seconds on a standard laptop.

Even Better:

# Processes 1M records in <2s on M1 MacBook
# Benchmark: test_process_benchmark.py
def process_batch(data):
    ...

3. Complete Examples

Bad:

# Use the API
client.do_something()

Good:

import MyClient

# Initialize with API key
client = MyClient(api_key="your-api-key")

# Create a new resource
response = client.create_resource(
    name="My Resource",
    type="standard"
)

# Handle response
if response.success:
    print(f"Created: {response.id}")

4. Keep Updated

Version Your Docs:

> Last updated: 2026-03-16
> Version: 2.1.0

Mark Outdated:

⚠️ **Deprecated**: This endpoint will be removed in v3.0. Use `/api/v2/users` instead.

Changelog:

## v2.1.0 (2026-03-16)

### Added
- New `/api/batch` endpoint

### Changed
- `/api/users` now returns created_at timestamp

### Deprecated
- `/api/legacy-endpoint` will be removed in v3.0

Documentation Patterns

Quick Start

Pattern:

## Quick Start (5 minutes)

### 1. Install

```bash
npm install my-package

2. Configure

const myPackage = require('my-package');
myPackage.configure({ apiKey: 'your-key' });

3. Use

const result = myPackage.doSomething();
console.log(result); // "Success!"

That's it! See Full Documentation for more.


### FAQ

**Pattern:**
```markdown
## Frequently Asked Questions

### How do I do X?

Brief answer with code example.

### Why does Y happen?

Explanation of why with solution if applicable.

### Can I do Z?

Yes/No with explanation of how or why not.

Troubleshooting

Pattern:

## Troubleshooting

### Error: "Connection refused"

**Cause:** The server isn't running.
**Solution:** Start the server with `npm start`.

### Error: "Invalid API key"

**Cause:** Your API key is incorrect or expired.
**Solution:** 
1. Check your API key in settings
2. Regenerate if needed
3. Update your configuration

### Performance is slow

**Cause:** Large datasets without pagination.
**Solution:** Use pagination for datasets > 1000 items:

```javascript
client.getRecords({ limit: 100, offset: 0 });

## Tools and Formats

### Markdown Best Practices

**Headers:**
```markdown
# H1 - Title
## H2 - Major Section
### H3 - Subsection
#### H4 - Detail

Code Blocks:

Inline `code` for short references.

```python
# Block code for examples
def example():
    return "example"

**Tables:**
```markdown
| Column 1 | Column 2 | Column 3 |
|-----------|----------|----------|
| Value 1   | Value 2  | Value 3  |
| Value 4   | Value 5  | Value 6  |

Lists:

- Unordered item
- Another item

1. Ordered item
2. Another item

- [ ] Task item
- [x] Completed task

Documentation Generators

JSDoc (JavaScript):

/**
 * Calculate the sum of two numbers.
 * @param {number} a - First number
 * @param {number} b - Second number
 * @returns {number} Sum of a and b
 * @example
 * sum(2, 3) // returns 5
 */
function sum(a, b) {
    return a + b;
}

Python Docstrings:

def calculate_average(numbers: list[float]) -> float:
    """
    Calculate the average of a list of numbers.
    
    Args:
        numbers: List of numeric values
        
    Returns:
        The arithmetic mean of the numbers
        
    Raises:
        ValueError: If numbers list is empty
        
    Example:
        >>> calculate_average([1, 2, 3, 4, 5])
        3.0
    """
    if not numbers:
        raise ValueError("Cannot calculate average of empty list")
    return sum(numbers) / len(numbers)

Documentation Checklist

README:

  • Project name and description
  • Installation instructions
  • Basic usage example
  • License
  • Contact/support

API Docs:

  • All endpoints documented
  • Request/response examples
  • Error codes
  • Authentication
  • Rate limits

User Guide:

  • Prerequisites clear
  • Step-by-step instructions
  • Screenshots/diagrams
  • Troubleshooting section
  • Next steps

Code Comments:

  • Why, not what
  • Complex logic explained
  • TODOs have context
  • No obvious comments

Common Mistakes

1. Assumption Dumping

Bad:

Configure your environment variables.

Good:

Set these environment variables:

```bash
export API_KEY="your-api-key"
export API_URL="https://api.example.com"

You can find your API key in your dashboard at https://dashboard.example.com/keys.


### 2. Missing Prerequisites

**Bad:**

Run npm start to begin.


**Good:**

Prerequisites

  • Node.js 18+ installed
  • npm or yarn package manager
  • API key from dashboard

Start

npm install
npm start

### 3. Outdated Examples

**Bad:**
```javascript
// Example from v1.0
oldApi.call();

Good:

// Current version (v2.0)
newApi.call();

// v1.0 (deprecated) - remove in next major version
// oldApi.call();

4. No Error Handling

Bad:

const result = api.getData();
console.log(result);

Good:

try {
    const result = await api.getData();
    console.log(result);
} catch (error) {
    if (error.code === 'NOT_FOUND') {
        console.log('No data found. Create some first!');
    } else {
        console.error('Error:', error.message);
    }
}

Writing Style

Be Concise

Bad: In order to use this function, you will need to first install the package.
Good: Install the package to use this function.

Be Precise

Bad: The function might return something.
Good: Returns a User object or null if not found.

Be Active

Bad: The data is processed by the system.
Good: The system processes the data.

Use Examples

Bad: The configuration accepts various options.
Good: The configuration accepts:
```json
{
    "timeout": 5000,
    "retries": 3
}

Files

1 total
Select a file
Select a file to preview.

Comments

Loading comments…