@elyun/bylane 1.22.0 → 1.24.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.
@@ -1,13 +1,18 @@
1
1
  ---
2
2
  name: bylane-issue-agent
3
- description: GitHub Issue 생성 분석. Figma 링크 감지 스펙 추출.
3
+ description: 코드베이스를 병렬 분석(구조/스타일/의존성)하고 사용자 문답으로 요구사항을 구체화한 뒤, 전략 스펙이 포함된 GitHub 이슈를 작성한다. code-agent의 입력이 된다.
4
4
  ---
5
5
 
6
6
  # Issue Agent
7
7
 
8
+ ## 역할
9
+
10
+ 코드베이스를 병렬로 분석하고, 사용자와 문답을 거쳐 이슈 유형을 분류한 뒤,
11
+ code-agent가 방향을 명확하게 읽을 수 있는 구조화된 이슈를 작성한다.
12
+
8
13
  ## GitHub 접근 방법
9
14
 
10
- `.bylane/bylane.json`의 `github.method` 확인:
15
+ `.bylane/bylane.json`의 `github.method`:
11
16
 
12
17
  | 값 | 동작 |
13
18
  |----|------|
@@ -16,69 +21,195 @@ description: GitHub Issue 생성 및 분석. Figma 링크 감지 시 스펙 추
16
21
  | `"api"` | REST API + `$GITHUB_TOKEN` |
17
22
  | `"auto"` (기본) | MCP → CLI → API 순서로 시도 |
18
23
 
19
- ## 입력
24
+ ## 상태 기록 (시작 시)
25
+
26
+ ```bash
27
+ npx @elyun/bylane state write issue-agent '{"status":"in_progress","startedAt":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","progress":0,"currentTask":"전략 수립 중","retries":0,"log":[]}'
28
+ ```
20
29
 
