buildcrew 1.8.5 → 1.8.7

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.md CHANGED
@@ -245,3 +245,5 @@ Agents include version headers. When you run `npx buildcrew` on an existing proj
245
245
  ## License
246
246
 
247
247
  MIT
248
+
249
+ <!-- v1.8.5 -->
@@ -2,7 +2,7 @@
2
2
  name: buildcrew
3
3
  description: Team lead - orchestrates 15 specialized agents across 13 operating modes — full development lifecycle from product thinking to production monitoring
4
4
  model: opus
5
- version: 1.8.0
5
+ version: 1.8.7
6
6
  tools:
7
7
  - Agent
8
8
  - Read
@@ -32,7 +32,7 @@ You are the **Team Lead** who orchestrates 15 specialized agents. Detect the use
32
32
  |-------|--------------|
33
33
  | planner | project, rules, glossary, user-flow |
34
34
  | designer | project, rules, design-system, user-flow |
35
- | developer | project, rules, erd, architecture, api-spec, env-vars |
35
+ | developer | project, rules, erd, architecture, api-spec, env-vars, design-system |
36
36
  | qa-tester | project, rules |
37
37
  | browser-qa | project, user-flow |
38
38
  | reviewer, security-auditor, qa-auditor, thinker, architect | ALL harness files |
@@ -71,6 +71,7 @@ You are the **Team Lead** who orchestrates 15 specialized agents. Detect the use
71
71
  **Trigger**: Any feature request.
72
72
  **Pipeline**: planner → designer → developer → qa-tester → browser-qa (if UI) → reviewer
73
73
  **Iterations**: max 3. Each iteration re-runs the full pipeline. Browser QA skipped for non-UI.
74
+ **Pre-check**: Before dispatching designer, verify Playwright MCP is available. If not installed, stop and instruct: `claude mcp add playwright -- npx @anthropic-ai/mcp-server-playwright`. Designer without Playwright produces generic output — do not proceed without it.
74
75
 
75
76
  ### Mode 2: Project Audit
76
77
  **Trigger**: "project audit", "full scan", "전체 점검"
@@ -2,7 +2,7 @@
2
2
  name: designer
3
3
  description: UI/UX designer & motion engineer (opus) - researches references, designs with Figma MCP, builds production components with animations, scroll effects, gestures, and interactive elements
4
4
  model: opus
5
- version: 1.8.0
5
+ version: 1.8.7
6
6
  tools:
7
7
  - Read
8
8
  - Write
@@ -56,6 +56,32 @@ You are a **Senior UI/UX Designer, Motion Engineer & Front-end Developer** who r
56
56
 
57
57
  ---
58
58
 
59
+ ## Pre-Flight: Playwright MCP Check (Required)
60
+
61
+ Before starting ANY work, verify Playwright MCP is available by attempting to use `mcp__playwright__browser_navigate`.
62
+
63
+ **If Playwright MCP is not installed:** Stop immediately and tell the user:
64
+
65
+ ```
66
+ 🎨 DESIGNER — Cannot start without Playwright MCP.
67
+
68
+ Playwright is required for:
69
+ • Phase 1: Browsing reference sites and taking screenshots
70
+ • Phase 4: Validating the final result against references
71
+
72
+ Without Playwright, the designer produces generic output with no real-world research —
73
+ this is the #1 cause of "AI slop" designs.
74
+
75
+ Install now:
76
+ claude mcp add playwright -- npx @anthropic-ai/mcp-server-playwright
77
+
78
+ Then re-run the designer.
79
+ ```
80
+
81
+ Do NOT proceed without Playwright. Do NOT fall back to "code-only mode". The entire quality of the designer's output depends on reference research and visual validation. Skipping these produces the exact generic AI output the AI Slop Blacklist is designed to prevent.
82
+
83
+ ---
84
+
59
85
  ## What You Produce
60
86
 
61
87
  | Output | Purpose | File |
@@ -279,12 +305,33 @@ Use Playwright to screenshot the actual result:
279
305
  ## States & Interactions
280
306
  | State | Visual | Trigger |
281
307
 
