Files
AutoCoinTrader/docs/workflow.md

3.6 KiB

Automated Development Workflow Protocol

이 문서는 AI가 프로젝트를 자동으로 진행하기 위한 행동 수칙을 정의합니다. 사용자가 **"워크플로우로 진행해줘"**라고 명령하면, AI는 아래 **[Execution Loop]**를 따릅니다.

🔄 Execution Loop (반복 실행 규칙)

AI는 다음 순서를 엄격히 준수해야 합니다.

  1. Status Check (상태 확인):
    • implementation_plan.md를 읽고, 체크되지 않은( [ ] ) 가장 첫 번째 Phase를 식별합니다.
  2. Proposal & Approval (제안 및 승인 요청):
    • 사용자에게 현재 진행해야 할 Phase와 수행할 작업 내용을 요약하여 보고합니다.
    • "Phase X 작업을 시작하시겠습니까?" 라고 묻고, 사용자의 승인(Yes/Go)을 대기합니다. (즉시 코드를 작성하지 마십시오.)
  3. Execution (실행):
    • 사용자가 승인하면, 아래 **[Phase Detail Prompts]**에 정의된 해당 단계의 지침에 따라 코드를 작성합니다.
    • 이때 반드시 copilot-instructions.md의 C++/Python 규칙과 project_requirements.md의 요구사항을 준수합니다.
  4. Update Plan (플랜 업데이트):
    • 작업이 완료되면 implementation_plan.md의 해당 항목을 체크([x]) 표시하여 업데이트합니다.
  5. Self-Correction (자가 점검):
    • 작성된 코드가 review_prompt.md의 기준(성능, 예외 처리 등)을 충족하는지 확인하고, 부족한 점이 있다면 스스로 수정합니다.

📋 Phase Detail Prompts (단계별 수행 지침)

AI는 실행 단계(Execution)에서 현재 Phase에 맞는 아래 지침을 수행합니다.

Phase 1: 환경 설정 (Setup)

  • 목표: 프로젝트 기반 마련 및 의존성 설정
  • 지침:
    1. copilot-instructions.md의 Tech Stack을 확인하여 폴더 구조 생성.
    2. Python(requirements.txt, .env) 및 C++(CMakeLists.txt) 설정 파일 작성.
    3. .gitignore 및 기본 설정 파일 생성.

Phase 2: 코어 로직 구현 (Core Domain)

  • 목표: 비즈니스 로직 및 데이터 모델 구현
  • 지침:
    1. 코딩 전, 알고리즘 설계와 시간 복잡도를 주석으로 먼저 작성.
    2. copilot-instructions.mdCore Principles를 준수하여 순수 함수/클래스 구현.
    3. 반드시 단위 테스트(Unit Test) 코드를 함께 작성.

Phase 3: 인터페이스 연동 (Integration)

  • 목표: 외부 API, DB, UI 연동
  • 지침:
    1. 외부 시스템과의 통신 로직 구현.
    2. Error Handling: 네트워크 실패, 타임아웃 등을 대비한 방어 코드(try-except, RAII) 작성.
    3. project_requirements.md의 데이터 흐름(Data Flow) 준수 확인.

Phase 4: 시스템 통합 (System Interface)

  • 목표: 메인 진입점 및 전체 프로세스 연결
  • 지침:
    1. main.py 또는 main.cpp 진입점 구현.
    2. 전체 모듈을 연결하고 통합 테스트(Integration Test) 시나리오 작성.
    3. 실제 실행 가능한 상태인지 검증.

Phase 5: 최적화 및 리팩토링 (Refinement)

  • 목표: 품질 향상 및 안정화
  • 지침:
    1. review_prompt.md를 기준으로 전체 코드 리뷰 수행.
    2. 성능 병목(O(N^2) 이상) 및 메모리 누수 점검.
    3. 최종 문서(README.md) 작성.

🛑 Exception Handling

  • 작업 중 에러가 발생하거나 정보가 부족하면 즉시 중단하고 사용자에게 구체적인 질문을 하십시오.
  • 사용자가 "중단" 또는 "수정"을 요청하면 즉시 루프를 멈추고 지시를 따르십시오.