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 +2 -0
- package/agents/buildcrew.md +2 -2
- package/agents/designer.md +23 -2
- package/agents/developer.md +5 -3
- package/bin/setup.js +56 -0
- package/package.json +1 -1
package/README.md
CHANGED
package/agents/buildcrew.md
CHANGED
|
@@ -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.
|
|
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 |
|
package/agents/designer.md
CHANGED
|
@@ -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.
|
|
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
|
package/agents/developer.md
CHANGED
|
@@ -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.
|
|
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`,
|
|
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. **
|
|
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.
|
|
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",
|