<workflow>
  <critical>The workflow execution engine is governed by: {project-root}/_bmad/core/tasks/workflow.xml</critical>
  <critical>You MUST have already loaded and processed: {installed_path}/workflow.yaml</critical>
  <critical>Communicate all responses in {communication_language}</critical>

  <step n="1" goal="환경 확인">
    <critical>📋 CHANGELOG SETUP - 프로젝트에 CHANGELOG 자동 생성 기능 설정</critical>

    <output>📋 **CHANGELOG 자동화 설정**

      이 워크플로우는 프로젝트에 다음 기능을 추가합니다:
      - cliff.toml (git-cliff 설정 파일)
      - release-on-tag.yml 업데이트 (CHANGELOG 자동 생성 포함)

      **동작 방식:**
      1. 태그 푸시 (예: git tag v1.0.0 && git push origin v1.0.0)
      2. GitHub Actions가 CHANGELOG.md 자동 생성
      3. CHANGELOG 커밋 후 태그 이동
      4. GitHub Release 생성

    </output>

    <action>git repository 확인: git rev-parse --git-dir</action>
    <check if="git repository NOT detected">
      <output>⚠️ Git 저장소가 감지되지 않습니다. CHANGELOG 설정을 위해 Git 저장소가 필요합니다.</output>
      <action>HALT</action>
    </check>

    <action>.github/workflows 디렉토리 확인</action>
    <check if=".github/workflows NOT detected">
      <output>⚠️ .github/workflows 디렉토리가 없습니다.
        먼저 /bmad-bmm-github-setup 을 실행하여 GitHub 설정을 완료해주세요.</output>
      <action>HALT</action>
    </check>
  </step>

  <step n="2" goal="기존 설정 확인">
    <action>기존 cliff.toml 확인</action>

    <check if="cliff.toml 존재">
      <output>⚠️ 기존 cliff.toml이 발견되었습니다.</output>
      <ask>기존 cliff.toml을 덮어쓰시겠습니까? [y/n]</ask>
      <check if="user cancels">
        <output>ℹ️ cliff.toml 유지</output>
        <action>{{skip_cliff}} = true</action>
      </check>
    </check>

    <action>기존 release-on-tag.yml 확인</action>
    <check if="release-on-tag.yml 존재">
      <output>📁 기존 release-on-tag.yml이 발견되었습니다.
        CHANGELOG 자동화 버전으로 교체합니다.</output>
      <ask>release-on-tag.yml을 CHANGELOG 버전으로 교체하시겠습니까? [y/n]</ask>
      <check if="user cancels">
        <output>❌ CHANGELOG 설정 취소됨</output>
        <action>HALT</action>
      </check>
    </check>
  </step>

  <step n="3" goal="CHANGELOG 파일 복사">
    <critical>📋 COPY FILES - CHANGELOG 설정 파일 복사</critical>

    <!-- cliff.toml 복사 -->
    <check if="NOT {{skip_cliff}}">
      <action>복사: {{changelog_templates}}/cliff.toml
        → {{target_root}}/cliff.toml</action>
      <output>✅ cliff.toml 생성됨</output>
    </check>

    <!-- release-on-tag.yml 교체 -->
    <action>복사: {{changelog_templates}}/release-on-tag.yml
      → {{target_workflows_dir}}/release-on-tag.yml</action>
    <output>✅ release-on-tag.yml CHANGELOG 버전으로 교체됨</output>
  </step>

  <step n="4" goal="설정 완료 및 안내">
    <output>🎉 **CHANGELOG 자동화 설정 완료!**

      **적용된 설정:**
      ✅ cliff.toml - git-cliff 설정 (Conventional Commits 파싱)
      ✅ release-on-tag.yml - CHANGELOG 자동 생성 워크플로우

      **Conventional Commits 형식:**
      - feat: 새 기능
      - fix: 버그 수정
      - docs: 문서 변경
      - refactor: 리팩토링
      - test: 테스트
      - chore: 기타 변경

      **다음 단계:**
      1. 변경사항 커밋: `git add cliff.toml .github && git commit -m "feat: add CHANGELOG automation"`
      2. 원격 저장소에 Push: `git push origin main`
      3. 태그 생성하여 테스트: `git tag v0.1.0 && git push origin v0.1.0`

      **사용 방법:**
      태그를 푸시하면 자동으로:
      1. CHANGELOG.md 생성/업데이트
      2. CHANGELOG 커밋
      3. 태그를 새 커밋으로 이동
      4. GitHub Release 생성
    </output>

    <ask>변경사항을 지금 커밋하고 Push하시겠습니까? [y/n]</ask>

    <check if="user confirms">
      <action>git add cliff.toml .github/workflows/release-on-tag.yml</action>
      <action>git commit -m "feat: add CHANGELOG automation

- Add cliff.toml for git-cliff configuration
- Update release-on-tag.yml with CHANGELOG generation

Generated by BMAD Method"</action>
      <action>git push origin {{current_branch}}</action>
      <output>✅ 변경사항 Push 완료!</output>
    </check>
  </step>

</workflow>
