Repository navigation
v0.5.0: lg status, lg answer, lg spec adopt
요약
lg init 이후에도 터미널 두 개(lg와 에이전트)만으로 연구를 진행할 수 있게 한다. 사람이 판단할 일을 찾고(lg status), 읽고 답하고(lg answer), 사양 초안을 확정하는(lg spec adopt) 일을 명령으로 만들었다. 사람이 문서를 손으로 고치고 git diff --cached로 따로 확인하던 과정을 lg 안으로 옮겼다. 요구사항은 ssm-latent-reasoning의 M0-T0 게이트와 0.5.0 연습 프로젝트에서 실제로 겪은 문제다.
주요 내용
lg status (읽기만, 사람·에이전트)
- 사람이 할 일을 다음 명령과 함께 보여 준다:
- 열린 요청 →
lg answer <ID> - 응답 작성 중, 초안, 내 변경 →
lg commit - task 승인 대기
- 닫힌 요청서의 사본
- 열린 요청 →
- 에이전트가 다음 세션에 반영할 사람 커밋, 진행 상황(마일스톤, task 상태, 미확정 결정)도 보여 준다.
STATUS.md가 아니라 frontmatter,.lg/pending/, 프로젝트의 반영 도구에서 모은다.--json.
lg answer [ID] (사람만, 터미널에서만)
- 게이트·에스컬레이션: 요청서와
lg verify요약을 보여 주고 판정을 한 번 묻는다. 그 답으로## 응답, frontmatter,gate/respond커밋(Reviewtrailer)과 tag를 함께 만든다.- 다음 task를 여럿 고르면
plan커밋이 이어진다. - 마일스톤 판정은 마지막 task일 때만 묻는다.
- 결정은 요청서가 요청한 것만 제목과 함께 묻는다.
- 다음 task를 여럿 고르면
- 결정 확정:
lg answer D0.1. 확정 내용은decide커밋 본문(확정:)에 남는다. - 반영 미리보기: 커밋 전에 상태 변화(카드, 마일스톤, 로드맵, review 이동, tag)를 프로젝트의
apply-human-commits --preview로 보여 준다. 반영할 수 없는 판정이면 쓰기 전에 멈춘다. - 멈추는 경우: 사람이 쓰고 있는 요청서는 덮어쓰지 않는다. 취소하면 아무것도 바뀌지 않는다.
lg spec adopt DRAFT... (사람만)
- 에이전트가
notes/에 쓴 사양 초안(번호 붙은 절)을 stub 사양에 합친다.status: complete, 색인 갱신, 차이를 보여 준 뒤spec커밋 하나. - 번호 없는 절, 사양에 없는 절, 합친 뒤에도 TODO가 남는 경우는 거부한다.
- 실제 초안 9종이 모두 합쳐지는 것을 확인했다.
lg commit
- 확인 화면: stage된 review의
## 응답원문(대화 경로에서 에이전트가 옮겨 적은 것), 반영 미리보기와 반영할 수 없다는 경고, 전체 diff를 pager로 보는 선택지.git diff --cached를 따로 칠 필요가 없다. - Milestone-Verdict: 마일스톤의 마지막 task일 때만 묻는다(실사용에서 M0-T0 판정 중
go를 고를 뻔했다).
spec_version 5 (생성되는 프로젝트)
apply-human-commits --preview- 마일스톤 상태가 바뀌면 로드맵 표의 그 행도 바꾼다. 절차 gate-apply의 특별 규칙에 G6 추가.
- 절차 task-gate: 카드의 완료 기준
- [x]체크, 게이트 요청 전lg verify, 보고에lg answer안내. escalate에도 같은 안내. - conventions §8: 사양 초안을 쓰는 법(사양 하나당 파일 하나, 번호 붙은 절만).
- deny
lg answer,lg spec. README 템플릿. lg upgrade로 4 → 5.
테스트
- unit / contract / tools / commands / e2e 다섯 계층으로 정리했다.
- 공용 도구는
tests/support/에 모았다. - 설명서는
tests/README.md. - Python 3.9 검사는
tests/tools전체를 돈다.
호환성
- spec_version 5.
lg명령은 spec_version 2–5 프로젝트에서 동작한다(반영 미리보기는 5 이상). - 2–4 프로젝트는
lg upgrade로 5까지 올린다. 실제 v0.4.0 tag로 만든 프로젝트로 시험했다.
확인
- 테스트 474개(tag가 생기기 전에는 v0.5.0 tag가 필요한 2개를 건너뜀). Python 3.10–3.14 × 최신·최소 의존성, Linux·macOS, 생성 도구 Python 3.9.
- 연구 프로젝트(읽기 전용)와 0.5.0 연습 프로젝트에서
lg status,lg answer, 대화 경로의lg commit을 썼다.
설치·업데이트
pipx install --force git+https://github.com/qazcdesnu/labgate.git@v0.5.0
lg --version이미 만든 프로젝트 올리기(spec_version 2–4 → 5): 에이전트 세션을 닫고 프로젝트 폴더에서 lg upgrade --dry-run → lg upgrade → git add -A && lg commit(타입 spec). 자세한 내용은 docs/guide/upgrade.md.