🌊 SpecFlow 설계 세션

기존 소스코드 지원 방향 확정 — 주요 결정 정리

🏭

SpecFlow가 뭔데?

Claude Code를 누구나 균일하게 쓸 수 있도록 랩핑한 SDLC 자동화 플랫폼

프롬프트 실력에 따라 결과가 천차만별인 문제 → 정해진 워크플로우 + 하네싱으로 해결

💬 Grill Me
→
📄 To Spec
→
🎫 Tickets
→
💻 코딩 ★병목
→
🔍 리뷰
→
✅ 커밋
😓

핵심 문제: 기존 코드에 붙이기

열의 아홉은 기존 코드에 붙이려 함. 근데 에이전트가 기존 파일 구조를 모름.

❌ 지금의 구멍

현재 흐름
scaffold_project_files
→ AGENTS.md (SpecFlow 스펙만)
→ 코딩 시작
→ 기존 repo 파일 구조 모름

✅ 목표

개선 후
scaffold_project_files
→ AGENTS.md + 파일 트리 분석 포함
→ 코딩 시작
→ 코드베이스 맥락 있음

📋 확정된 설계 결정

🧠 코드베이스 컨텍스트 주입

1
누가 분석?MCP 로컬에서 파일시스템 직접 접근 — 서버로 소스 안 올림
2
뭘 넣나?패턴 화이트리스트 (package.json, go.mod 등) + 전체 파일 트리 (10KB 상한)
3
어디에?scaffold_project_files → AGENTS.md 추가 섹션으로 포함
4
갱신 시점?수동 기본 + 에이전트가 필요 시 refresh_context 도구 호출

🔀 Git 브랜치 전략

태스크 시작
→
specflow/task-{id} 생성
→
코드 작성
→
REVIEW 상태
수락
→
커밋 → merge 제안 → 브랜치 삭제
거절
→
브랜치 삭제 + TaskNote 피드백 → 재큐

🔍 Diff 리뷰 UI

태스크 상태 흐름

TODO
→
IN_PROGRESS
→
REVIEW ★신규
→
DONE
/
FAIL

UI 결정

  • TaskDetailModal에 diff 탭 추가
  • 파일 단위 수락/거절
  • 부분 수락 허용
  • 거절 → 피드백 입력 → 재작업
  • FAIL 노트만 재작업 시 에이전트에 주입

🏗️ 핵심 아키텍처 선택
🤖

로컬 에이전트 데몬 방식 채택

GitHub Actions self-hosted runner 패턴과 동일

데이터 흐름
SpecFlow 웹 UI (오케스트레이션)
  ↕ SSE (태스크 디스패치) + REST (결과 전송)
로컬 에이전트 데몬 ← 파일시스템 직접 접근
  ↓ Claude Code 실행
사용자 로컬 코드베이스
  • 파일을 서버로 안 올림
  • 로컬 환경 그대로 실행
  • 웹 UI로 진행 상황 관리
  • 기존 MCP에 데몬 모드 추가
  • 에이전트 자율 루프 (get_next_task)
  • SSE 연결 = presence 감지

💰 Council 결론 — 한정 토큰 상황
🚨

지금 당장 고쳐야 할 것 2가지

⚡ 1순위: SyncSpecsWithExpandedTaskScope 조건 강화
태스크 생성마다 PRD+TRD 전문을 LLM에 전송 → 태스크 30개 = ~540,000 토큰 낭비
→ "PRD/TRD 변경됐을 때만" 또는 수동 트리거로 변경
⚡ 2순위: 서브프로세스 토큰 집계
Claude Code 서브프로세스 토큰이 LlmUsageLog에 안 잡힘 → "내가 얼마 쓰는지" 모름
→ --output-format stream-json에서 usage 필드 파싱

🔴 레드팀이 뒤집은 가정들

"MCP 모드가 효율적"의 함정

  • 세션 재시작 = 컨텍스트 반복 비용
  • 탐색적 대화 = 실패 경로 토큰 누적
  • 사람이 병목 = 완료 작업량 적음

"데몬이 편리"의 함정

  • 로컬 git 상태 모름 → 자동 실패
  • 2시간 잘못 달리면 토큰 낭비
  • 디버깅에 3개 인터페이스 필요
💡 진짜 비용 드라이버
케이스 선택이 아니라 스펙 품질 + 재실행 횟수가 토큰 비용을 결정한다.

📌 한 줄 요약

로컬 실행 + 웹 관리 방식으로 확정. 기존 코드 지원은 AGENTS.md 확장으로 해결.
단, 토큰 낭비 버그 먼저 잡아야 한다.

로컬 에이전트 데몬 AGENTS.md 확장 REVIEW 상태 추가 파일 단위 diff 토큰 집계 수정 우선