@elyun/bylane 1.0.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.
package/CLAUDE.md ADDED
@@ -0,0 +1,73 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## 프로젝트 개요
6
+
7
+ byLane — Claude Code용 프론트엔드 개발 자동화 하네스.
8
+ 오케스트레이터 + 워커 에이전트 패턴으로 GitHub 이슈 생성부터 PR 머지까지 자동화.
9
+
10
+ ## 커맨드
11
+
12
+ ```bash
13
+ # 의존성 설치
14
+ npm install
15
+
16
+ # 전체 테스트 실행
17
+ npm test
18
+
19
+ # 모니터 대시보드 실행
20
+ npm run monitor
21
+
22
+ # 테스트용 더미 상태 생성
23
+ node -e "import('./src/state.js').then(({writeState})=>writeState('code-agent',{status:'in_progress',progress:50,retries:0,startedAt:new Date().toISOString(),log:[]}))"
24
+ ```
25
+
26
+ ## 아키텍처
27
+
28
+ - `src/state.js` — `.bylane/state/*.json` 읽기/쓰기 유틸 (writeState, readState, clearState, listStates, appendLog)
29
+ - `src/config.js` — `.bylane/bylane.json` 로드/저장/검증 (loadConfig, saveConfig, validateConfig, DEFAULT_CONFIG)
30
+ - `src/branch.js` — 브랜치명 패턴 엔진 (buildBranchName, buildBranchNameFromConfig)
31
+ - `src/monitor/` — blessed 기반 TUI 대시보드 (2열 그리드, 1초 폴링)
32
+ - `skills/` — Claude Code 에이전트 skill 파일들
33
+ - `hooks/` — 외부 이벤트 자동 감지 훅
34
+ - `commands/` — `/bylane` 슬래시 커맨드 정의
35
+
36
+ ## 에이전트 파이프라인
37
+
38
+ ```
39
+ orchestrator → issue-agent → code-agent → test-agent → commit-agent
40
+ → pr-agent → review-agent → respond-agent → notify-agent
41
+ ```
42
+
43
+ 각 에이전트는 `.bylane/state/{name}.json`에 상태 기록. 모니터가 1초마다 폴링.
44
+
45
+ ## 상태 파일 스키마
46
+
47
+ ```json
48
+ {
49
+ "agent": "code-agent",
50
+ "status": "in_progress | completed | failed | idle",
51
+ "startedAt": "ISO8601",
52
+ "progress": 0,
53
+ "retries": 0,
54
+ "log": [{ "ts": "ISO8601", "msg": "string" }]
55
+ }
56
+ ```
57
+
58
+ ## 브랜치 네이밍 토큰
59
+
60
+ `{tracker}`, `{type}`, `{issue-number}`, `{custom-id}`, `{title-slug}`, `{date}`, `{username}`
61
+
62
+ 빈 토큰은 자동으로 제외됨:
63
+ - `{tracker}-{issue-number}-{custom-id}` + custom-id 없음 → `issues-32`
64
+ - `{tracker}-{issue-number}-{custom-id}` + custom-id=C-12 → `issues-32-C-12`
65
+
66
+ ## 테스트 구조
67
+
68
+ ```
69
+ tests/
70
+ ├── state.test.js — writeState, readState, clearState, listStates, appendLog
71
+ ├── config.test.js — loadConfig, saveConfig, validateConfig, DEFAULT_CONFIG
72
+ └── branch.test.js — buildBranchName (5개 패턴 케이스)
73
+ ```
package/README.md ADDED
@@ -0,0 +1,186 @@
1
+ # byLane
2
+
3
+ > Claude Code용 프론트엔드 개발 자동화 하네스
4
+
5
+ GitHub Issues에서 시작해 코드 구현, 테스트, 커밋, PR 생성, 리뷰, 리뷰 반영까지 전체 개발 워크플로우를 에이전트 기반으로 자동화합니다.
6
+
7
+ ## 특징
8
+
9
+ - **전체 워크플로우 자동화** — `/bylane 다크모드 토글 추가해줘` 한 줄로 이슈 생성부터 PR까지
10
+ - **개별 실행 가능** — 각 에이전트를 단독으로 실행 가능
11
+ - **실시간 모니터링** — 2열 그리드 터미널 TUI 대시보드
12
+ - **피드백 루프** — 테스트 실패 시 자동 재시도 (설정 가능)
13
+ - **Figma MCP 연동** — 이슈의 Figma 링크에서 스펙 자동 추출 (선택적)
14
+ - **Slack / Telegram 알림** — 완료 또는 개입 필요 시 알림
15
+
16
+ ## 요구사항
17
+
18
+ - [Claude Code](https://claude.ai/code) CLI
19
+ - Node.js 20+
20
+ - GitHub MCP (Claude Code 기본 제공)
21
+ - Slack MCP / Telegram (알림 사용 시)
22
+ - Figma MCP (디자인 연동 사용 시)
23
+
24
+ ## 설치
25
+
26
+ ### npx로 설치 (권장)
27
+
28
+ ```bash
29
+ npx bylane
30
+ ```
31
+
32
+ Skills, Commands, Hooks 파일을 `~/.claude/` 하위 디렉토리에 자동으로 복사합니다.
33
+
34
+ 심볼릭 링크로 설치하면 레포 업데이트 시 자동으로 반영됩니다:
35
+
36
+ ```bash
37
+ npx bylane --symlink
38
+ ```
39
+
40
+ ### 수동 설치
41
+
42
+ ```bash
43
+ git clone https://github.com/el-yun/byLane.git
44
+ cd byLane
45
+ npm install
46
+ node src/cli.js install
47
+ ```
48
+
49
+ ### 셋업 위자드 실행
50
+
51
+ Claude Code를 열고 프로젝트 디렉토리에서:
52
+
53
+ ```
54
+ /bylane setup
55
+ ```
56
+
57
+ 6단계 인터랙티브 설정:
58
+ 1. 이슈 트래커 (GitHub Issues / Linear / 둘 다)
59
+ 2. 알림 채널 (Slack / Telegram / 둘 다)
60
+ 3. 팀 모드 설정
61
+ 4. 권한 범위 (read-only / write / full)
62
+ 5. 고급 설정 (재시도 횟수, 타임아웃, Figma MCP)
63
+ 6. 브랜치 네이밍 패턴
64
+
65
+ ## 사용법
66
+
67
+ ### 전체 워크플로우
68
+
69
+ 자연어로 작업 내용을 설명하면 오케스트레이터가 적절한 에이전트를 자동으로 실행합니다.
70
+
71
+ ```
72
+ /bylane 다크모드 토글 버튼 추가해줘
73
+ /bylane issue #123 구현해줘
74
+ /bylane PR #45 리뷰해줘
75
+ /bylane 리뷰 #45 반영해줘
76
+ ```
77
+
78
+ ### 개별 에이전트 실행
79
+
80
+ ```
81
+ /bylane issue [#번호 | 텍스트] 이슈 생성/분석
82
+ /bylane code [#번호] 코드 구현
83
+ /bylane test 테스트 실행
84
+ /bylane commit 커밋 생성
85
+ /bylane pr PR 생성
86
+ /bylane review [PR번호] PR 리뷰
87
+ /bylane respond [PR번호] 리뷰 반박/반영
88
+ /bylane notify 알림 발송
89
+ /bylane status 현재 상태 요약
90
+ ```
91
+
92
+ ### 모니터 대시보드
93
+
94
+ ```bash
95
+ npm run monitor
96
+ # 또는
97
+ /bylane monitor
98
+ ```
99
+
100
+ ```
101
+ ╔══════════════════════════════════════════════════════════════════╗
102
+ ║ byLane Monitor Issue #123: "Add dark mode" 4m 31s 17:32 ║
103
+ ╠═══════════════════════════╦══════════════════════════════════════╣
104
+ ║ AGENT PIPELINE ║ AGENT LOG [LIVE] ║
105
+ ║ ║ ║
106
+ ║ issue-agent [✓] 완료 ║ 17:32:38 code-agent ║
107
+ ║ code-agent [▶] 67% ║ → ThemeToggle.tsx 생성 ║
108
+ ║ test-agent [○] 대기 ║ 17:30:09 issue-agent ║
109
+ ║ ... ║ → ✓ spec.json 저장됨 ║
110
+ ╠═══════════════════════════╬══════════════════════════════════════╣
111
+ ║ QUEUE ║ SYSTEM STATUS ║
112
+ ║ 1 Issue #124 대기중 ║ GitHub ✓ 연결됨 ║
113
+ ║ 2 PR #45 review ║ Slack ✓ #dev-alerts ║
114
+ ╚═══════════════════════════╩══════════════════════════════════════╝
115
+ [q]종료 [p]일시정지 [↑↓]로그스크롤
116
+ ```
117
+
118
+ ## 브랜치 네이밍 패턴
119
+
120
+ 셋업 시 패턴을 정의하거나 `.bylane/bylane.json`에서 직접 설정:
121
+
122
+ | 패턴 | 예시 |
123
+ |---|---|
124
+ | `{tracker}-{issue-number}` | `issues-32` |
125
+ | `{tracker}-{issue-number}-{custom-id}` | `issues-32-C-12` |
126
+ | `{type}/{issue-number}-{title-slug}` | `feature/32-add-dark-mode` |
127
+
128
+ 사용 가능한 토큰: `{tracker}`, `{type}`, `{issue-number}`, `{custom-id}`, `{title-slug}`, `{date}`, `{username}`
129
+
130
+ 빈 토큰은 자동으로 제외됩니다 (`{custom-id}` 없으면 `issues-32`).
131
+
132
+ ## 설정 파일 (`.bylane/bylane.json`)
133
+
134
+ ```json
135
+ {
136
+ "version": "1.0",
137
+ "trackers": {
138
+ "primary": "github",
139
+ "linear": { "enabled": false, "apiKey": "" }
140
+ },
141
+ "notifications": {
142
+ "slack": { "enabled": true, "channel": "#dev-alerts" },
143
+ "telegram": { "enabled": false, "chatId": "" }
144
+ },
145
+ "workflow": {
146
+ "maxRetries": 3,
147
+ "loopTimeoutMinutes": 30,
148
+ "autoEscalate": true
149
+ },
150
+ "branch": {
151
+ "pattern": "{tracker}-{issue-number}",
152
+ "tokens": { "tracker": "issues", "type": "feature", "custom-id": "" },
153
+ "caseStyle": "kebab-case"
154
+ },
155
+ "extensions": {
156
+ "figma": { "enabled": false, "useAt": "issue-analysis" }
157
+ }
158
+ }
159
+ ```
160
+
161
+ ## 에이전트 파이프라인
162
+
163
+ ```
164
+ orchestrator
165
+ → issue-agent (이슈 생성/분석, Figma 스펙 추출)
166
+ → code-agent (코드 구현)
167
+ → test-agent (테스트 실행, 실패 시 code-agent 재시도)
168
+ → commit-agent (브랜치 생성 + 커밋)
169
+ → pr-agent (PR 생성)
170
+ → review-agent (자동 리뷰)
171
+ → respond-agent (리뷰 반박 또는 반영)
172
+ → notify-agent (Slack/Telegram 알림)
173
+ ```
174
+
175
+ 각 에이전트는 수동 단독 실행 가능하며, 타인의 PR/리뷰에도 대응합니다.
176
+
177
+ ## 개발
178
+
179
+ ```bash
180
+ npm test # 테스트 실행 (19개)
181
+ npm run monitor # 모니터 대시보드
182
+ ```
183
+
184
+ ## 라이선스
185
+
186
+ MIT
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: bylane-monitor
3
+ description: byLane 실시간 TUI 모니터 대시보드를 실행한다.
4
+ ---
5
+
6
+ # /bylane monitor
7
+
8
+ ## 설명
9
+
10
+ 현재 진행 중인 모든 byLane 에이전트의 상태를 2열 그리드 TUI로 실시간 표시한다.
11
+ `.bylane/state/*.json` 파일을 1초마다 폴링하여 갱신.
12
+
13
+ ## 실행
14
+
15
+ ```bash
16
+ npm run monitor
17
+ ```
18
+
19
+ 또는:
20
+ ```bash
21
+ node src/monitor/index.js
22
+ ```
23
+
24
+ ## 레이아웃
25
+
26
+ ```
27
+ ╔══════════════════════════════════════════════════════════╗
28
+ ║ byLane Monitor [현재작업] [경과시간] [시각] ║
29
+ ╠══════════════════╦═══════════════════════════════════════╣
30
+ ║ AGENT PIPELINE ║ AGENT LOG [LIVE] ║
31
+ ║ (좌상) ║ (우상) ║
32
+ ╠══════════════════╬═══════════════════════════════════════╣
33
+ ║ QUEUE ║ SYSTEM STATUS ║
34
+ ║ (좌하) ║ (우하) ║
35
+ ╚══════════════════╩═══════════════════════════════════════╝
36
+ ```
37
+
38
+ ## 키보드 단축키
39
+
40
+ | 키 | 동작 |
41
+ |---|---|
42
+ | `q` / `Ctrl+C` | 종료 |
43
+ | `↑` / `↓` | 로그 패널 스크롤 |
@@ -0,0 +1,61 @@
1
+ ---
2
+ name: bylane
3
+ description: byLane 메인 커맨드. 자연어로 전체 개발 워크플로우를 실행한다.
4
+ ---
5
+
6
+ # /bylane
7
+
8
+ ## 사용법
9
+
10
+ ```
11
+ /bylane [자연어 명령] — 전체 워크플로우 자동 실행
12
+ /bylane setup — 셋업 위자드 (재실행 가능)
13
+ /bylane monitor — 실시간 TUI 대시보드
14
+ /bylane issue [#번호 | 텍스트]
15
+ /bylane code [#번호]
16
+ /bylane test
17
+ /bylane commit
18
+ /bylane pr
19
+ /bylane review [PR번호]
20
+ /bylane respond [PR번호]
21
+ /bylane notify
22
+ /bylane status — 현재 상태 한 줄 요약
23
+ ```
24
+
25
+ ## 실행 흐름
26
+
27
+ 첫 번째 인자가 서브커맨드인지 확인:
28
+
29
+ | 서브커맨드 | 실행 스킬 |
30
+ |---|---|
31
+ | (없음 or 자연어) | `bylane-orchestrator` |
32
+ | `setup` | `bylane-setup` |
33
+ | `monitor` | 아래 참조 |
34
+ | `issue` | `bylane-issue-agent` |
35
+ | `code` | `bylane-code-agent` |
36
+ | `test` | `bylane-test-agent` |
37
+ | `commit` | `bylane-commit-agent` |
38
+ | `pr` | `bylane-pr-agent` |
39
+ | `review` | `bylane-review-agent` |
40
+ | `respond` | `bylane-respond-agent` |
41
+ | `notify` | `bylane-notify-agent` |
42
+ | `status` | `.bylane/state/` 파일 읽어 한 줄 요약 출력 |
43
+
44
+ ## monitor 서브커맨드
45
+
46
+ ```bash
47
+ npm run monitor --prefix PATH_TO_BYLANE
48
+ ```
49
+
50
+ 또는 byLane이 PATH에 설치된 경우:
51
+ ```bash
52
+ bylane-monitor
53
+ ```
54
+
55
+ ## status 서브커맨드
56
+
57
+ `.bylane/state/*.json` 파일을 읽어 각 에이전트의 현재 상태를 한 줄로 출력:
58
+
59
+ ```
60
+ orchestrator: idle | issue-agent: completed | code-agent: in_progress(67%) | ...
61
+ ```