@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,7 @@
|
|
|
1
|
+
# AI Website Cloner Worker Kit — Environment Config
|
|
2
|
+
# Copy this file to .env and adjust values only if needed.
|
|
3
|
+
# No API key is required for this kit.
|
|
4
|
+
|
|
5
|
+
# Optional: override local fork path.
|
|
6
|
+
# Default: ~/ai-website-cloner-template
|
|
7
|
+
AI_CLONER_FORK_PATH=~/ai-website-cloner-template
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# AI Website Cloner — Quickstart
|
|
2
|
+
|
|
3
|
+
**Kit:** `growthub-ai-website-cloner-v1`
|
|
4
|
+
**Fork:** [JCodesMore/ai-website-cloner-template](https://github.com/JCodesMore/ai-website-cloner-template)
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Prerequisites
|
|
9
|
+
|
|
10
|
+
- Node.js 24+ — [nodejs.org](https://nodejs.org/)
|
|
11
|
+
- An AI coding agent (Claude Code recommended) — `npm install -g @anthropic-ai/claude-code`
|
|
12
|
+
- Git
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Step 1 — Set up the fork
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
bash setup/clone-fork.sh
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
This clones the `ai-website-cloner-template` fork to `~/ai-website-cloner-template` and runs `npm install`.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Step 2 — Copy the env file (optional — no API key required)
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
cp .env.example .env
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
The cloner works without an API key. The `.env` file is used for optional configuration (custom fork path, default agent).
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Step 3 — Verify the environment
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
node setup/verify-env.mjs
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Step 4 — Point your AI agent at this kit
|
|
45
|
+
|
|
46
|
+
In Claude Code:
|
|
47
|
+
```bash
|
|
48
|
+
cd <path-to-this-kit>
|
|
49
|
+
claude --chrome
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
In Cursor or other agents, open this directory as the project root.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Step 5 — Run the clone skill
|
|
57
|
+
|
|
58
|
+
In your AI agent chat:
|
|
59
|
+
```
|
|
60
|
+
/clone-website https://example.com
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Or provide multiple URLs for a multi-page clone:
|
|
64
|
+
```
|
|
65
|
+
/clone-website https://example.com https://example.com/about https://example.com/pricing
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## What happens next
|
|
71
|
+
|
|
72
|
+
The agent will:
|
|
73
|
+
1. Screenshot the target at desktop, tablet, and mobile viewports
|
|
74
|
+
2. Extract all design tokens using `getComputedStyle()`
|
|
75
|
+
3. Inventory all assets (images, videos, fonts, SVGs)
|
|
76
|
+
4. Write a component spec for every section
|
|
77
|
+
5. Dispatch parallel builder agents in git worktrees
|
|
78
|
+
6. Assemble and merge all builder outputs
|
|
79
|
+
7. Run visual QA against the original screenshots
|
|
80
|
+
8. Produce a platform handoff document
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Output location
|
|
85
|
+
|
|
86
|
+
All artifacts land in:
|
|
87
|
+
```
|
|
88
|
+
~/ai-website-cloner-template/output/<client-slug>/<project-slug>/
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
The cloned Next.js components live in:
|
|
92
|
+
```
|
|
93
|
+
~/ai-website-cloner-template/src/components/
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Running the cloned site
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
cd ~/ai-website-cloner-template
|
|
102
|
+
npm run dev
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Open [http://localhost:3000](http://localhost:3000) to view the clone.
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Docs
|
|
110
|
+
|
|
111
|
+
- `skills.md` — Full skill and pipeline reference
|
|
112
|
+
- `docs/ai-website-cloner-fork-integration.md` — Fork integration details
|
|
113
|
+
- `docs/multi-phase-pipeline.md` — Pipeline architecture deep-dive
|
|
114
|
+
- `docs/parallel-builder-dispatch.md` — Worktree builder system
|
|
115
|
+
- `docs/design-token-system.md` — Token extraction and Tailwind v4 mapping
|
|
116
|
+
- `validation-checklist.md` — Pre-handoff validation checklist
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# New Client Setup
|
|
2
|
+
|
|
3
|
+
To start a project for a new client:
|
|
4
|
+
|
|
5
|
+
1. Create a brand kit directory:
|
|
6
|
+
```bash
|
|
7
|
+
mkdir -p brands/<client-slug>
|
|
8
|
+
cp brands/_template/brand-kit.md brands/<client-slug>/brand-kit.md
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
2. Edit `brands/<client-slug>/brand-kit.md` with the client's details.
|
|
12
|
+
|
|
13
|
+
3. Create the output directory:
|
|
14
|
+
```bash
|
|
15
|
+
mkdir -p output/<client-slug>/<project-slug>/research
|
|
16
|
+
mkdir -p output/<client-slug>/<project-slug>/specs
|
|
17
|
+
mkdir -p output/<client-slug>/<project-slug>/qa
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
4. Start your AI agent session and point it at this kit directory.
|
|
21
|
+
|
|
22
|
+
5. Run the clone skill: `/clone-website <target-url>`
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Brand Kit — [CLIENT NAME]
|
|
2
|
+
|
|
3
|
+
**Created:** YYYY-MM-DD
|
|
4
|
+
**Kit:** `growthub-ai-website-cloner-v1`
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Client details
|
|
9
|
+
|
|
10
|
+
- **Client:** [CLIENT NAME]
|
|
11
|
+
- **Website:** [https://example.com]
|
|
12
|
+
- **Industry:** [Industry]
|
|
13
|
+
- **Primary contact:** [Name / email]
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Project history
|
|
18
|
+
|
|
19
|
+
| Date | Deliverable | Output path |
|
|
20
|
+
|---|---|---|
|
|
21
|
+
| YYYY-MM-DD | AI Website Clone v1 — [Project Name] | `output/<client-slug>/<project-slug>/` |
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Notes
|
|
26
|
+
|
|
27
|
+
[Any standing notes about this client's preferences, constraints, or requirements]
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Brand Kit — Growthub
|
|
2
|
+
|
|
3
|
+
**Created:** 2026-04-15
|
|
4
|
+
**Kit:** `growthub-ai-website-cloner-v1`
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Client details
|
|
9
|
+
|
|
10
|
+
- **Client:** Growthub
|
|
11
|
+
- **Website:** [https://growthub.com](https://growthub.com)
|
|
12
|
+
- **Industry:** AI-powered growth tooling
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Project history
|
|
17
|
+
|
|
18
|
+
| Date | Deliverable | Output path |
|
|
19
|
+
|---|---|---|
|
|
20
|
+
| — | — | — |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Notes
|
|
25
|
+
|
|
26
|
+
Example brand kit for operator reference. Replace with your client's details.
|
package/assets/worker-kits/growthub-ai-website-cloner-v1/bundles/growthub-ai-website-cloner-v1.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 2,
|
|
3
|
+
"bundle": {
|
|
4
|
+
"id": "growthub-ai-website-cloner-v1",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"kitId": "growthub-ai-website-cloner-v1",
|
|
7
|
+
"workerId": "ai-website-cloner-operator"
|
|
8
|
+
},
|
|
9
|
+
"briefType": "ai-website-clone-project",
|
|
10
|
+
"publicExampleBrandPaths": [
|
|
11
|
+
"brands/growthub/brand-kit.md"
|
|
12
|
+
],
|
|
13
|
+
"requiredFrozenAssets": [
|
|
14
|
+
"QUICKSTART.md",
|
|
15
|
+
".env.example",
|
|
16
|
+
"skills.md",
|
|
17
|
+
"output-standards.md",
|
|
18
|
+
"runtime-assumptions.md",
|
|
19
|
+
"validation-checklist.md",
|
|
20
|
+
"workers/ai-website-cloner-operator/CLAUDE.md",
|
|
21
|
+
"brands/_template/brand-kit.md",
|
|
22
|
+
"brands/growthub/brand-kit.md",
|
|
23
|
+
"brands/NEW-CLIENT.md",
|
|
24
|
+
"setup/clone-fork.sh",
|
|
25
|
+
"setup/verify-env.mjs",
|
|
26
|
+
"setup/check-deps.sh",
|
|
27
|
+
"output/README.md",
|
|
28
|
+
"templates/clone-brief.md",
|
|
29
|
+
"templates/reconnaissance-report.md",
|
|
30
|
+
"templates/component-spec.md",
|
|
31
|
+
"templates/builder-dispatch-plan.md",
|
|
32
|
+
"templates/asset-manifest.md",
|
|
33
|
+
"templates/visual-qa-checklist.md",
|
|
34
|
+
"templates/platform-handoff.md",
|
|
35
|
+
"templates/design-token-extraction.md",
|
|
36
|
+
"examples/clone-brief-sample.md",
|
|
37
|
+
"examples/component-spec-sample.md",
|
|
38
|
+
"examples/visual-qa-sample.md",
|
|
39
|
+
"examples/platform-handoff-sample.md",
|
|
40
|
+
"docs/ai-website-cloner-fork-integration.md",
|
|
41
|
+
"docs/multi-phase-pipeline.md",
|
|
42
|
+
"docs/parallel-builder-dispatch.md",
|
|
43
|
+
"docs/design-token-system.md",
|
|
44
|
+
"growthub-meta/README.md",
|
|
45
|
+
"growthub-meta/kit-standard.md"
|
|
46
|
+
],
|
|
47
|
+
"optionalPresets": [],
|
|
48
|
+
"export": {
|
|
49
|
+
"folderName": "growthub-agent-worker-kit-ai-website-cloner-v1",
|
|
50
|
+
"zipFileName": "growthub-agent-worker-kit-ai-website-cloner-v1.zip"
|
|
51
|
+
},
|
|
52
|
+
"activationModes": ["export"]
|
|
53
|
+
}
|
package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/ai-website-cloner-fork-integration.md
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# AI Website Cloner — Fork Integration
|
|
2
|
+
|
|
3
|
+
**Kit:** `growthub-ai-website-cloner-v1`
|
|
4
|
+
**Fork:** [JCodesMore/ai-website-cloner-template](https://github.com/JCodesMore/ai-website-cloner-template)
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## What the fork is
|
|
9
|
+
|
|
10
|
+
`ai-website-cloner-template` is a production-grade Next.js 16 + shadcn/ui + Tailwind CSS v4 template purpose-built for AI coding agents. It provides:
|
|
11
|
+
|
|
12
|
+
- A pre-scaffolded Next.js codebase at the correct version and configuration
|
|
13
|
+
- The `/clone-website` skill — a multi-phase pipeline for cloning any website
|
|
14
|
+
- Built-in multi-agent / parallel worktree support for builder dispatch
|
|
15
|
+
- Support for 13+ AI coding agents (Claude Code, Cursor, Copilot, Codex, Gemini CLI, etc.)
|
|
16
|
+
|
|
17
|
+
The template is a **git repository you clone locally** — the AI agent operates inside it as its working directory.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## How this kit integrates with the fork
|
|
22
|
+
|
|
23
|
+
This Growthub worker kit provides the **operator layer** on top of the fork:
|
|
24
|
+
|
|
25
|
+
| Layer | What it does |
|
|
26
|
+
|---|---|
|
|
27
|
+
| Fork (`ai-website-cloner-template`) | Scaffold, skill definitions, parallel builder infrastructure |
|
|
28
|
+
| This kit (Growthub operator) | Workflow methodology, templates, QA standards, brand management |
|
|
29
|
+
|
|
30
|
+
The Growthub operator (`workers/ai-website-cloner-operator/CLAUDE.md`) reads the fork's skill definition and applies a structured 8-phase workflow with:
|
|
31
|
+
- Strict phase ordering
|
|
32
|
+
- Mandatory reconnaissance before spec writing
|
|
33
|
+
- Explicit builder dispatch plan with worktree isolation
|
|
34
|
+
- Formal QA standards with diff requirements
|
|
35
|
+
- Brand kit management
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Fork setup path
|
|
40
|
+
|
|
41
|
+
The fork is set up by `setup/clone-fork.sh`:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
git clone https://github.com/JCodesMore/ai-website-cloner-template.git ~/ai-website-cloner-template
|
|
45
|
+
cd ~/ai-website-cloner-template
|
|
46
|
+
npm install
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Default path: `~/ai-website-cloner-template`
|
|
50
|
+
Override: set `AI_CLONER_FORK_PATH` environment variable.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Fork tech stack (locked)
|
|
55
|
+
|
|
56
|
+
| Layer | Version |
|
|
57
|
+
|---|---|
|
|
58
|
+
| Next.js | 16 (App Router, React 19) |
|
|
59
|
+
| TypeScript | strict mode |
|
|
60
|
+
| shadcn/ui | Latest at fork commit |
|
|
61
|
+
| Tailwind CSS | v4 |
|
|
62
|
+
| Design tokens | oklch color space |
|
|
63
|
+
| Icons | Lucide React + extracted SVGs |
|
|
64
|
+
| Node.js requirement | 24+ |
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Agent support
|
|
69
|
+
|
|
70
|
+
The fork's skill is defined in `.claude/skills/clone-website/SKILL.md` (synced to other agents). Supported agents:
|
|
71
|
+
|
|
72
|
+
- Claude Code (recommended — `--chrome` flag enables browser automation)
|
|
73
|
+
- Cursor, Windsurf, Copilot, Cline, Roo Code, Continue, Codex, OpenCode, Gemini CLI, Amazon Q, Augment Code, Aider
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## How the `/clone-website` skill works
|
|
78
|
+
|
|
79
|
+
When invoked, the skill:
|
|
80
|
+
|
|
81
|
+
1. Opens Chrome (Claude Code) or uses Playwright/browser integration for other agents
|
|
82
|
+
2. Navigates to each target URL
|
|
83
|
+
3. Takes screenshots at desktop (1440px), tablet (768px), mobile (375px)
|
|
84
|
+
4. Executes `getComputedStyle()` extraction in the browser console
|
|
85
|
+
5. Downloads all external assets to `public/`
|
|
86
|
+
6. Writes component spec files to `docs/research/components/`
|
|
87
|
+
7. Dispatches parallel builder subagents — each works in a `git worktree` branch
|
|
88
|
+
8. Merges all builder branches and assembles the page
|
|
89
|
+
9. Runs `npm run build`, `npm run lint`, and `npm run typecheck`
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Fork structure (relevant paths for the operator)
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
~/ai-website-cloner-template/
|
|
97
|
+
.claude/
|
|
98
|
+
skills/
|
|
99
|
+
clone-website/
|
|
100
|
+
SKILL.md # The core skill definition
|
|
101
|
+
AGENTS.md # Agent project instructions
|
|
102
|
+
src/
|
|
103
|
+
app/
|
|
104
|
+
page.tsx # Main cloned page (written by orchestrator)
|
|
105
|
+
layout.tsx # Root layout
|
|
106
|
+
globals.css # Design tokens and base styles
|
|
107
|
+
components/
|
|
108
|
+
<section-slug>/ # One directory per cloned section (written by builders)
|
|
109
|
+
icons.tsx # Extracted SVG icons
|
|
110
|
+
lib/
|
|
111
|
+
utils.ts # cn() utility
|
|
112
|
+
public/
|
|
113
|
+
images/ # Downloaded images
|
|
114
|
+
videos/ # Downloaded videos
|
|
115
|
+
seo/ # Favicon, OG, webmanifest
|
|
116
|
+
docs/
|
|
117
|
+
research/ # Reconnaissance output (created by operator)
|
|
118
|
+
```
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# Design Token System
|
|
2
|
+
|
|
3
|
+
**Kit:** `growthub-ai-website-cloner-v1`
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
The clone's design system uses Tailwind CSS v4 with oklch color tokens. All design values extracted from the target site are expressed as CSS custom properties in the `@theme` block of `globals.css`.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Token extraction methodology
|
|
14
|
+
|
|
15
|
+
The operator uses `getComputedStyle()` in the browser DevTools console to extract exact computed values from the live target site.
|
|
16
|
+
|
|
17
|
+
### Color extraction
|
|
18
|
+
|
|
19
|
+
```js
|
|
20
|
+
// Run in browser DevTools console on the target site
|
|
21
|
+
// Extract all unique colors in use
|
|
22
|
+
[...document.querySelectorAll('*')].flatMap(el => {
|
|
23
|
+
const s = getComputedStyle(el);
|
|
24
|
+
return [s.color, s.backgroundColor, s.borderColor, s.outlineColor]
|
|
25
|
+
.filter(c => c && c !== 'rgba(0, 0, 0, 0)' && c !== 'transparent');
|
|
26
|
+
}).filter((v, i, a) => a.indexOf(v) === i).sort();
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Typography extraction
|
|
30
|
+
|
|
31
|
+
```js
|
|
32
|
+
// Extract all typography combinations
|
|
33
|
+
[...document.querySelectorAll('*')].map(el => {
|
|
34
|
+
const s = getComputedStyle(el);
|
|
35
|
+
return `${s.fontFamily} | ${s.fontSize} | ${s.fontWeight} | ${s.lineHeight}`;
|
|
36
|
+
}).filter((v, i, a) => a.indexOf(v) === i).sort();
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Spacing extraction
|
|
40
|
+
|
|
41
|
+
```js
|
|
42
|
+
// Extract spacing values from a specific element
|
|
43
|
+
const el = document.querySelector('.hero-section');
|
|
44
|
+
const s = getComputedStyle(el);
|
|
45
|
+
console.log({
|
|
46
|
+
padding: s.padding,
|
|
47
|
+
margin: s.margin,
|
|
48
|
+
gap: s.gap,
|
|
49
|
+
columnGap: s.columnGap,
|
|
50
|
+
rowGap: s.rowGap,
|
|
51
|
+
});
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Converting to oklch
|
|
57
|
+
|
|
58
|
+
Tailwind CSS v4 uses oklch as the primary color format. Convert extracted hex/rgb values:
|
|
59
|
+
|
|
60
|
+
```js
|
|
61
|
+
// Paste into browser console to convert RGB to oklch approximation
|
|
62
|
+
// (or use https://oklch.com/ for manual conversion)
|
|
63
|
+
function rgbToOklch(r, g, b) {
|
|
64
|
+
// Simplified — use the oklch.com tool for production values
|
|
65
|
+
const L = (0.2126 * r + 0.7152 * g + 0.0722 * b) / 255;
|
|
66
|
+
return `oklch(${(L * 100).toFixed(0)}% 0 0)`;
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Use [oklch.com](https://oklch.com/) for precise conversion during token extraction.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Tailwind CSS v4 `@theme` configuration
|
|
75
|
+
|
|
76
|
+
All extracted tokens go into `src/app/globals.css`:
|
|
77
|
+
|
|
78
|
+
```css
|
|
79
|
+
@import "tailwindcss";
|
|
80
|
+
|
|
81
|
+
@theme {
|
|
82
|
+
/* Colors */
|
|
83
|
+
--color-primary: oklch(12% 0 0);
|
|
84
|
+
--color-bg: oklch(100% 0 0);
|
|
85
|
+
--color-text: oklch(15% 0 0);
|
|
86
|
+
--color-text-secondary: oklch(45% 0 0);
|
|
87
|
+
--color-accent: oklch(50% 0.2 260);
|
|
88
|
+
--color-border: oklch(91% 0 0);
|
|
89
|
+
|
|
90
|
+
/* Typography */
|
|
91
|
+
--font-sans: "Inter", system-ui, sans-serif;
|
|
92
|
+
--font-heading: "Geist", "Inter", system-ui, sans-serif;
|
|
93
|
+
|
|
94
|
+
/* Spacing scale */
|
|
95
|
+
--spacing-xs: 0.25rem;
|
|
96
|
+
--spacing-sm: 0.5rem;
|
|
97
|
+
--spacing-md: 1rem;
|
|
98
|
+
--spacing-lg: 1.5rem;
|
|
99
|
+
--spacing-xl: 2rem;
|
|
100
|
+
--spacing-2xl: 3rem;
|
|
101
|
+
|
|
102
|
+
/* Border radius */
|
|
103
|
+
--radius-sm: 0.25rem;
|
|
104
|
+
--radius-md: 0.5rem;
|
|
105
|
+
--radius-lg: 0.75rem;
|
|
106
|
+
--radius-xl: 1rem;
|
|
107
|
+
|
|
108
|
+
/* Shadows */
|
|
109
|
+
--shadow-sm: 0 1px 2px oklch(0% 0 0 / 0.05);
|
|
110
|
+
--shadow-md: 0 4px 6px oklch(0% 0 0 / 0.1);
|
|
111
|
+
--shadow-lg: 0 10px 15px oklch(0% 0 0 / 0.1);
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## How builders use tokens
|
|
118
|
+
|
|
119
|
+
Builders use Tailwind utility classes that reference the tokens:
|
|
120
|
+
|
|
121
|
+
```tsx
|
|
122
|
+
// Using color tokens
|
|
123
|
+
<div className="bg-[var(--color-bg)] text-[var(--color-text)]">
|
|
124
|
+
|
|
125
|
+
// Using spacing tokens
|
|
126
|
+
<section className="px-[var(--spacing-xl)] py-[var(--spacing-2xl)]">
|
|
127
|
+
|
|
128
|
+
// Using radius tokens
|
|
129
|
+
<button className="rounded-[var(--radius-md)]">
|
|
130
|
+
|
|
131
|
+
// Using shadow tokens
|
|
132
|
+
<div className="shadow-[var(--shadow-md)]">
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
All token references are from the extraction sheet. No builder should invent new token names.
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# Multi-Phase Pipeline Architecture
|
|
2
|
+
|
|
3
|
+
**Kit:** `growthub-ai-website-cloner-v1`
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
The clone pipeline runs in strict phase order. No phase may be skipped. Each phase produces artifacts consumed by the next.
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
Phase 0: Environment gate
|
|
13
|
+
↓
|
|
14
|
+
Phase 1: Load methodology + project context
|
|
15
|
+
↓
|
|
16
|
+
Phase 2: Load runtime docs
|
|
17
|
+
↓
|
|
18
|
+
Phase 3: Reconnaissance (screenshots, tokens, assets, interactions)
|
|
19
|
+
↓
|
|
20
|
+
Phase 4: 3-question gate (objective, exclusions, deployment target)
|
|
21
|
+
↓
|
|
22
|
+
Phase 5: Component spec writing (one spec per section)
|
|
23
|
+
↓
|
|
24
|
+
Phase 6: Builder dispatch (parallel worktrees)
|
|
25
|
+
↓
|
|
26
|
+
Phase 7: Assembly + Visual QA
|
|
27
|
+
↓
|
|
28
|
+
Phase 8: Platform handoff
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Phase 0 — Environment gate
|
|
34
|
+
|
|
35
|
+
**Gate criteria:**
|
|
36
|
+
1. Fork exists at `~/ai-website-cloner-template` (or `AI_CLONER_FORK_PATH`)
|
|
37
|
+
2. Node.js 24+ available
|
|
38
|
+
3. Fork `node_modules/` installed
|
|
39
|
+
4. AI agent active
|
|
40
|
+
|
|
41
|
+
**If any check fails:** stop, report the specific issue, do not proceed.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Phase 3 — Reconnaissance (most critical phase)
|
|
46
|
+
|
|
47
|
+
Reconnaissance is the most time-sensitive phase. It must be thorough because all subsequent work depends on it.
|
|
48
|
+
|
|
49
|
+
### Screenshot protocol
|
|
50
|
+
The agent opens Chrome (or a Playwright browser) and captures:
|
|
51
|
+
- Desktop screenshots at every viewport height of content (scroll the page)
|
|
52
|
+
- Tablet and mobile screenshots at the same scroll depths
|
|
53
|
+
- Hover state screenshots for all interactive elements
|
|
54
|
+
|
|
55
|
+
### Token extraction
|
|
56
|
+
The agent runs `getComputedStyle()` extraction calls in the browser console. The exact calls are defined in `skills.md`. Tokens are extracted for:
|
|
57
|
+
- All colors in use (background, text, borders, accents)
|
|
58
|
+
- All typography combinations (family, size, weight, line-height)
|
|
59
|
+
- All spacing values (margin, padding)
|
|
60
|
+
- All border-radius, box-shadow, and transition values
|
|
61
|
+
|
|
62
|
+
### Asset download
|
|
63
|
+
All external assets are downloaded to `public/` immediately during reconnaissance — before spec writing. This prevents broken image references during building.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Phase 5 — Component spec writing
|
|
68
|
+
|
|
69
|
+
Each spec is a complete, standalone brief for one builder. It must include:
|
|
70
|
+
- Exact computed CSS values (not estimates)
|
|
71
|
+
- Multi-state content for all interactive states
|
|
72
|
+
- Responsive behavior at all three breakpoints
|
|
73
|
+
- Exact asset paths in `public/`
|
|
74
|
+
- Exact content (no placeholders)
|
|
75
|
+
|
|
76
|
+
The spec is the builder's only source of truth. It must be self-contained.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Phase 6 — Parallel builder dispatch
|
|
81
|
+
|
|
82
|
+
The orchestrator creates a `git worktree` for each builder:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
# Orchestrator creates worktrees
|
|
86
|
+
git worktree add ../build-navigation build/navigation
|
|
87
|
+
git worktree add ../build-hero-section build/hero-section
|
|
88
|
+
# ... one per section
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Each builder is dispatched as a subagent with:
|
|
92
|
+
1. Their section spec (inline)
|
|
93
|
+
2. The design token extraction sheet
|
|
94
|
+
3. The asset manifest
|
|
95
|
+
4. Clear output constraints (only write to `src/components/<section-slug>/`)
|
|
96
|
+
|
|
97
|
+
Builders run in parallel — the orchestrator does not wait for one before starting the next.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Phase 7 — Assembly and visual QA
|
|
102
|
+
|
|
103
|
+
**Assembly:**
|
|
104
|
+
1. All builder branches are merged into `main` (or the integration branch)
|
|
105
|
+
2. The orchestrator writes `src/app/page.tsx` to import and wire all components
|
|
106
|
+
3. `npm run build` is run to confirm no errors
|
|
107
|
+
4. `npm run lint` and `npm run typecheck` must pass
|
|
108
|
+
|
|
109
|
+
**Visual QA:**
|
|
110
|
+
1. `npm run dev` is started
|
|
111
|
+
2. The agent opens the clone in the browser
|
|
112
|
+
3. Side-by-side comparison with original screenshots
|
|
113
|
+
4. Each section is checked at all three breakpoints
|
|
114
|
+
5. All hover/focus/active states are exercised interactively
|
|
115
|
+
6. Findings are documented in `visual-qa-checklist.md`
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Phase 8 — Platform handoff
|
|
120
|
+
|
|
121
|
+
The platform handoff document (`platform-handoff.md`) is the final deliverable. It includes:
|
|
122
|
+
- What was built (summary)
|
|
123
|
+
- How to run locally
|
|
124
|
+
- How to build for production
|
|
125
|
+
- Deployment instructions for the target platform
|
|
126
|
+
- All known deviations from the original
|
|
127
|
+
- Next customization steps
|
|
128
|
+
|
|
129
|
+
The brand kit is updated with a deliverable line.
|