Skip to content

v0.2.0 — 사람의 변경 제어

Choose a tag to compare

@qazcdesnu qazcdesnu released this 02 Oct 02:05
· 47 commits to main since this release
89cc28e

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-msg hook 하나입니다. lg는 그 hook을 읽어 쓰므로 규칙이 두 곳에 생기지 않습니다.

호환성

  • spec_version 2. 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 --version

0.1.0에서 업데이트: pipx install --force git+https://github.com/qazcdesnu/labgate.git@v0.2.0

알려진 한계

  • 세션 도중 사람이 고친 파일은 자동으로 감지하지 못합니다(세션 시작 시점 기준). 세션 도중 직접 고쳤다면 에이전트에게 알려 주세요.
  • lg commit의 터미널 확인은 실수 방지 장치이며 보안 경계가 아닙니다.

문서