Jungseob's Note
포스트

OpenSpec Cloud Agent, 명세와 코드의 어긋남을 검토 가능한 변경으로

OpenSpec Cloud Agent가 저장소의 기존 명세와 PR을 대조하고, 동작 불일치의 근거와 수정 선택지를 제시하는 방식 및 초기 접근 프로그램의 상태를 정리한다.

OpenSpec Cloud Agent, 명세와 코드의 어긋남을 검토 가능한 변경으로

TL;DR

  • OpenSpec Cloud Agent는 기존 저장소의 명세와 코드 변경을 비교해 동작의 불일치를 찾는다. 어떤 요구사항과 코드가 충돌하는지 정확한 위치를 함께 보여준다. 단순한 경고를 넘어 구현을 고칠지 명세를 바꿀지 결정할 근거를 제공한다.
  • PR 검사 외에도 연결된 저장소를 매일 스캔하고 수정 PR을 열 수 있다. 수정안은 사람이 검토하는 흐름으로 소개된다. 요구사항과 맞지 않는 변경을 발견했다고 자동으로 병합한다는 뜻은 아니다.
  • 접근할 저장소는 사용자가 선택하며 스캔용 임시 클론은 작업 뒤 삭제한다. 다만 이 설명만으로 다른 처리 데이터의 보존 정책까지 알 수는 없다. 2026년 9월 11일 공지에 따라 초기 접근 프로그램의 신규 신청은 중단된 상태다.

코드가 바뀌었는데 명세는 그대로 남을 때

PR 하나가 제품의 실제 동작을 바꾸더라도 그 동작을 설명하는 명세가 함께 수정되지는 않을 수 있다. OpenSpec Cloud Agent는 이 어긋남, 즉 명세 드리프트를 찾아내는 기능으로 시작한다. 새 요구사항 문서를 별도로 만들게 하기보다 연결한 저장소에 이미 있는 OpenSpec 명세를 기준으로 PR을 비교한다. 코드가 의도한 요구사항을 따르는지 검토할 자료를 만드는 제품이다.

여러 저장소의 상태도 일치, 드리프트 발견, 결정 필요로 구분해 보여준다. 원문의 화면 예시에는 API·웹·워커 저장소와 토큰 폐기, 접근 권한, 이벤트 전달 같은 요구사항이 등장한다. 이 목록은 제품의 사용 방식을 설명하는 화면이며 실제 고객 저장소를 검사한 성과 지표는 아니다. 특히 결정 필요라는 상태는 모든 차이를 곧바로 버그로 확정하기보다 팀이 의도를 판단해야 할 여지를 남긴다.

결제 취소가 접근 차단으로 이어지는 경로

첫 번째 예시는 구독 취소와 유료 기간 종료 사이의 차이다. openspec/specs/billing/spec.md:64의 요구사항은 취소한 구독도 current_period_end까지 활성 상태를 유지하도록 한다. 그러나 변경된 취소 경로는 구독 상태를 즉시 canceled로 바꾸고 워크스페이스 접근 검사는 활성 구독에만 진입을 허용한다. 두 코드 경로를 연결하면 이미 결제한 기간이 끝나기 전에 사용자가 접근을 잃는 결과가 나온다.

에이전트 화면은 명세 한 줄뿐 아니라 src/billing/cancel-subscription.ts:37의 상태 변경과 src/workspaces/can-access.ts:52의 접근 검사를 함께 근거로 제시한다. 한 파일의 수정이 다른 파일의 조건과 결합해 제품 동작을 바꾸는 사례다. 대응은 기간 종료까지 접근을 유지하도록 구현을 고치거나 취소 요구사항을 수정하는 방향으로 나뉜다. 어느 쪽이 맞는지는 팀이 실제로 약속한 정책과 변경 의도에 달려 있다.

토큰 폐기에서 드러나는 즉시성의 요구

두 번째 예시의 명세는 폐기한 API 토큰이 즉시 작동을 멈춰야 한다는 요구사항이다. 비교 대상 구현은 폐기 처리를 백그라운드 작업으로 옮겼기 때문에 그 작업이 실행될 때까지 토큰이 유효할 수 있다. 언젠가 폐기된다는 동작은 즉시 폐기된다는 약속과 같지 않다. 원문은 openspec/specs/auth/spec.md:42와 src/auth/revoke.ts:88을 연결해 이 시간적 차이를 설명한다.

수정 PR 예시는 토큰 폐기 자체를 즉시 수행하고 나머지 정리 작업만 큐에 넣는 방식이다. 모든 백그라운드 처리를 제거하는 대신 요구사항이 보장하는 동작을 먼저 완료하도록 책임을 나눈다. PR 검사 화면에서는 수정용 프롬프트를 복사하거나 수정 PR을 여는 선택지를 보여준다. 이 화면의 PR 번호와 코드 증감은 설명용 예시이며 실제 저장소에서 수정과 테스트가 성공했다는 증거로 읽어서는 안 된다.

상시 점검과 사람의 판단이 만나는 경계

OpenSpec은 PR 바깥에서도 연결된 저장소를 매일 스캔하고 드리프트가 발견되면 검토용 수정 PR을 열 수 있다고 설명한다. 접근할 저장소는 사용자가 선택하며 각 스캔에서는 임시 클론을 사용한 뒤 삭제한다. 다만 이 소개 글은 로그나 모델 제공자 측 데이터 보존, 구체적인 권한 범위, 탐지 정확도를 상세히 설명하지 않는다. 임시 클론 삭제라는 약속을 모든 데이터의 무보존이나 완전한 보안 보장으로 확대할 수는 없다.

이 제품이 줄이려는 부담은 명세와 코드 사이의 차이를 사람이 처음부터 찾아 연결하는 일이다. 어떤 요구사항이 바뀌었고 어떤 코드가 그 약속과 충돌하는지, 다음으로 어떤 선택을 해야 하는지를 한 검토 흐름에 모은다. 2026년 8월 28일 초기 접근 공개 이후 9월 11일에는 참여 팀과 제품을 평가·개선하기 위해 신규 신청을 중단했다고 공지했다. 따라서 현재 소개 페이지는 누구나 즉시 가입할 수 있는 정식 서비스의 안내로 해석해서는 안 된다.

참고 자료

OpenSpec — Introducing the OpenSpec Cloud Agent

원문 출처는 본문의 Source에서 확인할 수 있습니다.