بنقرة واحدة
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 자동 생성은 사용자가 명시적으로 "자동으로", "기본으로", "내가 다시 적을게" 같이 표현했을 때만.