Back to skills

Documentation Implementation

Technical documentation, API references, user guides, maintaining documentation quality. Use for documentation, docs, user-docs, api-docs, guide, readme tags. Provides documentation patterns, validation, clarity standards.

128 stars
0 votes
0 copies
0 views
Added 12/19/2025
developmentjavascriptpythongojavakotlinbashnodeexpressapidatabase

Works with

cliapi

Install via CLI

$openskills install jpicklyk/task-orchestrator
Download Zip
Files
SKILL.md
---
name: Documentation Implementation
description: Technical documentation, API references, user guides, maintaining documentation quality. Use for documentation, docs, user-docs, api-docs, guide, readme tags. Provides documentation patterns, validation, clarity standards.
allowed-tools: Read, Write, Edit, Grep, Glob
---

# Documentation Implementation Skill

Domain-specific guidance for creating clear, comprehensive technical documentation.

## When To Use This Skill

Load this Skill when task has tags:
- `documentation`, `docs`, `user-docs`, `api-docs`
- `guide`, `readme`, `tutorial`, `reference`

## Validation Commands

### Check Documentation
```bash
# Markdown linting
npx markdownlint **/*.md

# Spell check
npx cspell "**/*.md"

# Link checking
npx markdown-link-check docs/**/*.md

# Build documentation site (if applicable)
npm run docs:build
mkdocs build
```

### Preview Documentation
```bash
# Live preview
npm run docs:serve
mkdocs serve

# Static site preview
python -m http.server 8000 -d docs/
```

## Success Criteria (Before Completing Task)

✅ **Documentation is accurate** (reflects actual behavior)
✅ **Documentation is complete** (all required sections present)
✅ **Examples work** (code examples run without errors)
✅ **Links are valid** (no broken links)
✅ **Spelling and grammar correct**
✅ **Follows project style guide**

## Common Documentation Tasks

### API Documentation
- Endpoint descriptions (path, method)
- Request parameters (required, optional, types)
- Response schemas (success, error)
- Status codes (200, 400, 401, 404, 500)
- Example requests/responses
- Authentication requirements

### User Guides
- Step-by-step instructions
- Screenshots or diagrams
- Prerequisites
- Troubleshooting section
- FAQs

### README Files
- Project overview
- Installation instructions
- Quick start guide
- Configuration options
- Contributing guidelines

### Code Documentation
- Function/method descriptions
- Parameter documentation
- Return value documentation
- Usage examples
- Edge cases and gotchas

## Documentation Patterns

### API Endpoint Documentation

```markdown
## POST /api/users

Creates a new user account.

**Authentication:** Required (Bearer token)

**Request Body:**
```json
{
  "email": "user@example.com",    // Required, must be valid email
  "password": "secure123",        // Required, min 8 characters
  "name": "John Doe"              // Required
}
```

**Success Response (201 Created):**
```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "email": "user@example.com",
  "name": "John Doe",
  "createdAt": "2024-01-15T10:30:00Z"
}
```

**Error Responses:**

- **400 Bad Request** - Invalid input
  ```json
  {
    "error": "Invalid email format",
    "code": "VALIDATION_ERROR"
  }
  ```

- **409 Conflict** - Email already exists
  ```json
  {
    "error": "Email already registered",
    "code": "DUPLICATE_EMAIL"
  }
  ```

**Example Request:**
```bash
curl -X POST https://api.example.com/api/users \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "user@example.com",
    "password": "secure123",
    "name": "John Doe"
  }'
```
```

### User Guide Pattern

```markdown
# Setting Up User Authentication

This guide walks you through enabling user authentication in your application.

## Prerequisites

- Node.js 18+ installed
- Database configured
- Admin access to the application

## Step 1: Install Required Packages

```bash
npm install bcrypt jsonwebtoken express-session
```

## Step 2: Configure Environment Variables

Create a `.env` file in your project root:

```env
JWT_SECRET=your-secret-key-here
SESSION_TIMEOUT=3600
```

## Step 3: Enable Authentication

Edit `config/app.js` and add:

```javascript
const authMiddleware = require('./middleware/auth');
app.use(authMiddleware);
```

## Step 4: Test Authentication

1. Start your application: `npm start`
2. Navigate to http://localhost:3000/login
3. Use test credentials:
   - Email: test@example.com
   - Password: test123
4. You should be redirected to the dashboard

## Troubleshooting

**Problem:** Login fails with "Invalid credentials"
**Solution:** Check that you've run database migrations: `npm run migrate`

**Problem:** Session expires immediately
**Solution:** Verify JWT_SECRET is set in `.env` file
```

### Code Documentation Pattern

```kotlin
/**
 * Creates a new user account with the provided information.
 *
 * This function validates the user data, hashes the password using bcrypt,
 * and persists the user to the database. Email uniqueness is enforced at
 * the database level.
 *
 * @param email User's email address (must be valid format and unique)
 * @param password Plain text password (min 8 characters, will be hashed)
 * @param name User's full name
 * @return Created user with generated ID and timestamps
 * @throws ValidationException if email format is invalid or password too short
 * @throws DuplicateEmailException if email already registered
 * @throws DatabaseException if database operation fails
 *
 * @example
 * ```kotlin
 * val user = userService.createUser(
 *     email = "john@example.com",
 *     password = "secure123",
 *     name = "John Doe"
 * )
 * println(user.id)  // UUID generated by database
 * ```
 *
 * @see User
 * @see validateEmail
 * @see hashPassword
 */
fun createUser(email: String, password: String, name: String): User {
    // Implementation
}
```

