commitgate 0.9.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.template.md +22 -0
- package/CHANGELOG.md +14 -0
- package/README.en.md +2 -0
- package/README.md +2 -0
- package/package.json +1 -1
- package/templates/CLAUDE.template.md +27 -16
package/AGENTS.template.md
CHANGED
|
@@ -8,6 +8,28 @@
|
|
|
8
8
|
> ⚠️ 첫 줄의 `<!-- commitgate:contract -->` 마커를 지우지 마라. `.claude/`·`.cursor/` 진입점 파일이
|
|
9
9
|
> "이 `AGENTS.md`가 CommitGate 계약인가"를 그 마커로 판별하고, `npx commitgate`도 부재 시 경고한다.
|
|
10
10
|
|
|
11
|
+
<!-- commitgate:quickstart -->
|
|
12
|
+
## CommitGate — 빠른 시작 (첫 요청에서 이대로)
|
|
13
|
+
|
|
14
|
+
이 저장소의 코드/문서 변경은 CommitGate REQ 워크플로로만 처리한다. 일반 구현으로 바로 커밋하지 않는다.
|
|
15
|
+
|
|
16
|
+
1. 요청이 [무엇 / 왜 / 제약 / 완료 기준]으로 정리되지 않았으면 **먼저 사용자에게 확인**한다. 추측해서 채우지 않는다.
|
|
17
|
+
2. `package.json`의 `req:new` 스크립트와 `req.config.json`의 `packageManager`를 확인해, 이 저장소의
|
|
18
|
+
패키지매니저 실행 형식으로 `req:new <슬러그>`를 실행해 REQ 티켓·브랜치를 만든다. 형식을 추측하지 않는다.
|
|
19
|
+
3. 그다음부터 매 단계는 `req:next <REQ-id>`의 출력만 따른다. `kind`가 정본이다:
|
|
20
|
+
- `RUN` → 출력된 명령을 그대로 실행하고 다시 `req:next`
|
|
21
|
+
- `AGENT` → 구현·검증·명시적 `git add` 후 다시 `req:next`
|
|
22
|
+
- `AWAIT_HUMAN` → **멈춘다.** 출력된 승인 문장을 그대로 받기 전에는 진행하지 않는다
|
|
23
|
+
- `DONE` → 이 티켓 종료. 통합·릴리즈는 별도 통제점
|
|
24
|
+
- `BLOCKED` → 사람에게 보고. **같은 리뷰를 재시도하지 않는다**
|
|
25
|
+
4. 리뷰가 `NEEDS_FIX`면 지적(findings)을 고친 뒤 다시 `req:next`로 돌아간다.
|
|
26
|
+
5. `state.json`·`responses/`는 직접 `git add` 하지 않는다 — 도구가 관리한다.
|
|
27
|
+
6. 커밋은 `req:next`가 `RUN`으로 지시할 때 `req:commit`으로만 한다. 스스로 `req:commit`을 호출하지 않는다.
|
|
28
|
+
직접 `git commit`은 CommitGate 자체 스캐폴딩 산출물(`init`·`migrate`·`sync`가 쓴 파일)을 커밋할 때만 쓴다.
|
|
29
|
+
<!-- /commitgate:quickstart -->
|
|
30
|
+
|
|
31
|
+
> 위는 빠른 시작 요약이다. 아래가 정본 계약(절대 규칙·통제점·승인 문장)이다.
|
|
32
|
+
|
|
11
33
|
## 역할
|
|
12
34
|
|
|
13
35
|
- **Builder(Claude 등)**: REQ 티켓 단위로 설계→구현→테스트. `req:new`로 티켓·브랜치 생성.
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
이 프로젝트는 [Semantic Versioning](https://semver.org/lang/ko/)을 따릅니다.
|
|
4
4
|
|
|
5
|
+
## 0.9.1
|
|
6
|
+
|
|
7
|
+
신규 설치의 온보딩을 개선하는 **문서 릴리스**입니다(REQ-2026-039). 실행 코드·의존성 변경이 없어 기존
|
|
8
|
+
사용자는 무회귀이고, **신규 설치에만** 반영됩니다(seed-once — 기존 `CLAUDE.md`/`AGENTS.md`는 보존).
|
|
9
|
+
|
|
10
|
+
- **온보딩 Quick Start — always-loaded 템플릿 자립화** (REQ-2026-039). 신규 설치가 생성하는
|
|
11
|
+
`CLAUDE.md`(Claude Code가 항상 로드)와 `AGENTS.md`(Codex·Cursor가 항상 읽는 계약) **앞부분**에,
|
|
12
|
+
첫 요청에서 올바른 첫 행동을 고를 수 있는 자립형 Quick Start 블록(`req:new` → `req:next` 루프 · 5
|
|
13
|
+
kind · `state.json`/`responses` staging 금지 · `git commit` 직접 사용 예외)을 넣습니다. 이전엔 이
|
|
14
|
+
앞부분이 "`AGENTS.md`를 읽어라"는 이정표라, 에이전트가 계약 존재는 알아도 **첫 조작에서 멈추곤**
|
|
15
|
+
했습니다. 두 템플릿의 블록은 **바이트 동일**(단위 테스트로 강제 — 한쪽만 고치는 drift 방지).
|
|
16
|
+
**신규 설치에만 반영**(seed-once — 기존 `CLAUDE.md`/`AGENTS.md`는 보존). 기존 파일에 Quick Start를
|
|
17
|
+
주입하는 UX는 후속(REQ-040).
|
|
18
|
+
|
|
5
19
|
## 0.9.0
|
|
6
20
|
|
|
7
21
|
phase 자동 커밋 opt-in(REQ-2026-037)과 업그레이드 자산 skew 감지·복구(REQ-2026-038)가 핵심입니다. 둘 다 0.8.x 위
|
package/README.en.md
CHANGED
|
@@ -62,6 +62,8 @@ git commit -m "chore: install commitgate"
|
|
|
62
62
|
| `.cursor/rules/commitgate.mdc` | Cursor (`alwaysApply`) |
|
|
63
63
|
| `CLAUDE.md` | Claude Code (always loaded) — created only if absent |
|
|
64
64
|
|
|
65
|
+
> **On a fresh install, `CLAUDE.md` and `AGENTS.md` open with a self-sufficient Quick Start** (clarify the four-box requirement → `req:new` → the `req:next` loop). Because these are always-loaded channels, the agent picks the correct first action on the first request without reading the full contract. An existing `CLAUDE.md`/`AGENTS.md` is preserved — the Quick Start is not injected in that case.
|
|
66
|
+
|
|
65
67
|
Just give the agent a requirement.
|
|
66
68
|
|
|
67
69
|
```text
|
package/README.md
CHANGED
|
@@ -62,6 +62,8 @@ git commit -m "chore: install commitgate"
|
|
|
62
62
|
| `.cursor/rules/commitgate.mdc` | Cursor (`alwaysApply`) |
|
|
63
63
|
| `CLAUDE.md` | Claude Code (항상 로드) — 부재 시에만 생성 |
|
|
64
64
|
|
|
65
|
+
> **신규 설치에서 `CLAUDE.md`와 `AGENTS.md`는 맨 앞에 자립형 Quick Start**(요구 4칸 확인 → `req:new` → `req:next` 루프)를 담습니다. 항상 읽히는 채널이라, 에이전트가 계약 본문을 더 읽지 않아도 첫 요청에서 올바른 첫 행동을 고릅니다. 기존 `CLAUDE.md`/`AGENTS.md`가 있으면 보존되어 이때 Quick Start는 새로 주입되지 않습니다.
|
|
66
|
+
|
|
65
67
|
에이전트에게 요구사항만 주면 됩니다.
|
|
66
68
|
|
|
67
69
|
```text
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "commitgate",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"description": "CommitGate — Builder↔Reviewer(Claude↔Codex) fail-closed 커밋 게이트: 리뷰·승인·증거 없인 커밋을 통과시키지 않는 AI REQ 워크플로 kit (req:new/next/review-codex/doctor/commit)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -1,16 +1,27 @@
|
|
|
1
|
-
# 프로젝트 지침
|
|
2
|
-
|
|
3
|
-
<!-- 이 파일은 `npx commitgate`가 CLAUDE.md가 없을 때만 생성한 템플릿입니다. 자유롭게 수정하세요. -->
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
-
|
|
1
|
+
# 프로젝트 지침
|
|
2
|
+
|
|
3
|
+
<!-- 이 파일은 `npx commitgate`가 CLAUDE.md가 없을 때만 생성한 템플릿입니다. 자유롭게 수정하세요. -->
|
|
4
|
+
|
|
5
|
+
<!-- commitgate:quickstart -->
|
|
6
|
+
## CommitGate — 빠른 시작 (첫 요청에서 이대로)
|
|
7
|
+
|
|
8
|
+
이 저장소의 코드/문서 변경은 CommitGate REQ 워크플로로만 처리한다. 일반 구현으로 바로 커밋하지 않는다.
|
|
9
|
+
|
|
10
|
+
1. 요청이 [무엇 / 왜 / 제약 / 완료 기준]으로 정리되지 않았으면 **먼저 사용자에게 확인**한다. 추측해서 채우지 않는다.
|
|
11
|
+
2. `package.json`의 `req:new` 스크립트와 `req.config.json`의 `packageManager`를 확인해, 이 저장소의
|
|
12
|
+
패키지매니저 실행 형식으로 `req:new <슬러그>`를 실행해 REQ 티켓·브랜치를 만든다. 형식을 추측하지 않는다.
|
|
13
|
+
3. 그다음부터 매 단계는 `req:next <REQ-id>`의 출력만 따른다. `kind`가 정본이다:
|
|
14
|
+
- `RUN` → 출력된 명령을 그대로 실행하고 다시 `req:next`
|
|
15
|
+
- `AGENT` → 구현·검증·명시적 `git add` 후 다시 `req:next`
|
|
16
|
+
- `AWAIT_HUMAN` → **멈춘다.** 출력된 승인 문장을 그대로 받기 전에는 진행하지 않는다
|
|
17
|
+
- `DONE` → 이 티켓 종료. 통합·릴리즈는 별도 통제점
|
|
18
|
+
- `BLOCKED` → 사람에게 보고. **같은 리뷰를 재시도하지 않는다**
|
|
19
|
+
4. 리뷰가 `NEEDS_FIX`면 지적(findings)을 고친 뒤 다시 `req:next`로 돌아간다.
|
|
20
|
+
5. `state.json`·`responses/`는 직접 `git add` 하지 않는다 — 도구가 관리한다.
|
|
21
|
+
6. 커밋은 `req:next`가 `RUN`으로 지시할 때 `req:commit`으로만 한다. 스스로 `req:commit`을 호출하지 않는다.
|
|
22
|
+
직접 `git commit`은 CommitGate 자체 스캐폴딩 산출물(`init`·`migrate`·`sync`가 쓴 파일)을 커밋할 때만 쓴다.
|
|
23
|
+
<!-- /commitgate:quickstart -->
|
|
24
|
+
|
|
25
|
+
- 세부 규칙·통제점·승인 문장의 **정본**은 루트 [`AGENTS.md`](./AGENTS.md)이다.
|
|
26
|
+
(`<!-- commitgate:contract -->` 마커가 없으면 CommitGate 계약이 아니다 — init이 함께 설치한 루트의 `AGENTS.commitgate.md`를 계약으로 읽고, 사용자에게 `AGENTS.md`로의 병합을 요청하라.)
|
|
27
|
+
- Claude Code에서는 `/req` 슬래시 커맨드로 시작할 수도 있다. 진입 절차 상세는 `.claude/skills/commitgate/SKILL.md`.
|