MCP HubMCP Hub
SKILL·6AF0AC

technical-documentation

wondelai
업데이트됨 11 days ago
4 조회
2,149
221
2,149
GitHub에서 보기
메타wordaiapidesign

정보

이 스킬은 Google 스타일 가이드 원칙을 적용하여 개발자들이 기술 문서를 감사하고, 작성하고, 개선하는 데 도움을 줍니다. README, API 참조 문서, 튜토리얼 작성이나 기존 문서의 명확성, 구조, 일관성 검토와 같은 작업에 활용할 수 있습니다. 능동태 사용, 명확한 절차, 적절한 서식, 접근성 있는 콘텐츠에 중점을 둡니다.

빠른 설치

Claude Code

추천
기본
npx skills add wondelai/skills -a claude-code
플러그인 명령대체
/plugin add https://github.com/wondelai/skills
Git 클론대체
git clone https://github.com/wondelai/skills.git ~/.claude/skills/technical-documentation

Claude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요

문서

Technical Documentation

Audit, write, and improve developer documentation the way Google's technical writers do: start from the reader's task, verify every fact against the code, then apply the style guide in severity order — structure before voice, voice before word choice.

Core Principle

Write for the reader's task, not the product's feature list. Google's guide asks for prose that is conversational but not frivolous, precise, and consistent, because a developer reading docs is trying to get something done, not to admire the product. Two framing rules from the guide shape everything below:

  • Guidelines, not rules. Depart from the guide when doing so improves the content — established domain terminology wins — but stay consistent within the document.
  • Precedence. A project's own style guide comes first, then Google's guide, then Merriam-Webster (spelling), the Chicago Manual of Style (general style), and the Microsoft Writing Style Guide (technical style).

Rules come in two layers. Structural and content rules (headings, procedures, code samples, second person, active voice, timeless docs, accessibility) apply to documentation in any language. Rules tagged [EN] (spelling, serial comma, contractions, the word list) apply only to English text — skip them for other languages, and never translate a document unless asked.

Scoring

Goal: 10/10. Score = number of Quick Diagnostic rows passed (10 rows, 1 point each; the [EN] row auto-passes for non-English docs). Bands: 9-10 = ships as is; 7-8 = word- and voice-level edits only; 5-6 = restructure sections, then re-edit; ≤4 = rewrite from the doc-type skeleton. Blocking findings — wrong or unverifiable facts, a procedure that can't be completed, information that exists only in an image or in an image without alt text — are a separate gate: the doc is not shippable at any score until they're fixed. Report the score, the failed rows, and the exact edits that reach 10/10.

Framework

1. Know the Reader and the Document's Job

Core concept: Every page serves one reader with one task. Name both before writing a word — audience and level, what they'll be able to do afterwards — and pick the document type that fits: tutorial (learn by doing), how-to (accomplish a task), concept (understand), reference (look up), README (orient and start).

Why it works: Readers scan for their task; a page that mixes concept, procedure, and reference forces them to read everything to find anything.

Key insights:

  • Google's Technical Writing course opens a doc with an audience statement and a scope plus non-scope statement — the non-scope rescues readers who are on the wrong page
  • "Before you begin" lists prerequisites before step 1, not inside step 4 (convention)
  • Key points first: the intro states what the reader gets, not the product's history
  • Every procedural page ends with verification ("Confirm that…") and "What's next" (convention)

Applications:

ContextApplicationExample
READMEOrient: what it is, who it's for, three-step start, links outPurpose → install → first run → docs map
Mixed pageSplit concept from procedure into linked pages"How OAuth works" + "Configure OAuth"
Tutorial vs how-toTutorial teaches one path end to end; how-to assumes context"Build your first plugin" vs "Add a hook"

See references/document-types.md when choosing or restructuring a doc type — skeletons for README, getting started, tutorial, how-to, and concept pages, the audience and scope statements, and the self-editing pass for large doc sets.

2. Voice: You, Active, Present, Timeless

Core concept: Address the reader as "you", make the actor of every sentence explicit, describe behavior in the present tense, and write as if the page will be read in five years.