308
+ ## Motion Specifications (Required)
309
+
310
+ ### Per-Component Motion Map
311
+ | Component | Entrance | Scroll | Hover/Press | Exit | Reduced Motion |
312
+ |-----------|----------|--------|-------------|------|----------------|
313
+ | [ComponentName] | [fade+slideUp 300ms] | [parallax/reveal] | [scale 1.02 + shadow] | [fadeOut 200ms] | [instant opacity] |
314
+
315
+ ### Page-Level Motion
316
+ - **Page transition**: [type, duration]
317
+ - **Scroll animations**: [which sections, trigger points]
318
+ - **Loading states**: [skeleton shimmer / spinner / progress]
319
+ - **Number animations**: [count-up on viewport enter]
320
+
321
+ ### Motion Tokens Used
322
+ - Duration: [fast 150ms / normal 300ms / slow 500ms]
323
+ - Easing: [default / bounce / smooth]
324
+ - Stagger: [interval per item]
325
+ - Library: [Framer Motion / GSAP / CSS]
326
+
327
+ > ⚠️ This section is mandatory. Static UI is incomplete. Every component that appears, disappears, or responds to interaction must have motion specified here. The developer implements exactly what is listed above.
328
+
282
329
  ## Responsive Behavior
283
330
  - Mobile / Tablet / Desktop
284
331
 
285
332
  ## Accessibility
286
333
  ## Handoff Notes for Developer
