Repository navigation
v0.2.0 — 사람의 변경 제어
labgate 0.2.0의 핵심은 사람의 변경을 명확하게 제어하는 기능입니다. 사람이 코드·문서를 직접 고쳤을 때, 그 변경은 항상 사람 신원의 커밋으로, 에이전트 작업보다 먼저 확정됩니다. 사람이 직접 lg commit을 하든, 에이전트 세션이 먼저 감지하든 결과가 같습니다.
새 기능: 사람의 변경 제어
lg commit(사람 전용): 터미널에서만 커밋합니다. 타입과 필수 trailer를 물어 메시지를 만들거나, 에이전트가 준비한 초안을 확인해 확정합니다. 커밋/편집/취소를 고를 수 있고, 편집한 메시지는 규약을 다시 검사합니다. 게이트 승인이면gate/<Task>, 마일스톤 판정이면milestone/<M>-<verdict>tag도 만듭니다.lg draft(에이전트도 사용): stage와 초안(.lg/pending/COMMIT_MSG)까지만 하고 커밋하지 않습니다. 경로를 생략하면 세션 시작 때 감지된 사람의 변경만 stage하고, 대상 밖에 stage된 변경이 있으면 거부합니다.- 세션 시작 시 자동 감지: 생성되는
scripts/session-check가 커밋되지 않은 변경을 사람의 변경으로 알리고.lg/pending/HUMAN_FILES에 기록합니다. Claude Code에서는 SessionStart hook이 자동으로 실행하고, 다른 도구는 세션 시작 절차의 첫 단계로 실행합니다. - 에이전트 커밋에 사람의 변경이 섞이지 않게: 에이전트는 자기 파일만 경로로 stage합니다.
scripts/agent-commit은-a(--all,-am포함)를 거부하고, Claude Code 설정은git add -A/./-u,git stash,lg commit을 막습니다. - 사람도 작업 타입 사용:
exp,run,result,ref,log를 공통 타입으로 옮겼습니다. 사람이 직접 고친 실험 코드도exp로 커밋할 수 있고, 누가 했는지는 작성자 신원과Actor로 구분합니다.
규칙 구조 개편
- 에이전트 규칙을 매 세션 읽는 불변 규칙(
AGENTS.md)과 상황별로 읽는 절차 문서 8종(specs/procedures/)으로 나눴습니다. 절차가 일반 규칙을 푸는 경우는 양쪽에 명시합니다. specs/workflow.md에는 원칙, 역할, 상태 기계만 남겼습니다. Claude Code 슬래시 명령은 절차 문서를 가리키며,/commit-prep이 추가됐습니다.- 커밋 규칙의 원본은 프로젝트의
commit-msghook 하나입니다.lg는 그 hook을 읽어 쓰므로 규칙이 두 곳에 생기지 않습니다.
호환성
spec_version2.lg commit,lg draft는 0.2.0으로 만든 프로젝트에서만 동작합니다. 0.1.0으로 만든 프로젝트에서는 안내와 함께 거부하며, 그 프로젝트는git commit을 그대로 쓰면 됩니다(자동 이전은 이후lg upgrade에서).lg init이 만드는 파일 수: Claude Code를 쓰면59 + 6N, 쓰지 않으면51 + 6N.- 생성된 프로젝트에서
lg는 권장 도구입니다. 없어도git commit으로 커밋할 수 있습니다.
지원 환경
- Python 3.10–3.14 (각 버전에서 최신·최소 의존성으로 테스트, 테스트 284개)
- 생성되는 hook과
session-check는 Python ≥ 3.9 표준 라이브러리만 사용 - macOS, Linux (Windows는 Git Bash에서 최선 노력)
설치
pipx install git+https://github.com/qazcdesnu/labgate.git@v0.2.0
lg --version0.1.0에서 업데이트: pipx install --force git+https://github.com/qazcdesnu/labgate.git@v0.2.0
알려진 한계
- 세션 도중 사람이 고친 파일은 자동으로 감지하지 못합니다(세션 시작 시점 기준). 세션 도중 직접 고쳤다면 에이전트에게 알려 주세요.
lg commit의 터미널 확인은 실수 방지 장치이며 보안 경계가 아닙니다.
문서
- 설계: labgate-design.md v2.0 §16–§20
- 변경 PR: #1