Key insights:

  • "We" hides who acts; "the user" turns the reader into a third party — both weaken an instruction
  • Passive voice is allowed only when the actor is unknown or irrelevant ("The file is encrypted at rest")
  • "Will" belongs only to genuinely later effects: "The server sends an ack", not "will send"
  • Contractions are fine — Google prefers "isn't" over "is not" for negations [EN]
  • Software doesn't want, see, or think: "The API detects", not "the API sees"
  • No "please" (reserve it for asking permission), no "simply / easily / just", no superlatives — if a step is easy, the reader will notice
  • Timeless: cut "currently", "new", and "soon"; never pre-announce unreleased features

Before → after:

  • "Please note that the new dashboard will simply be shown once the user has logged in." → "After you sign in, the dashboard appears."
  • "We recommend that the token is refreshed by the client." → "Refresh the token from the client."

See references/voice-and-words.md when a doc's tone is off or inconsistent — the voice rules with the guide's exact exceptions, inclusive and global-audience language, and the full word list.

3. Sentences and Words

Core concept: Put the condition before the instruction, keep one idea per sentence, and choose the plain word the guide's word list prefers.

Key insights:

  • "To delete the document, click Delete" — readers decide whether a step applies before they act, not after
  • Spell out an abbreviation on first use with the short form in parentheses; skip only universally known ones (URL, HTML)
  • Latin abbreviations translate and scan poorly: "for example", not "e.g."; "that is", not "i.e."; omit "etc." or finish the list [EN]
  • "can" = ability, "may" = permission, "might" = possibility [EN]
  • Word list samples [EN]: sign in (not log in) · set up as a verb · lets you (not allows you to) · through or by using (not via) · after (not once) · use (not leverage or utilize) · checkbox · email
  • Jargon is fine for the stated reader and a defect for anyone else — define it or link it

Before → after:

  • "Click Save in order to persist the settings once you are done, i.e. when all fields are filled." → "After you fill in all fields, click Save."
  • "The CLI utilizes the GCP SDK (e.g. for auth)." → "The CLI uses the Google Cloud SDK, for example for authentication."

See references/voice-and-words.md when auditing word choice — the word list table (avoid → use → why), abbreviation rules, and modal verbs.

4. Structure: Headings, Lists, Tables, Notices

Core concept: Structure is the reader's map. Headings in sentence case read as a table of contents; lists carry parallel items introduced by a full sentence; tables have header rows; notices are rare and mean something.

Key insights:

  • Task headings are bare imperatives ("Create an instance"); concept headings are noun phrases ("Instance lifecycle"); no "-ing" headings
  • A list needs an introductory sentence ending in a colon, and every item in the same grammatical form; numbered only when order matters
  • Description lists (term → definition) beat two-column tables for paired data
  • Tables: header row, an intro sentence, no merged or empty cells — screen readers depend on it
  • Note = useful but optional; Caution = proceed carefully; Warning = harm or irreversible loss. Don't stack them; one per section is a practical ceiling (inferred)
  • Cross-references say "see", never "above" or "below" — pages reflow and get translated
  • Link text names the target ("see Configure a custom domain"), never "click here"
  • Alt text states the image's purpose; information must never live only in a picture

Applications:

ContextApplicationExample
Wall-of-text pageInsert a task heading wherever the task changes"Install", "Configure", "Verify"
Three stacked notesFold two into body text; keep the one that changes behaviorOne Caution about data loss
Options tableHeader row + intro sentence + parallel cell phrasing"The following flags control output:"

See references/structure-and-formatting.md when fixing page structure — heading, list, table, notice, cross-reference, link-text, image, number, and date rules with before/after pairs.

5. Procedures and Code

Core concept: A procedure is a numbered list of single imperative actions, each stating where to act and what to expect. Code is set in code font, introduced by a sentence ending in a colon, and uses placeholders the reader can't mistake for literals.

