seb1n/technical-writing
Write clear, concise, and accurate technical documentation including API references, user guides, tutorials, changelogs, and architecture docs, tailored to the target audience.
npx skills add https://github.com/seb1n/awesome-ai-agent-skills --skill technical-writing
This skill enables an AI agent to produce high-quality technical documentation across a range of formats — API references, user guides, getting-started tutorials, changelogs, architecture decision records, and more. The agent analyzes the target audience, structures information logically, applies consistent formatting standards, and ensures every document is accurate, scannable, and actionable.
Determine which type of document is needed (API reference, tutorial, user guide, changelog, architecture doc) and who will read it (beginner developers, experienced engineers, end users, stakeholders). Adjust vocabulary, depth, and assumed prerequisites accordingly. A tutorial for beginners should explain every step; an API reference for senior engineers should be terse and precise.
Collect all relevant inputs: source code, existing documentation, design documents, user stories, API schemas (OpenAPI/Swagger), commit histories, or stakeholder interviews. Identify the authoritative source for each piece of information to ensure accuracy. Note any gaps that need clarification.
Create an outline following the conventions of the document type. API references use a consistent per-endpoint template. Tutorials follow a step-by-step progression. Architecture docs follow a decision-record format (context, decision, consequences). Plan where code examples, tables, and callout boxes will appear.
Draft the document using clear, direct language. Prefer active voice and short sentences. Lead each section with the most important information. Include complete, runnable code examples that readers can copy and execute. Use consistent terminology and define acronyms on first use. Format according to the chosen standard (Markdown, reStructuredText, AsciiDoc).
Insert a table of contents for long documents, anchor links between related sections, and links to prerequisite or follow-up documentation. Add "Next steps" sections at the end of tutorials.
Verify all code examples compile or run correctly. Confirm API endpoint paths, parameters, and response schemas match the actual implementation. Check that every tutorial step produces the described result. No placeholder text or TODO items should remain.
Provide the agent with:
Example prompt: "Write an API reference for the /users endpoint. The audience is third-party developers. Here is the OpenAPI spec: [attached file]."
Input: "Document the POST /api/v1/webhooks endpoint. Creates a webhook subscription. Requires Bearer token auth. Body: url (string, required), events (string[], required), secret (string, optional). Returns 201 or 422."
Output:
> ## POST /api/v1/webhooks
>
> Creates a new webhook subscription. Requires a Bearer token in the Authorization header.
>
> | Field | Type | Required | Description |
> |-------|------|----------|-------------|
> | url | string | Yes | HTTPS endpoint URL to receive payloads. |
> | events | string[] | Yes | Event types to subscribe to (e.g., ["order.created"]). |
> | secret | string | No | HMAC-SHA256 signing secret. Auto-generated if omitted. |
>
> `bash
> curl -X POST https://api.example.com/api/v1/webhooks \
> -H "Authorization: Bearer sk_live_abc123" \
> -H "Content-Type: application/json" \
> -d '{"url":"https://myapp.com/hooks","events":["order.created"]}'
> `
>
> 201 Created: {"id":"wh_9a8b7c6d","url":"https://myapp.com/hooks","events":["order.created"],"active":true}
>
> 422 Error: {"error":{"code":"validation_error","details":[{"field":"url","message":"URL must use HTTPS."}]}}
Input: "Write a getting-started tutorial for our Python SDK (acme-sdk). Install, authenticate, and list projects."
Output:
> # Getting Started with the Acme Python SDK
>
> ## Prerequisites
> - Python 3.9+ and an Acme API key (found at Settings > API Keys)
>
> ## Step 1: Install the SDK
> `bash
> pip install acme-sdk
> `
>
> ## Step 2: Set Your API Key
> `bash
> export ACME_API_KEY="sk_live_your_key_here"
> `
>
> ## Step 3: List Your Projects
> `python
> import os
> from acme_sdk import AcmeClient
>
> client = AcmeClient(api_key=os.environ["ACME_API_KEY"])
> for project in client.projects.list():
> print(f"{project.id}: {project.name}")
> `
>
> Expected output:
> `
> proj_abc123: My First Project
> proj_def456: Marketing Site
> `
>
> ## Next Steps
> - Create a project programmatically
> - Set up webhooks for real-time events
Take seb1n/technical-writing from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference pip.
Without those the skill loads but fails at the first command.