@growthub/cli 0.3.54 → 0.3.56

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.
Files changed (109) hide show
  1. package/README.md +56 -156
  2. package/assets/worker-kits/growthub-ai-website-cloner-v1/.env.example +7 -0
  3. package/assets/worker-kits/growthub-ai-website-cloner-v1/QUICKSTART.md +116 -0
  4. package/assets/worker-kits/growthub-ai-website-cloner-v1/brands/NEW-CLIENT.md +22 -0
  5. package/assets/worker-kits/growthub-ai-website-cloner-v1/brands/_template/brand-kit.md +27 -0
  6. package/assets/worker-kits/growthub-ai-website-cloner-v1/brands/growthub/brand-kit.md +26 -0
  7. package/assets/worker-kits/growthub-ai-website-cloner-v1/bundles/growthub-ai-website-cloner-v1.json +53 -0
  8. package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/ai-website-cloner-fork-integration.md +118 -0
  9. package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/design-token-system.md +135 -0
  10. package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/multi-phase-pipeline.md +129 -0
  11. package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/parallel-builder-dispatch.md +103 -0
  12. package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/clone-brief-sample.md +54 -0
  13. package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/component-spec-sample.md +123 -0
  14. package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/platform-handoff-sample.md +102 -0
  15. package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/visual-qa-sample.md +119 -0
  16. package/assets/worker-kits/growthub-ai-website-cloner-v1/growthub-meta/README.md +71 -0
  17. package/assets/worker-kits/growthub-ai-website-cloner-v1/growthub-meta/kit-standard.md +47 -0
  18. package/assets/worker-kits/growthub-ai-website-cloner-v1/kit.json +105 -0
  19. package/assets/worker-kits/growthub-ai-website-cloner-v1/output/README.md +26 -0
  20. package/assets/worker-kits/growthub-ai-website-cloner-v1/output-standards.md +75 -0
  21. package/assets/worker-kits/growthub-ai-website-cloner-v1/runtime-assumptions.md +70 -0
  22. package/assets/worker-kits/growthub-ai-website-cloner-v1/setup/check-deps.sh +50 -0
  23. package/assets/worker-kits/growthub-ai-website-cloner-v1/setup/clone-fork.sh +66 -0
  24. package/assets/worker-kits/growthub-ai-website-cloner-v1/setup/verify-env.mjs +78 -0
  25. package/assets/worker-kits/growthub-ai-website-cloner-v1/skills.md +186 -0
  26. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/asset-manifest.md +57 -0
  27. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/builder-dispatch-plan.md +92 -0
  28. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/clone-brief.md +59 -0
  29. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/component-spec.md +124 -0
  30. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/design-token-extraction.md +89 -0
  31. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/platform-handoff.md +114 -0
  32. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/reconnaissance-report.md +77 -0
  33. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/visual-qa-checklist.md +107 -0
  34. package/assets/worker-kits/growthub-ai-website-cloner-v1/validation-checklist.md +76 -0
  35. package/assets/worker-kits/growthub-ai-website-cloner-v1/workers/ai-website-cloner-operator/CLAUDE.md +256 -0
  36. package/assets/worker-kits/growthub-open-montage-studio-v1/.env.example +40 -0
  37. package/assets/worker-kits/growthub-open-montage-studio-v1/QUICKSTART.md +114 -0
  38. package/assets/worker-kits/growthub-open-montage-studio-v1/brands/NEW-CLIENT.md +42 -0
  39. package/assets/worker-kits/growthub-open-montage-studio-v1/brands/_template/brand-kit.md +49 -0
  40. package/assets/worker-kits/growthub-open-montage-studio-v1/brands/growthub/brand-kit.md +50 -0
  41. package/assets/worker-kits/growthub-open-montage-studio-v1/bundles/growthub-open-montage-studio-v1.json +55 -0
  42. package/assets/worker-kits/growthub-open-montage-studio-v1/docs/cms-node-bridge.md +152 -0
  43. package/assets/worker-kits/growthub-open-montage-studio-v1/docs/open-montage-fork-integration.md +120 -0
  44. package/assets/worker-kits/growthub-open-montage-studio-v1/docs/pipeline-reference.md +147 -0
  45. package/assets/worker-kits/growthub-open-montage-studio-v1/docs/provider-adapter-layer.md +105 -0
  46. package/assets/worker-kits/growthub-open-montage-studio-v1/examples/cms-node-video-gen-sample.md +109 -0
  47. package/assets/worker-kits/growthub-open-montage-studio-v1/examples/pipeline-selection-sample.md +67 -0
  48. package/assets/worker-kits/growthub-open-montage-studio-v1/examples/platform-ready-handoff-sample.md +101 -0
  49. package/assets/worker-kits/growthub-open-montage-studio-v1/examples/video-production-brief-sample.md +68 -0
  50. package/assets/worker-kits/growthub-open-montage-studio-v1/growthub-meta/README.md +7 -0
  51. package/assets/worker-kits/growthub-open-montage-studio-v1/growthub-meta/kit-standard.md +45 -0
  52. package/assets/worker-kits/growthub-open-montage-studio-v1/kit.json +107 -0
  53. package/assets/worker-kits/growthub-open-montage-studio-v1/output/README.md +34 -0
  54. package/assets/worker-kits/growthub-open-montage-studio-v1/output-standards.md +79 -0
  55. package/assets/worker-kits/growthub-open-montage-studio-v1/runtime-assumptions.md +86 -0
  56. package/assets/worker-kits/growthub-open-montage-studio-v1/setup/check-deps.sh +43 -0
  57. package/assets/worker-kits/growthub-open-montage-studio-v1/setup/clone-fork.sh +53 -0
  58. package/assets/worker-kits/growthub-open-montage-studio-v1/setup/verify-env.mjs +102 -0
  59. package/assets/worker-kits/growthub-open-montage-studio-v1/skills.md +254 -0
  60. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/asset-tracking.md +46 -0
  61. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/cms-node-pipeline-mapping.md +64 -0
  62. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/generation-batch-plan.md +70 -0
  63. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/pipeline-selection-brief.md +67 -0
  64. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/platform-ready-execution-handoff.md +103 -0
  65. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/prompt-matrix.md +48 -0
  66. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/provider-selection-brief.md +86 -0
  67. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/review-qa-checklist.md +59 -0
  68. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/scene-plan.md +65 -0
  69. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/video-production-brief.md +58 -0
  70. package/assets/worker-kits/growthub-open-montage-studio-v1/validation-checklist.md +46 -0
  71. package/assets/worker-kits/growthub-open-montage-studio-v1/workers/open-montage-studio-operator/CLAUDE.md +304 -0
  72. package/assets/worker-kits/growthub-twenty-crm-v1/.env.example +15 -0
  73. package/assets/worker-kits/growthub-twenty-crm-v1/QUICKSTART.md +90 -0
  74. package/assets/worker-kits/growthub-twenty-crm-v1/brands/NEW-CLIENT.md +57 -0
  75. package/assets/worker-kits/growthub-twenty-crm-v1/brands/_template/brand-kit.md +88 -0
  76. package/assets/worker-kits/growthub-twenty-crm-v1/brands/growthub/brand-kit.md +92 -0
  77. package/assets/worker-kits/growthub-twenty-crm-v1/bundles/growthub-twenty-crm-v1.json +56 -0
  78. package/assets/worker-kits/growthub-twenty-crm-v1/docs/api-and-webhooks.md +296 -0
  79. package/assets/worker-kits/growthub-twenty-crm-v1/docs/data-model-layer.md +172 -0
  80. package/assets/worker-kits/growthub-twenty-crm-v1/docs/twenty-fork-integration.md +213 -0
  81. package/assets/worker-kits/growthub-twenty-crm-v1/examples/crm-playbook-sample.md +172 -0
  82. package/assets/worker-kits/growthub-twenty-crm-v1/examples/crm-setup-sample.md +100 -0
  83. package/assets/worker-kits/growthub-twenty-crm-v1/examples/lead-enrichment-sample.md +117 -0
  84. package/assets/worker-kits/growthub-twenty-crm-v1/examples/pipeline-automation-sample.md +132 -0
  85. package/assets/worker-kits/growthub-twenty-crm-v1/growthub-meta/README.md +114 -0
  86. package/assets/worker-kits/growthub-twenty-crm-v1/growthub-meta/kit-standard.md +61 -0
  87. package/assets/worker-kits/growthub-twenty-crm-v1/kit.json +108 -0
  88. package/assets/worker-kits/growthub-twenty-crm-v1/output/README.md +46 -0
  89. package/assets/worker-kits/growthub-twenty-crm-v1/output-standards.md +175 -0
  90. package/assets/worker-kits/growthub-twenty-crm-v1/runtime-assumptions.md +150 -0
  91. package/assets/worker-kits/growthub-twenty-crm-v1/setup/check-deps.sh +56 -0
  92. package/assets/worker-kits/growthub-twenty-crm-v1/setup/clone-fork.sh +77 -0
  93. package/assets/worker-kits/growthub-twenty-crm-v1/setup/verify-env.mjs +105 -0
  94. package/assets/worker-kits/growthub-twenty-crm-v1/skills.md +401 -0
  95. package/assets/worker-kits/growthub-twenty-crm-v1/templates/api-query-plan.md +179 -0
  96. package/assets/worker-kits/growthub-twenty-crm-v1/templates/crm-playbook.md +155 -0
  97. package/assets/worker-kits/growthub-twenty-crm-v1/templates/crm-setup-brief.md +94 -0
  98. package/assets/worker-kits/growthub-twenty-crm-v1/templates/custom-object-design.md +115 -0
  99. package/assets/worker-kits/growthub-twenty-crm-v1/templates/data-model-design.md +112 -0
  100. package/assets/worker-kits/growthub-twenty-crm-v1/templates/enrichment-field-map.md +100 -0
  101. package/assets/worker-kits/growthub-twenty-crm-v1/templates/import-mapping.md +139 -0
  102. package/assets/worker-kits/growthub-twenty-crm-v1/templates/integration-handoff.md +190 -0
  103. package/assets/worker-kits/growthub-twenty-crm-v1/templates/lead-enrichment-pipeline.md +128 -0
  104. package/assets/worker-kits/growthub-twenty-crm-v1/templates/pipeline-automation-brief.md +88 -0
  105. package/assets/worker-kits/growthub-twenty-crm-v1/templates/webhook-integration-spec.md +129 -0
  106. package/assets/worker-kits/growthub-twenty-crm-v1/templates/workspace-config-checklist.md +129 -0
  107. package/assets/worker-kits/growthub-twenty-crm-v1/validation-checklist.md +115 -0
  108. package/assets/worker-kits/growthub-twenty-crm-v1/workers/twenty-crm-operator/CLAUDE.md +310 -0
  109. package/package.json +1 -1
