
    iv6                         d Z ddlZddlZddlmZ ddlmZ ddlmZmZm	Z	 ddl
Z
 G d d      Zedk(  rK e       Z ed	        ed
        ed	       ej                  dd      Z ed        ed        ed	       yy)u   
Boris Workflow 자동화 시스템
Research → Plan → Annotate → Todo → Implement → Feedback
6개 파일 자동 생성 + "don't implement yet" 가드
    N)datetime)Path)DictListOptionalc                       e Zd ZdZddefdZdededefdZded	eded
edef
dZded	eded
edef
dZ	ded	eded
edef
dZ
ded	eded
edef
dZded	eded
edef
dZded	eded
edef
dZddedededeeef   fdZy)BorisWorkflowEngineu   Boris Workflow 자동화 엔진Nmemory_pathc                    |t        t              j                  }t        |      | _        | j                  dz  | _        t
        j                  j                  dt        | j                               ddl	m
}  ||      | _        y)u	   초기화Nprojectsr   )MemorySearchEngine)r   __file__parentr
   projects_pathsyspathinsertstrsearchr   search_engine)selfr
   r   s      F/home/jay/workspace/.worktrees/task-2116-dev1/memory/boris_workflow.py__init__zBorisWorkflowEngine.__init__   sf    x.//K,!--
: 	3t//01-/<    	task_namedatereturnc                     |j                         j                  dd      }dj                  d |D              }| d| dS )u   
        Workflow ID 생성

        Args:
            task_name: 작업명
            date: 날짜 (YYYY-MM-DD)

        Returns:
            Workflow ID
         - c              3   L   K   | ]  }|j                         s|d k(  s|  yw)r    N)isalnum).0cs     r   	<genexpr>z<BorisWorkflowEngine._generate_workflow_id.<locals>.<genexpr>-   s     BQ!))+cqBs   $$z	-workflow)lowerreplacejoin)r   r   r   slugs       r   _generate_workflow_idz)BorisWorkflowEngine._generate_workflow_id!   sD      ((c2wwB$BBqi((r   workflow_id
output_dirc                     d| d| d| d| d| d| d}||j                         j                  dd	       d
z  }t        |dd      5 }|j                  |       ddd       |S # 1 sw Y   |S xY w)u   
        research.md 파일 생성

        Args:
            task_name: 작업명
            workflow_id: Workflow ID
            date: 날짜
            output_dir: 출력 디렉토리

        Returns:
            생성된 파일 경로
        ---
id: z-research
date: z%
type: boris-workflow-research
task: 
workflow_id: z&
status: in-progress
---

# Research: uw  

## 📋 목표
이 코드베이스/문제를 깊이 이해하고, 모든 세부사항을 파악한다.

---

## 🔍 리서치 내용

### 1. 개요
(여기에 전반적인 개요 작성)

### 2. 핵심 발견사항
- [발견 1]
- [발견 2]
- [발견 3]

### 3. 세부 분석

#### 3.1 [항목 1]
(상세 내용)

#### 3.2 [항목 2]
(상세 내용)

### 4. 잠재적 문제점
- [문제 1]
- [문제 2]

### 5. 기회 요인
- [기회 1]
- [기회 2]

---

## 📝 요약
(전체 리서치 요약)

---

## 다음 단계
- [ ] plan.md 작성
- [ ] 제이회장님 검토

---
**작성자:** 개발팀장 (GLM-5)
**작성일:** z$
**Boris Workflow Phase:** Research
r   r    z-research.mdwutf-8encodingNr'   r(   openwriter   r   r,   r   r-   content	file_pathfs           r   _create_research_filez)BorisWorkflowEngine._create_research_file0   s    M f k ]  K .\ v o9t IOO$5$=$=c3$G#H!UU	)S73 	qGGG		   
A&&A0c                     d| d| d| d| d| d| d}||j                         j                  dd	       d
z  }t        |dd      5 }|j                  |       ddd       |S # 1 sw Y   |S xY w)u   
        plan.md 파일 생성

        Args:
            task_name: 작업명
            workflow_id: Workflow ID
            date: 날짜
            output_dir: 출력 디렉토리

        Returns:
            생성된 파일 경로
        r/   z-plan
