v0.7.0 — Stage B 런타임 패키지 모델
설치 모델이 바뀝니다 — 기존 사용자는 조치가 필요합니다. 실행 코드와 런타임 의존성을 대상 프로젝트에 복사·주입하지 않고, commitgate 패키지에서 실행합니다. 프로젝트에는 거버넌스·감사 데이터만 남습니다.
npm 배포 이력:
0.5.0·0.6.0은 npm에 배포되지 않았습니다.0.4.0다음 릴리스가0.7.0이며, 아래0.5.0·0.6.0항목의 변경도 전부0.7.0에 포함됩니다.
⚠️ Breaking
-
설치가 2단계가 됩니다.
npx commitgate단독 실행으로는 더 이상 설치되지 않습니다.npm install -D commitgate # 1) 런타임이 node_modules/commitgate 에 들어옵니다 npx commitgate init # 2) 설정·계약·스키마와 req:* 스크립트를 깝니다
init은 대상package.json에devDependencies.commitgate선언이 없으면 중단합니다 —req:*가 가리킬 런타임이 없기 때문입니다. 선언의 존재만 확인하고 값 형태는 검증하지 않습니다(file:·link:·workspace:·git URL 전부 정당한 설치 형태입니다). -
scripts/req/**를 복사하지 않습니다. 실행 코드는node_modules/commitgate에만 있습니다. -
tsx·ajv·cross-spawn을 대상package.json에 주입하지 않습니다. 이들은commitgate패키지의 runtime dependency로 전이 설치됩니다. -
req:*스크립트 값이commitgate <verb>가 됩니다(예:req:new→commitgate req:new).npm run req:new -- <slug>UX와 인자 전달은 그대로입니다.
기존 설치본(0.6.0 이하)에서 옮겨오기
기존 프로젝트에는 scripts/req/가 복사돼 있고 req:*가 tsx scripts/req/*.ts를 가리킵니다. init은 이 상태를 감지하면 조용히 섞이지 않도록 중단하고 migrate를 안내합니다.
npm install -D commitgate
npx commitgate migrate # 계획만 출력 — 아무것도 쓰지 않습니다
npx commitgate migrate --apply # package.json 의 req:* 만 전환- 아무것도 삭제하지 않습니다.
scripts/req/·스키마·persona·설정·진입점·workflow/REQ-*증거를 전부 그대로 둡니다. 남은scripts/req/는 더 이상 실행되지 않으니, 정리하려면npx commitgate uninstall계획을 먼저 확인하세요. - 직접 고친 스크립트는 덮어쓰지 않습니다. 값이 정확히 기존 주입값일 때만 전환하고, 한 글자라도 다르면 사용자 값으로 보아 보존한 뒤 수동 조치를 안내합니다.
- 커밋하지 않습니다.
package.json한 파일만 쓰고, 검토는 사용자 몫입니다.
추가
commitgate migrate— 위 비파괴 전환 명령. 기본 dry-run.req:doctorD19 — 설치 모드 진단.req:*값의 형태만으로 예전(vendored)/현재(런타임 패키지)/혼합/없음/사용자정의를 분류합니다. 혼합일 때만 WARN하며 FAIL하지 않습니다 — 예전 설치 형태는 결함이 아니라 지원되는 상태이고,req:commit이 doctor를 하드 게이트로 실행하므로 FAIL로 두면 정당한 프로젝트의 커밋이 막힙니다. manifest·lockfile·node_modules·버전은 검증하지 않습니다.- verb dispatch —
commitgate <verb>가 패키지 내부 모듈로 라우팅됩니다.npx commitgate --dry-run같은 기존 옵션 형태는 그대로init으로 갑니다(하위호환). uninstall에 런타임 제거 안내 추가 —npm uninstall -D commitgate. 이 명령은 여전히 읽기 전용이며 안내를 문자열로 출력만 합니다(npm을 실행하지 않습니다).
지원 범위
- npm — 완전 지원. 매 릴리스 packed tarball smoke로 검증합니다.
- pnpm·yarn(
node_moduleslinker) — 지원. 표준node_modules/.bin/commitgate해소를 씁니다. - Yarn PnP — 이번 릴리스 미지원(검증하지 않았습니다).
nodeLinker: node-modules를 쓰세요. - workspace/monorepo — 워크스페이스 root 설치를 지원합니다. 하위 패키지 독립 설치는 미지원.
- 런타임 버전은 lockfile이 고정하므로
package-lock.json(pnpm/yarn은 각 lockfile)을 커밋하세요.
알려진 한계
- 관리 자산(스키마·persona)과 런타임 패키지의 버전 skew를 자동으로 감지하지 못합니다.
npm update commitgate는 런타임만 올리고 자산은 그대로 둡니다. D19는 스크립트 형태만 보므로 이 축을 잡지 못합니다. 자산 업그레이드·3-way merge는 이번 범위가 아닙니다.
설치
npm install -D commitgate
npx commitgate init기존 설치본(0.6.0 이하)에서 옮겨오기
npm install -D commitgate
npx commitgate migrate # 계획만 — 아무것도 쓰지 않습니다
npx commitgate migrate --apply전체 변경 이력: CHANGELOG.md