| name | doc-writer |
| description | Write structured documentation for code modules, APIs, functions, agents, skills, or pipeline stages. Use when asked to document existing code, create API references, write module overviews, or produce structured markdown docs from source files. Use for (1) documenting a specific file or module, (2) writing API/function references, (3) creating skill or agent documentation, (4) generating pipeline stage docs. SKIP when user asks for code comments inline โ this skill generates standalone .md files only. |
doc-writer
์์ค ์ฝ๋ ๋๋ ์ค๋ช
์
๋ ฅ์ ๋ฐ์ ๊ตฌ์กฐํ๋ Markdown ๋ฌธ์(.md)๋ฅผ ์์ฑํ๋ค.
์ปจํ
์คํธ
์์ค ์ฝ๋ ๋ฌธ์ํ ์์ฒญ ์ ๋ฐ๋ โ ํน์ ํ์ผ/๋ชจ๋ ๋ฌธ์ํ, API/ํจ์ ๋ ํผ๋ฐ์ค ์์ฑ, ์คํฌ/์์ด์ ํธ ๋ฌธ์ํ, ํ์ดํ๋ผ์ธ ๋จ๊ณ ๋ฌธ์ํ ์์ฒญ ์ ์ฌ์ฉ. ์ธ๋ผ์ธ ์ฝ๋ ์ฃผ์ ์์ฒญ์๋ ์ฌ์ฉํ์ง ์๋๋ค(standalone .md ํ์ผ๋ง ์์ฑ).
Quick Start
/doc-writer <๋์ ํ์ผ ๋๋ ๋ชจ๋ ๊ฒฝ๋ก>
/doc-writer <๋์ ํ์ผ> --type api|module|skill|agent|pipeline
์คํ ํ๋ฆ
Step 1. ๋์ ํ์
- ๋์ ํ์ผ/๋๋ ํ ๋ฆฌ Read
- ์ ํ ๊ฒฐ์ :
api โ ํจ์ยท์๋ํฌ์ธํธยท์ธํฐํ์ด์ค ๋ฌธ์
module โ ๋ชจ๋/์ปดํฌ๋ํธ ๊ฐ์ + ๋ด๋ถ ๊ตฌ์กฐ
skill โ SKILL.md ๋ณด์ ๋๋ ์ ๊ท ์์ฑ
agent โ ์์ด์ ํธ ๊ณ์ฝยท์
์ถ๋ ฅ ๋ช
์ธ
pipeline โ ํ์ดํ๋ผ์ธ ๋จ๊ณ ์ค๋ช
+ ํต๊ณผ ์กฐ๊ฑด
Step 2. ๋ฌธ์ ๊ตฌ์กฐ ์ ํ
api ์ ํ:
# ํจ์๋ช
/ ์๋ํฌ์ธํธ
## ๊ฐ์
## ํ๋ผ๋ฏธํฐ
## ๋ฐํ๊ฐ
## ์์
## ์๋ฌ
module ์ ํ:
# ๋ชจ๋๋ช
## ๋ชฉ์
## ๊ตฌ์กฐ
## ์ฃผ์ ์ปดํฌ๋ํธ
## ์์กด์ฑ
## ์ฌ์ฉ ์์
agent/skill ์ ํ:
# ์์ด์ ํธ/์คํฌ๋ช
## ์ญํ
## ์
๋ ฅ (Input Contract)
## ์ถ๋ ฅ (Output Contract)
## ์ ์ ์กฐ๊ฑด / ์ฌํ์กฐ๊ฑด
## ์คํ ํ๋ฆ
## ์์
pipeline ์ ํ:
# ๋จ๊ณ๋ช
## ๋ชฉ์
## ์ง์
์กฐ๊ฑด
## ์คํ ๋ด์ฉ
## ํต๊ณผ ์กฐ๊ฑด
## ์คํจ ์ฒ๋ฆฌ
Step 3. ์์ค ๋ถ์
- ํต์ฌ ๋ก์ง ์ถ์ถ (๊ตฌํ ์์ธ X โ ๊ณ์ฝยท๋์ ์ค์ฌ)
- public interface์ internal detail ๊ตฌ๋ถ
- ์ฃผ์ยทdocstringยทํ์
ํํธ์์ ์๋ ์ถ๋ก
Step 4. ๋ฌธ์ ์์ฑ
- ์ถ๋ ฅ ๊ฒฝ๋ก:
docs/{type}/{module-name}.md (๊ธฐ๋ณธ) ๋๋ ์ฌ์ฉ์ ์ง์ ๊ฒฝ๋ก
- ์ฝ๋ ๋ธ๋ก ์์๋ ์ค์ ์๋ ๊ฐ๋ฅํ ๊ฒ๋ง ํฌํจ
- "๊ตฌํ์ด ๋ณ๊ฒฝ๋๋ฉด ๊นจ์ง ์ ์๋" ๋ด๋ถ ์ธ๋ถ์ฌํญ ์ต์ํ
Step 5. doc-verifier ๊ฒ์ฆ ๊ถ๊ณ
์์ฑ ํ /doc-verifier <์์ฑ๋-doc.md> --source <๋์-ํ์ผ> ์คํ ๊ถ๊ณ .
๋ฌธ์ ํ์ง ๊ธฐ์ค
| ๊ธฐ์ค | PASS | FAIL |
|---|
| ๋ชฉ์ ๋ช
ํ์ฑ | ์ฒซ ๋ฌธ๋จ์ "๋ฌด์์ ํ๋๊ฐ" ๋ช
์ | "์ด ๋ชจ๋์..." ์ผ๋ก ์์ ํ ๋ชจํธ |
| ์์ ํฌํจ | ์ค์ ์ฌ์ฉ ์ฝ๋ 1๊ฐ+ | ์์ ์์ |
| ๊ณ์ฝ ๋ช
์ | ์
๋ ฅ/์ถ๋ ฅ ํ์
๋ช
์ | "์ ์ ํ ๊ฐ ์ ๋ฌ" ์์ค |
| ์๋ฌ ์ฒ๋ฆฌ | ์ฃผ์ ์คํจ ์ผ์ด์ค ๋ช
์ | ์๋ฌ ์น์
์์ |
Diataxis 4-Quadrant ์ปค๋ฒ๋ฆฌ์ง
๋ฌธ์ ์์ฑ ์ ํด๋น ๋ฌธ์๊ฐ ์๋ 4๋ถ๋ฉด ์ค ์ด๋ ์ ํ์ธ์ง ๋ฐ๋์ ๋ถ๋ฅํ๋ค.
| ๋ถ๋ฉด | ๋ชฉ์ | ๋
์ ์ํ | ํต์ฌ ์ง๋ฌธ |
|---|
| Tutorial (ํ์ต) | ํ์ต ๊ฒฝํ ์ ๊ณต โ ๋ฐ๋ผ ํ๋ฉฐ ๋ฐฐ์ | ์
๋ฌธ์, ์ฒ์ ์์ | "์ด๋ป๊ฒ ์์ํ๋?" |
| How-to (๊ณผ์
) | ํน์ ๋ชฉํ ๋ฌ์ฑ ์ ์ฐจ ์๋ด | ์ด๋ฏธ ์์ง๋ง ๋ฐฉ๋ฒ ํ์ | "X๋ฅผ ์ด๋ป๊ฒ ํ๋?" |
| Reference (์ ๋ณด) | ์ ํํ ๊ธฐ์ ์ ๋ณด ์ ๊ณต | ๊ฒ์ํ๋ ์ฌ๋ | "Y์ ์ ํํ ์คํ์?" |
| Explanation (์ดํด) | ๊ฐ๋
ยท์ค๊ณ ๋ฐฐ๊ฒฝ ์ดํด | ์์ธ์ง ๊ถ๊ธํ ์ฌ๋ | "์ ์ด๋ ๊ฒ ์ค๊ณํ๋?" |
๋ถ๋ฅ ์ ์ฐจ
- ๋์ ํ์ผ ๋ถ์ ํ ์ฃผ ๋ถ๋ฉด 1๊ฐ + ๋ถ ๋ถ๋ฉด(์์ผ๋ฉด) ์ ํ
- ๋ฌธ์ ํค๋์ ๋ถ๋ฉด ํ๊ทธ ๋ช
์:
<!-- diataxis: how-to -->
- ์ปค๋ฒ๋ฆฌ์ง ๊ฐญ ํ๋๊ทธ: ๋ชจ๋ ๋๋ ์คํฌ ๋ฌธ์ํ ์ 4๋ถ๋ฉด ์ค ๋น ์ง ๋ถ๋ฉด์ด ์์ผ๋ฉด
<!-- gap: tutorial, explanation --> ํํ๋ก ๋ช
์
๋ถ๋ฉด๋ณ ๋ฌธ์ ๊ตฌ์กฐ ํํธ
- Tutorial โ ๋จ๊ณ๋ณ ์ค์ต, ์ค๊ฐ ๊ฒฐ๊ณผ ํ์ธ ํฌํจ, "๋ค์์ ๋ฐฐ์ธ ๊ฒ" ์๋ด
- How-to โ ๋ชฉํ ๋จผ์ , ์ ์ ์กฐ๊ฑด ๋ช
์, ๊ฒฐ๊ณผ ํ์ธ ๋ฐฉ๋ฒ ํฌํจ
- Reference โ ์์ ์ฑยท์ ํ์ฑ ์ต์ฐ์ , ์ํ๋ฒณ/๋
ผ๋ฆฌ ์ ์ ๋ ฌ, ์์๋ ์ต์
- Explanation โ ๋งฅ๋ฝยท๋ฐฐ๊ฒฝยทtrade-off ์์ , ์ํคํ
์ฒ ๊ฒฐ์ ์ด์ ํฌํจ
์ปค๋ฒ๋ฆฌ์ง ๊ฐญ ํ์ ๊ธฐ์ค
| ๊ฐญ ๋ ๋ฒจ | ์กฐ๊ฑด | ๊ถ๊ณ |
|---|
| WARN | Tutorial ๋๋ How-to ์ค ํ๋ ์์ | ๊ฐญ ํ๋๊ทธ + ์์ฑ ๊ถ๊ณ |
| INFO | Explanation ์์ | ๊ฐญ ํ๋๊ทธ๋ง |
| OK | 4๋ถ๋ฉด ๋ชจ๋ ์กด์ฌ | ํต๊ณผ |
์ฐธ์กฐ
- doc-verifier๋ก ๋ฌธ์ ์ ํ์ฑ ๊ฒ์ฆ:
/doc-verifier
- ์์ด์ ํธ ๊ณ์ฝ ํ์ค:
~/.claude/rules-on-demand/agent-contracts.md
- Diataxis ๊ณต์ ๋ฌธ์: https://diataxis.fr