date: z!
type: boris-workflow-plan
task: r0   z6
status: in-progress
annotation_cycle: 0
---

# Plan: u  

## 📋 구현 목표
(여기에 구현 목표 작성)

---

## 🎯 구현 방법

### 1. 아키텍처
(아키텍처 설명)

### 2. 기술 스택
- [기술 1]
- [기술 2]

### 3. 구현 단계

#### Phase 1: [단계명]
- [ ] [작업 1]
- [ ] [작업 2]

#### Phase 2: [단계명]
- [ ] [작업 1]
- [ ] [작업 2]

### 4. 코드 스니펫

```python
# 예시 코드
```

---

## ⚠️ 주의사항
- [주의 1]
- [주의 2]

---

## 🚫 DON'T IMPLEMENT YET
**이 계획은 아직 승인되지 않았습니다.**
**제이회장님의 검토와 승인이 필요합니다.**

---

## Annotation Cycle
**현재:** 0회
**최대:** 6회

### 제이회장님 메모
(여기에 메모를 추가하세요)

---
**작성자:** 개발팀장 (GLM-5)
**작성일:** u`   
**Boris Workflow Phase:** Plan
**⚠️ 구현 금지:** 승인 전까지 코드 작성 금지
r   r    z-plan.mdr1   r2   r3   Nr5   r8   s           r   _create_plan_filez%BorisWorkflowEngine._create_plan_file|   s    M f k ] 	
 
 7n v CDJ IOO$5$=$=c3$G#H!QQ	)S73 	qGGG		r=   c                     d| d| d| d| d| d| d}||j                         j                  dd	       d
z  }t        |dd      5 }|j                  |       ddd       |S # 1 sw Y   |S xY w)u   
        annotated.md 파일 생성

        Args:
            task_name: 작업명
            workflow_id: Workflow ID
            date: 날짜
            output_dir: 출력 디렉토리

        Returns:
            생성된 파일 경로
        r/   z-annotated
date: z&
type: boris-workflow-annotated
task: r0   z@
status: in-progress
annotation_cycle: 1
---

# Annotated Plan: u  

## 📋 제이회장님 피드백 반영

**Annotation Cycle:** 1/6

---

## 🔄 변경사항

### 1. [변경 항목 1]
**원본:** (plan.md 내용)
**수정:** (제이회장님 메모 반영)
**이유:** (수정 이유)

### 2. [변경 항목 2]
**원본:** (plan.md 내용)
**수정:** (제이회장님 메모 반영)
**이유:** (수정 이유)

---

## 📝 수정된 계획

(수정된 전체 계획)

---

## ⚠️ 추가 주의사항
- [새로운 주의 1]
- [새로운 주의 2]

---

## 🚫 DON'T IMPLEMENT YET
**이 계획은 아직 승인되지 않았습니다.**
**Annotation Cycle 진행 중입니다.**

---

## Annotation Cycle
**현재:** 1회
**최대:** 6회
**상태:** 진행 중

### 다음 단계
- [ ] 제이회장님 추가 메모 확인
- [ ] annotation_cycle 2 진행 (필요시)
- [ ] 또는 todo.md 작성 (승인 시)

---
**작성자:** 개발팀장 (GLM-5)
**작성일:** ud   
**Boris Workflow Phase:** Annotate
**⚠️ 구현 금지:** 승인 전까지 코드 작성 금지
r   r    z-annotated.mdr1   r2   r3   Nr5   r8   s           r   _create_annotated_filez*BorisWorkflowEngine._create_annotated_file   s    M f k ] 
 + 4h v }AD IOO$5$=$=c3$G#H!VV	)S73 	qGGG		r=   c                     d| d| d| d| d| d| d}||j                         j                  dd	       d
z  }t        |dd      5 }|j                  |       ddd       |S # 1 sw Y   |S xY w)u   
        todo.md 파일 생성

        Args:
            task_name: 작업명
            workflow_id: Workflow ID
            date: 날짜
            output_dir: 출력 디렉토리

        Returns:
            생성된 파일 경로
        r/   z-todo
date: z!
type: boris-workflow-todo
task: r0   z
status: approved
---

# Todo: u  

## ✅ 승인 완료
**제이회장님이 계획을 승인했습니다.**
**이제 구현을 시작할 수 있습니다.**

---

## 📋 작업 목록

### Phase 1: [단계명]
- [ ] [작업 1]
  - 예상 시간: [시간]
  - 담당: [팀원]
- [ ] [작업 2]
  - 예상 시간: [시간]
  - 담당: [팀원]

### Phase 2: [단계명]
- [ ] [작업 1]
- [ ] [작업 2]

### Phase 3: [단계명]
- [ ] [작업 1]
- [ ] [작업 2]

---

## 📊 진행 상황

**전체:** 0%
**완료:** 0개
**진행 중:** 0개
**대기:** [총 작업 수]개

---

## ⚠️ 구현 원칙
1. **지루해야 한다:** 기계적 실행
2. **중단 금지:** 모든 작업 완료까지 진행
3. **불필요한 주석 금지:** 깔끔한 코드
4. **any/unknown 타입 금지:** 엄격한 타이핑
5. **지속적 타입체크:** 문제 조기 발견

---

## 다음 단계
- [ ] implementation.md 작성
- [ ] 코드 구현 시작

---
**작성자:** 개발팀장 (GLM-5)
**작성일:** uH   
**Boris Workflow Phase:** Todo
**✅ 승인됨:** 구현 시작 가능
r   r    z-todo.mdr1   r2   r3   Nr5   r8   s           r   _create_todo_filez%BorisWorkflowEngine._create_todo_file'  s    M f k ] 	 
 4h v {@B IOO$5$=$=c3$G#H!QQ	)S73 	qGGG		r=   c                     d| d| d| d| d| d| d}||j                         j                  dd	       d
z  }t        |dd      5 }|j                  |       ddd       |S # 1 sw Y   |S xY w)u  
        implementation.md 파일 생성

        Args:
            task_name: 작업명
            workflow_id: Workflow ID
            date: 날짜
            output_dir: 출력 디렉토리

        Returns:
            생성된 파일 경로
        r/   z-implementation
date: z+
type: boris-workflow-implementation
task: r0   z,
status: in-progress
---

# Implementation: u  

## 🚀 구현 시작
**"implement it all"**

---

## 📝 구현 로그

### [날짜/시간] - [작업 내용]
```
(구현 내용 또는 코드)
```

### [날짜/시간] - [작업 내용]
```
(구현 내용 또는 코드)
```

---

## ✅ 완료된 작업
- [x] [작업 1]
- [x] [작업 2]

## 🔄 진행 중인 작업
- [ ] [작업 3]

## 📋 대기 중인 작업
- [ ] [작업 4]
- [ ] [작업 5]

---

## 🐛 발견된 문제
- [문제 1] - 해결됨/진행 중
- [문제 2] - 해결됨/진행 중

---

## 📊 진행 상황

**전체:** 0%
**완료:** 0개
**진행 중:** 0개
**대기:** [총 작업 수]개

---

## 다음 단계
- [ ] 모든 작업 완료
- [ ] feedback.md 작성

---
**작성자:** 개발팀장 (GLM-5)
**작성일:** u]   
**Boris Workflow Phase:** Implementation
**원칙:** 지루해야 한다 (기계적 실행)
r   r    z-implementation.mdr1   r2   r3   Nr5   r8   s           r   _create_implementation_filez/BorisWorkflowEngine._create_implementation_filez  s    M f k ]  + 7n v ACH IOO$5$=$=c3$G#HHZ![[	)S73 	qGGG		r=   c                     d| d| d| d| d| d| d| d| d	}||j                         j                  d
d       dz  }t        |dd      5 }|j                  |       ddd       |S # 1 sw Y   |S xY w)u   
        feedback.md 파일 생성

        Args:
            task_name: 작업명
            workflow_id: Workflow ID
            date: 날짜
            output_dir: 출력 디렉토리

        Returns:
            생성된 파일 경로
        r/   z-feedback
date: z%
type: boris-workflow-feedback
task: r0   z$
status: completed
---

# Feedback: u$   

## ✅ 완료 보고

**작업:** u    
**상태:** 완료
**날짜:** uI  

---

## 📊 결과 요약

### 완료된 기능
- [기능 1]
- [기능 2]
- [기능 3]

### 성능 지표
- 속도: [측정값]
- 메모리: [측정값]
- 기타: [측정값]

---

## 🧪 테스트 결과

### 단위 테스트
- 커버리지: X%
- 통과: X개
- 실패: X개

### 통합 테스트
- [결과]

### E2E 테스트
- [결과]

---

## 📝 배운 점

### 잘한 점
- [성공 요인 1]
- [성공 요인 2]

### 개선할 점
- [개선점 1]
- [개선점 2]

### 다음에 적용할 것
- [교훈 1]
- [교훈 2]

---

## 🐛 발견된 버그
- [버그 1] - 수정됨/보류
- [버그 2] - 수정됨/보류

---

## 📋 향후 작업
- [ ] [작업 1]
- [ ] [작업 2]

---

## 🎯 제이회장님께

**완료 보고:**
(제이회장님에게 전달할 메시지)

---

**작성자:** 개발팀장 (GLM-5)
**작성일:** u;   
**Boris Workflow Phase:** Feedback
**상태:** 완료 ✅
r   r    z-feedback.mdr1   r2   r3   Nr5   r8   s           r   _create_feedback_filez)BorisWorkflowEngine._create_feedback_file  s    M f k ]  K  K F EJ v iWp IOO$5$=$=c3$G#H!UU	)S73 	qGGG		s   A,,A6project_namec                 V   |#t        j                         j                  d      }| j                  ||      }|r4| j                  |j                         j                  dd      z  dz  |z  }n| j                  dz  |z  }|j                  dd       t        d|        t        d|        i }t        d	       | j                  ||||      |d
<   t        d       | j                  ||||      |d<   t        d       | j                  ||||      |d<   t        d       | j                  ||||      |d<   t        d       | j                  ||||      |d<   t        d       | j                  ||||      |d<   t        d       t        d       t        d       t        d       |S )u  
        Boris Workflow 6개 파일 생성

        Args:
            task_name: 작업명
            project_name: 프로젝트명 (선택적)
            date: 날짜 (YYYY-MM-DD), 없으면 오늘

        Returns:
            생성된 파일 경로 딕셔너리
        z%Y-%m-%dr   r    	workflowsT)parentsexist_oku   📁 Workflow 디렉토리: u   🆔 Workflow ID: u   
📝 6개 파일 생성 중...researchu     ✅ research.mdplanu     ✅ plan.md	annotatedu     ✅ annotated.mdtodou     ✅ todo.mdimplementationu     ✅ implementation.mdfeedbacku     ✅ feedback.mdu"   
✅ Boris Workflow 생성 완료!uG   ⚠️ 주의: plan.md에 'DON'T IMPLEMENT YET' 가드가 있습니다.uG   ⚠️ 제이회장님의 승인 없이 구현 단계로 진입 금지.)r   nowstrftimer+   r   r'   r(   r
   mkdirprintr<   r?   rA   rC   rE   rG   )r   r   rH   r   r,   r-   filess          r   create_workflowz#BorisWorkflowEngine.create_workflow:  s    <<<>**:6D 00DA ++l.@.@.B.J.J3PS.TTWbbeppJ))K7+EJ5,ZL9:";-01 01 66y+tU_`j!#..y+tZXf!88KQUWabk"$..y+tZXf"&"B"B9k[_ak"l') 66y+tU_`j!#35WYWYr   )N)NN)__name__
__module____qualname____doc__r   r   r+   r   r<   r?   rA   rC   rE   rG   r   rX    r   r   r	   r	      s   )=C =)s )# )# )Js J JC J]a Jfj JXU3 US U UY] Ubf UnR R# RS R^b Rgk RhQ3 QS Q QY] Qbf QfTS Ts TRU Tcg Tlp Tlhs h hC h]a hfj hT9 9C 9c 9]abegjbj]k 9r   r	   __main__z<============================================================u'   🔄 Boris Workflow 자동화 테스트zInsuWiki Phase 2 Wiki CRUDInsuWiki)r   rH   z=
============================================================u    ✅ Boris Workflow 준비 완료)r\   osr   r   pathlibr   typingr   r   r   yamlr	   rY   enginerV   rX   resultr]   r   r   <module>rf      s    
 
   ' ' b	 b	L z "F	(O	
34	(O ##.JYc#dF	/	
,-	(O r   