## Common Blocker Scenarios

### Blocker 1: Implementation Incomplete

**Issue:** Cannot document features that don't exist yet

**What to try:**
- Check if implementation task is truly complete
- Test the feature manually
- Check API responses match requirements

**If blocked:** Report to orchestrator - implementation incomplete or requirements unclear

### Blocker 2: API Behavior Unclear

**Issue:** Don't know what endpoint does, what parameters mean, or what responses look like

**What to try:**
- Test API endpoints manually (Postman, curl)
- Read implementation code
- Check for existing API specs (OpenAPI, GraphQL schema)
- Check task requirements

**If blocked:** Report to orchestrator - need clarification on API behavior

### Blocker 3: Missing Design Assets

**Issue:** User guide needs screenshots but UI not implemented or accessible

**What to try:**
- Use placeholder images with captions
- Describe steps verbally without screenshots
- Check if mockups/designs available

**If blocked:** Report to orchestrator - need access to UI or design assets

### Blocker 4: Contradictory Information

**Issue:** Code does X, requirements say Y, existing docs say Z

**What to try:**
- Test actual behavior
- Document what code actually does
- Note discrepancy in comments

**If blocked:** Report to orchestrator - need authoritative answer on correct behavior

### Blocker 5: Technical Details Missing

**Issue:** Don't know how something works internally to document it

**What to try:**
- Read implementation code
- Ask implementation engineer (check task history)
- Document what's observable from outside

**If blocked:** Report to orchestrator - need technical details from implementer

## Blocker Report Format

```
⚠️ BLOCKED - Requires Senior Engineer

Issue: [Specific problem - implementation incomplete, unclear behavior, etc.]

Attempted Research:
- [What sources you checked]
- [What you tried to find out]
- [Why it didn't work]

Blocked By: [Task ID / incomplete implementation / unclear requirements]

Partial Progress: [What documentation you DID complete]

Requires: [What needs to happen to unblock documentation]
```

## Documentation Quality Checklist

### Clarity
✅ Uses simple, clear language
✅ Defines technical terms on first use
✅ Short sentences (< 25 words)
✅ Active voice ("Click the button" not "The button should be clicked")
✅ Consistent terminology (don't switch between "user" and "account")

### Completeness
✅ All required sections present
✅ All parameters documented
✅ All status codes explained
✅ Edge cases covered
✅ Examples provided
✅ Troubleshooting section included

### Accuracy
✅ Code examples run without errors
✅ Screenshots match current UI
✅ API responses match actual responses
✅ Links work (no 404s)
✅ Version numbers correct

### Formatting
✅ Consistent heading levels
✅ Code blocks have language specified
✅ Lists use consistent bullet style
✅ Tables formatted correctly
✅ Proper markdown syntax

## Writing Style Guidelines

### Use Active Voice

❌ **Passive:** "The user object is returned by the API"
✅ **Active:** "The API returns the user object"

### Be Specific

❌ **Vague:** "Call the endpoint with the data"
✅ **Specific:** "Send a POST request to /api/users with email, password, and name"

### Show, Don't Just Tell

❌ **Abstract:** "Configure the authentication settings"
✅ **Concrete:**
```
Edit config/auth.js and set:
```javascript
module.exports = {
  jwtSecret: 'your-secret-here',
  tokenExpiry: '24h'
};
```
```

### Include Examples

Every documented feature should have:
- Code example showing usage
- Expected output
- Common use cases

### Anticipate Questions

After each instruction, ask:
- What could go wrong here?
- What might be unclear?
- What would I wonder about?

Add troubleshooting for those questions.

## Common Patterns to Follow

1. **Start with overview** - what it is, why it matters
2. **Prerequisites first** - what user needs before starting
3. **Step-by-step instructions** - numbered, one action per step
4. **Examples that work** - test all code examples
5. **Troubleshooting section** - common problems and solutions
6. **Clear formatting** - headings, code blocks, lists
7. **Links to related docs** - help users find more information

## What NOT to Do

❌ Don't use jargon without explaining it
❌ Don't assume prior knowledge
❌ Don't skip error cases
❌ Don't provide untested code examples
❌ Don't use vague terms ("simply", "just", "obviously")
❌ Don't forget to update docs when code changes
❌ Don't document implementation details users don't need

## Focus Areas

When reading task sections, prioritize:
- `requirements` - What needs documenting
- `context` - Purpose and audience
- `documentation` - Existing docs to update
- `implementation` - How it actually works

## Remember

- **Accuracy is critical** - test everything you document
- **Clarity over cleverness** - simple language wins
- **Examples are essential** - every feature needs working examples
- **Update, don't duplicate** - check if docs already exist
- **Test your instructions** - follow them yourself
- **Report blockers promptly** - missing information, incomplete features
- **Users read docs when stuck** - be helpful and thorough

## Additional Resources

For deeper patterns and examples, see:
- **PATTERNS.md** - Advanced documentation patterns, style guides (load if needed)
- **BLOCKERS.md** - Detailed documentation-specific blockers (load if stuck)
- **examples.md** - Complete documentation examples (load if uncertain)

Comments (0)

No comments yet. Be the first to comment!