Key insights:

  • One action per step; "Optional:" prefix for optional steps; a single step is a bullet, not "1."
  • Sub-steps run a, b, c; document the shortest path, not every alternative
  • UI element names in bold, matching on-screen casing; click for a mouse, tap for touch, select when device-agnostic
  • Code font for filenames, paths, commands, flags, parameters, and values — not for product names
  • Placeholders are ALL_CAPS_WITH_UNDERSCORES, never <your-key> or YOUR_API_KEY, and are explained right after the sample ("Replace PROJECT_ID with…")
  • Command syntax: [optional], {a|b} for exclusive choices, ... for repeatable arguments
  • Samples are runnable, minimal, wrapped at 80 characters, and show the expected output

Before → after:

  • "Run the command below with your key: shipit deploy --key=<your-key>" → "To deploy, run the following command:" → fenced shipit deploy --key=API_KEY → "Replace API_KEY with the key from the Settings page."
  • "1. You should now click on the Deploy button to deploy." → "1. Click Deploy. The status changes to Deploying."

See references/procedures-and-code.md when writing steps or samples — the full procedure rules, UI-element and device verbs, code-in-text, placeholder, command-line syntax, and the sample-code quality checklist.

6. Reference Docs: API, Docstrings, CLI Help

Core concept: Reference text is descriptive, complete, and formulaic on purpose — readers look things up, so every entry must exist and read the same way.

Key insights:

  • Document every public class, method, field, constant, and enum value; a missing entry reads as "unsupported"
  • Open method descriptions with the category verb: "Gets the…", "Sets the…", "Checks whether…", "Creates a…", "Returns…" — never "This method…"
  • Non-boolean parameters start "The…" or "A…"; booleans read "If true, … If false, …" (action) or "True if …; false otherwise" (state)
  • Document return values and exceptions ("Thrown when…") for every method that has them
  • A deprecated element names its replacement in the first sentence
  • CLI --help (convention — Google has no --help page): usage line in [optional] syntax, one-line synopsis, every flag described with the same placeholder style

Before → after:

  • "This method is used for getting the customer." → "Gets the customer for the given customerId. Throws NotFoundError when no customer exists."
  • "@param force - force flag" → "@param force If true, deletes the bucket even if it contains objects. If false, fails when the bucket isn't empty."

See references/api-reference.md when writing or auditing reference material — the verb-by-category table, parameter, return, and exception patterns, one complete JSDoc example, and CLI help conventions.

7. Release Notes, Changelogs, Migration Guides

Core concept: A changelog is documentation for the reader who is about to upgrade. Each entry states what changed, what it means for them, and what to do — in the structure of Keep a Changelog, in the voice of the rest of the docs.

Key insights:

  • Newest version first, an Unreleased section on top, ISO dates in version headings, version headings linked to diffs (Keep a Changelog)
  • Group entries under Added / Changed / Deprecated / Removed / Fixed / Security; never paste commit messages
  • Breaking changes go first in the version, with a link to migration steps (convention)
  • A deprecation entry names the replacement and the removal version or date
  • A migration guide is a procedure: "Before you begin" (versions, backups), numbered steps with before/after snippets, "Verify the migration", rollback
  • Apply the Google layer to every entry: second person for actions, no "currently/new", code font for flags and APIs, one tense used consistently

Before → after:

  • "Various improvements to the auth module (#412)" → "Changed: login() now returns a Session instead of a token string. Update callers that read .token — see Migrate to sessions."

See references/release-notes.md when writing release notes or a migration guide — the Keep a Changelog skeleton, entry patterns per category, deprecation wording, and the migration-guide procedure.

8. Running the Audit, Rewrite, or Write

Core concept: Three modes, one discipline: intake → local conventions → read as the reader → verify facts → apply rules by severity → output in a fixed shape.