21
- - 자유 텍스트 (새 이슈 생성용) OR GitHub Issue 번호 (#N)
30
+ ---
22
31
 
23
32
  ## 실행 흐름
24
33
 
25
- ### 이슈 생성 모드 (텍스트 입력)
34
+ ### Phase 0 issueMemory 로드 (이슈 번호가 있는 경우)
35
+
36
+ 기존 이슈 번호가 입력되었으면 이전 작업 컨텍스트를 불러온다:
37
+
38
+ ```bash
39
+ npx @elyun/bylane memory read ISSUE_NUMBER
40
+ ```
41
+
42
+ 출력된 내용(이전 아키텍처 결정, 트러블슈팅 기록)을 이후 분석에 반영한다.
43
+
44
+ ---
45
+
46
+ ### Phase 1 — 이슈 유형 1차 분류
47
+
48
+ 입력 텍스트 또는 기존 이슈 본문을 분석하여 유형을 예비 분류:
49
+
50
+ | 유형 | 판단 기준 |
51
+ |------|-----------|
52
+ | `new-feature` | 신규 컴포넌트/페이지/기능 추가 |
53
+ | `bug` | 오류, 크래시, 잘못된 동작 |
54
+ | `improvement` | 기존 기능 수정·개선·리팩토링 |
55
+ | `chore` | 설정, 의존성, 빌드, 문서 |
56
+
57
+ ---
58
+
59
+ ### Phase 2 — 코드베이스 병렬 분석
60
+
61
+ 서브에이전트 3개를 **동시에** 실행한다. 각 에이전트는 아래 질문에 답한다.
62
+
63
+ #### 서브에이전트 A — 관련 파일 탐색
64
+ - 입력 의도와 관련된 파일·폴더를 DFS로 탐색
65
+ - 관련 컴포넌트, hook, util, 타입 정의 목록화
66
+ - 현재 구현 방식 요약 (있는 경우)
67
+
68
+ #### 서브에이전트 B — 코드 패턴 분석
69
+ - 유사 기능의 구현 패턴 샘플링 (컴포넌트 구조, 상태 관리, API 호출 방식)
70
+ - 네이밍 컨벤션, 파일 분리 방식
71
+ - 테스트 파일 위치 및 작성 패턴
72
+
73
+ #### 서브에이전트 C — 의존성 및 영향 범위
74
+ - 변경 시 영향받는 파일·모듈 목록
75
+ - 공유 컴포넌트/훅 여부 확인
76
+ - `bug` / `improvement` 유형이면 해당 코드의 현재 상태와 문제 지점 파악
77
+
78
+ **`extensions.figma.enabled === true`이고 Figma URL이 있는 경우:**
79
+ 서브에이전트 A와 병렬로 Figma MCP 분석도 실행:
80
+ - `get_file` / `get_node`로 프레임/컴포넌트 구조 추출
81
+ - 컬러 토큰, 타이포그래피, 레이아웃 정보 추출
82
+ - 실패 시 경고 로그 후 텍스트 기반 스펙으로 fallback
83
+
84
+ ---
85
+
86
+ ### Phase 3 — 사용자 문답 (방향 확정)
87
+
88
+ 병렬 분석 결과를 요약하여 사용자에게 제시하고, **핵심 결정 사항만** 질문한다.
89
+
90
+ 질문 예시 (유형에 따라 선택):
91
+
92
+ **new-feature:**
93
+ ```
94
+ 분석 결과:
95
+ - 관련 파일: src/components/theme/, src/hooks/useTheme.ts
96
+ - 유사 구현: ColorPicker 컴포넌트 (src/components/ColorPicker/)
97
+
98
+ 결정이 필요한 사항:
99
+ 1. 토글 위치: 헤더 우측 / 사이드바 하단 / 플로팅 버튼?
100
+ 2. 상태 저장: localStorage / 서버 동기화?
101
+ ```
102
+
103
+ **bug:**
104
+ ```
105
+ 분석 결과:
106
+ - 문제 지점: src/hooks/useAuth.ts:47 — 토큰 만료 시 갱신 로직 누락
107
+ - 영향 범위: useAuth를 사용하는 12개 컴포넌트
108
+
109
+ 확인 사항:
110
+ 1. 재현 조건이 있으신가요? (특정 브라우저, 로그인 상태 등)
111
+ 2. 임시 수정 vs 근본 해결 중 어느 방향으로 진행할까요?
112
+ ```
113
+
114
+ 문답은 **1~3개 질문**으로 제한. 명확한 경우 생략 가능.
115
+
116
+ ---
117
+
118
+ ### Phase 4 — 이슈 작성
119
+
120
+ 문답 결과와 분석 내용을 바탕으로 GitHub 이슈를 작성한다.
121
+
122
+ #### 이슈 본문 구조
123
+
124
+ ```markdown
125
+ ## 개요
126
+
127
+ [한 줄 요약 — 무엇을, 왜]
128
+
129
+ **유형:** `new-feature` | `bug` | `improvement` | `chore`
130
+
131
+ ---
132
+
133
+ ## 배경 및 목적
134
+
135
+ [사용자 의도 + 분석으로 파악한 현재 상태]
136
+
137
+ ---
138
+
139
+ ## 구현 방향
140
+
141
+ [Phase 3 문답에서 확정된 전략적 방향]
142
+
143
+ - 접근 방법: ...
144
+ - 채택 이유: ...
145
+ - 제외한 대안: ... (이유)
146
+
147
+ ---
148
+
149
+ ## 관련 파일 및 영향 범위
150
+
151
+ | 파일/모듈 | 역할 | 변경 필요 여부 |
152
+ |-----------|------|--------------|
153
+ | `src/hooks/useTheme.ts` | 테마 상태 관리 | 수정 |
154
+ | `src/components/Header/` | 토글 위치 | 추가 |
155
+
156
+ ---
157
+
158
+ ## 코드 패턴 참고
26
159
 
27
- 1. 입력 텍스트에서 추출:
28
- - 제목 (50자 이내), 상세 설명, 구현 체크리스트, Figma URL
160
+ [서브에이전트 B가 발견한 유사 구현 패턴 요약]
29
161
 
30
- 2. 이슈 생성:
162
+ ```typescript
163
+ // 유사 구현 예시 (src/components/ColorPicker/index.tsx 참조)
164
+ ```
165
+
166
+ ---
31
167
 
32
- **MCP:**
33
- → GitHub MCP `create_issue` 도구 사용
168
+ ## Figma 스펙 (해당 시)
34
169
 
35
- **CLI:**
36
- ```bash
37
- gh issue create \
38
- --title "TITLE" \
39
- --body "BODY" \
40
- --label "bylane-auto"
41
- ```
170
+ - 컴포넌트: [컴포넌트명]
171
+ - 컬러 토큰: `--color-primary: #3B82F6`
172
+ - 레이아웃: [설명]
42
173
 
43
- **API:**
44
- ```bash
45
- curl -s -X POST \
46
- -H "Authorization: Bearer $GITHUB_TOKEN" \
47
- -H "Content-Type: application/json" \
48
- https://api.github.com/repos/OWNER/REPO/issues \
49
- -d '{"title":"TITLE","body":"BODY","labels":["bylane-auto"]}'
50
- ```
174
+ ---
51
175
 
52
- 3. Figma MCP 활성화 여부 확인 (`extensions.figma.enabled`):
53
- - `true`이고 Figma URL 있으면 → Figma 분석 단계 실행
54
- - `false` → 텍스트 기반 스펙만 생성
176
+ ## 구현 체크리스트
55
177
 
56
- ### 기존 이슈 분석 모드 (Issue 번호 입력)
178
+ - [ ] [첫 번째 구현 단위]
179
+ - [ ] [두 번째 구현 단위]
180
+ - [ ] 테스트 작성
181
+ - [ ] 기존 테스트 통과 확인
57
182
 
58
- 1. 이슈 내용 로드:
183
+ ---
59
184
 
60
- **MCP:**
61
- → GitHub MCP `get_issue` 도구 사용
185
+ ## 주의사항
62
186
 
63
- **CLI:**
64
- ```bash
65
- gh issue view NUMBER --json title,body,labels
66
- ```
187
+ [영향 범위, 사이드 이펙트, 알려진 제약]
188
+ ```
67
189
 
68
- **API:**
69
- ```bash
70
- curl -s \
71
- -H "Authorization: Bearer $GITHUB_TOKEN" \
72
- https://api.github.com/repos/OWNER/REPO/issues/NUMBER
73
- ```
190
+ #### 이슈 생성
74
191
 
75
- 2. 본문에서 Figma URL 추출 시도 후 스펙 생성
192
+ **MCP:**
193
+ → GitHub MCP `create_issue` 도구 사용
76
194
 
77
- ### Figma 분석 (활성화된 경우)
195
+ **CLI:**
196
+ ```bash
197
+ gh issue create \
198
+ --title "TITLE" \
199
+ --body "BODY" \
200
+ --label "bylane-auto"
201
+ ```
78
202
 
79
- Figma MCP `get_file` 또는 `get_node` 도구로 프레임/컴포넌트 분석.
203
+ **API:**
204
+ ```bash
205
+ curl -s -X POST \
206
+ -H "Authorization: Bearer $GITHUB_TOKEN" \
207
+ -H "Content-Type: application/json" \
208
+ https://api.github.com/repos/OWNER/REPO/issues \
209
+ -d '{"title":"TITLE","body":"BODY","labels":["bylane-auto"]}'
210
+ ```
80
211
 
81
- **실패 시 fallback:** 경고 로그 후 텍스트 기반 스펙 사용
212
+ ---
82
213
 
83
214
  ## 출력
84
215
 
@@ -91,20 +222,35 @@ Figma MCP `get_file` 또는 `get_node` 도구로 프레임/컴포넌트 분석.
91
222
  "progress": 100,
92
223
  "issueNumber": 123,
93
224
  "issueUrl": "https://github.com/...",
225
+ "issueType": "new-feature",
94
226
  "spec": {
95
227
  "title": "다크모드 토글 버튼 추가",
96
228
  "description": "...",
97
- "checklist": ["ThemeToggle 컴포넌트 생성", "useTheme hook 구현"],
229
+ "approach": "localStorage 기반 useTheme hook 확장",
230
+ "affectedFiles": ["src/hooks/useTheme.ts", "src/components/Header/"],
231
+ "checklist": ["ThemeToggle 컴포넌트 생성", "useTheme hook 수정", "테스트 작성"],
98
232
  "figmaSpec": { "enabled": false, "components": [], "colorTokens": {} }
99
233
  }
100
234
  }
101
235
  ```
102
236
 
103
- 상태 기록:
237
+ ---
238
+
239
+ ## issueMemory 기록
240
+
241
+ 작업 완료 후:
242
+
104
243
  ```bash
105
- npx @elyun/bylane state write issue-agent '{"status":"in_progress","startedAt":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","progress":0,"retries":0}'
244
+ npx @elyun/bylane memory append ISSUE_NUMBER issue-agent "유형: ISSUE_TYPE
245
+ 방향: APPROACH
246
+ 관련 파일: AFFECTED_FILES
247
+ 특이사항: NOTES"
106
248
  ```
107
249
 
250
+ `memory.enabled: false`이면 생략.
251
+
252
+ ---
253
+
108
254
  ## 수동 실행
109
255
 
110
256
  `/bylane issue #123` 또는 `/bylane issue 다크모드 토글 추가해줘`
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: bylane-monitor
3
- description: byLane 실시간 TUI 모니터 대시보드 실행 안내. Claude가 직접 실행하지 않고 사용자 터미널 명령을 안내한다.
3
+ description: blessed 기반 실시간 TUI 모니터 대시보드 실행 안내. 에이전트 상태, 루프 큐, 로그를 1초 주기로 폴링하여 2열 그리드로 표시한다. 터미널에서 직접 실행해야 하므로 명령만 안내한다.
4
4
  ---
5
5
 
6
6
  # /bylane monitor
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: bylane-notify-agent
3
- description: 워크플로우 완료 또는 개입 필요 시 Slack/Telegram으로 알림을 보낸다.
3
+ description: 워크플로우 완료, 테스트 실패, 리뷰 대기, 개입 필요 등 주요 이벤트 발생 설정된 채널(Slack/Telegram)로 알림을 보낸다. bylane.json의 notifications 설정을 따른다.
4
4
  ---
5
5
 
6
6
  # Notify Agent
@@ -1,57 +1,95 @@
1
1
  ---
2
2
  name: bylane-orchestrator
3
- description: byLane 메인 오케스트레이터. 자연어 의도를 파싱해 에이전트 파이프라인을 실행한다.
3
+ description: byLane 메인 오케스트레이터. 자연어 의도를 파싱하여 4가지 파이프라인(새 기능/기존 이슈/리뷰/단일 에이전트) 하나를 선택하고 에이전트 체인을 순차 실행한다.
4
4
  ---
5
5
 
6
6
  # byLane Orchestrator
7
7
 
8
8
  ## 역할
9
9
 
10
- 사용자의 자연어 입력을 파싱하여 어떤 에이전트를 어떤 순서로 실행할지 결정한다.
10
+ 사용자 의도를 파싱하고, issue-agent를 통해 전략을 수립한 에이전트 파이프라인을 실행한다.
11
11
 
12
12
  ## 실행 전 체크
13
13
 
14
- 1. 사전 점검 실행:
14
+ 1. 사전 점검:
15
15
  ```bash
16
16
  npx @elyun/bylane preflight
17
17
  ```
18
- - 점검 실패 시 안내 메시지를 출력하고 워크플로우를 **중단**한다.
19
- - `.bylane/bylane.json` 없으면 즉시 `bylane-setup` 스킬 실행.
18
+ 실패 시 안내 메시지 출력 **중단**. `.bylane/bylane.json` 없으면 즉시 `bylane-setup` 스킬 실행.
20
19
 
21
20
  2. `.bylane/state/` 디렉토리 확인. 없으면 생성.
22
21
 
23
22
  ## 에이전트별 모델 결정
24
23
 
25
- 각 에이전트 실행 전 사용할 모델을 config에서 읽는다:
26
-
27
24
  ```bash
28
25
  npx @elyun/bylane models
29
26
  ```
30
27
 
31
- 출력 형식: `AGENT_NAME=MODEL_ID` (한 줄씩)
32
-
33
- 에이전트 호출 시 해당 모델을 `model` 파라미터로 전달한다.
28
+ 출력 형식: `AGENT_NAME=MODEL_ID` (한 줄씩). 에이전트 호출 시 `model` 파라미터로 전달.
34
29
 
35
30
  ## 의도 파싱 규칙
36
31
 
37
- 입력을 분석하여 아래 하나로 분류:
32
+ 오케스트레이터는 `/bylane`에서 **복합 의도** 또는 **기능 요청 자연어**가 넘어올 때 실행된다.
33
+ 단일 에이전트 키워드는 `/bylane`이 직접 라우팅하므로, 오케스트레이터는 **파이프라인 실행**에 집중한다.
34
+
35
+ ### 파이프라인 A — 새 기능 / 이슈 없는 구현 요청
36
+
37
+ **감지 키워드**: `만들어`, `추가해`, `구현해`, `개발해`, `넣어줘`, `바꿔줘`, `변경해`, `개선해`, `수정해`,
38
+ `리팩터`, `리팩토링`, `마이그레이션`, `~해줘` (기능 설명 포함), 이슈 번호 없음
39
+
40
+ **실행 흐름**:
41
+ 전략 수립 → `issue-agent` → `code-agent` → `test-agent` → `commit-agent` → `pr-agent` → `review-agent` → `notify-agent`
38
42
 
39
- | 패턴 | 실행할 에이전트 체인 |
43
+ ### 파이프라인 B 기존 이슈 구현
44
+
45
+ **감지 키워드**: `#N`, `이슈 #N`, `issue #N`, `#N 구현`, `#N 작업`, `#N 해줘`, `#N 처리`
46
+
47
+ **실행 흐름**:
48
+ 전략 수립(기존 이슈 분석) → `code-agent` → `test-agent` → `commit-agent` → `pr-agent` → `review-agent` → `notify-agent`
49
+
50
+ ### 파이프라인 C — 리뷰 관련
51
+
52
+ | 감지 키워드 | 실행 |
40
53
  |---|---|
41
- | "구현", "만들어", "추가해", 이슈 없음 | issue-agent code-agent → test-agent → commit-agent → pr-agent → review-agent notify-agent |
42
- | "issue #N 구현", "이슈 #N 작업" | issue-agent(분석) → code-agent → test-agent → commit-agent → pr-agent → review-agent → notify-agent |
43
- | "PR #N 리뷰", "리뷰해줘" | review-agent(PR번호 전달) |
44
- | "리뷰 #N 반영", "리뷰 수락" | respond-agent(PR번호, 모드=accept 전달) |
45
- | "리뷰 #N 반박" | respond-agent(PR번호, 모드=rebut 전달) |
46
- | "커밋해줘" | commit-agent |
47
- | "PR 만들어줘" | pr-agent |
48
- | "테스트해줘" | test-agent |
49
- | "프로젝트 분석", "analyze", "코드스타일 분석", "디자인토큰 분석" | analyze-agent |
54
+ | `PR #N 리뷰`, `리뷰해줘`, `코드 리뷰`, `#N 봐줘` | `review-agent`(PR번호 전달) |
55
+ | `리뷰 반영`, `수락`, `accept`, `LGTM 반영`, `코멘트 반영` | `respond-agent`(모드=accept) |
56
+ | `반박`, `rebut`, `동의 해`, `이유 설명`, `왜 이렇게 했냐면` | `respond-agent`(모드=rebut) |
57
+
58
+ ### 파이프라인 D 단일 에이전트 (오케스트레이터 경유 )
59
+
60
+ | 감지 키워드 | 실행 |
61
+ |---|---|
62
+ | `커밋`, `commit`, `커밋해줘`, `변경사항 저장` | `commit-agent` |
63
+ | `PR`, `풀리퀘`, `PR 만들어`, `PR 올려` | `pr-agent` |
64
+ | `테스트`, `test`, `검증`, `시험`, `테스트 돌려` | `test-agent` |
65
+ | `분석`, `analyze`, `구조 파악`, `코드 분석` | `analyze-agent` |
66
+ | `알림`, `notify`, `슬랙`, `텔레그램`, `통보` | `notify-agent` |
67
+
68
+ ### 파이프라인 판단 기준
69
+
70
+ 1. 이슈 번호(`#N`)가 있으면 → **파이프라인 B**
71
+ 2. 기능/변경 요청 키워드가 있고 이슈 번호 없으면 → **파이프라인 A**
72
+ 3. 리뷰/대응 키워드가 있으면 → **파이프라인 C**
73
+ 4. 단일 에이전트 키워드만 있으면 → **파이프라인 D**
74
+ 5. 복합 키워드 ("이슈 만들고 구현까지", "테스트하고 커밋") → 파이프라인 A 또는 해당 에이전트 순차 실행
75
+ 6. 판단 불가 → 사용자에게 의도 확인
76
+
77
+ ## 전략 수립 단계 (파이프라인 A, B 필수)
78
+
79
+ 파이프라인 C, D (단일 에이전트 요청)가 아닌 경우 반드시 전략 수립 후 진행.
80
+
81
+ issue-agent를 `model` 파라미터와 함께 호출한다. issue-agent 내부에서 다음을 수행:
82
+
83
+ 1. 코드베이스 병렬 분석 (서브에이전트)
84
+ 2. 사용자 문답
85
+ 3. 이슈 분류 및 작성
86
+
87
+ 상세 로직은 `bylane-issue-agent` 참조.
50
88
 
51
89
  ## 에이전트 실행 방법
52
90
 
53
- 각 에이전트를 순서대로 Agent 도구로 호출한다. 이전 에이전트의 출력을 다음 에이전트의 입력으로 전달한다.
54
- **config에서 읽은 모델을 `model` 파라미터로 반드시 전달한다.**
91
+ 각 에이전트를 순서대로 Agent 도구로 호출. 이전 출력을 다음 입력으로 전달.
92
+ **config에서 읽은 모델을 `model` 파라미터로 반드시 전달.**
55
93
 
56
94
  상태 기록 (각 에이전트 시작 전):
57
95
  ```bash
@@ -60,17 +98,15 @@ npx @elyun/bylane state write AGENT_NAME '{"status":"in_progress","startedAt":"'
60
98
 
61
99
  ## 피드백 루프
62
100
 
63
- test-agent가 FAIL 반환하면:
101
+ test-agent가 FAIL 반환 시:
64
102
  1. `.bylane/state/test-agent.json`에서 `failureDetails` 읽기
65
- 2. `.bylane/state/orchestrator.json`에서 `retries` 읽기
66
- 3. `retries < config.workflow.maxRetries`이면 code-agent 재실행 (실패 피드백 포함, retries+1)
67
- 4. `retries >= maxRetries`이면 notify-agent에 "개입 필요" 메시지 전송 후 중단
103
+ 2. `retries < config.workflow.maxRetries` code-agent 재실행 (실패 피드백 포함, retries+1)
104
+ 3. `retries >= maxRetries` → notify-agent "개입 필요" 메시지 중단
68
105
 
69
- respond-agent가 "수정 필요" 반환하면 동일 로직 적용.
106
+ respond-agent가 "수정 필요" 반환 동일 로직 적용.
70
107
 
71
108
  ## 완료 처리
72
109
 
73
- 모든 에이전트 완료 후:
74
110
  1. 각 에이전트 state를 `status: "completed"`로 업데이트
75
111
  2. notify-agent 실행하여 최종 결과 전송
76
112
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: bylane-pr-agent
3
- description: 현재 브랜치의 커밋들로 GitHub Pull Request를 생성한다.
3
+ description: 현재 브랜치의 전체 커밋 히스토리를 분석하여 GitHub Pull Request를 생성한다. 제목, 요약, 테스트 계획을 자동 작성하고 팀 모드 시 리뷰어를 할당한다.
4
4
  ---
5
5
 
6
6
  # PR Agent
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: bylane-respond-agent
3
- description: PR 리뷰 코멘트에 반박하거나 코드를 수정하여 반영한다.
3
+ description: PR 리뷰 코멘트를 분석하여 accept(코드 수정 후 재커밋) 또는 rebut(근거를 들어 반박 코멘트 작성) 모드로 대응한다. CHANGES_REQUESTED와 일반 코멘트 모두 처리.
4
4
  ---
5
5
 
6
6
  # Respond Agent
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: bylane-respond-loop
3
- description: 5분 주기로 내 PR에 달린 리뷰/코멘트를 감지하여 자동으로 반박하거나 반영한다.
3
+ description: 백그라운드 폴러가 설정 주기(기본 5분)로 내 PR에 달린 CHANGES_REQUESTED/코멘트를 감지하여 respond-queue에 기록한다. pending 항목 발생 시 respond-agent를 자동 실행하며, 대응 후 새 코멘트 감지 시 재처리한다.
4
4
  ---
5
5
 
6
6
  # Respond Loop Agent
@@ -94,4 +94,4 @@ kill $(pgrep -f respond-loop.js)
94
94
 
95
95
  ## 수동 실행
96
96
 
97
- `/bylane respond-loop`
97
+ `/bylane-respond-loop`
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: bylane-review-agent
3
- description: PR의 diff를 분석하여 코드 라인별 인라인 리뷰 코멘트를 작성한다.
3
+ description: PR의 diff를 파일별로 분석하여 코드 라인별 인라인 리뷰 코멘트를 작성한다. grammar/domain/code/security 4개 검사 범위를 지원하며 심각도(critical/warning/suggestion)를 분류한다.
4
4
  ---
5
5
 
6
6
  # Review Agent
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: bylane-review-loop
3
- description: 5분 주기로 GitHub review 요청된 PR을 감지하여 자동으로 리뷰한다. 재요청 포함.
3
+ description: 백그라운드 폴러가 설정 주기(기본 5분)로 GitHub review 요청 PR을 감지하여 review-queue에 기록한다. pending 항목 발생 시 review-agent를 자동 실행하며, 리뷰 후 updatedAt 변경 시 재요청도 처리한다.
4
4
  ---
5
5
 
6
6
  # Review Loop Agent
@@ -109,4 +109,4 @@ kill $(pgrep -f review-loop.js)
109
109
 
110
110
  ## 수동 실행
111
111
 
112
- `/bylane review-loop`
112
+ `/bylane-review-loop`
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  name: bylane-setup
3
- description: byLane 하네스 최초 설치 및 설정 위자드. /bylane setup 으로 실행.
3
+ description: byLane 최초 설치 및 설정 위자드. GitHub 접근, 이슈 트래커, 알림 채널, 팀 모드, 권한, 루프 모드, 브랜치 네이밍, 모델을 단계별로 설정하여 .bylane/bylane.json을 생성한다.
4
4
  ---
5
5
 
6
6
  # byLane Setup Wizard
7
7
 
8
8
  사용자에게 단계별로 질문하여 `.bylane/bylane.json`을 생성한다.
9
- ALWAYS complete all 6 steps before saving. NEVER skip steps.
9
+ ALWAYS complete all 8 steps before saving. NEVER skip steps.
10
10
 
11
11
  ## 실행 전 준비
12
12
 
@@ -83,7 +83,32 @@ Linear API Key는 환경변수명(`LINEAR_API_KEY`)으로 저장. 실제 키값
83
83
 
84
84
  `permissions.scope`에 저장.
85
85
 
86
- ## Step 5/6고급 설정
86
+ ## Step 5/8Loop 실행 모드
87
+
88
+ > Loop 실행 모드를 선택하세요:
89
+ > 1. tmux — tmux 세션에서 백그라운드 실행 (터미널 종료 후에도 유지, 권장)
90
+ > 2. process — 현재 프로세스에서 직접 실행 (잠자기 모드 대응 포함)
91
+
92
+ - `1` → `loop.mode = "tmux"`, `loop.sessionName` 입력 (Enter = `bylane-loops`)
93
+ - `2` → `loop.mode = "process"`
94
+
95
+ tmux 선택 시 `which tmux`로 설치 여부를 자동 확인한다:
96
+ - 설치됨 → `tmux` 모드 확정
97
+ - 미설치 → 안내 후 `process` 모드로 자동 전환:
98
+ > tmux가 설치되어 있지 않습니다. process 모드로 설정합니다.
99
+ > tmux 설치: `brew install tmux`
100
+
101
+ 폴링 주기 입력 (Enter = 5분):
102
+ - `loop.intervalMs`에 저장 (밀리초)
103
+
104
+ loop 시작/종료 명령 안내:
105
+ ```
106
+ bylane loop start # loop 시작
107
+ bylane loop stop # loop 종료
108
+ bylane loop status # 상태 확인
109
+ ```
110
+
111
+ ## Step 6/8 — 고급 설정
87
112
 
88
113
  > 고급 설정을 변경하시겠습니까? (Enter = 기본값 사용)
89
114
 
@@ -92,7 +117,7 @@ Linear API Key는 환경변수명(`LINEAR_API_KEY`)으로 저장. 실제 키값
92
117
  - `loopTimeoutMinutes` (기본: 30): 루프 타임아웃 (분)
93
118
  - Figma MCP 활성화? (y/n, 기본: n)
94
119
 
95
- ## Step 6/6 — 브랜치 네이밍
120
+ ## Step 7/8 — 브랜치 네이밍
96
121
 
97
122
  > 브랜치 네이밍 패턴을 선택하세요:
98
123
  > 1. {tracker}-{issue-number} 예) issues-32
@@ -107,7 +132,7 @@ Linear API Key는 환경변수명(`LINEAR_API_KEY`)으로 저장. 실제 키값
107
132
  직접 입력 시 사용 가능한 토큰 목록 안내:
108
133
  `{tracker}`, `{type}`, `{issue-number}`, `{custom-id}`, `{title-slug}`, `{date}`, `{username}`
109
134
 
110
- ## Step 7/7 — 에이전트 모델 설정
135
+ ## Step 8/8 — 에이전트 모델 설정
111
136
 
112
137
  > 각 에이전트에 사용할 AI 모델을 설정하시겠습니까? (Enter = 기본값 사용)
113
138
 
@@ -147,3 +172,9 @@ Linear API Key는 환경변수명(`LINEAR_API_KEY`)으로 저장. 실제 키값
147
172
  모니터 대시보드: npm run monitor (byLane 디렉토리에서)
148
173
  또는: /bylane monitor
149
174
  ```
175
+ 5. Loop 실행 안내:
176
+ ```
177
+ Loop 시작: npx @elyun/bylane loop start
178
+ Loop 종료: npx @elyun/bylane loop stop
179
+ Loop 상태: npx @elyun/bylane loop status
180
+ ```
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: bylane-test-agent
3
- description: 변경된 코드의 테스트를 실행하고 결과를 반환한다.
3
+ description: 변경된 코드의 테스트를 실행하고 PASS/FAIL 결과를 반환한다. FAIL 시 실패 상세(failureDetails)를 state에 기록하여 code-agent 재시도 피드백으로 사용된다.
4
4
  ---
5
5
 
6
6
  # Test Agent