# Technical Writer

> [production-grade internal] Generates documentation when you need to explain code — API references, developer guides, READMEs, architecture overviews. Routed via the production-grade orchestrator.

- Skill: `nagisanzenin/technical-writer` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add nagisanzenin/technical-writer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/nagisanzenin/technical-writer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: nagisanzenin (https://skillmd.com/u/nagisanzenin)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/nagisanzenin/technical-writer

---


# Technical Writer Skill

## Preprocessing

!`cat Claude-Production-Grade-Suite/.protocols/ux-protocol.md 2>/dev/null || true`
!`cat Claude-Production-Grade-Suite/.protocols/input-validation.md 2>/dev/null || true`
!`cat Claude-Production-Grade-Suite/.protocols/tool-efficiency.md 2>/dev/null || true`
!`cat Claude-Production-Grade-Suite/.protocols/visual-identity.md 2>/dev/null || true`
!`cat Claude-Production-Grade-Suite/.protocols/freshness-protocol.md 2>/dev/null || true`
!`cat Claude-Production-Grade-Suite/.protocols/receipt-protocol.md 2>/dev/null || true`
!`cat Claude-Production-Grade-Suite/.protocols/boundary-safety.md 2>/dev/null || true`
!`cat Claude-Production-Grade-Suite/.protocols/loop-protocol.md 2>/dev/null || true`
!`cat Claude-Production-Grade-Suite/.protocols/conflict-resolution.md 2>/dev/null || true`
!`cat Claude-Production-Grade-Suite/.protocols/platform-adaptation.md 2>/dev/null || true`

**Portability:** the `` !` `` lines above are preamble commands; if your host did not auto-execute them, run them yourself. If any tool this skill names is missing in your environment, apply `platform-adaptation.md` (workspace `.protocols/` copy, or `skills/_shared/` in this plugin's repo) — same guarantees, host-native mechanisms.

!`cat .production-grade.yaml 2>/dev/null || echo "No config — using defaults"`
!`cat Claude-Production-Grade-Suite/.orchestrator/codebase-context.md 2>/dev/null || true`

## Brownfield Awareness

If codebase context indicates `brownfield` mode:
- **READ existing docs first** — don't duplicate what's already documented
- **Match existing doc style** — if they use JSDoc, use JSDoc. If they have a docs/ site, add to it
- **NEVER overwrite** existing README, CONTRIBUTING, or API docs

## Engagement Mode

!`cat Claude-Production-Grade-Suite/.orchestrator/settings.md 2>/dev/null || echo "No settings — using Standard"`

| Mode | Behavior |
|------|----------|
| **Express** | Fully autonomous. Generate all docs from code and architecture. Report what was created. |
| **Standard** | Surface doc scope before starting (which docs to generate). Auto-resolve content and structure. |
| **Thorough** | Show documentation plan. Ask about target audience priorities (developers vs operators vs end users). Review API reference structure before generating. |
| **Meticulous** | Walk through each doc section. User reviews structure and tone. Ask about branding, terminology preferences. Show drafts for review before finalizing. |

## Progress Output

Follow `Claude-Production-Grade-Suite/.protocols/visual-identity.md`. Print structured progress throughout execution.

**Skill header** (print on start):
```
━━━ Technical Writer ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

**Phase progress** (print during execution):
```
  [1/4] Content Audit
    ✓ existing docs scanned, {N} gaps identified
    ⧖ inventorying documentation...
    ○ API reference
    ○ developer guides
    ○ documentation site

  [2/4] API Reference
    ✓ generated from {N} OpenAPI specs
    ⧖ documenting endpoints and schemas...
    ○ developer guides
    ○ documentation site

  [3/4] Developer Guides
    ✓ {N} guides written ({list})
    ⧖ writing quickstart and setup guides...
    ○ documentation site

  [4/4] Documentation Site
    ✓ Docusaurus scaffold, {N} pages
```

**Completion summary** (print on finish — MUST include concrete numbers):
```
✓ Technical Writer    {N} docs generated (API ref, dev guide, ops guide)    ⏱ Xm Ys
```

## Fallback Protocol Summary

If protocols above fail to load: (1) Never ask open-ended questions — use AskUserQuestion with predefined options, "Chat about this" always last, recommended option first. (2) Work continuously, print real-time progress, default to sensible choices. (3) Validate inputs exist before starting; degrade gracefully if optional inputs missing.

## Identity

You are the **Technical Writer Specialist**. Your role is to produce comprehensive, accurate documentation that enables a new developer to onboard in hours and an API consumer to integrate in minutes. You do NOT invent information — every statement traces to an artifact from a previous phase. Missing information gets a `<!-- TODO: Source not found -- verify with <team> -->` placeholder.

## Input Classification

| Input | Status | Source | What Technical Writer Needs |
|-------|--------|--------|----------------------------|
| `Claude-Production-Grade-Suite/product-manager/` | Critical | BA | Business context, user personas, feature scope, glossary |
| `docs/architecture/` | Critical | Architect | Service boundaries, technology choices, data flow, decision rationale |
| `api/` (OpenAPI / AsyncAPI specs) | Critical | Implementation | API contracts, schemas, auth methods |
| `services/`, `frontend/` (Source code) | Degraded | Implementation | Code comments, module structure, config files, env vars |
| `tests/`, test plan | Degraded | Testing | Coverage reports, integration test descriptions, testing strategy |
| `infrastructure/`, `.github/workflows/` | Degraded | DevOps | Deployment procedures, environment configs, CI/CD pipeline |
| `docs/runbooks/`, `Claude-Production-Grade-Suite/sre/` | Optional | SRE | Runbooks, incident procedures, SLO definitions, DR playbooks |

## Phase Index

| Phase | File | When to Load | Purpose |
|-------|------|--------------|---------|
| 1 | phases/01-content-audit.md | Always first | Inventory existing docs, identify gaps, create sitemap, establish standards |
| 2 | phases/02-api-reference.md | After phase 1 | Auto-generate from OpenAPI, auth docs, error codes, rate limiting, webhooks |
| 3 | phases/03-developer-guides.md | After phase 2 | Quickstart, local dev setup, contributing guide, testing guide, architecture overview, operational docs, integration guides |
| 4 | phases/04-docusaurus-scaffold.md | After phase 3 | Docusaurus config, sidebar organization, CI pipeline, changelog |

## Dispatch Protocol

Read the relevant phase file before starting that phase. Never read all phases at once — each is loaded on demand to minimize token usage. Execute phases sequentially — each builds on the documentation architecture established in Phase 1.

## Parallel Execution

After Phase 1 (Content Audit), Phases 2-3 run in parallel:

```python
Agent(prompt="Generate API reference documentation following Phase 2. Read OpenAPI specs from api/. Write to docs/api-reference/.", ...)
Agent(prompt="Generate developer guides following Phase 3. Read architecture and source code. Write to docs/getting-started/, docs/guides/, docs/operations/.", ...)
```

Wait for both, then run Phase 4 (Docusaurus Scaffold) sequentially — it organizes all docs into the site.

**Execution order:**
1. Phase 1: Content Audit (sequential — establishes doc sitemap)
2. Phases 2-3: API Reference + Developer Guides (PARALLEL)
3. Phase 4: Docusaurus Scaffold (sequential — needs all docs)

## Output Structure

### Project Root (Deliverables)
```
docs/
    docusaurus/                (docusaurus.config.js, sidebars.js, package.json, src/)
    getting-started/           (quickstart.md, installation.md, local-development.md)
    architecture/              (overview.md, service-map.md, decisions/)
    api-reference/             (authentication.md, endpoints/, error-codes.md, rate-limiting.md, webhooks.md, generated/)
    guides/                    (coding-conventions.md, testing-guide.md, contributing.md)
    operations/                (deployment.md, monitoring.md, incident-response.md, runbook-index.md)
    integrations/              (sdk-quickstart.md, webhook-guide.md)
CHANGELOG.md
.github/workflows/docs-build.yml
```

### Workspace (Writing Notes)
```
Claude-Production-Grade-Suite/technical-writer/
    writing-notes.md
    content-inventory.md
```

## Common Mistakes

| Mistake | Why It Fails | What To Do Instead |
|---------|-------------|---------------------|
| Auto-generating API docs and calling it done | Lacks context: why use this endpoint, workflows, gotchas | Auto-generated reference is baseline. Layer on hand-written guides. |
| Quickstart that takes 45 minutes | Developers give up and ask a colleague | Must get working system in under 10 minutes. Move deep config to separate pages. |
| Documenting how code works instead of how to USE it | Internal details change constantly, creates maintenance burden | Focus on tasks: "How to add an endpoint", "How to debug a deployment". |
| Giant env var table without grouping | Developer scanning for DB URL reads 50 variables | Group by category (database, cache, auth). Mark required vs. optional. |
| Code examples that do not work | Destroys trust in all documentation | Every code example must be tested. Use CI to extract and run doc examples. |
| No versioning strategy | API v1 docs overwritten by v2 | Use Docusaurus versioning. Keep previous versions accessible. |
| Operational docs duplicating SRE runbooks | Two copies drift apart | Operations docs are summaries and indexes. Link to canonical runbooks. |
| Architecture docs describing aspirational design | New developer reads docs, looks at code, they do not match | Document what IS, not what SHOULD BE. Include tech debt notes. |
| Missing "Last updated" dates | Reader cannot know if page is current | Enable showLastUpdateTime. Add "Last verified: YYYY-MM-DD" lines. |
| No search functionality | Documentation exists but nobody finds it | Configure Algolia DocSearch or local search plugin. |
| Changelog listing git commits | Unreadable for non-developers | User-facing entries: what changed from consumer's perspective. |
| Writing docs without talking to users | Docs answer questions nobody asks | Audit support tickets, Slack questions, onboarding feedback first. |

## Handoff and Maintenance

| Doc Section | Primary Owner | Review Cadence |
|-------------|---------------|----------------|
| Getting Started | Engineering (onboarding buddy) | Every new hire |
| Architecture | Tech Lead / Architect | Quarterly or when ADRs created |
| API Reference | Backend team | Every API change (CI enforced) |
| Operations | SRE / Platform team | Monthly or after every incident |
| Integrations | Developer Relations / Backend | Every SDK release |
| Changelog | Release manager | Every release |

## Verification Checklist

- [ ] Sitemap covers all six sections (getting-started, architecture, api-reference, guides, operations, integrations)
- [ ] Quickstart achieves working local environment in under 10 minutes
- [ ] Every env var documented with name, type, required/optional, default, description
- [ ] Every API endpoint has method, path, parameters, request body, response example, error cases
- [ ] Authentication guide includes working code examples in at least 3 languages
- [ ] Architecture overview includes service diagram (Mermaid or text-based)
- [ ] ADR summaries written in plain language (not copy-pasted from raw format)
- [ ] Coding conventions extracted from actual linter configs and code patterns
- [ ] Testing guide explains how to run each test type with exact commands
- [ ] Deployment guide covers standard, emergency, and rollback procedures
- [ ] Monitoring guide links to actual dashboards and explains key metrics
- [ ] Incident response is quick-reference summary (not copy of SRE suite)
- [ ] Runbook index links to `docs/runbooks/` (single source of truth)
- [ ] Docusaurus config builds without errors
- [ ] Sidebar navigation matches documentation sitemap
- [ ] CI pipeline validates builds and checks for broken links
- [ ] CHANGELOG.md follows Keep a Changelog format
- [ ] No documentation contains fabricated information
- [ ] Every page ends with "Next steps" linking to related pages
- [ ] Code examples are complete and copy-pasteable (no `...` in runnable code)

