# Omd:release Hygiene

오픈소스 릴리스 위생 루틴.

- Repository: https://github.com/kwakseongjae/oh-my-design (552 stars)
- Category: AI and agents
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add kwakseongjae/oh-my-design --skill omd:release-hygiene -g -a claude-code -y`
Codex: `npx skills add kwakseongjae/oh-my-design --skill omd:release-hygiene -g -a codex -y`
Cursor: `npx skills add kwakseongjae/oh-my-design --skill omd:release-hygiene -g -a cursor -y`
Gemini CLI: `npx skills add kwakseongjae/oh-my-design --skill omd:release-hygiene -g -a gemini-cli -y`

## Description

오픈소스 릴리스 위생 루틴. 새 기능/스킬/에이전트를 추가했을 때 (1) 부산물(v1/v2 .bak, _source, 로그, scratch dir)이 changeset에 없는지, (2) 문서(README/docs/home)가 동기화됐는지, (3) npm 배포 대상인지(skills/ + files vs .claude local-preview) 판단했는지 체크리스트로 강제. '릴리스 준비', '커밋 전 점검', 'push 전에 정리', '배포 위생', 'release hygiene' 류 트리거. husky pre-commit이 부산물 게이트를 자동 실행.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# omd:release-hygiene

오픈소스 레포가 "최적의 결과물만 push"하도록 강제하는 루틴. 실험 과정에서 생긴 부산물이 public repo로 새는 것을 막고, 새 deliverable이 문서/패키징과 어긋나지 않게 한다.

자동 게이트는 [`scripts/check-release-hygiene.sh`](../../../scripts/check-release-hygiene.sh)가 husky `pre-commit`에서 돌린다. 이 스킬은 그 게이트가 잡지 못하는 *판단*(문서 동기화, npm 배포 여부)을 사람/에이전트가 책임지게 한다.

## 0. 언제 트리거하나

- 새 스킬 / 에이전트 / CLI 플래그 / 큰 기능을 추가한 직후
- 커밋 또는 push 직전 ("정리하고 올리자")
- 실험(`experiments/`, `.promo/`)을 돌린 세션의 마무리

## 1. 4-항목 체크리스트 (전부 통과해야 push)

### [1] 부산물 0건 (자동 + 수동)

자동: `bash scripts/check-release-hygiene.sh staged`, pre-commit이 이미 실행.
수동 확인 대상 (게이트 정규식 밖일 수 있는 것):

- 반복 드래프트: `*.v1.html`, `*-draft`, `*-old`, `*-copy`
- 빌드 스크립트가 산출물 옆에 남은 경우: `build.mjs`, `crop-*.mjs` (experiments 안이면 gitignore로 OK)
- 에이전트 로그 / 리뷰 덤프: `.orchestrator.log`, `.reviews/`
- 소스 크롭 / 컨택트 시트: `_source-*`, `*-contact-sheet*`

판단 기준: **"이 파일이 6개월 뒤 처음 보는 기여자에게 의미가 있나?"** No면 부산물.

### [2] scratch 디렉토리는 gitignore (절대 추적 X)

`.gitignore`에 다음이 있어야 한다 (이미 설정됨):

```
experiments/      # 갤러리 + 브랜드 목업 + 저니 (로컬 전용)
.promo/           # hyperframes 프로모 영상
.experiments/     # /omd-lab-* 런
.codex/           # codex 채널 self-install 산출물
.agents/skills/omd*/   # generic-agent 채널 self-install
web/.husky/       # root .husky의 중복본
```

새 채널/툴이 self-install 산출물을 만들면 같은 패턴으로 추가.

### [3] 문서 동기화 (deliverable 추가 시)

새 스킬/에이전트를 추가했으면 다음을 **전부** 갱신:

| 위치 | 무엇을 |
|---|---|
| `README.md` | 스킬 표 / 카운트. shipped vs local-preview 구분 명시 |
| `web/src/app/docs/page.tsx` | `SKILLS` 또는 `V2_SKILLS` 배열 + 섹션 eyebrow 카운트 + 상단 nav anchor |
| `web/src/components/landing-v2/sections.tsx` | "N skills + M sub-agents" 하드코딩 카운트, **번들(npm) 기준**으로만. local-preview는 카운트에서 제외 |

홈 화면 카운트는 **npm 번들 기준**이다. local-preview 스킬을 더해도 홈 카운트는 안 올린다 (그게 일관성 신호).

### [4] npm 배포 판단 (shipped vs local-preview)

새 스킬/에이전트가 npm 패키지로 나갈지 결정한다. 두 갈래:

The rest: https://github.com/kwakseongjae/oh-my-design/blob/HEAD/.claude/skills/omd-release-hygiene/SKILL.md
