buildcrew 1.8.5 → 1.8.6

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.6
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 |
@@ -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.6
6
6
  tools:
7
7
  - Read
8
8
  - Write
@@ -279,12 +279,33 @@ Use Playwright to screenshot the actual result:
279
279
  ## States & Interactions
280
280
  | State | Visual | Trigger |
281
281
 
282
+ ## Motion Specifications (Required)
283
+
284
+ ### Per-Component Motion Map
285
+ | Component | Entrance | Scroll | Hover/Press | Exit | Reduced Motion |
286
+ |-----------|----------|--------|-------------|------|----------------|
287
+ | [ComponentName] | [fade+slideUp 300ms] | [parallax/reveal] | [scale 1.02 + shadow] | [fadeOut 200ms] | [instant opacity] |
288
+
289
+ ### Page-Level Motion
290
+ - **Page transition**: [type, duration]
291
+ - **Scroll animations**: [which sections, trigger points]
292
+ - **Loading states**: [skeleton shimmer / spinner / progress]
293
+ - **Number animations**: [count-up on viewport enter]
294
+
295
+ ### Motion Tokens Used
296
+ - Duration: [fast 150ms / normal 300ms / slow 500ms]
297
+ - Easing: [default / bounce / smooth]
298
+ - Stagger: [interval per item]
299
+ - Library: [Framer Motion / GSAP / CSS]
300
+
301
+ > ⚠️ 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.
302
+
282
303
  ## Responsive Behavior
283
304
  - Mobile / Tablet / Desktop
284
305
 
285
306
  ## Accessibility
286
307
  ## Handoff Notes for Developer
287
- [What needs API wiring, state management, business logic]
308
+ [What needs API wiring, state management, business logic — including which motion library to install and which animations to prioritize]
288
309
  ```
289
310
 
290
311
  ### 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.6",
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",