documentation
Technical documentation best practices and patterns
Source facts
- Repository
- ffsshhttiikk/opencode-agents-skills
- Last source activity
- February 28, 2026 at 22:49
- Detected SKILL.md language
- English
- Stars
- 3
- Forks
- 2
Install options
The review-first prompt is selected by default. You can switch to a direct command or download a local copy.
Review the source files
Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.
Showing SKILL.md
SKILL.md
Source instructions · Read-only preview- name
- documentation
- description
- Technical documentation best practices and patterns
- license
- MIT
- compatibility
- opencode
- metadata
- {"audience":"developers","category":"documentation"}
## What I do
- Write clear and comprehensive documentation
- Document APIs with OpenAPI/Swagger
- Create README files with setup instructions
- Write code comments and docstrings
- Document architecture decisions (ADRs)
- Create user guides and tutorials
- Maintain changelogs and release notes
- Use diagrams for complex concepts
## When to use me
When writing or updating documentation.
## README Structure
```markdown
# Project Name
Brief description of the project. What problem does it solve?
## Table of Contents
- [Features](#features)
- [Requirements](#requirements)
- [Installation](#installation)
- [Configuration](#configuration)
- [Usage](#usage)
- [API Documentation](#api-documentation)
- [Testing](#testing)
- [Deployment](#deployment)
- [Contributing](#contributing)
- [License](#license)
## Features
- Feature 1 with brief description
- Feature 2 with brief description
- Feature 3 with brief description
## Requirements
- Python 3.11+
- PostgreSQL 15+
- Redis 7+
- Node.js 20+
## Installation
```bash
# Clone the repository
git clone https://github.com/org/repo.git
cd repo
# Create virtual environment
python -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Setup database
python manage.py migrate
# Start development server
python manage.py runserver
```
## Configuration
Create a `.env` file:
```bash
# Required
DATABASE_URL=postgresql://user:pass@localhost:5432/db
REDIS_URL=redis://localhost:6379/0
SECRET_KEY=your-secret-key
# Optional
DEBUG=false
LOG_LEVEL=info
API_KEY=your-api-key
```
## Usage
### API Examples
```python
import requests
# Create a user
response = requests.post(
'http://localhost:8000/api/v1/users',
json={
'email': 'user@example.com',
'name': 'John Doe',
},
headers={'Authorization': 'Bearer YOUR_TOKEN'}
)
print(response.json())
```
## API Documentation
Full API documentation available at `/api/docs` (Swagger UI).
### Authentication
All API requests require authentication:
```bash
curl -H "Authorization: Bearer YOUR_TOKEN" \
http://localhost:8000/api/v1/protected-resource
```
### Rate Limiting
- 100 requests per minute for authenticated users
- 10 requests per minute for unauthenticated users
## Testing
```bash
# Run all tests
pytest
# Run with coverage
pytest --cov=src --cov-report=html
# Run specific test file
pytest tests/api/test_users.py -v
```
## Deployment
### Docker
```bash
docker build -t myapp:latest .
docker run -p 8000:8000 myapp:latest
```
### Kubernetes
See `k8s/` directory for deployment manifests.
## Contributing
1. Fork the repository
2. Create feature branch (`git checkout -b feature/amazing-feature`)
3. Commit changes (`git commit -m 'feat: add amazing feature'`)
4. Push to branch (`git push origin feature/amazing-feature`)
5. Open Pull Request
## Architecture Decision Records
See [docs/adr](./docs/adr/) for architectural decisions.
## License
MIT License - see [LICENSE](LICENSE) for details.
```
## API Documentation (OpenAPI)
```yaml
openapi: 3.0.3
info:
title: My API
description: REST API for my application
version: 1.0.0
contact:
name: API Support
email: support@example.com
servers:
- url: https://api.example.com/v1
description: Production server
- url: http://localhost:8000/api/v1
description: Development server
tags:
- name: Users
description: User management operations
- name: Auth
description: Authentication operations
paths:
/users:
get:
tags:
- Users
summary: List users
description: Retrieve a paginated list of users
parameters:
- name: page
in: query
schema:
type: integer
default: 1
description: Page number
- name: limit
in: query
schema:
type: integer
default: 20
maximum: 100
description: Items per page
- name: sort
in: query
schema:
type: string
default: '-createdAt'
description: Sort field (prefix with - for descending)
- name: search
in: query
schema:
type: string
description: Search in name and email
responses:
'200':
description: List of users
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/User'
meta:
$ref: '#/components/schemas/PaginationMeta'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- Users
summary: Create user
description: Create a new user account
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateUserRequest'
responses:
'201':
description: User created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/User'
'400':
$ref: '#/components/responses/ValidationError'
components:
schemas:
User:
type: object
properties:
id:
type: string
format: uuid
readOnly: true
email:
type: string
format: email
name:
type: string
createdAt:
type: string
format: date-time
readOnly: true
CreateUserRequest:
type: object
required:
- email
- name
- password
properties:
email:
type: string
format: email
name:
type: string
minLength: 1
maxLength: 100
password:
type: string
format: password
minLength: 8
PaginationMeta:
type: object
properties:
total:
type: integer
page:
type: integer
limit:
type: integer
pages:
type: integer
responses:
Unauthorized:
description: Authentication required
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
ValidationError:
description: Invalid request data
content:
application/json:
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
details:
type: array
items:
type: object
properties:
field:
type: string
message:
type: string
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
```
## Code Comments
```python
class QuantumNeuron:
"""
Quantum-inspired spiking neuron model.
Implements quantum tunneling behavior for spike generation,
coherence time management, and multi-reality state evolution.
Attributes:
num_qubits: Number of qubits in the quantum state
coherence_time: Time before quantum decoherence (ms)
tunneling_rate: Probability of quantum tunneling
"""
def __init__(
self,
num_qubits: int = 4,
coherence_time: float = 100.0,
tunneling: float = 0.1,
) -> None:
"""
Initialize quantum neuron.
Args:
num_qubits: Number of qubits (must be power of 2 for state vector)
coherence_time: Quantum coherence duration in milliseconds
tunneling: Tunneling probability (0.0 to 1.0)
Raises:
ValueError: If num_qubits is not a power of 2
"""
if num_qubits & (num_qubits - 1):
raise ValueError("num_qubits must be a power of 2")
self.num_qubits = num_qubits
self.coherence_time = coherence_time
self.tunneling = tunneling
self.state = np.zeros(2 ** num_qubits, dtype=complex)
self.state[0] = 1.0 # Initialize to |0⟩ state
```
View on GitHub