Cursor와 Claude를 활용한 인간 제어형 AI PR 워크플로우의 Dogfooding
요약
Cursor와 Claude를 활용하여 인간의 검토를 중심에 둔 AI PR(Pull Request) 워크플로우를 구축하고 실제 웹사이트 업데이트에 적용한 사례를 소개합니다. AI가 코드를 생성하되, 인간이 범위를 지정하고 최종 결정을 내리는 거버넌스 중심의 개발 방식을 제안합니다.
핵심 포인트
- AI 보조 코딩 시 검토 가능한(reviewable) PR 상태 유지의 중요성
- AI의 자율성보다는 인간의 결정권을 강화하는 워크플로우 설계
- Cursor를 활용해 변경 사항을 빠르게 생성하고 인간이 정밀 검토
- 제품 방향성 변경 시 관련 법적 문서(개인정보 처리방침 등)의 일관성 확보 필요
최근 저는 Cursor, Claude, 그리고 인간 제어형 PR (Pull Request) 워크플로우를 사용하여 공개된 LogFabric 웹사이트를 업데이트했습니다.
이것은 데모가 아니었습니다.
실제 웹사이트 PR이었으며, 저는 저의 cursor-pr-discipline 워크플로우를 Dogfooding(자사 제품 직접 사용)하기 위해 이를 사용했습니다.
이전 웹사이트 문구는 여전히 Stripe 결제 후 작업에 초점이 맞춰져 있었습니다.
현재의 초점은 다릅니다: Cursor를 위한 인간 제어형 AI PR 워크플로우입니다.
그래서 저는 업데이트를 진행하는 동안 작은 PR을 열고 저만의 워크플로우를 사용했습니다.
제가 만들고 있는 것
저는 cursor-pr-discipline을 만들고 있습니다.
이것은 AI 보조 코딩 (AI-assisted coding)을 사용하면서도 Pull Request가 다음과 같은 상태를 유지하기를 원하는 Cursor 사용자들을 위한 경량 워크플로우 거버넌스 (governance) 팩입니다:
- 범위가 지정된 (scoped)
- 검토 가능한 (reviewable)
- 인간이 결정하는 (human-decided)
목표는 AI를 자율적으로 만드는 것이 아닙니다.
목표는 인간이 무엇을 병합(merge)할지 결정하기 전에, AI 보조 작업을 검토하기 더 쉽게 만드는 것입니다.
PR 범위
초기 범위는 간단했습니다:
cursor-pr-discipline Pro Pack v0에 맞게 공개 홈페이지 문구를 업데이트하는 것.
결과적으로 변경된 파일은 다음과 같습니다:
index.htmlprivacy.htmlterms.html
중요한 부분은 단순히 홈페이지를 바꾸는 것만이 아니었습니다.
개인정보 처리방침 (privacy policy)과 이용 약관 (terms) 페이지도 새로운 제품 방향과 일치해야 했습니다.
그렇지 않으면, 홈페이지는 한 가지를 말하고 있는데 법적/지원 페이지는 여전히 이전의 제품 아이디어를 설명하게 될 것이기 때문입니다.
Cursor를 사용한 방법
저는 첫 번째 단계(first pass)를 위해 Cursor를 사용했습니다.
지침은 의도적으로 좁게 설정했습니다:
홈페이지 문구만 수정할 것.
Cursor는 기존의 결제 후 작업 포지셔닝에서 새로운 인간 제어형 AI PR 워크플로우 포지셔닝으로 메인 랜딩 페이지를 빠르게 업데이트했습니다.
Hero 섹션, 제품 섹션, 로드맵, 그리고 Call to Action (CTA)을 업데이트했습니다.
이 부분은 빨랐습니다.
유용한 점은 Cursor가 "모든 것을 했다"는 것이 아닙니다.
유용한 점은 검토 가능한 변경 사항을 빠르게 생성해냈다는 것입니다.
인간의 검토가 중요했던 부분
홈페이지가 괜찮아 보인 후, 저는 오래된 비즈니스 용어들을 확인했습니다.
저는 다음과 같은 용어들을 검색했습니다:
- Stripe
- post-payment (결제 후)
- subscription (구독)
- Webhook (웹훅)
- MongoDB
- early access (얼리 액세스)
홈페이지는 깔끔했습니다.
하지만 사이트를 수동으로 확인하던 중, 다른 점을 발견했습니다:
푸터(footer) 링크는 작동했지만, 개인정보 처리방침(privacy policy)과 이용약관(terms) 페이지의 내용은 여전히 이전 제품의 방향성을 설명하고 있었습니다.
그것이 바로 인간의 판단이 필요한 지점이었습니다.
PR(Pull Request) 범위를 업데이트해야 했습니다.
무작정 확장하는 것이 아니라,
의도적으로 업데이트해야 했습니다.
새로운 범위는 다음과 같았습니다:
cursor-pr-discipline Pro Pack v0에 맞춰 LogFabric 공개 웹사이트 문구를 업데이트할 것.
범위 내 파일:
index.htmlprivacy.htmlterms.html
범위 외 사항:
- README 변경
- 레이아웃 재설계
- 제품 ZIP 변경
.cursor/rules/- 관련 없는 구현 작업
Claude를 사용한 방법
개인정보 처리방침과 이용약관 페이지를 위해, 저는 좁은 범위의 지침을 가진 Claude를 사용했습니다.
과업은 복잡한 법적 문서를 만드는 것이 아니었습니다.
과업은 오래된 제품 참조를 제거하고 페이지를 현재 제품 모델에 맞게 조정하는 것이었습니다:
- 디지털 ZIP 제품
- Gumroad를 통해 전달됨
- Cursor
.mdc규칙 - 예시
- 결정 템플릿
- 고객 저장소(repository) 접근 권한 없음
- 고객 프로덕션 비밀값(secrets) 접근 권한 없음
- 커스텀 설정 지원 없음
- 규칙은 지침이며, 강제 사항이 아님
Claude는 privacy.html과 terms.html만 업데이트했습니다.
그 후 저는 결과를 수동으로 검토했습니다.
AI에게 위임하지 않은 것들
저는 최종 결정을 위임하지 않았습니다.
인간이 제어한 부분은 다음과 같습니다:
- PR 범위 결정
- 개인정보 처리방침 및 이용약관 페이지를 범위에 포함할지 결정
- 오래된 문구 확인
- 로컬 링크 확인
- 최종 diff(차이점) 검토
- 의도한 파일만 커밋(commit)
.cursor/가 커밋되지 않았는지 확인- PR 생성 및 머지(merge)
- 머지 후 라이브 웹사이트 확인
이것이 이 워크플로우의 핵심입니다.
AI는 제안하고 편집할 수 있습니다.
하지만 무엇이 PR에 포함되어야 하는지, 그리고 머지되어야 하는지는 인간이 결정합니다.
중요한 세부 사항 하나: 로컬 규칙은 커밋되지 않았습니다
Dogfooding을 진행하는 동안 저는 로컬 Cursor 규칙 (local Cursor rules)을 사용했습니다.
하지만 해당 규칙 파일들은 웹사이트 PR의 일부가 아니었습니다.
그것들은 로컬 작업 자료였습니다.
푸시(push)하기 전에, 저는 로컬 .cursor/ 디렉토리를 제거하고 워킹 트리 (working tree)가 깨끗한 상태인지 확인했습니다.
이것은 중요한데, 워크플로우 규칙과 제품 파일이 관련 없는 PR에 실수로 유출되어서는 안 되기 때문입니다.
결과
PR은 공개 웹사이트 문구와 지원 페이지를 업데이트했습니다.
그리고 머지(merge)되었습니다.
머지 후 라이브 사이트를 확인했습니다.
워크플로우는 의도한 대로 작동했습니다:
Cursor는 빠른 이동을 도왔습니다.
Claude는 좁은 범위의 후속 편집을 도왔습니다.
인간은 PR의 범위를 제한하고, 대외적인 일관성을 검토하며, 머지 결정을 내렸습니다.
시사점
AI 보조 개발 (AI-assisted development)에서 위험한 부분은 AI가 코드나 문구를 생성할 수 있는지 여부만이 아닙니다.
위험한 부분은 작업이 범위 내에 머물고 검토 가능한 상태를 유지하는지 여부입니다.
이 작은 PR에서 패턴은 다음과 같았습니다:
AI가 보조함.
인간이 검토함.
인간이 결정함.
이것이 바로 제가 cursor-pr-discipline이 지원하기를 원하는 워크플로우입니다.
관련 링크:
- GitHub 무료 팩: https://github.com/logfabricteam/cursor-pr-discipline
- Gumroad Pro Pack v0: https://kubo03.gumroad.com/l/cursor-pr-discipline
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기