Protocol:

  1. Intake. Confirm the mode (audit, improve, or write), document type, reader and level, and language. For write, the reader's task and the fact sources (code paths, existing docs) are required — don't start without them.
  2. Local style guide. Look for CONTRIBUTING.md, STYLE.md, docs/style-guide.md, .vale.ini, and the conventions existing docs already follow (for example, "log in" everywhere). They win over Google. Vale with the Google package automates the [EN] word and punctuation layer if the project wants a linter.
  3. Read references/audit-checklist.md before any audit or improve pass — the rule IDs cited in findings live there; never cite an ID you haven't read.
  4. Read the doc cold as the target reader, then check every command, flag, parameter, and behavior against the code before judging style. A stylish wrong doc is worse than an ugly right one.
  5. Apply rules in severity order: Blocking → High (structure, accessibility, missing reference entries) → Medium (voice, notices, intro sentences) → Low (word list, punctuation [EN]).
  6. Output. A finding's location is one the reader can find: the heading path, plus the line number when auditing a file. Improve = a one-line Score before → after, the full rewritten document, then a ## Change log table (Change | Rule ID + name | Why). Facts stay untouched — a fact stated in the source document counts as received from the user, so keep it (with TODO(verify): … when no code confirms it) rather than deleting it. Write = the document, with TODO(verify) for every gap. Never include a command, flag, or parameter you didn't see in code or receive from the user.

ALWAYS output audits in this format:

# Documentation Audit: [path or title]
**Score:** X/10 — [band]   **Shippable:** yes | no (blocking findings below)
**Diagnostic:** N/10 — failed rows: [row numbers + one-line reason each]
**Doc type / reader:** [type] for [audience, level]   **Language:** [en | xx — [EN] rules skipped]
**Local style guide:** [file found and honored | none — Google applies]
**Blocking:** [wrong/unverifiable facts, unfollowable steps, image-only information — or "none"]
**Findings:**
| # | Location | Rule (ID + name) | Before | After | Severity |
**Rewrite plan:** [ordered: structure → voice → words; what to do first to reach 10/10]

See references/audit-checklist.md when running any audit or rewrite — the full rule table with IDs and severities, the severity rubric, non-English handling, a Vale configuration, and a worked mini-audit.

Common Mistakes

MistakeWhy It FailsFix
Organizing by feature instead of reader taskReaders hunt across sections for one workflowName the reader's task; pick the doc type; one task per page
Fixing style before verifying factsPolished wrong instructions are trusted longerCheck every command and parameter against code first
"Click here" and "see below"Meaningless out of context, to screen readers, and after reflowLink text names the target; cross-refs say "see"
Steps buried in paragraphs, passive and future tenseReader can't tell who does what, or in what orderNumbered imperative steps, condition first, present tense
Stacked Note/Warning boxesEverything shouted, nothing heardOne notice per section; the rest becomes body text
<your-key> or YOUR_API_KEY placeholdersReader types the brackets or reads the prefix as a literalAPI_KEY in caps, explained after the sample
Rewriting the meaning while "fixing style"Reviewer approves prose, ships wrong behaviorFacts unchanged; unknowns become TODO(verify)

Quick Diagnostic

QuestionIf NoAction
Does the first paragraph say who the doc is for and what they'll be able to do?Readers can't tell if they're on the right pageAdd audience, outcome, and non-scope statements
Does the doc type match the reader's task (tutorial · how-to · concept · reference · README)?Concept and steps interleave; nothing is findableSplit by type; link between pages
Is every command, flag, parameter, and behavior verified against code or the user?The doc teaches something falseVerify or mark TODO(verify); not shippable until fixed
Do headings read as a sentence-case table of contents (tasks imperative, concepts noun phrases)?Scanning fails; "-ing" headings hide the actionRewrite headings; add one where each new task starts
Are all sequences numbered steps, one imperative action each, condition first?Readers miss steps or act before checkingConvert paragraphs to steps; move conditions forward
Is every code sample introduced by a colon sentence, with ALL_CAPS placeholders explained?Readers paste literals or don't know what the sample doesAdd intro sentences; fix and explain placeholders
Is the text in second person, active voice, present tense, with no please/simply/just and no anthropomorphism?Instructions read as narrationRewrite sentence by sentence; cut filler
Are links descriptive, cross-refs "see"-based, images alt-texted, tables headed?Screen readers and reflow break the pageFix each; move image-only information into text
Is it timeless — no "currently/new/soon", no pre-announced features?The doc rots the day it shipsRemove time words; describe only shipped behavior
[EN] Does it follow the word list, serial comma, contractions, and American spelling — or the local guide?Small inconsistencies erode trustApply the word list; run Vale if configured

About the Source

