buildcrew 1.5.0 → 1.5.2

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/README.ko.md CHANGED
@@ -118,7 +118,7 @@ echo "# 메모" > .claude/harness/내메모.md # 직접 생성도 가능
118
118
  | 에이전트 | 모델 | 역할 |
119
119
  |---------|------|------|
120
120
  | **planner** | opus | 6가지 강제 질문 + 4관점 자체 리뷰 (CEO, 엔지니어링, 디자인, QA). 관점별 1-10점. |
121
- | **designer** | opus | 웹에서 UI/UX 레퍼런스 수집 → Playwright 스크린샷 → Figma MCP → 프로덕션 컴포넌트. AI 슬롭 블랙리스트. |
121
+ | **designer** | opus | UI/UX 레퍼런스 수집 + 모션 엔지니어링 → Playwright 스크린샷 → Figma MCP → 애니메이션, 스크롤 이펙트, 제스처가 포함된 프로덕션 컴포넌트. AI 슬롭 블랙리스트. |
122
122
  | **developer** | sonnet | 기획서 + 디자인 + 하네스 규칙에 따라 구현. |
123
123
 
124
124
  ### 품질 팀
@@ -162,6 +162,14 @@ echo "# 메모" > .claude/harness/내메모.md # 직접 생성도 가능
162
162
  | **Review** | "코드 리뷰해줘" | 멀티 전문가 + 적대적 + 자동 수정 |
163
163
  | **Ship** | "배포해줘" | 테스트 → 버전 → 체인지로그 → PR |
164
164
 
165
+ ### 반복 (Iterations)
166
+
167
+ 매 반복마다 **전체 파이프라인**을 처음부터 다시 실행 — 기획자가 이전 결과를 리뷰하고 계획을 수정합니다:
168
+
169
+ ```
170
+ @buildcrew 유저 대시보드 추가해줘, 5 iterations
171
+ ```
172
+
165
173
  ### 모드 체이닝
166
174
 
167
175
  Feature 완료 → Ship → Canary. Canary CRITICAL → Debug.
@@ -188,7 +196,7 @@ Feature 완료 → Ship → Canary. Canary CRITICAL → Debug.
188
196
 
189
197
  | 명령어 | 설명 |
190
198
  |--------|------|
191
- | `npx buildcrew` | 11개 에이전트 설치 |
199
+ | `npx buildcrew` | 에이전트 설치 (11 + 오케스트레이터) |
192
200
  | `npx buildcrew init` | 하네스 자동 생성 (질문 없음) |
193
201
  | `npx buildcrew init --force` | 하네스 재생성 |
194
202
  | `npx buildcrew add` | 템플릿 목록 |