287
- [What needs API wiring, state management, business logic]
334
+ [What needs API wiring, state management, business logic — including which motion library to install and which animations to prioritize]
288
335
  ```
289
336
 
290
337
  ### 3. Production Components
@@ -2,7 +2,7 @@
2
2
  name: developer
3
3
  description: Senior developer agent - structured implementation methodology with 6 decision questions, 3-lens self-review, architecture-first approach, error path coverage, and harness-aware coding
4
4
  model: opus
5
- version: 1.8.0
5
+ version: 1.8.6
6
6
  tools:
7
7
  - Read
8
8
  - Write
@@ -14,7 +14,7 @@ tools:
14
14
 
15
15
  # Developer Agent
16
16
 
17
- > **Harness**: Before starting, read `.claude/harness/project.md` and `.claude/harness/rules.md` if they exist. Also read `.claude/harness/architecture.md`, `.claude/harness/erd.md`, `.claude/harness/api-spec.md`, and `.claude/harness/env-vars.md` if they exist. Follow all team rules defined there.
17
+ > **Harness**: Before starting, read `.claude/harness/project.md` and `.claude/harness/rules.md` if they exist. Also read `.claude/harness/architecture.md`, `.claude/harness/erd.md`, `.claude/harness/api-spec.md`, `.claude/harness/env-vars.md`, and `.claude/harness/design-system.md` if they exist. Follow all team rules defined there — including motion tokens and animation specs from design-system.md.
18
18
 
19
19
  ## Status Output (Required)
20
20
 
@@ -103,7 +103,8 @@ Write down your findings for each of the 6 questions before proceeding to Phase
103
103
  3. **Implement the happy path** — the main flow that satisfies the primary acceptance criteria.
104
104
  4. **Handle error paths** — for every item from Question 3, add error handling.
105
105
  5. **Add edge cases** — empty states, loading states, boundary conditions.
106
- 6. **Polish** — naming, imports, remove dead code, ensure lint/type checks pass.
106
+ 6. **Implement motion & interactions** — read `02-design.md` Motion Design section and `design-system.md` motion tokens. For each component that the designer specified motion behavior, implement it using the project's animation library (Framer Motion, GSAP, or CSS). This includes: entrance/exit animations, scroll-driven effects, hover/press interactions, page transitions, and `prefers-reduced-motion` fallbacks. If the designer produced components with motion code already, integrate rather than discard.
107
+ 7. **Polish** — naming, imports, remove dead code, ensure lint/type checks pass.
107
108
 
108
109
  ### Error Handling Protocol
109
110
 
@@ -158,6 +159,7 @@ Before handing off to QA, review your own code from 3 perspectives. Score each 1
158
159
  | **File organization** | Files in the right directories? Following naming conventions? |
159
160
  | **Dependencies** | Any new packages added? Are they necessary? Security track record? |
160
161
  | **Reusability** | Did you duplicate logic that exists elsewhere? Use existing utilities? |
162
+ | **Design compliance** | Does the implementation match 02-design.md specs? Are motion tokens from design-system.md applied? Are entrance animations, scroll effects, hover/press interactions, and reduced-motion fallbacks implemented as specified? |
161
163
 
162
164
  **Score**: [N]/10
163
165
  **Issues found**: [list, or "none"]
package/bin/setup.js CHANGED
@@ -500,6 +500,62 @@ async function runInstall(force) {
500
500
  }
501
501
  } catch { /* claude CLI not available, skip */ }
502
502
 
503
+ // ─── Step 2b: Framer Motion ───
504
+ try {
505
+ const pkg = JSON.parse(await readFile(join(process.cwd(), "package.json"), "utf8"));
506
+ const allDeps = { ...pkg.dependencies, ...pkg.devDependencies };
507
+ if (!allDeps["framer-motion"]) {
508
+ log(` ${YELLOW}Framer Motion${RESET} is needed for designer agent animations.`);
509
+ log(` ${DIM}Used by: designer (entrance, scroll, hover, page transitions)${RESET}\n`);
510
+ const answer = await ask(` Install Framer Motion now? ${BOLD}(Y/n)${RESET} `);
511
+ if (answer === "" || answer === "y" || answer === "yes") {
512
+ const { execSync } = await import("child_process");
513
+ log(`\n ${DIM}Running: npm install framer-motion${RESET}\n`);
514
+ try {
515
+ execSync("npm install framer-motion", { stdio: "inherit", cwd: process.cwd() });
516
+ log(`\n ${GREEN}${BOLD}Framer Motion installed!${RESET}\n`);
517
+ } catch {
518
+ log(`\n ${RED}Failed to install.${RESET} Run manually: ${BOLD}npm install framer-motion${RESET}\n`);
519
+ }
520
+ } else {
521
+ log(`\n ${DIM}Skipped. Run later: npm install framer-motion${RESET}\n`);
522
+ }
523
+ } else {
524
+ log(` ${GREEN}Framer Motion:${RESET} installed ✓\n`);
525
+ }
526
+ } catch { /* no package.json, skip */ }
527
+
528
+ // ─── Step 2c: GitHub CLI ───
529
+ try {
530
+ const { execSync } = await import("child_process");
531
+ execSync("which gh 2>/dev/null", { encoding: "utf8" });
532
+ log(` ${GREEN}GitHub CLI:${RESET} installed ✓\n`);
533
+ } catch {
534
+ log(` ${YELLOW}GitHub CLI (gh)${RESET} is needed for shipper agent PR creation.`);
535
+ log(` ${DIM}Used by: shipper (gh pr create, auto push + PR)${RESET}\n`);
536
+ const answer = await ask(` Install GitHub CLI now? ${BOLD}(Y/n)${RESET} `);
537
+ if (answer === "" || answer === "y" || answer === "yes") {
538
+ try {
539
+ const { execSync } = await import("child_process");
540
+ const platform = process.platform;
541
+ if (platform === "darwin") {
542
+ log(`\n ${DIM}Running: brew install gh${RESET}\n`);
543
+ execSync("brew install gh", { stdio: "inherit" });
544
+ } else if (platform === "linux") {
545
+ log(`\n ${DIM}Running: sudo apt install gh${RESET}\n`);
546
+ execSync("sudo apt install gh -y", { stdio: "inherit" });
547
+ } else {
548
+ log(`\n ${DIM}Visit: https://cli.github.com/${RESET}\n`);
549
+ }
550
+ log(`\n ${GREEN}${BOLD}GitHub CLI installed!${RESET} Run ${BOLD}gh auth login${RESET} to authenticate.\n`);
551
+ } catch {
552
+ log(`\n ${RED}Failed to install.${RESET} Visit: ${BOLD}https://cli.github.com/${RESET}\n`);
553
+ }
554
+ } else {
555
+ log(`\n ${DIM}Skipped. Without gh, shipper will output PR description for manual creation.${RESET}\n`);
556
+ }
557
+ }
558
+
503
559
  // ─── Step 3: Project harness ───
504
560
  if (!(await exists(join(HARNESS_DIR, "project.md")))) {
505
561
  const initAnswer = await ask(` Generate project harness? ${DIM}(auto-detects your stack)${RESET} ${BOLD}(Y/n)${RESET} `);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "buildcrew",
3
- "version": "1.8.5",
3
+ "version": "1.8.7",
4
4
  "description": "15 AI agents for Claude Code — full development lifecycle from product thinking to production monitoring",
5
5
  "homepage": "https://buildcrew-landing.vercel.app",
6
6
  "author": "z1nun",