AI agent skill · by @jh941213
Docs Interfaces
인터페이스/API 문서 생성 — OpenAPI 3.1/AsyncAPI 3.0 명세, API 구성도, 인터페이스 흐름도(시퀀스), API 변경 이력. API 문서/명세(OpenAPI, swagger, AsyncAPI) 작성, 인터페이스·API 구성도, 엔드포인트 문서, API changelog가 필요할 때. 시스템 전체 구성도는 docs-architecture, 사용자 매뉴얼은 docs-manuals, API 설계 원칙 자체는 api-design-principles 사용
Archived 2026-10-23 · Source updated 2026-08-03. Check the original repository for the latest version.
SKILL.md instructions
# 인터페이스/API 문서 스킬 시스템 간 계약을 문서화한다. 명세는 Git이 단일 진실 소스(docs-as-code). ## 입력 $ARGUMENTS ## 산출물 맵 | 대상 | 산출물 | 위치 | |------|--------|------| | REST API | OpenAPI 3.1 명세 | `docs/api/openapi.yaml` | | 이벤트/메시지 인터페이스 | AsyncAPI 3.0 명세 | `docs/api/asyncapi.yaml` | | API 구성도 (시스템 간 호출 관계) | C4 Container + 핵심 플로우별 시퀀스 다이어그램 | `docs/api/README.md` | | 사람이 읽는 레퍼런스 | 엔드포인트별 마크다운 (기존 docs-writer의 api.md 형식 계승) | `docs/api/reference.md` | | API 변경 이력 | breaking/non-breaking 구분 + deprecation 일정 | `docs/api/CHANGELOG.md` | ## Spec-first vs Code-first 판단 - **여러 팀/외부가 계약을 소비** → spec-first: `docs/api/openapi.yaml`을 먼저 작성·리뷰, 코드가 명세를 따른다 - **단일 팀 내부 서비스** → code-first 허용. 단, 코드에서 생성한 명세를 반드시 커밋하고 CI에서 diff (드리프트 게이트는 docs-ci 스킬이 설치) - 어느 쪽이든 명세 파일이 레포에 존재해야 한다 — "코드가 곧 문서"는 인정하지 않음 ## OpenAPI 작성 규칙 1. 코드에서 실제 라우트/스키마를 읽고 작성 — 추측 금지. 확인 불가한 필드는 TODO 주석으로 표시 2. `operationId` 필수, 태그로 리소스 그룹화, 4xx/5xx 응답 포함 3. 예시(example)는 실제 동작하는 값으로 4. 인증 스킴(`securitySchemes`) 명시 5. 이벤트 기반 인터페이스(큐, 웹소켓, 웹훅)는 OpenAPI에 우겨넣지 말고 AsyncAPI로 분리 ## API 구성도 + 흐름도 - 시스템 간 토폴로지: C4 Container 다이어그램 1개 - 핵심 플로우(인증, 주문 생성 등)마다 시퀀스 다이어그램 1개 — 문법은 `../docs-architecture/references/mermaid-conventions.md` 공용 관례 사용 - 에러 경로(`alt` 블록)를 최소 1개 포함 — 행복 경로만 그리지 않는다 ## API CHANGELOG 규칙 ```markdown ## [v1.4.0] - 2026-07-27 ### Breaking - `GET /users` 응답에서 `nickname` 제거 → `profile.nickname` (마이그레이션: …) ### Added - `POST /invoices/bulk` ### Deprecated - `GET /v1/legacy-search` — 2026-10-01 sunset ``` - breaking 변경은 반드시 마이그레이션 경로를 함께 기술 - oasdiff가 설치돼 있으면 `oasdiff changelog <base> <rev>`로 초안 생성 후 다듬기 ## 실행 절차 1. 라우트/핸들러/스키마 파일 탐색 (`**/routes/**`, `**/api/**`, `**/controllers/**`, 프레임워크별 패턴) 2. 기존 명세가 있으면 실제 코드와 대조 → 불일치 목록 먼저 보고 후 갱신 3. 신규면 OpenAPI 3.1 골격 생성 → 리소스별 채움 4. `docs/api/README.md`에 구성도 + 플로우 다이어그램 5. `docs/docs.yaml` 매니페스트에 `docs/api/*` 항목 갱신 (covers: 라우트 경로 글롭) 6. 명세 검증: `npx @redocly/cli lint docs/api/openapi.yaml` 또는 `npx @stoplight/spectral-cli lint` (설치돼 있을 때만, 없으면 스킵하고 docs-ci 설치 제안) ## 제약 - `docs/` 폴더만 수정. 소스 코드 수정 금지 - 코드에 없는 엔드포인트를 명세에 넣지 않는다