@@ -0,0 +1,78 @@
1
+ #!/usr/bin/env node
2
+ // verify-env.mjs — Verify the AI Website Cloner environment is ready
3
+ import { existsSync } from "node:fs";
4
+ import { execSync } from "node:child_process";
5
+ import { resolve } from "node:path";
6
+ import { homedir } from "node:os";
7
+
8
+ const FORK_PATH = process.env.AI_CLONER_FORK_PATH || resolve(homedir(), "ai-website-cloner-template");
9
+
10
+ let passed = 0;
11
+ let failed = 0;
12
+
13
+ function check(label, pass, detail) {
14
+ if (pass) {
15
+ console.log(` ✓ ${label}`);
16
+ passed++;
17
+ } else {
18
+ console.log(` ✗ ${label}${detail ? ` — ${detail}` : ""}`);
19
+ failed++;
20
+ }
21
+ }
22
+
23
+ console.log("\nAI Website Cloner — Environment Check");
24
+ console.log("─".repeat(48));
25
+
26
+ // Check 1: Fork directory
27
+ check(
28
+ `Fork exists at ${FORK_PATH}`,
29
+ existsSync(FORK_PATH),
30
+ `Run: bash setup/clone-fork.sh`
31
+ );
32
+
33
+ // Check 2: Fork dependencies
34
+ check(
35
+ "Fork dependencies installed",
36
+ existsSync(resolve(FORK_PATH, "node_modules")),
37
+ `Run: cd ${FORK_PATH} && npm install`
38
+ );
39
+
40
+ // Check 3: Fork structure
41
+ for (const item of ["src/app", "src/components", "src/lib", "package.json", "next.config.ts"]) {
42
+ check(
43
+ `Fork has ${item}`,
44
+ existsSync(resolve(FORK_PATH, item)),
45
+ "Unexpected fork structure — check fork README"
46
+ );
47
+ }
48
+
49
+ // Check 4: Node.js version
50
+ try {
51
+ const version = process.versions.node.split(".")[0];
52
+ const isOk = parseInt(version, 10) >= 24;
53
+ check(
54
+ `Node.js 24+ (current: ${process.versions.node})`,
55
+ isOk,
56
+ "Upgrade at https://nodejs.org/ or use: nvm use 24"
57
+ );
58
+ } catch {
59
+ check("Node.js version check", false, "Could not determine version");
60
+ }
61
+
62
+ // Check 5: Git available
63
+ try {
64
+ execSync("git --version", { stdio: "ignore" });
65
+ check("git available", true);
66
+ } catch {
67
+ check("git available", false, "Install git: https://git-scm.com/");
68
+ }
69
+
70
+ console.log("─".repeat(48));
71
+ console.log(` ${passed} passed · ${failed} failed`);
72
+
73
+ if (failed > 0) {
74
+ console.log("\n Run: bash setup/clone-fork.sh to fix setup issues.\n");
75
+ process.exit(1);
76
+ } else {
77
+ console.log("\n Environment is ready. Start your AI agent and run: /clone-website <url>\n");
78
+ }
@@ -0,0 +1,186 @@
1
+ # AI Website Cloner Operator — Skills
2
+
3
+ **Kit:** `growthub-ai-website-cloner-v1`
4
+ **Worker ID:** `ai-website-cloner-operator`
5
+
6
+ ---
7
+
8
+ ## SKILL: `/clone-website`
9
+
10
+ The primary skill. Accepts one or more target URLs and executes the full clone pipeline.
11
+
12
+ ### Invocation
13
+
14
+ ```
15
+ /clone-website <target-url1> [<target-url2> ...]
16
+ ```
17
+
18
+ ### Pipeline phases (strict order)
19
+
20
+ | Phase | Name | Key output |
21
+ |---|---|---|
22
+ | 0 | Environment gate | Pass/fail — fork exists, Node 24+, deps installed |
23
+ | 1 | Reconnaissance | Screenshots, design tokens, interaction map, asset inventory |
24
+ | 2 | Foundation | Design token extraction sheet, fonts, globals, layout scaffold |
25
+ | 3 | Component specs | One spec file per section with exact computed CSS values |
26
+ | 4 | Asset download | All images, videos, SVGs, fonts downloaded to `public/` |
27
+ | 5 | Builder dispatch | Parallel worktrees — one per section/component |
28
+ | 6 | Assembly | Merge all worktrees, wire up route, resolve conflicts |
29
+ | 7 | Visual QA | Diff against original screenshots, document deviations |
30
+ | 8 | Platform handoff | Build verified, deployment instructions, client deliverable |
31
+
32
+ ---
33
+
34
+ ## RECONNAISSANCE CHECKLIST
35
+
36
+ Before writing any spec, capture all of the following:
37
+
38
+ ### Screenshots
39
+ - Desktop: 1440px wide, full scroll depth (every viewport height of content)
40
+ - Tablet: 768px wide, same depth
41
+ - Mobile: 375px wide, same depth
42
+ - Interactive states: hover states on navigation, CTAs, cards
43
+
44
+ ### Design token extraction
45
+ - Color palette: exact hex values + oklch equivalents for CSS
46
+ - Typography: every font family, size, weight, line-height, letter-spacing combination in use
47
+ - Spacing: all margin/padding values used in the layout (identify the scale)
48
+ - Border radius: all border-radius values
49
+ - Box shadows: all box-shadow definitions
50
+ - Transitions: all transition/animation timing values
51
+
52
+ ### Interaction sweep
53
+ - Navigation: all hover states, dropdowns, mobile hamburger
54
+ - CTAs and buttons: hover, active, focus, disabled states
55
+ - Cards: hover transforms, shadows
56
+ - Scroll-triggered: parallax, fade-ins, stickiness
57
+ - Forms: focus, validation, error states
58
+
59
+ ### Asset inventory
60
+ - All `<img>` src values (CDN URLs)
61
+ - All `<video>` src values
62
+ - All background-image URLs
63
+ - All SVG icons (inline or file)
64
+ - All custom webfont sources
65
+
66
+ ---
67
+
68
+ ## DESIGN TOKEN EXTRACTION METHODOLOGY
69
+
70
+ Use `getComputedStyle()` in the browser DevTools console to extract exact values:
71
+
72
+ ```js
73
+ // Get all colors used in the page
74
+ [...document.querySelectorAll('*')].flatMap(el => {
75
+ const s = getComputedStyle(el);
76
+ return [s.color, s.backgroundColor, s.borderColor].filter(c => c && c !== 'rgba(0, 0, 0, 0)');
77
+ }).filter((v, i, a) => a.indexOf(v) === i);
78
+ ```
79
+
80
+ Document all values in `templates/design-token-extraction.md`. Convert to oklch for Tailwind CSS v4.
81
+
82
+ ---
83
+
84
+ ## COMPONENT SPEC FORMAT
85
+
86
+ Each spec file must include these sections:
87
+
88
+ ```markdown
89
+ # <SectionName> — Component Spec
90
+
91
+ ## Purpose
92
+ What this section does for the user.
93
+
94
+ ## Layout
95
+ - Container max-width: <value>
96
+ - Padding: <top> <right> <bottom> <left>
97
+ - Display: <flex|grid|block>
98
+ - Grid columns (desktop/tablet/mobile): <values>
99
+ - Gap: <value>
100
+
101
+ ## Typography
102
+ - Heading: <font-family>, <size>/<line-height>, weight <weight>
103
+ - Body: <font-family>, <size>/<line-height>, weight <weight>
104
+ - Caption: <font-family>, <size>/<line-height>, weight <weight>
105
+
106
+ ## Colors
107
+ - Background: <hex> / oklch(<value>)
108
+ - Text primary: <hex> / oklch(<value>)
109
+ - Text secondary: <hex> / oklch(<value>)
110
+ - Accent: <hex> / oklch(<value>)
111
+ - Border: <hex> / oklch(<value>)
112
+
113
+ ## States
114
+ - Default: [describe]
115
+ - Hover: [describe — exact transform, color change, transition timing]
116
+ - Active: [describe]
117
+ - Focus: [describe — focus ring color, offset]
118
+
119
+ ## Responsive
120
+ - Desktop (1440px): [layout description]
121
+ - Tablet (768px): [layout changes]
122
+ - Mobile (375px): [layout changes]
123
+
124
+ ## Assets
125
+ - Image: public/images/<filename>.<ext> — originally from <cdn-url>
126
+ - Icon: src/components/icons.tsx as <IconName>
127
+
128
+ ## Content
129
+ [Exact text content from the target — no placeholders]
130
+
131
+ ## Accessibility
132
+ - ARIA role: <role>
133
+ - Landmark: <nav|main|aside|footer>
134
+ - Tab order: [describe]
135
+ - Keyboard navigation: [describe]
136
+ ```
137
+
138
+ ---
139
+
140
+ ## BUILDER DISPATCH RULES
141
+
142
+ 1. Each builder receives exactly one component spec
143
+ 2. Each builder works in a fresh `git worktree` on a dedicated branch: `build/<section-slug>`
144
+ 3. Builders output files ONLY to `src/components/<section-slug>/`
145
+ 4. No builder writes to: `src/app/`, `src/lib/`, `src/types/`, `globals.css`, `layout.tsx`
146
+ 5. The orchestrator owns all assembly and shared file writes
147
+ 6. After all builders complete, orchestrator merges all `build/*` branches
148
+ 7. Merge conflicts are resolved by the orchestrator with full spec context
149
+ 8. Assembly order follows the spec list in the dispatch plan
150
+
151
+ ---
152
+
153
+ ## VISUAL QA STANDARDS
154
+
155
+ A clone passes QA when:
156
+
157
+ | Criterion | Threshold |
158
+ |---|---|
159
+ | Layout accuracy | All major sections within 2px of original |
160
+ | Color fidelity | All token values match extracted values |
161
+ | Typography | Font family, size, weight identical for all text |
162
+ | Asset completeness | All images, videos, icons present and loading |
163
+ | Responsive | No layout breaks at 1440, 768, 375px |
164
+ | Interaction | All hover/focus/active states visually match |
165
+ | Build | `npm run build` exits 0 with no errors |
166
+ | Lint | `npm run lint` exits 0 |
167
+
168
+ Any deviation must be documented in `visual-qa-checklist.md` with a reason and resolution.
169
+
170
+ ---
171
+
172
+ ## OUTPUT NAMING
173
+
174
+ All outputs use the pattern:
175
+ ```
176
+ output/<client-slug>/<project-slug>/<artifact-type>.<extension>
177
+ ```
178
+
179
+ Examples:
180
+ ```
181
+ output/acme-corp/homepage-clone/research/reconnaissance-report.md
182
+ output/acme-corp/homepage-clone/specs/hero-section.md
183
+ output/acme-corp/homepage-clone/specs/navigation.md
184
+ output/acme-corp/homepage-clone/qa/visual-qa-checklist.md
185
+ output/acme-corp/homepage-clone/platform-handoff.md
186
+ ```
@@ -0,0 +1,57 @@
1
+ # Asset Manifest
2
+
3
+ **Project:** [PROJECT NAME]
4
+ **Target URL:** [https://example.com]
5
+ **Date:** YYYY-MM-DD
6
+
7
+ ---
8
+
9
+ ## Images
10
+
11
+ | File | Public path | Source URL | Section used | Notes |
12
+ |---|---|---|---|---|
13
+ | [filename.ext] | `public/images/[filename.ext]` | [CDN URL] | [section-slug] | — |
14
+
15
+ ---
16
+
17
+ ## Videos
18
+
19
+ | File | Public path | Source URL | Section used | Notes |
20
+ |---|---|---|---|---|
21
+ | [filename.ext] | `public/videos/[filename.ext]` | [CDN URL] | [section-slug] | — |
22
+
23
+ ---
24
+
25
+ ## SVG icons
26
+
27
+ | Icon name | Component name | Source | Section used | Notes |
28
+ |---|---|---|---|---|
29
+ | [icon name] | `[IconName]` in `src/components/icons.tsx` | [inline / file URL] | [sections] | — |
30
+
31
+ ---
32
+
33
+ ## Custom fonts
34
+
35
+ | Font family | Weights | Source | How used |
36
+ |---|---|---|---|
37
+ | [Font Name] | [400, 700] | [CDN URL / system] | [heading, body] |
38
+
39
+ ---
40
+
41
+ ## SEO assets
42
+
43
+ | File | Public path | Notes |
44
+ |---|---|---|
45
+ | favicon.ico | `public/seo/favicon.ico` | — |
46
+ | og-image.png | `public/seo/og-image.png` | — |
47
+ | site.webmanifest | `public/seo/site.webmanifest` | — |
48
+
49
+ ---
50
+
51
+ ## Download status
52
+
53
+ - [ ] All images downloaded to `public/images/`
54
+ - [ ] All videos downloaded to `public/videos/`
55
+ - [ ] All SEO assets downloaded to `public/seo/`
56
+ - [ ] All SVG icons extracted and added to `src/components/icons.tsx`
57
+ - [ ] Custom fonts added to `src/app/layout.tsx` or `globals.css`
@@ -0,0 +1,92 @@
1
+ # Builder Dispatch Plan
2
+
3
+ **Project:** [PROJECT NAME]
4
+ **Date:** YYYY-MM-DD
5
+ **Total builders:** [N]
6
+
7
+ ---
8
+
9
+ ## Dispatch rules
10
+
11
+ 1. Each builder works in `git worktree` on branch `build/<section-slug>`
12
+ 2. Each builder receives: section spec + design token extraction + asset manifest
13
+ 3. Builders output ONLY to `src/components/<section-slug>/`
14
+ 4. No builder touches: `src/app/`, `src/lib/`, `src/types/`, `globals.css`, `layout.tsx`
15
+ 5. Orchestrator assembles the page and resolves merge conflicts
16
+
17
+ ---
18
+
19
+ ## Builder assignments
20
+
21
+ | Builder | Branch | Section | Spec file | Est. complexity |
22
+ |---|---|---|---|---|
23
+ | 1 | `build/navigation` | Navigation | `specs/navigation.md` | [low/med/high] |
24
+ | 2 | `build/hero-section` | Hero | `specs/hero-section.md` | [low/med/high] |
25
+ | 3 | `build/[slug]` | [Section] | `specs/[slug].md` | [low/med/high] |
26
+ | N | `build/footer` | Footer | `specs/footer.md` | [low/med/high] |
27
+
28
+ ---
29
+
30
+ ## Shared context for all builders
31
+
32
+ All builders receive the following files inline:
33
+ - `templates/design-token-extraction.md` (full token set)
34
+ - `templates/asset-manifest.md` (all downloaded assets)
35
+ - Their section's spec file
36
+
37
+ ---
38
+
39
+ ## Assembly order
40
+
41
+ After all builders complete, the orchestrator assembles in this order:
42
+
43
+ ```tsx
44
+ // src/app/page.tsx
45
+ import { Navigation } from "@/components/navigation/Navigation";
46
+ import { HeroSection } from "@/components/hero-section/HeroSection";
47
+ // ... in section order
48
+ import { Footer } from "@/components/footer/Footer";
49
+
50
+ export default function Page() {
51
+ return (
52
+ <>
53
+ <Navigation />
54
+ <main>
55
+ <HeroSection />
56
+ {/* sections in order */}
57
+ </main>
58
+ <Footer />
59
+ </>
60
+ );
61
+ }
62
+ ```
63
+
64
+ ---
65
+
66
+ ## Merge instructions
67
+
68
+ After all `build/*` branches are complete:
69
+
70
+ ```bash
71
+ cd ~/ai-website-cloner-template
72
+ git checkout main
73
+
74
+ # Merge each builder branch
75
+ git merge build/navigation --no-ff -m "feat: navigation component"
76
+ git merge build/hero-section --no-ff -m "feat: hero section"
77
+ # ... continue for all builders
78
+
79
+ # Assemble the page
80
+ # Edit src/app/page.tsx to import and wire all components
81
+
82
+ # Run quality checks
83
+ npm run build
84
+ npm run lint
85
+ npm run typecheck
86
+ ```
87
+
88
+ ---
89
+
90
+ ## Conflict resolution notes
91
+
92
+ [Document any merge conflicts encountered and how they were resolved]
@@ -0,0 +1,59 @@
1
+ # Clone Brief
2
+
3
+ **Project:** [PROJECT NAME]
4
+ **Client:** [CLIENT NAME]
5
+ **Target URL(s):** [https://example.com]
6
+ **Date:** YYYY-MM-DD
7
+ **Operator:** `ai-website-cloner-operator`
8
+
9
+ ---
10
+
11
+ ## Objective
12
+
13
+ [Describe what success looks like — pixel-perfect clone, design reference, migration to modern stack, etc.]
14
+
15
+ ---
16
+
17
+ ## Scope
18
+
19
+ ### Pages to clone
20
+ - [ ] [https://example.com] — [page description]
21
+ - [ ] [https://example.com/about] — [page description]
22
+
23
+ ### Sections to include
24
+ - [ ] Navigation / Header
25
+ - [ ] Hero / Above-the-fold
26
+ - [ ] [Additional sections…]
27
+ - [ ] Footer
28
+
29
+ ### Sections to exclude
30
+ - [ ] Login / auth flows
31
+ - [ ] Payment pages
32
+ - [ ] [Any other exclusions with reason]
33
+
34
+ ---
35
+
36
+ ## Constraints
37
+
38
+ - **Deployment target:** [Vercel / self-hosted / static export]
39
+ - **Custom domain:** [domain or TBD]
40
+ - **Proprietary fonts:** [List any fonts that may not be available]
41
+ - **Auth-gated content:** [Any content not accessible without login]
42
+ - **Terms of Service notes:** [Any ToS constraints noted before starting]
43
+
44
+ ---
45
+
46
+ ## Deliverables
47
+
48
+ - [ ] Cloned Next.js codebase in `~/ai-website-cloner-template`
49
+ - [ ] Reconnaissance report
50
+ - [ ] Design token extraction sheet
51
+ - [ ] Component specs for all sections
52
+ - [ ] Visual QA checklist
53
+ - [ ] Platform handoff document
54
+
55
+ ---
56
+
57
+ ## Timeline
58
+
59
+ [Technical complexity description — number of sections, interactive components, asset volume]
@@ -0,0 +1,124 @@
1
+ # [SectionName] — Component Spec
2
+
3
+ **Project:** [PROJECT NAME]
4
+ **Section slug:** `[section-slug]`
5
+ **Output component:** `src/components/[section-slug]/[ComponentName].tsx`
6
+ **Date:** YYYY-MM-DD
7
+
8
+ ---
9
+
10
+ ## Purpose
11
+
12
+ [What this section does for the user — one paragraph.]
13
+
14
+ ---
15
+
16
+ ## Layout
17
+
18
+ - **Container max-width:** [value]
19
+ - **Container padding (desktop):** [top right bottom left]
20
+ - **Container padding (mobile):** [top right bottom left]
21
+ - **Display:** [flex | grid | block]
22
+ - **Grid columns (desktop):** [value]
23
+ - **Grid columns (tablet):** [value]
24
+ - **Grid columns (mobile):** [value]
25
+ - **Gap:** [value]
26
+ - **Section min-height:** [value]
27
+ - **Background:** [color token]
28
+
29
+ ---
30
+
31
+ ## Typography
32
+
33
+ | Element | Font family | Size | Line height | Weight | Color | Notes |
34
+ |---|---|---|---|---|---|---|
35
+ | Heading | [family] | [size] | [lh] | [weight] | [color] | — |
36
+ | Subheading | [family] | [size] | [lh] | [weight] | [color] | — |
37
+ | Body | [family] | [size] | [lh] | [weight] | [color] | — |
38
+ | Caption | [family] | [size] | [lh] | [weight] | [color] | — |
39
+ | Button label | [family] | [size] | [lh] | [weight] | [color] | — |
40
+
41
+ ---
42
+
43
+ ## Colors
44
+
45
+ - **Background:** [hex] / [oklch]
46
+ - **Text primary:** [hex] / [oklch]
47
+ - **Text secondary:** [hex] / [oklch]
48
+ - **Accent / CTA:** [hex] / [oklch]
49
+ - **Border:** [hex] / [oklch]
50
+
51
+ ---
52
+
53
+ ## States
54
+
55
+ ### Default
56
+ [Describe normal rendering]
57
+
58
+ ### Hover
59
+ - **Trigger:** [what element triggers the state]
60
+ - **Transform:** [e.g. `translateY(-2px)`]
61
+ - **Color change:** [describe]
62
+ - **Transition:** [e.g. `all 0.2s ease`]
63
+ - **Shadow change:** [describe]
64
+
65
+ ### Active
66
+ [Describe active/pressed state]
67
+
68
+ ### Focus
69
+ - **Focus ring color:** [hex / oklch]
70
+ - **Focus ring offset:** [value]
71
+ - **Focus ring width:** [value]
72
+
73
+ ---
74
+
75
+ ## Responsive behavior
76
+
77
+ ### Desktop (1440px)
78
+ [Describe layout]
79
+
80
+ ### Tablet (768px)
81
+ [Describe layout changes from desktop]
82
+
83
+ ### Mobile (375px)
84
+ [Describe layout changes from tablet]
85
+
86
+ ---
87
+
88
+ ## Assets
89
+
90
+ | Asset | Type | Public path | Source URL |
91
+ |---|---|---|---|
92
+ | [image name] | image | `public/images/[filename].[ext]` | [original CDN URL] |
93
+ | [icon name] | SVG | `src/components/icons.tsx` as `[IconName]` | [inline / file] |
94
+
95
+ ---
96
+
97
+ ## Content
98
+
99
+ [Paste the exact text content from the target site. No placeholder text.]
100
+
101
+ **Heading:**
102
+ [exact heading text]
103
+
104
+ **Body copy:**
105
+ [exact body text]
106
+
107
+ **CTA label:**
108
+ [exact button/link text]
109
+
110
+ ---
111
+
112
+ ## Accessibility
113
+
114
+ - **ARIA landmark:** `[nav | main | aside | section]`
115
+ - **Heading level:** `[h1 | h2 | h3]`
116
+ - **Image alt text:** [describe required alt text]
117
+ - **Tab order:** [describe keyboard navigation path through this section]
118
+ - **Screen reader notes:** [any special ARIA labels, descriptions]
119
+
120
+ ---
121
+
122
+ ## Implementation notes
123
+
124
+ [Any tricky implementation details, browser quirks, or decisions made during spec writing]
@@ -0,0 +1,89 @@
1
+ # Design Token Extraction
2
+
3
+ **Project:** [PROJECT NAME]
4
+ **Target URL:** [https://example.com]
5
+ **Date:** YYYY-MM-DD
6
+
7
+ ---
8
+
9
+ ## Color palette
10
+
11
+ | Token name | Hex | oklch | Usage |
12
+ |---|---|---|---|
13
+ | `color-primary` | `#000000` | `oklch(0% 0 0)` | [CTAs, headings] |
14
+ | `color-bg` | `#ffffff` | `oklch(100% 0 0)` | [Page background] |
15
+ | `color-text` | `#1a1a1a` | `oklch(12% 0 0)` | [Body text] |
16
+ | `color-text-secondary` | `#666666` | `oklch(45% 0 0)` | [Secondary text] |
17
+ | `color-accent` | `#0070f3` | `oklch(50% 0.2 260)` | [Links, hover states] |
18
+ | `color-border` | `#e5e5e5` | `oklch(91% 0 0)` | [Dividers, borders] |
19
+
20
+ ---
21
+
22
+ ## Typography
23
+
24
+ | Token name | Font family | Size | Line height | Weight | Usage |
25
+ |---|---|---|---|---|---|
26
+ | `text-h1` | [family] | [size] | [lh] | [weight] | [page heading] |
27
+ | `text-h2` | [family] | [size] | [lh] | [weight] | [section heading] |
28
+ | `text-h3` | [family] | [size] | [lh] | [weight] | [card heading] |
29
+ | `text-body` | [family] | [size] | [lh] | [weight] | [body copy] |
30
+ | `text-caption` | [family] | [size] | [lh] | [weight] | [captions, labels] |
31
+ | `text-button` | [family] | [size] | [lh] | [weight] | [button labels] |
32
+
33
+ ---
34
+
35
+ ## Spacing scale
36
+
37
+ | Token name | Value | Usage |
38
+ |---|---|---|
39
+ | `spacing-xs` | [value] | [usage] |
40
+ | `spacing-sm` | [value] | [usage] |
41
+ | `spacing-md` | [value] | [usage] |
42
+ | `spacing-lg` | [value] | [usage] |
43
+ | `spacing-xl` | [value] | [usage] |
44
+ | `spacing-2xl` | [value] | [usage] |
45
+
46
+ ---
47
+
48
+ ## Border radius
49
+
50
+ | Token name | Value | Usage |
51
+ |---|---|---|
52
+ | `radius-sm` | [value] | [buttons, inputs] |
53
+ | `radius-md` | [value] | [cards] |
54
+ | `radius-lg` | [value] | [modals, sections] |
55
+ | `radius-full` | `9999px` | [pills, avatars] |
56
+
57
+ ---
58
+
59
+ ## Box shadows
60
+
61
+ | Token name | Value | Usage |
62
+ |---|---|---|
63
+ | `shadow-sm` | [value] | [subtle cards] |
64
+ | `shadow-md` | [value] | [elevated cards] |
65
+ | `shadow-lg` | [value] | [modals, dropdowns] |
66
+
67
+ ---
68
+
69
+ ## Transitions
70
+
71
+ | Token name | Value | Usage |
72
+ |---|---|---|
73
+ | `transition-fast` | [duration easing] | [hover color changes] |
74
+ | `transition-base` | [duration easing] | [transform, opacity] |
75
+ | `transition-slow` | [duration easing] | [page transitions] |
76
+
77
+ ---
78
+
79
+ ## Tailwind CSS v4 config snippet
80
+
81
+ ```css
82
+ @theme {
83
+ --color-primary: oklch(0% 0 0);
84
+ --color-bg: oklch(100% 0 0);
85
+ --color-text: oklch(12% 0 0);
86
+ --color-accent: oklch(50% 0.2 260);
87
+ /* Add all extracted tokens here */
88
+ }
89
+ ```