@litmers/cursorflow-orchestrator 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,131 @@
1
+ # CursorFlow Monitor
2
+
3
+ ## Overview
4
+ 레인 실행 상태를 모니터링합니다. 실시간으로 진행 상황을 확인하고 로그를 조회할 수 있습니다.
5
+
6
+ ## Steps
7
+
8
+ 1. **실시간 모니터링**
9
+ ```bash
10
+ cursorflow monitor --watch
11
+ ```
12
+
13
+ 2. **특정 run 모니터링**
14
+ ```bash
15
+ cursorflow monitor _cursorflow/logs/runs/my-run/
16
+ ```
17
+
18
+ 3. **상태 확인**
19
+
20
+ 레인별 상태 정보:
21
+ - pending: 대기 중
22
+ - running: 실행 중
23
+ - completed: 완료
24
+ - failed: 실패
25
+ - blocked_dependency: 의존성 대기
26
+
27
+ 4. **로그 확인**
28
+
29
+ 각 레인의 로그 파일:
30
+ - `state.json`: 현재 상태
31
+ - `conversation.jsonl`: 에이전트 대화
32
+ - `git-operations.jsonl`: Git 작업
33
+ - `events.jsonl`: 이벤트 로그
34
+
35
+ ## 옵션
36
+
37
+ | 옵션 | 설명 |
38
+ |------|------|
39
+ | `--watch` | 실시간 갱신 (2초 간격) |
40
+ | `--interval <sec>` | 갱신 간격 (초) |
41
+ | `--json` | JSON 형식으로 출력 |
42
+
43
+ ## 예제
44
+
45
+ ### 최신 run 모니터링
46
+ ```bash
47
+ cursorflow monitor
48
+ ```
49
+
50
+ ### 실시간 모니터링 (5초 간격)
51
+ ```bash
52
+ cursorflow monitor --watch --interval 5
53
+ ```
54
+
55
+ ### JSON 출력
56
+ ```bash
57
+ cursorflow monitor --json | jq
58
+ ```
59
+
60
+ ## 출력 예시
61
+
62
+ ```
63
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
64
+ 📡 Lane 상태 모니터링
65
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
66
+
67
+ Run: 01-dashboard-2025-12-19T18-30-00
68
+
69
+ - 01-dashboard: running (2/3)
70
+ - 02-client: completed (3/3)
71
+ - 03-projects: blocked_dependency (1/2)
72
+ ```
73
+
74
+ ## 로그 조회
75
+
76
+ ### 대화 기록
77
+ ```bash
78
+ cat _cursorflow/logs/runs/01-dashboard-xxx/conversation.jsonl | jq
79
+ ```
80
+
81
+ ### Git 작업 로그
82
+ ```bash
83
+ cat _cursorflow/logs/runs/01-dashboard-xxx/git-operations.jsonl | jq
84
+ ```
85
+
86
+ ### 이벤트 로그
87
+ ```bash
88
+ cat _cursorflow/logs/runs/01-dashboard-xxx/events.jsonl | jq
89
+ ```
90
+
91
+ ## 상태 분석
92
+
93
+ ### 레인별 진행률
94
+ ```bash
95
+ # 모든 레인의 state.json 확인
96
+ for state in _cursorflow/logs/runs/*/lanes/*/state.json; do
97
+ echo "$(dirname $state):"
98
+ jq '.status, .currentTaskIndex, .totalTasks' $state
99
+ done
100
+ ```
101
+
102
+ ### 실패한 레인 찾기
103
+ ```bash
104
+ # status가 failed인 레인
105
+ find _cursorflow/logs/runs -name "state.json" -exec sh -c \
106
+ 'jq -r "select(.status==\"failed\") | .label" {}' \;
107
+ ```
108
+
109
+ ## Checklist
110
+ - [ ] 레인 상태가 정상인가?
111
+ - [ ] 에러가 발생했는가?
112
+ - [ ] 로그를 확인했는가?
113
+ - [ ] Blocked lane이 있는가?
114
+ - [ ] 의존성 문제는 없는가?
115
+
116
+ ## 트러블슈팅
117
+
118
+ ### 레인이 멈춘 경우
119
+ 1. `state.json`에서 상태 확인
120
+ 2. `conversation.jsonl`에서 마지막 대화 확인
121
+ 3. 필요시 `cursorflow resume <lane>`로 재개
122
+
123
+ ### 로그가 없는 경우
124
+ 1. 실행이 시작되었는지 확인
125
+ 2. 로그 디렉토리 권한 확인
126
+ 3. 설정 파일의 logsDir 경로 확인
127
+
128
+ ## Next Steps
129
+ 1. 문제 발견 시 `cursorflow resume`로 재개
130
+ 2. 완료된 레인의 PR 확인
131
+ 3. 로그 분석으로 개선점 파악
@@ -0,0 +1,134 @@
1
+ # CursorFlow Prepare
2
+
3
+ ## Overview
4
+ 새 Feature에 대한 태스크 파일을 준비합니다. Feature 정보를 수집하고 레인별 JSON 파일을 생성합니다.
5
+
6
+ ## 필수 참조
7
+ - 패키지 문서: `node_modules/@cursorflow/orchestrator/docs/GUIDE.md`
8
+ - 모델 목록: 터미널에서 `cursorflow models --list` 실행
9
+
10
+ ## Steps
11
+
12
+ 1. **Feature 정보 수집**
13
+
14
+ 사용자에게 다음 정보를 확인합니다:
15
+ ```
16
+ 📋 태스크 준비 정보
17
+ ================
18
+
19
+ 1. Feature 이름: [예: SchemaUpdate, AdminDashboard]
20
+ 2. 레인 개수: [예: 3]
21
+ 3. 레인별 작업 내용:
22
+ - Lane 1: [작업 설명]
23
+ - Lane 2: [작업 설명]
24
+ - ...
25
+ 4. 의존성 변경 필요 여부: [Y/N]
26
+ 5. 참조할 기존 태스크 (선택): [경로 또는 N]
27
+ ```
28
+
29
+ 2. **태스크 폴더 생성**
30
+ ```bash
31
+ # 타임스탬프 기반 폴더명 생성 (YYMMDDHHMM - 10자리)
32
+ TIMESTAMP=$(date +%y%m%d%H%M)
33
+ FEATURE_NAME="<사용자 입력>"
34
+ TASK_DIR="_cursorflow/tasks/${TIMESTAMP}_${FEATURE_NAME}"
35
+
36
+ mkdir -p "$TASK_DIR"
37
+ ```
38
+
39
+ 3. **태스크 JSON 템플릿**
40
+
41
+ 각 레인마다 다음 구조의 JSON 파일을 생성합니다:
42
+ ```json
43
+ {
44
+ "repository": "https://github.com/org/repo",
45
+ "baseBranch": "main",
46
+ "branchPrefix": "<feature>/<lane>-",
47
+ "executor": "cursor-agent",
48
+ "autoCreatePr": false,
49
+ "allowDependencyChange": false,
50
+ "lockfileReadOnly": true,
51
+ "pollInterval": 60,
52
+
53
+ "laneNumber": 1,
54
+ "devPort": 3001,
55
+
56
+ "enableReview": true,
57
+ "reviewModel": "sonnet-4.5-thinking",
58
+ "maxReviewIterations": 3,
59
+
60
+ "tasks": [
61
+ {
62
+ "name": "plan",
63
+ "model": "opus-4.5-thinking",
64
+ "acceptanceCriteria": [
65
+ "계획서 파일 생성됨"
66
+ ],
67
+ "prompt": "..."
68
+ }
69
+ ]
70
+ }
71
+ ```
72
+
73
+ 4. **모델 선택 가이드**
74
+
75
+ | 모델 | 용도 | 비고 |
76
+ |------|------|------|
77
+ | `sonnet-4.5` | 일반 구현, 빠른 작업 | 가장 범용적 |
78
+ | `sonnet-4.5-thinking` | 코드 리뷰, 추론 강화 | Thinking 모델 |
79
+ | `opus-4.5` | 복잡한 작업, 고품질 | 고급 모델 |
80
+ | `opus-4.5-thinking` | 아키텍처 설계 | 최고급 |
81
+ | `gpt-5.2` | 일반 작업용 | OpenAI |
82
+ | `gpt-5.2-high` | 고급 추론 | 고성능 |
83
+
84
+ 5. **생성 결과 확인**
85
+ ```
86
+ ✅ 태스크 준비 완료
87
+ =================
88
+
89
+ 폴더: _cursorflow/tasks/<timestamp>_<feature>/
90
+ 생성된 파일:
91
+ - 01-<lane1>.json
92
+ - 02-<lane2>.json
93
+ - ...
94
+ - README.md
95
+
96
+ 다음 명령어로 실행:
97
+ cursorflow run _cursorflow/tasks/<timestamp>_<feature>/
98
+ ```
99
+
100
+ ## 예제
101
+
102
+ ### 단일 레인 태스크
103
+ ```bash
104
+ cursorflow prepare MyFeature --lanes 1
105
+ ```
106
+
107
+ ### 멀티 레인 태스크
108
+ ```bash
109
+ cursorflow prepare AdminDashboard --lanes 5
110
+ ```
111
+
112
+ ### 커스텀 템플릿 사용
113
+ ```bash
114
+ cursorflow prepare MyFeature --template ./my-template.json
115
+ ```
116
+
117
+ ## Checklist
118
+ - [ ] Feature 이름이 명확한가?
119
+ - [ ] 레인별 작업이 정의되었는가?
120
+ - [ ] 모델 선택이 적절한가?
121
+ - [ ] 의존성 변경 필요 여부를 확인했는가?
122
+ - [ ] Acceptance Criteria가 명확한가?
123
+ - [ ] 생성된 파일들을 검토했는가?
124
+
125
+ ## 주의사항
126
+ 1. **모델명**: 유효한 모델만 사용 (models 명령으로 확인)
127
+ 2. **경로**: 태스크는 항상 `_cursorflow/tasks/`에 생성
128
+ 3. **브랜치 프리픽스**: 충돌하지 않도록 고유하게 설정
129
+ 4. **devPort**: 레인마다 고유한 포트 (3001, 3002, ...)
130
+
131
+ ## Next Steps
132
+ 1. 생성된 JSON 파일들을 프로젝트에 맞게 수정
133
+ 2. 프롬프트 내용을 상세하게 작성
134
+ 3. `cursorflow run`으로 태스크 실행
@@ -0,0 +1,181 @@
1
+ # CursorFlow Resume
2
+
3
+ ## Overview
4
+ 중단되거나 실패한 레인을 재개합니다. 상태를 복구하거나 처음부터 다시 시작할 수 있습니다.
5
+
6
+ ## Steps
7
+
8
+ 1. **레인 상태 확인**
9
+ ```bash
10
+ cursorflow monitor
11
+ ```
12
+
13
+ 2. **레인 재개**
14
+ ```bash
15
+ cursorflow resume <lane-name>
16
+ ```
17
+
18
+ 3. **브랜치 정리 후 재시작**
19
+ ```bash
20
+ cursorflow resume <lane-name> --clean
21
+ ```
22
+
23
+ 4. **처음부터 다시 시작**
24
+ ```bash
25
+ cursorflow resume <lane-name> --restart
26
+ ```
27
+
28
+ ## 옵션
29
+
30
+ | 옵션 | 설명 |
31
+ |------|------|
32
+ | `--run-dir <path>` | 특정 run 디렉토리 지정 |
33
+ | `--clean` | 브랜치 정리 후 재시작 |
34
+ | `--restart` | 처음부터 다시 시작 |
35
+ | `--force` | 확인 없이 진행 |
36
+
37
+ ## 예제
38
+
39
+ ### 기본 재개
40
+ ```bash
41
+ # 최신 run에서 해당 레인 재개
42
+ cursorflow resume 01-dashboard
43
+ ```
44
+
45
+ ### 특정 run에서 재개
46
+ ```bash
47
+ cursorflow resume --run-dir _cursorflow/logs/runs/my-run/ 01-dashboard
48
+ ```
49
+
50
+ ### 브랜치 충돌 해결 후 재개
51
+ ```bash
52
+ # 기존 브랜치 정리 후 재시작
53
+ cursorflow resume 01-dashboard --clean
54
+ ```
55
+
56
+ ### 완전히 새로 시작
57
+ ```bash
58
+ # 모든 상태 초기화 후 재시작
59
+ cursorflow resume 01-dashboard --restart
60
+ ```
61
+
62
+ ## 재개 프로세스
63
+
64
+ 1. **상태 확인**
65
+ - `state.json` 파일 로드
66
+ - 마지막 태스크 위치 확인
67
+ - Worktree 상태 확인
68
+
69
+ 2. **환경 복구**
70
+ - Worktree 접근 가능 여부 확인
71
+ - 브랜치 체크아웃
72
+ - 미커밋 변경사항 확인
73
+
74
+ 3. **실행 재개**
75
+ - 중단된 태스크부터 계속
76
+ - 또는 새로 시작 (--restart)
77
+
78
+ 4. **완료**
79
+ - 남은 태스크 모두 수행
80
+ - 변경사항 커밋 및 푸시
81
+
82
+ ## 상태 파일 예시
83
+
84
+ ```json
85
+ {
86
+ "label": "01-dashboard",
87
+ "status": "failed",
88
+ "currentTaskIndex": 1,
89
+ "totalTasks": 3,
90
+ "worktreeDir": ".cursorflow/logs/worktrees/01-dashboard-abc123",
91
+ "pipelineBranch": "feature/dashboard-abc123",
92
+ "error": "Build failed",
93
+ "startTime": 1734567890000,
94
+ "endTime": null
95
+ }
96
+ ```
97
+
98
+ ## Checklist
99
+ - [ ] 레인이 실제로 중단되었는가?
100
+ - [ ] 상태 파일이 존재하는가?
101
+ - [ ] 브랜치 충돌은 없는가?
102
+ - [ ] Worktree가 존재하는가?
103
+ - [ ] 미커밋 변경사항이 있는가?
104
+
105
+ ## 트러블슈팅
106
+
107
+ ### 상태 파일이 없는 경우
108
+ ```bash
109
+ # 최신 run 디렉토리 확인
110
+ ls -lt _cursorflow/logs/runs/
111
+
112
+ # 특정 run 지정
113
+ cursorflow resume --run-dir _cursorflow/logs/runs/latest/ 01-dashboard
114
+ ```
115
+
116
+ ### 브랜치 충돌
117
+ ```bash
118
+ # 기존 브랜치 확인
119
+ git branch | grep dashboard
120
+
121
+ # 정리 후 재개
122
+ cursorflow resume 01-dashboard --clean
123
+ ```
124
+
125
+ ### Worktree 문제
126
+ ```bash
127
+ # Worktree 목록 확인
128
+ git worktree list
129
+
130
+ # 문제 있는 worktree 제거
131
+ git worktree remove <path> --force
132
+
133
+ # 재개
134
+ cursorflow resume 01-dashboard --restart
135
+ ```
136
+
137
+ ### 의존성 블록
138
+ ```bash
139
+ # 의존성이 해결되었는지 확인
140
+ cursorflow monitor
141
+
142
+ # 의존성 해결 후 재개
143
+ cursorflow resume 01-dashboard
144
+ ```
145
+
146
+ ## 재개 시나리오
147
+
148
+ ### 시나리오 1: 네트워크 오류로 중단
149
+ ```bash
150
+ # 단순 재개 (같은 위치부터 계속)
151
+ cursorflow resume 01-dashboard
152
+ ```
153
+
154
+ ### 시나리오 2: 빌드 에러로 실패
155
+ ```bash
156
+ # 코드 수정 후
157
+ cd .cursorflow/logs/worktrees/01-dashboard-xxx/
158
+ # ... 코드 수정 ...
159
+ git add -A
160
+ git commit -m "fix: build error"
161
+
162
+ # 다음 태스크부터 계속
163
+ cursorflow resume 01-dashboard
164
+ ```
165
+
166
+ ### 시나리오 3: 브랜치 충돌
167
+ ```bash
168
+ # 브랜치 정리 후 새로 시작
169
+ cursorflow resume 01-dashboard --clean
170
+ ```
171
+
172
+ ### 시나리오 4: 처음부터 다시
173
+ ```bash
174
+ # 모든 상태 초기화
175
+ cursorflow resume 01-dashboard --restart
176
+ ```
177
+
178
+ ## Next Steps
179
+ 1. 재개 후 `cursorflow monitor --watch`로 모니터링
180
+ 2. 완료 시 PR 확인
181
+ 3. 반복 실패 시 태스크 설정 검토
@@ -0,0 +1,220 @@
1
+ # CursorFlow Review
2
+
3
+ ## Overview
4
+ 코드 리뷰 기능을 설정하고 리뷰 결과를 확인합니다. AI 기반 자동 리뷰로 코드 품질을 향상시킵니다.
5
+
6
+ ## Steps
7
+
8
+ 1. **리뷰 활성화**
9
+
10
+ `cursorflow.config.js` 파일에서 설정:
11
+ ```javascript
12
+ module.exports = {
13
+ enableReview: true,
14
+ reviewModel: 'sonnet-4.5-thinking',
15
+ maxReviewIterations: 3,
16
+ // ...
17
+ };
18
+ ```
19
+
20
+ 2. **Acceptance Criteria 정의**
21
+
22
+ 태스크 JSON 파일에 검증 기준 추가:
23
+ ```json
24
+ {
25
+ "tasks": [
26
+ {
27
+ "name": "implement",
28
+ "model": "sonnet-4.5",
29
+ "acceptanceCriteria": [
30
+ "빌드 에러 없음",
31
+ "TypeScript 타입 에러 없음",
32
+ "주요 기능 구현됨",
33
+ "테스트 통과"
34
+ ],
35
+ "prompt": "..."
36
+ }
37
+ ]
38
+ }
39
+ ```
40
+
41
+ 3. **리뷰 실행**
42
+
43
+ 리뷰는 태스크 완료 후 자동으로 실행됩니다.
44
+
45
+ 4. **리뷰 결과 확인**
46
+ ```bash
47
+ # 리뷰 결과 파일 확인
48
+ cat _cursorflow/logs/runs/<lane>/review-results.json
49
+ ```
50
+
51
+ ## 리뷰 모델
52
+
53
+ | 모델 | 특징 | 권장 용도 |
54
+ |------|------|-----------|
55
+ | `sonnet-4.5-thinking` | 추론 강화, 정확한 분석 | 일반 코드 리뷰 (권장) |
56
+ | `opus-4.5-thinking` | 최고 품질, 상세 리뷰 | 중요한 코드, 아키텍처 리뷰 |
57
+ | `sonnet-4.5` | 빠른 리뷰 | 간단한 변경사항 |
58
+
59
+ ## 리뷰 프로세스
60
+
61
+ 1. **태스크 완료**
62
+ - 코드 구현 완료
63
+ - 커밋 생성
64
+
65
+ 2. **자동 리뷰 시작**
66
+ - 리뷰 모델로 에이전트 실행
67
+ - Acceptance Criteria 확인
68
+ - 빌드 및 타입 검증
69
+
70
+ 3. **리뷰 결과**
71
+ - `approved`: 다음 태스크로 진행
72
+ - `needs_changes`: 피드백 전달 → 재작업
73
+
74
+ 4. **피드백 루프**
75
+ - 수정 사항 구현
76
+ - 재리뷰
77
+ - 최대 반복 횟수까지 반복
78
+
79
+ ## 리뷰 결과 형식
80
+
81
+ ```json
82
+ {
83
+ "status": "approved",
84
+ "buildSuccess": true,
85
+ "typeCheckSuccess": true,
86
+ "issues": [
87
+ {
88
+ "severity": "warning",
89
+ "description": "Consider adding error handling",
90
+ "file": "src/utils/api.js",
91
+ "line": 42,
92
+ "suggestion": "Add try-catch block"
93
+ }
94
+ ],
95
+ "suggestions": [
96
+ "Add unit tests for edge cases",
97
+ "Improve error messages"
98
+ ],
99
+ "summary": "Code quality is good, minor improvements suggested",
100
+ "reviewedBy": "sonnet-4.5-thinking",
101
+ "reviewedAt": "2025-12-19T18:30:00Z"
102
+ }
103
+ ```
104
+
105
+ ## 예제
106
+
107
+ ### 기본 리뷰 설정
108
+ ```javascript
109
+ // cursorflow.config.js
110
+ {
111
+ enableReview: true,
112
+ reviewModel: 'sonnet-4.5-thinking',
113
+ maxReviewIterations: 3
114
+ }
115
+ ```
116
+
117
+ ### 엄격한 리뷰
118
+ ```javascript
119
+ {
120
+ enableReview: true,
121
+ reviewModel: 'opus-4.5-thinking',
122
+ maxReviewIterations: 5
123
+ }
124
+ ```
125
+
126
+ ### 빠른 리뷰
127
+ ```javascript
128
+ {
129
+ enableReview: true,
130
+ reviewModel: 'sonnet-4.5',
131
+ maxReviewIterations: 1
132
+ }
133
+ ```
134
+
135
+ ## Acceptance Criteria 작성 가이드
136
+
137
+ ### 좋은 예시
138
+ ```json
139
+ {
140
+ "acceptanceCriteria": [
141
+ "빌드 에러 없음 (pnpm build 성공)",
142
+ "TypeScript 타입 에러 없음 (pnpm type-check)",
143
+ "모든 기존 테스트 통과",
144
+ "새 API 엔드포인트 3개 구현됨",
145
+ "에러 처리 로직 포함됨",
146
+ "로그 추가됨"
147
+ ]
148
+ }
149
+ ```
150
+
151
+ ### 나쁜 예시
152
+ ```json
153
+ {
154
+ "acceptanceCriteria": [
155
+ "잘 작동함",
156
+ "코드가 좋음"
157
+ ]
158
+ }
159
+ ```
160
+
161
+ ## 리뷰 결과 분석
162
+
163
+ ### 승인된 경우
164
+ ```bash
165
+ # 다음 태스크 자동 진행
166
+ # 로그에서 확인
167
+ cursorflow monitor
168
+ ```
169
+
170
+ ### 수정 필요 시
171
+ ```bash
172
+ # 피드백이 자동으로 에이전트에 전달됨
173
+ # 재작업 후 자동 재리뷰
174
+ # 로그에서 피드백 확인
175
+ cat _cursorflow/logs/runs/<lane>/conversation.jsonl | \
176
+ jq 'select(.role=="reviewer")'
177
+ ```
178
+
179
+ ### 최대 반복 도달 시
180
+ ```bash
181
+ # 경고 메시지와 함께 진행
182
+ # 수동 리뷰 필요
183
+ ```
184
+
185
+ ## Checklist
186
+ - [ ] 리뷰가 활성화되었는가?
187
+ - [ ] 리뷰 모델이 적절한가?
188
+ - [ ] Acceptance Criteria가 명확한가?
189
+ - [ ] 최대 반복 횟수가 적절한가?
190
+ - [ ] 리뷰 결과를 확인했는가?
191
+
192
+ ## 트러블슈팅
193
+
194
+ ### 리뷰가 실행되지 않음
195
+ 1. `enableReview: true` 확인
196
+ 2. 리뷰 모델이 유효한지 확인
197
+ 3. 로그에서 에러 확인
198
+
199
+ ### 무한 리뷰 루프
200
+ 1. `maxReviewIterations` 설정 확인
201
+ 2. Acceptance Criteria가 달성 가능한지 검토
202
+ 3. 태스크 프롬프트 개선
203
+
204
+ ### 리뷰가 너무 엄격함
205
+ 1. 리뷰 모델을 더 관대한 것으로 변경
206
+ 2. Acceptance Criteria 조정
207
+ 3. `maxReviewIterations` 증가
208
+
209
+ ## 모범 사례
210
+
211
+ 1. **명확한 기준**: Acceptance Criteria를 구체적으로 작성
212
+ 2. **적절한 모델**: 작업 복잡도에 맞는 리뷰 모델 선택
213
+ 3. **점진적 개선**: 첫 반복에서 모든 것을 완벽하게 하려 하지 말기
214
+ 4. **피드백 활용**: 리뷰 피드백을 다음 태스크 개선에 활용
215
+
216
+ ## Next Steps
217
+ 1. 리뷰 결과 분석
218
+ 2. 반복되는 이슈 패턴 파악
219
+ 3. 태스크 프롬프트 및 Criteria 개선
220
+ 4. 리뷰 모델 조정