Google's Developer Documentation Style Guide is the public house style that Google's technical writers maintain for developers.google.com, Android, and Google Cloud documentation; the companion Technical Writing One and Two courses are Google's internal engineer training, released publicly. This skill adapts both under CC BY 4.0 (per Google's site policies) and adds Keep a Changelog for release notes; it is an independent adaptation, not endorsed by Google.

Further Reading

GitHub 저장소

wondelai/skills
경로: plugins/code-craftsmanship/skills/technical-documentation
0
agent-skillsai-skillsbusinessclaude-codeclaude-code-marketplaceclaude-code-plugin
FAQ

자주 묻는 질문

technical-documentation Skill이란 무엇인가요?

technical-documentation은(는) wondelai이(가) 만든 Claude Skill입니다. Skill은 Claude가 필요할 때 불러오는 지침과 리소스를 묶어 추가 프롬프트 없이 technical-documentation 관련 작업을 수행할 수 있게 합니다.

technical-documentation은(는) 어떻게 설치하나요?

이 페이지의 설치 명령을 사용하세요. technical-documentation을(를) Claude Code 플러그인으로 추가하거나 저장소를 skills 디렉터리에 복제한 다음 Claude를 다시 시작해 Skill을 불러옵니다.

technical-documentation은(는) 어떤 카테고리에 속하나요?

technical-documentation은(는) 메타 카테고리에 속합니다.

technical-documentation은(는) 무료로 사용할 수 있나요?

네. technical-documentation은(는) AIMCP에 등록되어 있으며 무료로 설치할 수 있습니다.

연관 스킬

content-collections
메타

이 스킬은 콘텐츠 콜렉션(Content Collections)을 위한 프로덕션 검증된 설정을 제공합니다. 콘텐츠 콜렉션은 Markdown/MDX 파일을 Zod 검증이 포함된 타입 안전한 데이터 콜렉션으로 변환해주는 TypeScript 최우선 도구입니다. 블로그, 문서 사이트 또는 콘텐츠 중심의 Vite + React 애플리케이션을 구축할 때 타입 안전성과 자동 콘텐츠 검증을 보장하기 위해 사용하세요. Vite 플러그인 구성과 MDX 컴파일부터 배포 최적화 및 스키마 검증에 이르기까지 모든 것을 다룹니다.

스킬 보기
polymarket
메타

이 스킬은 개발자들이 Polymarket 예측 시장 플랫폼을 활용한 애플리케이션을 구축할 수 있도록 지원하며, 거래 및 시장 데이터를 위한 API 통합 기능을 포함합니다. 또한 WebSocket을 통한 실시간 데이터 스트리밍을 제공하여 실시간 거래와 시장 활동을 모니터링할 수 있습니다. 이를 통해 거래 전략을 구현하거나 실시간 시장 업데이트를 처리하는 도구를 생성하는 데 활용할 수 있습니다.

스킬 보기
creating-opencode-plugins
메타

이 스킬은 개발자들이 명령어, 파일, LSP 작업 등 25개 이상의 이벤트 유형에 연결되는 OpenCode 플러그인을 만들 수 있도록 돕습니다. JavaScript/TypeScript 모듈을 위한 플러그인 구조, 이벤트 API 명세, 구현 패턴을 제공합니다. OpenCode AI 어시스턴트의 라이프사이클을 사용자 정의 이벤트 기반 로직으로 가로채거나, 모니터링하거나, 확장해야 할 때 사용하세요.

스킬 보기
sglang
메타

SGLang은 RadixAttention 프리픽스 캐싱을 활용하여 JSON, 정규식, 에이전트 워크플로우를 위한 고속 구조화 생성에 특화된 고성능 LLM 서빙 프레임워크입니다. 특히 반복되는 프리픽스가 있는 작업에서 상당히 빠른 추론 속도를 제공하여 복잡한 구조화 출력 및 다중 턴 대화에 이상적입니다. 제약 디코딩이 필요하거나 광범위한 프리픽스 공유가 있는 애플리케이션을 구축할 때는 vLLM과 같은 대안보다 SGLang을 선택하십시오.

스킬 보기