一键导入
source-command-deploy
웹스토어 배포 (main 가드 → tag push → 스토어 빌드 → zip → GitHub Release draft → 심사 요청 안내)
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
웹스토어 배포 (main 가드 → tag push → 스토어 빌드 → zip → GitHub Release draft → 심사 요청 안내)
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
코드베이스 전체를 컨벤션·패턴 기준으로 감사. 리포트 전용 — fix·빌드·커밋 안 함.
pnpm build 실행 후 결과 요약
변경된 코드를 시급도별로 보고. 리포트 전용 — fix·빌드·커밋 안 함.
저장소 문서(Codex/DIRECTORY/ARCHITECTURE/DESIGN/README/PERMISSION/privacy/AUTHORING)를 문서별 전담 에이전트가 병렬로 코드베이스와 양방향 대조(사실오류 + 누락 커버리지)해 stale 탐지 → 통합 리포트 → 항목별 확인 → 수정. guide/ko·en 본문은 제외(/guide 전담). 빌드 안 함.
e2e 전체 스위트 실행 + 리포트 전용. fix·spec 수정 금지. green & 클린 트리면 e2e/.last-green에 커밋 해시 기록.
e2e 시나리오를 Playwright spec으로 변환하고 실행-수정 루프로 green까지 자기완결. 유일하게 빌드(build:e2e)가 허용되는 작성 단계.
| name | source-command-deploy |
| description | 웹스토어 배포 (main 가드 → tag push → 스토어 빌드 → zip → GitHub Release draft → 심사 요청 안내) |
Use this skill when the user asks to run the migrated source command deploy.
Chrome 웹스토어 배포 흐름. main 브랜치에서만 실행. 버전 bump는 이미 /merge 단계에서 PR에 포함돼 main에 들어와 있다고 가정하고, /deploy는 그 버전을 가리키는 tag를 origin에 push + 스토어 빌드 산출물 패키징 + 크롬 웹스토어 심사 요청 가이드까지 한 번에 진행한다.
1. dev 기준 pull → 작업 (/pull → 코드 작성 → /build로 검증)
2. dev push (/push)
3. /merge — dev 위에서 버전 bump 커밋 + dev → main squash PR → 머지 후 /sync 자동 실행 (dev = origin/main)
4. main 체크아웃 + git pull → /deploy ← 여기 (tag만 push, 새 분기 없음)
package.json의 버전은 /merge에서 bump된 후 main에 squash 머지된 상태여야 한다. 그렇지 않으면 이번 배포는 직전 배포와 같은 버전이 되고, Chrome 웹스토어가 거부한다.브랜치 가드 — git branch --show-current로 현재 브랜치 확인. main이 아니면 즉시 중단:
deploy는 main에서만 실행합니다.
git checkout main && git pull후 다시 시도하세요.
사전 점검 (병렬 실행)
git status — 미커밋 변경 확인. 있으면 "먼저 커밋하세요" 안내 후 중단.git fetch origin main && git status -uno — main이 origin/main과 동기 상태인지. 뒤처지면 git pull 안내 후 중단.node -p "require('./package.json').version" — 배포할 버전 확인git tag -l "v$(node -p \"require('./package.json').version\")" — 같은 tag가 이미 존재하는지git log --oneline -10 — 직전 머지 흐름버전/태그 검증.
package.json 버전이 직전 배포 버전과 같으면 (= /merge에서 bump를 깜빡한 경우) 즉시 중단:
현재 버전이 직전 배포와 동일합니다.
/merge에서 버전 bump를 빠뜨렸거나 같은 버전을 재배포하려는 상황입니다. 의도된 거면 dev에서 bump 후 다시/merge→/deploy하세요.
tag 생성 + push.
git tag v<version>
git push origin v<version>
스토어 빌드. pnpm build:store 실행 (timeout 300000ms). BUGSHOT_STORE_BUILD=1로 manifest의 dev용 key가 빠진 산출물을 만든다.
zip 패키징.
cd dist && zip -r ../bugshot-v<version>.zip . && cd ..
GitHub Release draft 생성.
먼저 직전 tag(git describe --tags --abbrev=0 HEAD^ 또는 git tag --sort=-v:refname | head -2) 이후 main에 머지된 commit·PR 목록을 수집한다 (git log <prev-tag>..HEAD --oneline). 그걸 사용자 관점으로 카테고리화해서 영문 release notes 본문을 직접 작성한다 (--generate-notes 사용 금지 — 자동 생성된 PR 제목 나열은 사용자에게 의미가 약함).
## Highlights
<한 문장으로 이 릴리스가 무엇을 하는지. "tightens X, expands Y, adds Z" 식으로 동사 3개 정도.>
## Features
### <기능 그룹 제목>
- **<짧은 헤드라인>.** <뭐가 달라졌는지 + 왜 중요한지 1-3문장. 사용자 관점 동작 위주.>
- …
## Fixes
- **<버그 헤드라인>.** <원인 + 해결 + 사용자가 체감하는 변화. console 메시지 등은 백틱으로 인용.>
## Install
The Chrome Web Store build (`bugshot-v<version>.zip`) is attached to this release. Until the store review completes you can sideload it:
1. Download and unzip `bugshot-v<version>.zip`
2. Open `chrome://extensions` and enable **Developer mode**
3. Click **Load unpacked** and select the unzipped folder
**Full changelog:** https://github.com/SinhyeokKang/bugshot-2/compare/v<prev-version>...v<version>
.Codex/commands/* 스킬 / AGENTS.md / 내부 리팩토링 / docs 수정 / lockfile 동기화 → 제외### <그룹> 단위로 묶어 헤딩한다. 그룹 내 항목은 bold 헤드라인 + 본문 1-3문장.**X.**로 시작, 식별자는 `code`. 가독성 위해 빈 줄 유지.v<prev-version>...v<version>).필터링 후 남는 commit이 0개면 (예: 워크플로우 / 스킬 / 문서만 수정한 release) Highlights에 Maintenance release — no user-facing changes. 한 줄만 적고 Features / Fixes 섹션은 생략. Install / Full changelog는 그대로 유지.
본문이 길어서 인라인 escaping이 복잡하므로 임시 파일을 거쳐 --notes-file로 전달한다:
# 작성한 본문을 임시 파일로 저장 (Write 툴 사용 권장)
# /tmp/bugshot-release-notes.md
gh release create v<version> \
--draft \
--title "v<version>" \
--notes-file /tmp/bugshot-release-notes.md \
bugshot-v<version>.zip
rm /tmp/bugshot-release-notes.md
--draft: 즉시 published되지 않음. 사용자가 GitHub UI에서 검토 후 publish.--notes-file: heredoc/escaping 회피. 작성한 영문 본문을 그대로 전달.gh release create 재시도 가능.--generate-notes로 가벼운 자동 생성 → 사용자 검토 후 재작성하는 방식 허용. 기본은 위 양식대로 직접 작성.심사 요청 안내 + Release publish 안내 + dev 동기화 안내.
/merge가 머지 직후 /sync를 자동 실행하므로 통상 dev는 이미 origin/main과 동기 상태다 (/deploy는 tag만 push하고 main에 새 커밋을 안 만들어 추가 분기도 없음). 따라서 여기서 별도 조치는 대개 불필요. 예외적으로 /merge의 sync가 스킵·실패했거나 /merge 없이 배포한 경우에만 /sync를 수동 실행한다 (/sync가 분기 없으면 "이미 동기화됨"으로 자체 종료).
/merge에서 처리. /deploy에서 pnpm version 실행 금지.git push -f origin v<version>) 금지 — 의도가 명확할 때만 사용자가 직접 처리.gh release create는 --draft로만 호출. --prerelease나 즉시 published 옵션은 사용자 명시 요청 시에만.--generate-notes 자동 생성은 사용자가 명시적으로 "자동으로", "기본으로", "내가 다시 적을게" 같이 표현했을 때만.