SamHoque/BMAD-Workflow-Automation
요약
Claude Code를 활용하여 BMAD 프로젝트의 스토리 개발 파이프라인을 자동화하는 Bun 기반의 TypeScript 애플리케이션입니다. 초안 작성부터 개발, QA, Git 커밋 및 Discord 알림에 이르는 전 과정을 자동화하며, 충돌 복구 기능을 통해 안정적인 워크플로우를 제공합니다.
핵심 포인트
- Claude Code를 활용한 초안 작성, 개발, QA, 커밋의 전 과정 자동화
- Bun 런타임을 사용한 고성능 TypeScript 애플리케이션 구현
- 상태 지속성 및 충돌 복구(Crash Recovery) 메커니나즘 지원
- Discord 웹후크를 통한 실시간 작업 완료 알림 기능
- MCP 서버 및 context7을 활용한 최신 라이브러리 문서 참조
Claude Code를 사용하여 BMAD 프로젝트 워크플로우를 자동화하는 Bun TypeScript 애플리케이션입니다. 이 도구는 초안 작성부터 커밋 및 배포에 이르기까지 완전한 스토리 개발 파이프라인을 제공하며, 충돌 복구(Crash Recovery) 및 Discord 알림 기능을 갖추고 있습니다.
자동화된 스토리 파이프라인 (Automated Story Pipeline): 초안부터 배포까지의 전체 워크플로우
충돌 복구 (Crash Recovery): 강력한 상태 지속성 및 복구 메커니즘
Discord 통합 (Discord Integration): 스토리 완료에 대한 실시간 알림
Git 통합 (Git Integration): 자동화된 커밋 추적 및 변경 사항 감지
Claude Code 통합 (Claude Code Integration): 원활한 AI 보조 개발 워크플로우
-
Bun 런타임 (Runtime)
-
적절한 별칭(Alias) 설정이 완료된 Claude Code CLI
-
대상 프로젝트를 위한 Git 저장소
-
Discord 웹후크(Webhook) URL (선택 사항, 알림용)
이 저장소를 클론(Clone)하거나 다운로드합니다.
의존성을 설치합니다:
bun install
Discord 웹후크 URL이 포함된 .env 파일을 생성합니다:
DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/your-webhook-url
Claude Code가 zsh 설정에 적절히 별칭(Alias) 지정되어 있는지 확인합니다:
alias claude="/path/to/claude"
현재 디렉토리에서 실행:
bun run index.ts
특정 BMAD 프로젝트 디렉토리와 함께 실행:
bun run index.ts /path/to/bmad/project
디렉토리가 제공되지 않으면 애플리케이션이 다음과 같이 요청합니다:
bun run index.ts
# 프로젝트 디렉토리를 입력하세요 (또는 현재 디렉토리를 사용하려면 Enter를 누르세요):
애플리케이션은 구조화된 개발 파이프라인을 따릅니다:
초안 단계 (Draft Phase):
-
docs/stories/에 기존 초안이 있는지 확인합니다. -
필요한 경우
/BMad:agents:sm *draft를 통해 새 초안을 생성합니다. -
기존 초안을 확인합니다.
승인 단계 (Approval Phase):
-
마크다운 AST 조작을 사용하여 스토리 상태를 "Draft"에서 "Approved"로 업데이트합니다.
개발 단계 (Development Phase):
-
완전한 스토리를 개발하기 위해
/BMad:agents:dev *develop-story {story_name}을 실행합니다. -
최신 라이브러리 문서를 위해 context7을 포함한 사용 가능한 MCP 서버를 활용합니다.
-
실행합니다.
품질 보증 (Quality Assurance):
-
종합적인 품질 검사를 위해
/BMad:agents:qa *review를 실행합니다. -
실행 (Runs)
커밋 단계 (Commit Phase):
-
/commit명령을 실행하고 모든 git 변경 사항을 추적합니다. -
실행 (Executes)
분석 및 알림 (Analytics & Notifications):
- 명령 실행 시간 및 성공률을 추적합니다.
- 완료된 스토리(stories)에 대해 Discord 알림을 전송합니다.
index.ts: 인자 파싱(argument parsing) 및 디렉토리 검증을 포함한 CLI 진입점 (entry point)
src/bmad.ts: 상태 관리(state management) 및 분석을 포함한 메인 워크플로우 오케스트레이션 (orchestration)
src/claude.ts: 비동기 메시징 (async messaging)을 지원하는 Claude Code 프로세스 관리
src/git.ts: simple-git 라이브러리를 사용한 Git 작업
src/webhook.ts: 알림을 위한 Discord 웹훅 (webhook) 통합
src/markdown.ts: Markdown AST 파싱 및 조작 유틸리티
node-pty: 대화형 Claude Code 세션을 위한 터미널 프로세스 스포닝 (spawning)
remark: 완전한 TypeScript 지원을 제공하는 Markdown 파싱 및 조작
simple-git: 포괄적인 TypeScript 정의를 제공하는 Git 작업 라이브러리
dotenv: 환경 변수 (environment variable) 관리
lodash: 데이터 조작을 위한 유틸리티 함수
프로젝트 루트에 .env 파일을 생성하세요:
# 스토리 완료 알림을 위한 Discord 웹훅 URL
DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/your-webhook-url
애플리케이션은 다음 명령을 사용하여 Claude CLI 경로를 자동으로 탐색합니다:
zsh -ic "alias claude"
이를 위해서는 zsh 설정에 Claude가 적절히 에일리어스 (alias) 되어 있어야 합니다.
애플리케이션은 다음 Claude CLI 플래그 (flags)를 지원합니다:
--dangerously-skip-permissions
--output-format
--verbose
--max-turns
--model
├── index.ts # CLI 진입점
├── src/
│ ├── bmad.ts # 메인 워크플로우 오케스트레이션
...
# 애플리케이션 시작
bun run start
# TypeScript로 직접 실행
...
-
애플리케이션은 신뢰할 수 있는 Claude 명령 실행을 위해 프린트 모드 (
-p)를 사용합니다. -
복잡한 상호작용의 경우
node-pty를 사용하는 대화형 모드 (interactive mode)로 전환합니다. -
모든 명령은 실행 시간 및 종료 코드 (exit codes)를 포함하여 분석 데이터로 추적됩니다.
-
충돌 복구 (crash recovery)를 위해 상태 (state)가 유지됩니다.
-
Bun이 설치되어 있고 적절하게 설정되었는지 확인하십시오
-
기존의 TypeScript 패턴과 코드 스타일을 따르십시오
-
실제 BMAD 프로젝트로 변경 사항을 테스트하십시오
-
필요에 따라 문서를 업데이트하십시오
ISC License - 자세한 내용은 package.json을 참조하십시오
Sam Hoque
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Codex tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기