@growthub/cli 0.3.54 → 0.3.55
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/assets/worker-kits/growthub-ai-website-cloner-v1/.env.example +7 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/QUICKSTART.md +116 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/brands/NEW-CLIENT.md +22 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/brands/_template/brand-kit.md +27 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/brands/growthub/brand-kit.md +26 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/bundles/growthub-ai-website-cloner-v1.json +53 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/ai-website-cloner-fork-integration.md +118 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/design-token-system.md +135 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/multi-phase-pipeline.md +129 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/parallel-builder-dispatch.md +103 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/clone-brief-sample.md +54 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/component-spec-sample.md +123 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/platform-handoff-sample.md +102 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/visual-qa-sample.md +119 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/growthub-meta/README.md +71 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/growthub-meta/kit-standard.md +47 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/kit.json +105 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/output/README.md +26 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/output-standards.md +75 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/runtime-assumptions.md +70 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/setup/check-deps.sh +50 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/setup/clone-fork.sh +66 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/setup/verify-env.mjs +78 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/skills.md +186 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/asset-manifest.md +57 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/builder-dispatch-plan.md +92 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/clone-brief.md +59 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/component-spec.md +124 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/design-token-extraction.md +89 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/platform-handoff.md +114 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/reconnaissance-report.md +77 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/visual-qa-checklist.md +107 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/validation-checklist.md +76 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/workers/ai-website-cloner-operator/CLAUDE.md +256 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/.env.example +40 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/QUICKSTART.md +114 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/brands/NEW-CLIENT.md +42 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/brands/_template/brand-kit.md +49 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/brands/growthub/brand-kit.md +50 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/bundles/growthub-open-montage-studio-v1.json +55 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/docs/cms-node-bridge.md +152 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/docs/open-montage-fork-integration.md +120 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/docs/pipeline-reference.md +147 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/docs/provider-adapter-layer.md +105 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/examples/cms-node-video-gen-sample.md +109 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/examples/pipeline-selection-sample.md +67 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/examples/platform-ready-handoff-sample.md +101 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/examples/video-production-brief-sample.md +68 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/growthub-meta/README.md +7 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/growthub-meta/kit-standard.md +45 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/kit.json +107 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/output/README.md +34 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/output-standards.md +79 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/runtime-assumptions.md +86 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/setup/check-deps.sh +43 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/setup/clone-fork.sh +53 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/setup/verify-env.mjs +102 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/skills.md +254 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/asset-tracking.md +46 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/cms-node-pipeline-mapping.md +64 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/generation-batch-plan.md +70 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/pipeline-selection-brief.md +67 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/platform-ready-execution-handoff.md +103 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/prompt-matrix.md +48 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/provider-selection-brief.md +86 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/review-qa-checklist.md +59 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/scene-plan.md +65 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/video-production-brief.md +58 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/validation-checklist.md +46 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/workers/open-montage-studio-operator/CLAUDE.md +304 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/.env.example +15 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/QUICKSTART.md +90 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/brands/NEW-CLIENT.md +57 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/brands/_template/brand-kit.md +88 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/brands/growthub/brand-kit.md +92 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/bundles/growthub-twenty-crm-v1.json +56 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/docs/api-and-webhooks.md +296 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/docs/data-model-layer.md +172 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/docs/twenty-fork-integration.md +213 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/examples/crm-playbook-sample.md +172 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/examples/crm-setup-sample.md +100 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/examples/lead-enrichment-sample.md +117 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/examples/pipeline-automation-sample.md +132 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/growthub-meta/README.md +114 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/growthub-meta/kit-standard.md +61 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/kit.json +108 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/output/README.md +46 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/output-standards.md +175 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/runtime-assumptions.md +150 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/setup/check-deps.sh +56 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/setup/clone-fork.sh +77 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/setup/verify-env.mjs +105 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/skills.md +401 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/api-query-plan.md +179 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/crm-playbook.md +155 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/crm-setup-brief.md +94 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/custom-object-design.md +115 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/data-model-design.md +112 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/enrichment-field-map.md +100 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/import-mapping.md +139 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/integration-handoff.md +190 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/lead-enrichment-pipeline.md +128 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/pipeline-automation-brief.md +88 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/webhook-integration-spec.md +129 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/workspace-config-checklist.md +129 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/validation-checklist.md +115 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/workers/twenty-crm-operator/CLAUDE.md +310 -0
- package/package.json +1 -1
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# Parallel Builder Dispatch
|
|
2
|
+
|
|
3
|
+
**Kit:** `growthub-ai-website-cloner-v1`
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Why parallel builders
|
|
8
|
+
|
|
9
|
+
A modern website has 5–20 distinct sections. Cloning them sequentially would be slow and would block each builder on the previous one. The parallel worktree system lets all builders work simultaneously, each in an isolated branch.
|
|
10
|
+
|
|
11
|
+
The orchestrator (the Growthub operator running as the main agent) dispatches all builders at once, waits for them to complete, then assembles the results.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Worktree isolation
|
|
16
|
+
|
|
17
|
+
Each builder gets a dedicated `git worktree` — a separate working directory linked to the same repository but on a different branch:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# Create worktrees (orchestrator does this before dispatch)
|
|
21
|
+
git worktree add ../build-navigation build/navigation
|
|
22
|
+
git worktree add ../build-hero-section build/hero-section
|
|
23
|
+
git worktree add ../build-features build/features
|
|
24
|
+
git worktree add ../build-footer build/footer
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Each builder's working directory is independent. They cannot conflict with each other during development.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Builder constraints
|
|
32
|
+
|
|
33
|
+
Builders must follow these rules without exception:
|
|
34
|
+
|
|
35
|
+
| Rule | Detail |
|
|
36
|
+
|---|---|
|
|
37
|
+
| Write only to `src/components/<section-slug>/` | No writes to shared files |
|
|
38
|
+
| No writes to `src/app/` | The orchestrator owns the page |
|
|
39
|
+
| No writes to `src/lib/` | Shared utilities stay unchanged |
|
|
40
|
+
| No writes to `globals.css` | Tokens are in the design token file |
|
|
41
|
+
| No writes to `src/types/` | Types are defined by the orchestrator |
|
|
42
|
+
| No writes to `layout.tsx` | The root layout is owned by the orchestrator |
|
|
43
|
+
| One component file per section | `src/components/<section-slug>/<ComponentName>.tsx` |
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Builder input package
|
|
48
|
+
|
|
49
|
+
Each builder receives exactly:
|
|
50
|
+
|
|
51
|
+
1. **Section spec** — the complete component spec from `specs/<section-slug>.md`
|
|
52
|
+
2. **Design token sheet** — `templates/design-token-extraction.md` (full token set)
|
|
53
|
+
3. **Asset manifest** — `templates/asset-manifest.md` (all `public/` asset paths)
|
|
54
|
+
4. **Naming instructions** — component name, output path, export format
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Builder output format
|
|
59
|
+
|
|
60
|
+
Each builder produces a TypeScript React component:
|
|
61
|
+
|
|
62
|
+
```tsx
|
|
63
|
+
// src/components/hero-section/HeroSection.tsx
|
|
64
|
+
import Image from "next/image";
|
|
65
|
+
|
|
66
|
+
export function HeroSection() {
|
|
67
|
+
return (
|
|
68
|
+
<section className="...">
|
|
69
|
+
{/* exact content from spec */}
|
|
70
|
+
</section>
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Requirements:
|
|
76
|
+
- Named export (not default export)
|
|
77
|
+
- TypeScript strict — no `any`
|
|
78
|
+
- Tailwind CSS utility classes (no inline styles)
|
|
79
|
+
- Uses `cn()` from `src/lib/utils.ts` for conditional classes
|
|
80
|
+
- Asset paths from `public/` using Next.js `<Image>` or `<video>` tags
|
|
81
|
+
- Uses design tokens from the Tailwind config (via CSS variables)
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Assembly
|
|
86
|
+
|
|
87
|
+
After all builders complete, the orchestrator:
|
|
88
|
+
|
|
89
|
+
1. Merges all `build/*` branches into `main`
|
|
90
|
+
2. Resolves any conflicts (should be minimal since builders touch different files)
|
|
91
|
+
3. Writes `src/app/page.tsx` importing all components in order
|
|
92
|
+
4. Updates `src/app/layout.tsx` with correct metadata
|
|
93
|
+
5. Updates `globals.css` with the full design token set from the extraction sheet
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Conflict resolution
|
|
98
|
+
|
|
99
|
+
The most common merge conflicts:
|
|
100
|
+
- `package.json` — if two builders added the same dependency. Orchestrator de-dupes.
|
|
101
|
+
- `src/components/icons.tsx` — if two builders added SVG icons. Orchestrator merges all icons.
|
|
102
|
+
|
|
103
|
+
These are resolved by the orchestrator with full context about what all builders were doing.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Clone Brief — Sample
|
|
2
|
+
|
|
3
|
+
**Project:** Acme Corp Homepage Clone
|
|
4
|
+
**Client:** Acme Corp
|
|
5
|
+
**Target URL(s):** `https://acme.example.com`
|
|
6
|
+
**Date:** 2026-04-15
|
|
7
|
+
**Operator:** `ai-website-cloner-operator`
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Objective
|
|
12
|
+
|
|
13
|
+
Pixel-perfect clone of the Acme Corp homepage into a modern Next.js 16 codebase. The client needs the source code for a planned migration from their legacy Webflow site to a self-hosted Next.js deployment.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Scope
|
|
18
|
+
|
|
19
|
+
### Pages to clone
|
|
20
|
+
- [x] `https://acme.example.com` — Homepage
|
|
21
|
+
|
|
22
|
+
### Sections to include
|
|
23
|
+
- [x] Navigation / Header (sticky, with dropdown menus)
|
|
24
|
+
- [x] Hero — full-viewport with background video
|
|
25
|
+
- [x] Features grid — 3-column, 6 feature cards
|
|
26
|
+
- [x] Social proof — testimonials carousel
|
|
27
|
+
- [x] CTA banner — centered, high-contrast
|
|
28
|
+
- [x] FAQ accordion
|
|
29
|
+
- [x] Footer — 4-column with newsletter signup
|
|
30
|
+
|
|
31
|
+
### Sections to exclude
|
|
32
|
+
- [x] Login flow — auth-gated, excluded by client request
|
|
33
|
+
- [x] Blog listing — dynamic content, excluded from v1 scope
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Constraints
|
|
38
|
+
|
|
39
|
+
- **Deployment target:** Vercel
|
|
40
|
+
- **Custom domain:** `acme.com` (configured post-handoff)
|
|
41
|
+
- **Proprietary fonts:** "Acme Sans" — not publicly available; replaced with Inter (documented deviation)
|
|
42
|
+
- **Auth-gated content:** Login flow excluded from scope
|
|
43
|
+
- **Terms of Service notes:** Confirmed with client — they own this site and have rights to reproduce it
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Deliverables
|
|
48
|
+
|
|
49
|
+
- [x] Cloned Next.js codebase in `~/ai-website-cloner-template`
|
|
50
|
+
- [x] Reconnaissance report
|
|
51
|
+
- [x] Design token extraction sheet (24 colors, 8 typography combinations)
|
|
52
|
+
- [x] 7 component specs
|
|
53
|
+
- [x] Visual QA checklist — PASS with 1 noted deviation (font)
|
|
54
|
+
- [x] Platform handoff document
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# HeroSection — Component Spec (Sample)
|
|
2
|
+
|
|
3
|
+
**Project:** Acme Corp Homepage Clone
|
|
4
|
+
**Section slug:** `hero-section`
|
|
5
|
+
**Output component:** `src/components/hero-section/HeroSection.tsx`
|
|
6
|
+
**Date:** 2026-04-15
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Purpose
|
|
11
|
+
|
|
12
|
+
Full-viewport hero section with a looping background video, centered headline, subheadline, and two CTA buttons. First visible content above the fold on desktop and mobile.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Layout
|
|
17
|
+
|
|
18
|
+
- **Container max-width:** 1280px
|
|
19
|
+
- **Container padding (desktop):** 0 80px
|
|
20
|
+
- **Container padding (mobile):** 0 24px
|
|
21
|
+
- **Display:** flex, column, center-aligned
|
|
22
|
+
- **Section min-height:** 100vh
|
|
23
|
+
- **Background:** `#0a0a0a` / `oklch(7% 0 0)` with video overlay
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Typography
|
|
28
|
+
|
|
29
|
+
| Element | Font family | Size | Line height | Weight | Color | Notes |
|
|
30
|
+
|---|---|---|---|---|---|---|
|
|
31
|
+
| Headline | Inter | 72px | 1.1 | 700 | `#ffffff` | Desktop only |
|
|
32
|
+
| Headline | Inter | 40px | 1.15 | 700 | `#ffffff` | Mobile |
|
|
33
|
+
| Subheadline | Inter | 20px | 1.5 | 400 | `rgba(255,255,255,0.7)` | Desktop |
|
|
34
|
+
| Subheadline | Inter | 16px | 1.5 | 400 | `rgba(255,255,255,0.7)` | Mobile |
|
|
35
|
+
| CTA primary | Inter | 16px | 1 | 600 | `#0a0a0a` | — |
|
|
36
|
+
| CTA secondary | Inter | 16px | 1 | 600 | `#ffffff` | — |
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Colors
|
|
41
|
+
|
|
42
|
+
- **Background:** `#0a0a0a` / `oklch(7% 0 0)` (with bg video)
|
|
43
|
+
- **Text primary:** `#ffffff` / `oklch(100% 0 0)`
|
|
44
|
+
- **Text secondary:** `rgba(255,255,255,0.7)` / `oklch(100% 0 0 / 0.7)`
|
|
45
|
+
- **CTA primary bg:** `#ffffff` / `oklch(100% 0 0)`
|
|
46
|
+
- **CTA secondary border:** `rgba(255,255,255,0.3)` / `oklch(100% 0 0 / 0.3)`
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## States
|
|
51
|
+
|
|
52
|
+
### Default
|
|
53
|
+
Headline + subheadline centered. Two CTAs side by side. Background video loops silently at `opacity: 0.4`.
|
|
54
|
+
|
|
55
|
+
### Hover — CTA primary
|
|
56
|
+
- Transform: none
|
|
57
|
+
- Background: `oklch(91% 0 0)` (slight dim)
|
|
58
|
+
- Transition: `background 0.2s ease`
|
|
59
|
+
|
|
60
|
+
### Hover — CTA secondary
|
|
61
|
+
- Border-color: `oklch(100% 0 0 / 0.6)`
|
|
62
|
+
- Background: `oklch(100% 0 0 / 0.08)`
|
|
63
|
+
- Transition: `all 0.2s ease`
|
|
64
|
+
|
|
65
|
+
### Focus (both CTAs)
|
|
66
|
+
- Focus ring color: `#3b82f6` / `oklch(59% 0.2 260)`
|
|
67
|
+
- Focus ring offset: 3px
|
|
68
|
+
- Focus ring width: 2px
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Responsive behavior
|
|
73
|
+
|
|
74
|
+
### Desktop (1440px)
|
|
75
|
+
72px headline, two CTAs side by side, background video full-coverage
|
|
76
|
+
|
|
77
|
+
### Tablet (768px)
|
|
78
|
+
56px headline, CTAs stack vertically, video still full-coverage
|
|
79
|
+
|
|
80
|
+
### Mobile (375px)
|
|
81
|
+
40px headline, 16px subheadline, CTAs full-width and stacked
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Assets
|
|
86
|
+
|
|
87
|
+
| File | Public path | Source URL |
|
|
88
|
+
|---|---|---|
|
|
89
|
+
| hero-bg.mp4 | `public/videos/hero-bg.mp4` | `https://cdn.acme.example.com/hero-bg.mp4` |
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Content
|
|
94
|
+
|
|
95
|
+
**Headline:**
|
|
96
|
+
The Future of Work Starts Here
|
|
97
|
+
|
|
98
|
+
**Subheadline:**
|
|
99
|
+
Automate your growth with AI. Launch faster, scale smarter, and let your team focus on what matters.
|
|
100
|
+
|
|
101
|
+
**CTA primary:**
|
|
102
|
+
Start for free
|
|
103
|
+
|
|
104
|
+
**CTA secondary:**
|
|
105
|
+
Watch demo
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Accessibility
|
|
110
|
+
|
|
111
|
+
- **ARIA landmark:** `<section aria-label="Hero">`
|
|
112
|
+
- **Heading level:** `<h1>`
|
|
113
|
+
- **Video:** `<video autoPlay muted loop playsInline aria-hidden="true">` (decorative)
|
|
114
|
+
- **Tab order:** CTA primary → CTA secondary
|
|
115
|
+
- **Reduced motion:** video paused if `prefers-reduced-motion: reduce`
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Implementation notes
|
|
120
|
+
|
|
121
|
+
The background video must use `object-fit: cover` and position `absolute` behind the content. The content must be `relative` with `z-index: 1`.
|
|
122
|
+
|
|
123
|
+
Tailwind v4 class for the video overlay: use `bg-black/60` over the video to ensure text contrast.
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Platform Handoff — Sample
|
|
2
|
+
|
|
3
|
+
**Project:** Acme Corp Homepage Clone
|
|
4
|
+
**Client:** Acme Corp
|
|
5
|
+
**Date:** 2026-04-15
|
|
6
|
+
**Clone source:** `https://acme.example.com`
|
|
7
|
+
**Codebase location:** `~/ai-website-cloner-template`
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## What was built
|
|
12
|
+
|
|
13
|
+
A pixel-perfect clone of the Acme Corp homepage, rebuilt in Next.js 16 + shadcn/ui + Tailwind CSS v4. The clone includes all 7 sections of the original page (navigation, hero, features, testimonials, CTA banner, FAQ, footer) with all assets downloaded and all interactive states matched. The only deviation is the proprietary "Acme Sans" font, replaced with Inter (documented below).
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Running the clone locally
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
cd ~/ai-website-cloner-template
|
|
21
|
+
npm run dev
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Open [http://localhost:3000](http://localhost:3000).
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Building for production
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
cd ~/ai-website-cloner-template
|
|
32
|
+
npm run build
|
|
33
|
+
npm run start
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Expected build output: ~45 static pages + 1 dynamic route.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Deploying to Vercel
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npm install -g vercel
|
|
44
|
+
cd ~/ai-website-cloner-template
|
|
45
|
+
vercel --prod
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The app will be live at `https://ai-website-cloner-template.vercel.app` until you configure a custom domain.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Project structure
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
src/
|
|
56
|
+
app/
|
|
57
|
+
page.tsx # Main homepage
|
|
58
|
+
layout.tsx # Root layout with Inter font
|
|
59
|
+
globals.css # Full design token set (24 colors)
|
|
60
|
+
components/
|
|
61
|
+
navigation/Navigation.tsx
|
|
62
|
+
hero-section/HeroSection.tsx
|
|
63
|
+
features-grid/FeaturesGrid.tsx
|
|
64
|
+
testimonials/Testimonials.tsx
|
|
65
|
+
cta-banner/CtaBanner.tsx
|
|
66
|
+
faq/Faq.tsx
|
|
67
|
+
footer/Footer.tsx
|
|
68
|
+
icons.tsx # 18 extracted SVG icons
|
|
69
|
+
public/
|
|
70
|
+
images/ # 11 downloaded images
|
|
71
|
+
videos/
|
|
72
|
+
hero-bg.mp4 # Hero background video
|
|
73
|
+
seo/
|
|
74
|
+
favicon.ico
|
|
75
|
+
og-image.png
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Known deviations from original
|
|
81
|
+
|
|
82
|
+
| Section | Type | Notes |
|
|
83
|
+
|---|---|---|
|
|
84
|
+
| All headings | Font | "Acme Sans" is a proprietary font not available via CDN. Replaced with Inter (weight 700). Visual difference is subtle — baseline spacing may differ by ~2px on some headings. |
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Customization next steps
|
|
89
|
+
|
|
90
|
+
1. [ ] Replace `public/seo/og-image.png` with the client's actual OG image
|
|
91
|
+
2. [ ] Update `src/app/layout.tsx` metadata: title, description, canonical URL
|
|
92
|
+
3. [ ] Configure Vercel environment variables for any future dynamic features
|
|
93
|
+
4. [ ] If "Acme Sans" is obtained via license, add it to `src/app/layout.tsx` and update `globals.css`
|
|
94
|
+
5. [ ] Remove `public/videos/hero-bg.mp4` and replace with a client-owned video file before redistribution
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## QA result
|
|
99
|
+
|
|
100
|
+
See `qa/visual-qa-checklist.md` for the full QA report.
|
|
101
|
+
|
|
102
|
+
**Overall result:** PASS WITH NOTED DEVIATIONS (font only)
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# Visual QA Checklist — Sample
|
|
2
|
+
|
|
3
|
+
**Project:** Acme Corp Homepage Clone
|
|
4
|
+
**Clone URL:** `http://localhost:3000`
|
|
5
|
+
**Original URL:** `https://acme.example.com`
|
|
6
|
+
**Date:** 2026-04-15
|
|
7
|
+
**QA reviewer:** `ai-website-cloner-operator`
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Build checks
|
|
12
|
+
|
|
13
|
+
- [x] `npm run build` exits 0
|
|
14
|
+
- [x] `npm run lint` exits 0
|
|
15
|
+
- [x] `npm run typecheck` exits 0
|
|
16
|
+
- [x] Dev server starts without errors: `npm run dev`
|
|
17
|
+
- [x] No 404s in browser console for assets
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Layout QA — Desktop (1440px)
|
|
22
|
+
|
|
23
|
+
| Section | Status | Notes |
|
|
24
|
+
|---|---|---|
|
|
25
|
+
| Navigation | Pass | Sticky behavior matches; dropdowns exact |
|
|
26
|
+
| Hero | Pass | Video loops, overlays correct, headlines match |
|
|
27
|
+
| Features grid | Pass | 3-column layout, spacing matches |
|
|
28
|
+
| Testimonials | Pass | Carousel transitions match |
|
|
29
|
+
| CTA Banner | Pass | High-contrast colors exact |
|
|
30
|
+
| FAQ accordion | Pass | Open/close transitions match |
|
|
31
|
+
| Footer | Pass | 4-column layout, links correct |
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Layout QA — Tablet (768px)
|
|
36
|
+
|
|
37
|
+
| Section | Status | Notes |
|
|
38
|
+
|---|---|---|
|
|
39
|
+
| Navigation | Pass | Hamburger appears, menu overlay works |
|
|
40
|
+
| Hero | Pass | 56px headline, CTAs stack correctly |
|
|
41
|
+
| Features grid | Pass | 2-column at tablet |
|
|
42
|
+
| Testimonials | Pass | Single column at tablet |
|
|
43
|
+
| CTA Banner | Pass | — |
|
|
44
|
+
| FAQ accordion | Pass | — |
|
|
45
|
+
| Footer | Pass | 2-column at tablet |
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Layout QA — Mobile (375px)
|
|
50
|
+
|
|
51
|
+
| Section | Status | Notes |
|
|
52
|
+
|---|---|---|
|
|
53
|
+
| Navigation | Pass | Hamburger, overlay, full-screen nav match |
|
|
54
|
+
| Hero | Pass | 40px headline, full-width CTAs |
|
|
55
|
+
| Features grid | Pass | 1-column at mobile |
|
|
56
|
+
| Testimonials | Pass | Swipe gesture works |
|
|
57
|
+
| CTA Banner | Pass | — |
|
|
58
|
+
| FAQ accordion | Pass | Touch targets 44px minimum |
|
|
59
|
+
| Footer | Pass | Single column, stacked |
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Color fidelity
|
|
64
|
+
|
|
65
|
+
| Token | Expected | Actual | Pass |
|
|
66
|
+
|---|---|---|---|
|
|
67
|
+
| Background | `#0a0a0a` | `oklch(7% 0 0)` | Pass |
|
|
68
|
+
| Text primary | `#ffffff` | `oklch(100% 0 0)` | Pass |
|
|
69
|
+
| Accent | `#3b82f6` | `oklch(59% 0.2 260)` | Pass |
|
|
70
|
+
| Border | `rgba(255,255,255,0.1)` | Match | Pass |
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Typography fidelity
|
|
75
|
+
|
|
76
|
+
| Element | Expected font | Actual | Expected size | Actual | Pass |
|
|
77
|
+
|---|---|---|---|---|---|
|
|
78
|
+
| H1 | Inter | Inter (system fallback) | 72px | 72px | Pass |
|
|
79
|
+
| Body | Inter | Inter (system fallback) | 20px | 20px | Pass |
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Asset completeness
|
|
84
|
+
|
|
85
|
+
- [x] All images loading (no broken images)
|
|
86
|
+
- [x] Hero background video loading and looping
|
|
87
|
+
- [x] All SVG icons rendering
|
|
88
|
+
- [x] Fonts loading (Inter via Next.js font optimization)
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Interaction states
|
|
93
|
+
|
|
94
|
+
| Element | State | Expected | Actual | Pass |
|
|
95
|
+
|---|---|---|---|---|
|
|
96
|
+
| CTA primary | Hover | Dims slightly | Dims `oklch(91%)` | Pass |
|
|
97
|
+
| CTA secondary | Hover | Border brightens | Border `opacity 0.6` | Pass |
|
|
98
|
+
| Navigation | Hover | Underline appears | Underline `2px` | Pass |
|
|
99
|
+
| Mobile nav | Tap | Overlay opens | Full-screen overlay | Pass |
|
|
100
|
+
| FAQ items | Click | Accordion expands | Smooth height transition | Pass |
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Deviations
|
|
105
|
+
|
|
106
|
+
| Section | Type | Reason | Resolution |
|
|
107
|
+
|---|---|---|---|
|
|
108
|
+
| All headings | Font | "Acme Sans" not publicly available | Replaced with Inter; noted in handoff |
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Final QA result
|
|
113
|
+
|
|
114
|
+
- [ ] PASS
|
|
115
|
+
- [x] PASS WITH NOTED DEVIATIONS — see Deviations table above
|
|
116
|
+
- [ ] FAIL
|
|
117
|
+
|
|
118
|
+
**Reviewer notes:**
|
|
119
|
+
The only deviation is the proprietary font. All layout, color, interaction, and asset checks pass. Client has been informed that the font replacement is the only visual difference.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Growthub Agent Worker Kit — AI Website Cloner v1
|
|
2
|
+
|
|
3
|
+
**Kit ID:** `growthub-ai-website-cloner-v1`
|
|
4
|
+
**Version:** `1.0.0`
|
|
5
|
+
**Type:** `worker`
|
|
6
|
+
**Execution mode:** `export`
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## What this kit does
|
|
11
|
+
|
|
12
|
+
This kit gives an agent a self-contained environment for cloning any website into a modern Next.js codebase using AI coding agents backed by the `ai-website-cloner-template` fork.
|
|
13
|
+
|
|
14
|
+
It packages:
|
|
15
|
+
- agent operating instructions
|
|
16
|
+
- a locked 8-phase clone pipeline methodology
|
|
17
|
+
- fork setup scripts and verification tools
|
|
18
|
+
- component spec templates with exact CSS extraction methodology
|
|
19
|
+
- parallel builder dispatch system documentation
|
|
20
|
+
- design token extraction workflow
|
|
21
|
+
- visual QA standards
|
|
22
|
+
- output standards
|
|
23
|
+
- examples and contributor metadata
|
|
24
|
+
|
|
25
|
+
The intended operator is an AI coding agent orchestrator working against the `ai-website-cloner-template` fork to produce pixel-perfect website clones for platform migration, design reference, or modernization projects.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Folder structure
|
|
30
|
+
|
|
31
|
+
```text
|
|
32
|
+
growthub-ai-website-cloner-v1/
|
|
33
|
+
├── kit.json
|
|
34
|
+
├── bundles/
|
|
35
|
+
├── workers/
|
|
36
|
+
├── brands/
|
|
37
|
+
├── templates/
|
|
38
|
+
├── examples/
|
|
39
|
+
├── docs/
|
|
40
|
+
├── growthub-meta/
|
|
41
|
+
├── setup/
|
|
42
|
+
├── output/
|
|
43
|
+
├── skills.md
|
|
44
|
+
├── output-standards.md
|
|
45
|
+
├── runtime-assumptions.md
|
|
46
|
+
└── validation-checklist.md
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Activation
|
|
52
|
+
|
|
53
|
+
1. Export the kit via `growthub kit download growthub-ai-website-cloner-v1`
|
|
54
|
+
2. Run `bash setup/clone-fork.sh` to set up the upstream fork
|
|
55
|
+
3. Point the agent working directory at the expanded kit folder
|
|
56
|
+
4. The agent reads `workers/ai-website-cloner-operator/CLAUDE.md`
|
|
57
|
+
5. `skills.md` provides the working method for every session
|
|
58
|
+
6. Run `/clone-website <target-url>` in your AI agent chat
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Supported output categories
|
|
63
|
+
|
|
64
|
+
- clone brief
|
|
65
|
+
- reconnaissance report
|
|
66
|
+
- design token extraction sheet
|
|
67
|
+
- component specs (one per section)
|
|
68
|
+
- asset manifest
|
|
69
|
+
- builder dispatch plan
|
|
70
|
+
- visual QA checklist
|
|
71
|
+
- platform handoff document
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Kit Standard — AI Website Cloner v1
|
|
2
|
+
|
|
3
|
+
This document defines the locked contract for this kit.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Required files contract
|
|
8
|
+
|
|
9
|
+
Every path in `kit.json -> frozenAssetPaths` must exist in every valid release.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Bundle contract
|
|
14
|
+
|
|
15
|
+
The bundle manifest must remain aligned with `kit.json`:
|
|
16
|
+
- `bundle.kitId` matches `kit.id`
|
|
17
|
+
- `bundle.workerId` matches `entrypoint.workerId`
|
|
18
|
+
- `requiredFrozenAssets` stays a subset of `frozenAssetPaths`
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Agent operating rules
|
|
23
|
+
|
|
24
|
+
The entrypoint file is the operating law. `skills.md` is the methodology.
|
|
25
|
+
|
|
26
|
+
Required invariants:
|
|
27
|
+
- strict 8-phase workflow order (no phase may be skipped)
|
|
28
|
+
- reconnaissance before any spec writing (no memory-only specs)
|
|
29
|
+
- one builder per section in its own worktree
|
|
30
|
+
- visual QA required before platform handoff
|
|
31
|
+
- ethical use check before initiating any clone
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Runtime rules
|
|
36
|
+
|
|
37
|
+
- no API keys or credentials stored in kit files
|
|
38
|
+
- the fork path defaults to `~/ai-website-cloner-template` but is overridable via `AI_CLONER_FORK_PATH`
|
|
39
|
+
- all AI work is done by the local agent — no external service calls from this kit
|
|
40
|
+
- outputs are Markdown files except component code (produced in the fork repo, not in this kit directory)
|
|
41
|
+
- brand assets and cloned site assets must not be committed to this kit
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Versioning rules
|
|
46
|
+
|
|
47
|
+
Additive template/docs changes are minor-version work. Entry-point path changes, fork URL changes, or export-name changes require a major version bump. The CLI compatibility minimum version in `kit.json` must be updated on every published kit version bump.
|