@@ -204,6 +212,22 @@ Feature 완료 → Ship → Canary. Canary CRITICAL → Debug.
204
212
  - **선택**: [Playwright MCP](https://github.com/anthropics/anthropic-quickstarts/tree/main/mcp-servers/playwright) — browser-qa, canary-monitor, designer
205
213
  - **선택**: [Figma MCP](https://github.com/anthropics/anthropic-quickstarts/tree/main/mcp-servers/figma) — designer
206
214
 
215
+ ## 실시간 상태 로그
216
+
217
+ 모든 에이전트가 이모지 태그된 진행 로그를 출력합니다:
218
+
219
+ ```
220
+ 📋 PLANNER — "유저 대시보드" 요구사항 분석 시작
221
+ 🔎 4관점 자체 리뷰...
222
+ 🏢 CEO: 8/10 ⚙️ 엔지니어링: 9/10
223
+ ✅ PLANNER — 완료
224
+
225
+ 🎨 DESIGNER — UI/UX 디자인 시작...
226
+ 💻 DEVELOPER — 구현 시작...
227
+ 🧪 QA TESTER — 11/12 통과, 1건 발견
228
+ 🔬 REVIEWER — 승인
229
+ ```
230
+
207
231
  ## 라이선스
208
232
 
209
233
  MIT
package/README.md CHANGED
@@ -118,7 +118,7 @@ echo "# Notes" > .claude/harness/my-notes.md # Or create your own
118
118
  | Agent | Model | Role |
119
119
  |-------|-------|------|
120
120
  | **planner** | opus | 6 Forcing Questions + 4-Lens Self-Review (CEO, Engineering, Design, QA). Plans scored 1-10 per lens. |
121
- | **designer** | opus | Web research for UI/UX references → Playwright screenshots → Figma MCP → production components. AI slop blacklist. |
121
+ | **designer** | opus | UI/UX research + motion engineering → Playwright screenshots → Figma MCP → production components with animations, scroll effects, gestures. AI slop blacklist. |
122
122
  | **developer** | sonnet | Implements features following plan + design + harness conventions. |
123
123
 
124
124
  ### Quality Team
@@ -162,6 +162,14 @@ Talk to `@buildcrew` naturally. It auto-detects the mode.
162
162
  | **Review** | "code review" | Multi-specialist analysis + auto-fix |
163
163
  | **Ship** | "ship" | Test → version → changelog → PR |
164
164
 
165
+ ### Iterations
166
+
167
+ Each iteration runs the **full end-to-end pipeline** — planner re-evaluates, designer refines, developer fixes, QA re-verifies:
168
+
169
+ ```
170
+ @buildcrew Add user dashboard, 5 iterations
171
+ ```
172
+
165
173
  ### Mode chaining
166
174
 
167
175
  Auto-suggests the next mode:
@@ -192,7 +200,7 @@ Each feature generates a full document chain:
192
200
 
193
201
  | Command | Description |
194
202
  |---------|-------------|
195
- | `npx buildcrew` | Install 11 agents |
203
+ | `npx buildcrew` | Install agents (11 + orchestrator) |
196
204
  | `npx buildcrew init` | Auto-generate harness (zero questions) |
197
205
  | `npx buildcrew init --force` | Regenerate harness |
198
206
  | `npx buildcrew add` | List harness templates |
@@ -222,6 +230,25 @@ claude mcp add playwright -- npx @anthropic-ai/mcp-server-playwright
222
230
  .claude/pipeline/ Output documents — auto-generated per feature
223
231
  ```
224
232
 
233
+ ## Real-time Status
234
+
235
+ Every agent outputs emoji-tagged progress logs so you can track what's happening:
236
+
237
+ ```
238
+ 📋 PLANNER — Starting requirements analysis for "user dashboard"
239
+ 🔍 Reading project harness...
240
+ 🧠 Phase 1: Asking 6 Forcing Questions...
241
+ 🔎 Phase 3: 4-Lens Self-Review...
242
+ 🏢 CEO Review: 8/10
243
+ ⚙️ Engineering Review: 9/10
244
+ ✅ PLANNER — Complete (avg score: 8.5/10)
245
+
246
+ 🎨 DESIGNER — Starting UI/UX design...
247
+ 💻 DEVELOPER — Starting implementation...
248
+ 🧪 QA TESTER — 11/12 passed, 1 issue found
249
+ 🔬 REVIEWER — APPROVE
250
+ ```
251
+
225
252
  ## Architecture
226
253
 
227
254
  ```
@@ -230,7 +257,7 @@ claude mcp add playwright -- npx @anthropic-ai/mcp-server-playwright
230
257
  ├─ reads .claude/harness/*.md
231
258
  ├─ detects mode from user message
232
259
  ├─ dispatches agents with harness context
233
- └─ enforces quality gates + iteration
260
+ └─ enforces quality gates + full end-to-end iteration
234
261
 
235
262
  ├── Build: planner → designer → developer
236
263
  ├── Quality: qa-tester → browser-qa → reviewer
package/bin/setup.js CHANGED
@@ -150,12 +150,25 @@ async function detectProject() {
150
150
  async function runInit(force) {
151
151
  log(`\n ${BOLD}buildcrew init${RESET} v${VERSION}\n`);
152
152
 
153
- if ((await exists(join(HARNESS_DIR, "project.md"))) && !force) {
153
+ const harnessExists = await exists(join(HARNESS_DIR, "project.md"));
154
+
155
+ if (harnessExists && !force) {
154
156
  log(` ${YELLOW}Harness already exists at .claude/harness/${RESET}`);
155
157
  log(` ${DIM}Use ${BOLD}--force${RESET}${DIM} to regenerate. Or just edit the files directly.${RESET}\n`);
156
158
  return;
157
159
  }
158
160
 
161
+ // Backup existing harness before overwriting
162
+ if (harnessExists && force) {
163
+ const backupDir = join(process.cwd(), ".claude", "harness-backup");
164
+ await mkdir(backupDir, { recursive: true });
165
+ const harnessFiles = (await readdir(HARNESS_DIR)).filter(f => f.endsWith(".md"));
166
+ for (const file of harnessFiles) {
167
+ await copyFile(join(HARNESS_DIR, file), join(backupDir, file));
168
+ }
169
+ log(` ${CYAN}Backed up ${harnessFiles.length} harness files → .claude/harness-backup/${RESET}\n`);
170
+ }
171
+
159
172
  log(` ${DIM}Scanning project...${RESET}\n`);
160
173
  const d = await detectProject();
161
174
 
@@ -329,11 +342,20 @@ async function runAdd(type, force) {
329
342
  }
330
343
 
331
344
  const target = join(HARNESS_DIR, `${type}.md`);
332
- if ((await exists(target)) && !force) {
345
+ const targetExists = await exists(target);
346
+ if (targetExists && !force) {
333
347
  log(`\n ${YELLOW}${type}.md already exists.${RESET} Use ${BOLD}--force${RESET} to overwrite.\n`);
334
348
  return;
335
349
  }
336
350
 
351
+ // Backup before overwriting
352
+ if (targetExists && force) {
353
+ const backupDir = join(process.cwd(), ".claude", "harness-backup");
354
+ await mkdir(backupDir, { recursive: true });
355
+ await copyFile(target, join(backupDir, `${type}.md`));
356
+ log(`\n ${CYAN}Backed up ${type}.md → .claude/harness-backup/${RESET}`);
357
+ }
358
+
337
359
  await mkdir(HARNESS_DIR, { recursive: true });
338
360
  await copyFile(join(TEMPLATES_SRC, template.file), target);
339
361
  log(`\n ${GREEN} + ${RESET} .claude/harness/${type}.md`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "buildcrew",
3
- "version": "1.5.0",
3
+ "version": "1.5.2",
4
4
  "description": "11 AI agents for Claude Code — auto-orchestrated dev team with 9 operating modes",
5
5
  "homepage": "https://buildcrew-landing.vercel.app",
6
6
  "author": "z1nun",