커밋·푸시 워크플로
CI 비용은 푸시 횟수에 비례한다(측정: CI_COST_GUIDE). 2026-09-07 PortalConsole은 하루 70커밋을 1~3분 간격으로 올렸고, 같은 날 검증이 70회 돌아 약 105분을 썼다. 그중 대부분은 같은 주제(조직 트리 버튼)를 계속 고친 미세 수정이었다.
규칙
- 커밋은 작업 단위로 한 번 — 파일을 고칠 때마다 커밋하지 않는다. 한 작업이 끝나면 한 커밋으로 묶는다.
- 푸시는 작업이 끝날 때 한 번 — 중간 편집은 로컬에 둔다.
- 검증은 로컬에서 먼저 —
pnpm check·pnpm test를 돌리고, 원격 검증은 통과 확인용으로 한 번만 쓴다. - PR을 기본 경로로 —
main직푸시는 푸시마다 검증이 돌지만, PR은 PR 단위로 돈다. - CI 생략 키워드는 검증이 무의미한 커밋에만 — 버전 범프·생성 파일. 문서 게시가 필요한 커밋에는 쓰지 않는다(게시도 함께 건너뛰어진다). 스쿼시 머지 제목에 넣으면
main검증까지 건너뛴다. - 되돌리기 쉬움은 커밋을 쪼개서 얻지 않는다 — 브랜치·PR 단위로 되돌린다.
도구: scripts/agent-commit.mjs
bash
node scripts/agent-commit.mjs --message "feat(admin): 조직 트리 버튼 계약 정리" --body "근거 한두 줄" --push| 옵션 | 뜻 |
|---|---|
--message | 커밋 요약(필수) |
--body | 커밋 본문 |
--push | 커밋 뒤 한 번만 푸시한다(앞선 미푸시 커밋도 함께 올라간다) |
--dry-run | 인덱스·커밋을 건드리지 않고 미리보기만 |
--skip-ci | 커밋 메시지에 CI 생략 키워드를 붙인다(주의 문구를 출력) |
--allow-empty | 변경이 없어도 커밋 |
동작은 단순하다 — 변경을 모아 한 커밋 → 푸시 전에 미푸시 커밋 수를 알려준다(묶였는지 눈으로 확인하는 지표) → 한 번 푸시. 변경이 없으면 빈 커밋을 만들지 않고, main 에서는 직푸시 주의를 출력한다.
사본을 각 저장소 scripts/ 에 둔다(원본은 이 저장소). 각 저장소 루트 AGENTS.md 에 같은 규칙이 있다.
효과
| 하루 커밋 | 푸시 | 검증 실행 | 소모 |
|---|---|---|---|
| 70 | 70회(편집마다) | 70회 | 약 105분 |
| 70 | 5회(작업 단위) | 5회 | 약 7.5분 |
| 70 | 1회 | 1회 | 약 1.5분 |
에이전트 지침에 넣을 한 줄
편집마다 커밋·푸시하지 말고, 작업이 끝나면
node scripts/agent-commit.mjs --message "..." --push로 한 번에 올려라. 검증이 필요하면 로컬 게이트를 먼저 돌려라.