스토리 ID 추적 · 근거 보기
규칙은 「모든 기능은 명세의 스토리 ID로 이어지고, 브랜치·커밋·PR에 ID를 적는다」입니다. 비병합 커밋 1,855개 중 61.4%에 스토리 ID가, 70.8%에 스토리 ID나 결정 번호가 있습니다. PR은 쓰지 않았고, 브랜치 200개 중 이름에 스토리 ID가 있는 것은 15개입니다.
- 접수
Jake Tae-moon Jo · 개발 리드 · https://jake-jo-portfolio.vercel.app/ko/process/
2026년 EWA 플랫폼을 만들며 세우고 운영한 방식과, 프로젝트 6건에서 그 방식이 바뀐 과정을 적었습니다. 고객의 수정 요청은 모두 24시간 안에 반영했습니다. 13개 역할의 AI 에이전트 팀에 8단계 파이프라인으로 설계·구현·QA·리뷰를 맡겼습니다. 요구사항과 결정 시트의 답은 고객 쪽 이해관계자가 댔고, 저는 기본값으로 진행한 결정을 확정하거나 입력하고 운영 반영을 지시했습니다.
에이전트 8단계 · 13개 역할
기능 하나, 명세에서 운영까지
가운데 8단계는 역할 에이전트가 맡는다. 위에서는 고객이 요구사항을 대고 본인이 기본값으로 진행한 결정을 확정·입력하며, 아래에서는 본인이 운영 반영을 지시한다.
노드를 누르거나 Tab으로 이동해 Enter를 누르면 그 노드의 설명이 강조됩니다. 둥글고 굵은 테두리는 고객이 맡는 자리입니다. 채운 둥근 칸은 제가 맡는 자리입니다. 점선 둥근 칸은 규칙만 있고 발동한 기록이 없는 자리입니다.
규칙은 「모든 기능은 명세의 스토리 ID로 이어지고, 브랜치·커밋·PR에 ID를 적는다」입니다. 비병합 커밋 1,855개 중 61.4%에 스토리 ID가, 70.8%에 스토리 ID나 결정 번호가 있습니다. PR은 쓰지 않았고, 브랜치 200개 중 이름에 스토리 ID가 있는 것은 15개입니다.
막히는 대신 추천 기본값으로 진행하고, 기록한 뒤 나중에 한 번에 검토합니다. 199행 중 192행에 되돌리기 난이도를 적었고, 데이터·계약이 고착되는 어려운 결정은 11건입니다. 그중 3건은 기록할 때 사람이 확정했고, 8건은 기본값으로 진행했습니다. 앞선 결정을 뒤집는 행은 무엇을 뒤집는지 적습니다.
규칙은 「실패하는 테스트를 먼저 쓴다」입니다. 비병합 fix 커밋 398개 중 86.4%, feat 커밋 764개 중 87.7%가 테스트 파일을 함께 바꿨습니다. 기존 테스트를 고친 경우도 들어간 수치라, 회귀 테스트를 더했다는 뜻은 아닙니다.
레포 사이의 약속은 백엔드 OpenAPI 스냅샷 하나입니다. 웹은 이 스냅샷에서 타입을 생성하고, 앱은 모델을 손으로 씁니다(D-009, 코드 생성은 미룸). 계약이 바뀌면 API 계약 검사가 웹·앱과 백엔드가 어긋나는지 봅니다.
에이전트 세션 여러 개를 동시에 돌립니다. 세션마다 워크트리를 따로 쓰고 건드릴 파일·결정 번호·마이그레이션 이름을 먼저 알립니다. 결정 번호는 쓰는 순간 최댓값+1로 정합니다.
출금·정산·지급·인증·권한·개인정보를 건드리는 변경을 적대적으로 검토하고, 코드는 고치지 않습니다. 기록이 남은 9월 28일 이후 10회 실행했습니다. 보안 리뷰·보안 수정을 언급한 수정 커밋은 30개(6월 14일~10월 29일)입니다.
모든 변경의 정확성·레포 규칙·단순성·테스트 품질을 봅니다. 지적은 blocker·major·minor·nit로 나누고, APPROVE 또는 REQUEST-CHANGES로 판정합니다. 9월 28일 이후 12회 실행했습니다.
계약이나 클라이언트가 바뀔 때 웹·앱이 백엔드 OpenAPI와 맞는지 봅니다. 9월 28일 이후 2회 실행했습니다.
blocker·major, 또는 보안 CRITICAL·HIGH 지적이 남으면 실패한 게이트로 보고 개발로 돌려보냅니다. 같은 지적으로 리뷰와 수정이 두 번을 넘게 되풀이되면 저에게 올리는 규칙도 있습니다. 둘 다 오케스트레이터 지시문의 규칙이고, 에스컬레이션이 실제로 일어난 기록은 없습니다.
권한 설정에서 force-push, reset --hard, rm -rf를 막고, 레포 4개 중 3개는 .env 읽기도 막습니다. 스테이징 서버로 가는 삭제성 명령은 훅이 실행 전에 매번 확인을 요청합니다.
| 프로젝트 | 에이전트 역할 | 게이트를 강제한 것 | 마지막 관문 | 앞 행에서 바뀐 것 |
|---|---|---|---|---|
| 2026.04 – 2026.07건설 현장 관리 | 11 · 리뷰어 1종 | 지시문(테스트 먼저 · 커버리지 80% · 리뷰·QA 뒤 커밋) | 저 PR 병합 106건 | 출발점: 7개 역할로 시작해 11개로 |
| 2026.05 – 2026.11생활가전 렌탈·유지보수 | 11 · 리뷰어 1종(복사) | CI(타입·테스트·빌드) · 통과 뒤 배포 · 삭제에 확인 문구 | 저 PR 병합 139건저 실사용 전 운영 초기화 실행 | 팀은 복사, PR마다 CI · 통과 뒤 배포를 더함 |
| 2026.06 – 현재급여 선지급 핀테크 | 13 = 9 + 리뷰어 4종 | 지시문 · 권한 차단 목록 · 삭제 명령 확인 훅 | 저 push·운영 배포·스토어 지시 | 리뷰어 1 → 4종 · 확인 훅 · 되돌리기 난이도 |
| 2026.08 – 2026.09전력 시장 가격 분석 | 분석가 1 · 검토 2단계 | 첫 실패에서 정지 · 게이트 21종 · 발행 도장 | 저 가설 채택·되돌림 | 규칙을 코드 검사로 · 역할 팀 대신 분석가 1 |
| 2026.09 – 2026.10영화 시나리오 번역 | 11 · 지휘는 스킬 | 지시문 · 도구 종료 코드 · 관문을 망가뜨린 사본으로 시험 | 저 방향 결정 3건고객 작품별 확인 대기 항목 | 역할 11 팀으로 · 관문이 스스로를 시험 |
| 2026.10 (20일)관계망 기반 거래 | 13, EWA와 같은 이름 | 지시문 · 권한 차단(EWA와 같음) · 민감 영역 1건씩 | 저 묶음마다 확인 · 요청 시 커밋고객 기획 질문에 답 | 권한 차단 목록 다시 · 묶음 단위 진행 |