Skip to content

v0.5.0: lg status, lg answer, lg spec adopt

Choose a tag to compare

@qazcdesnu qazcdesnu released this 04 Oct 03:15
· 13 commits to main since this release
3ab377f

요약

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 커밋(Review trailer)과 tag를 함께 만든다.
    • 다음 task를 여럿 고르면 plan 커밋이 이어진다.
    • 마일스톤 판정은 마지막 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.

변경 PR: #6 · 이전 릴리즈: v0.4.1