@growthub/cli 0.8.1 → 0.9.0
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-creative-video-pipeline-v1/.env.example +28 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/QUICKSTART.md +118 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/SKILL.md +124 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/.env.example +20 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/README.md +33 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/app/api/pipeline/route.js +27 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/app/globals.css +203 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/app/layout.jsx +14 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/app/page.jsx +131 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/app/settings/keys/page.jsx +154 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/lib/adapters/env.js +14 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/lib/adapters/generative/index.js +31 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/lib/domain/pipeline.js +30 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/next.config.js +10 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/package-lock.json +17 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/package.json +17 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/postcss.config.mjs +3 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/vercel.json +5 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/brands/NEW-CLIENT.md +21 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/brands/_template/brand-kit.md +123 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/brands/growthub/brand-kit.md +123 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/bundles/growthub-creative-video-pipeline-v1.json +87 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/adapter-contracts.md +73 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/governed-workspace-primitives.md +50 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/pipeline-architecture.md +61 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/starter-kit-overview.md +33 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/vercel-deployment.md +42 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/examples/pipeline-brief-sample.md +56 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/growthub-meta/README.md +9 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/growthub-meta/kit-standard.md +24 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/helpers/README.md +9 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/helpers/check-generative-adapter.sh +41 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/helpers/check-pipeline-health.sh +154 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/helpers/run-pipeline.sh +30 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/kit.json +154 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/output/README.md +23 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/output-standards.md +63 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/pipeline.manifest.json +83 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/runtime-assumptions.md +61 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/setup/check-deps.sh +63 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/setup/clone-fork.sh +18 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/setup/install-skill.sh +10 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/setup/verify-env.mjs +50 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/README.md +11 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/brief-generation/SKILL.md +42 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/generative-execution/SKILL.md +86 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/video-edit/SKILL.md +41 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills.md +302 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/index.html +12 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/package-lock.json +20 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/package.json +20 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/serve.mjs +41 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/src/App.jsx +210 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/src/app.css +194 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/src/main.jsx +10 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/vite.config.js +8 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/edit-plan.md +66 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/generative-plan.md +83 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/pipeline-brief.md +129 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/project.md +68 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/self-eval.md +67 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/validation/e2e-reference.md +166 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/validation-checklist.md +56 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/workers/creative-video-pipeline-operator/CLAUDE.md +109 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/workspace.dependencies.json +26 -0
- package/dist/index.js +3032 -1676
- package/package.json +2 -2
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Brand Kit — Growthub
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## IDENTITY
|
|
6
|
+
|
|
7
|
+
```yaml
|
|
8
|
+
client_name: "Growthub"
|
|
9
|
+
slug: "growthub"
|
|
10
|
+
industry: "AI / Marketing Technology / Creator Tools"
|
|
11
|
+
primary_service: "AI-powered creative video pipeline for marketing teams"
|
|
12
|
+
campaign_name: "Creative Video Pipeline Launch"
|
|
13
|
+
date_onboarded: "2026-04-24"
|
|
14
|
+
account_owner: "Growthub Team"
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## AUDIENCE
|
|
20
|
+
|
|
21
|
+
```yaml
|
|
22
|
+
target_age_range: "25–45"
|
|
23
|
+
target_gender: "All"
|
|
24
|
+
target_pain_point: "Time-consuming manual video production and disconnected creative workflows"
|
|
25
|
+
target_intent: "Scaling video content production with AI without sacrificing brand quality"
|
|
26
|
+
geographic_target: "Global — English-speaking markets"
|
|
27
|
+
do_not_attract: "Users looking for fully automated no-input tools. This requires brand-aware operation."
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## MESSAGING
|
|
33
|
+
|
|
34
|
+
```yaml
|
|
35
|
+
core_message: "Brief to final video in one governed pipeline — brand-grounded, AI-accelerated."
|
|
36
|
+
emotional_arc: "Overwhelm → Clarity → Confidence → Action"
|
|
37
|
+
tone: ["direct", "capable", "modern", "grounded", "builder-focused"]
|
|
38
|
+
approved_phrases:
|
|
39
|
+
- "governed pipeline"
|
|
40
|
+
- "brief to video"
|
|
41
|
+
- "brand-grounded generation"
|
|
42
|
+
- "one workflow"
|
|
43
|
+
- "production-ready"
|
|
44
|
+
messaging_guardrails:
|
|
45
|
+
- "Do not claim fully automated — operator drives the brief"
|
|
46
|
+
- "Do not promise specific platform reach numbers"
|
|
47
|
+
- "Do not use 'magic' or 'effortless' language"
|
|
48
|
+
cta_text: "Start your pipeline"
|
|
49
|
+
cta_offer: "Export the kit — free and open source"
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## BRAND DESIGN
|
|
55
|
+
|
|
56
|
+
```yaml
|
|
57
|
+
colors:
|
|
58
|
+
primary: "38bdf8"
|
|
59
|
+
secondary: "0ea5e9"
|
|
60
|
+
light_accent: "e0f2fe"
|
|
61
|
+
dark: "080b12"
|
|
62
|
+
white: "f7fafc"
|
|
63
|
+
mid_gray: "93a3b8"
|
|
64
|
+
|
|
65
|
+
fonts:
|
|
66
|
+
primary: "Inter"
|
|
67
|
+
heading_size: 56
|
|
68
|
+
body_size: 20
|
|
69
|
+
|
|
70
|
+
logo_file: "assets/growthub-logo.png"
|
|
71
|
+
logo_on_dark: "assets/growthub-logo-white.png"
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## TALENT & PRODUCTION
|
|
77
|
+
|
|
78
|
+
```yaml
|
|
79
|
+
doctor_or_founder_name: "N/A"
|
|
80
|
+
founder_on_camera: "No"
|
|
81
|
+
ai_avatar_type: "None"
|
|
82
|
+
ai_actor_age_range: "N/A"
|
|
83
|
+
ai_actor_notes: "N/A"
|
|
84
|
+
ugc_inspiration: "N/A"
|
|
85
|
+
vo_style: "Clear, direct, no announcer energy — product demo tone"
|
|
86
|
+
broll_cadence: "Cut every ~3s — product UI + pipeline flow screens"
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## ASSET LINKS
|
|
92
|
+
|
|
93
|
+
```yaml
|
|
94
|
+
brand_assets_air: ""
|
|
95
|
+
broll_library: ""
|
|
96
|
+
ugc_inspiration: ""
|
|
97
|
+
google_drive: ""
|
|
98
|
+
instagram: ""
|
|
99
|
+
tiktok: ""
|
|
100
|
+
website: "https://growthub.ai"
|
|
101
|
+
landing_page: ""
|
|
102
|
+
phone_number: ""
|
|
103
|
+
previous_ads: []
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## PLATFORM & FORMAT
|
|
109
|
+
|
|
110
|
+
```yaml
|
|
111
|
+
primary_platforms: ["YouTube", "LinkedIn", "X (Twitter)"]
|
|
112
|
+
aspect_ratios: ["16:9", "9:16", "1:1"]
|
|
113
|
+
caption_default: "ON"
|
|
114
|
+
compliance_notes: "No guaranteed outcome claims. No before/after metrics without disclosure."
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## DELIVERABLES LOG
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
- 2026-04-24 | Brand Kit v1 | brands/growthub/brand-kit.md
|
|
123
|
+
```
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 2,
|
|
3
|
+
"bundle": {
|
|
4
|
+
"id": "growthub-creative-video-pipeline-v1",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"kitId": "growthub-creative-video-pipeline-v1",
|
|
7
|
+
"workerId": "creative-video-pipeline-operator"
|
|
8
|
+
},
|
|
9
|
+
"briefType": "creative-video-pipeline",
|
|
10
|
+
"capabilityType": "worker",
|
|
11
|
+
"executionMode": "export",
|
|
12
|
+
"activationModes": [
|
|
13
|
+
"export"
|
|
14
|
+
],
|
|
15
|
+
"export": {
|
|
16
|
+
"folderName": "growthub-agent-worker-kit-creative-video-pipeline-v1",
|
|
17
|
+
"zipFileName": "growthub-agent-worker-kit-creative-video-pipeline-v1.zip"
|
|
18
|
+
},
|
|
19
|
+
"publicExampleBrandPaths": [
|
|
20
|
+
"brands/growthub/brand-kit.md"
|
|
21
|
+
],
|
|
22
|
+
"requiredFrozenAssets": [
|
|
23
|
+
"QUICKSTART.md",
|
|
24
|
+
".env.example",
|
|
25
|
+
"SKILL.md",
|
|
26
|
+
"skills.md",
|
|
27
|
+
"output-standards.md",
|
|
28
|
+
"runtime-assumptions.md",
|
|
29
|
+
"validation-checklist.md",
|
|
30
|
+
"pipeline.manifest.json",
|
|
31
|
+
"workspace.dependencies.json",
|
|
32
|
+
"workers/creative-video-pipeline-operator/CLAUDE.md",
|
|
33
|
+
"brands/_template/brand-kit.md",
|
|
34
|
+
"brands/growthub/brand-kit.md",
|
|
35
|
+
"brands/NEW-CLIENT.md",
|
|
36
|
+
"setup/check-deps.sh",
|
|
37
|
+
"setup/verify-env.mjs",
|
|
38
|
+
"setup/clone-fork.sh",
|
|
39
|
+
"setup/install-skill.sh",
|
|
40
|
+
"output/README.md",
|
|
41
|
+
"templates/pipeline-brief.md",
|
|
42
|
+
"templates/generative-plan.md",
|
|
43
|
+
"templates/edit-plan.md",
|
|
44
|
+
"templates/project.md",
|
|
45
|
+
"templates/self-eval.md",
|
|
46
|
+
"examples/pipeline-brief-sample.md",
|
|
47
|
+
"docs/starter-kit-overview.md",
|
|
48
|
+
"docs/pipeline-architecture.md",
|
|
49
|
+
"docs/adapter-contracts.md",
|
|
50
|
+
"docs/vercel-deployment.md",
|
|
51
|
+
"docs/governed-workspace-primitives.md",
|
|
52
|
+
"growthub-meta/README.md",
|
|
53
|
+
"growthub-meta/kit-standard.md",
|
|
54
|
+
"helpers/README.md",
|
|
55
|
+
"helpers/run-pipeline.sh",
|
|
56
|
+
"helpers/check-generative-adapter.sh",
|
|
57
|
+
"helpers/check-pipeline-health.sh",
|
|
58
|
+
"validation/e2e-reference.md",
|
|
59
|
+
"skills/README.md",
|
|
60
|
+
"skills/brief-generation/SKILL.md",
|
|
61
|
+
"skills/generative-execution/SKILL.md",
|
|
62
|
+
"skills/video-edit/SKILL.md",
|
|
63
|
+
"studio/index.html",
|
|
64
|
+
"studio/package.json",
|
|
65
|
+
"studio/package-lock.json",
|
|
66
|
+
"studio/vite.config.js",
|
|
67
|
+
"studio/serve.mjs",
|
|
68
|
+
"studio/src/main.jsx",
|
|
69
|
+
"studio/src/App.jsx",
|
|
70
|
+
"studio/src/app.css",
|
|
71
|
+
"apps/creative-video-pipeline/README.md",
|
|
72
|
+
"apps/creative-video-pipeline/.env.example",
|
|
73
|
+
"apps/creative-video-pipeline/package.json",
|
|
74
|
+
"apps/creative-video-pipeline/package-lock.json",
|
|
75
|
+
"apps/creative-video-pipeline/next.config.js",
|
|
76
|
+
"apps/creative-video-pipeline/postcss.config.mjs",
|
|
77
|
+
"apps/creative-video-pipeline/vercel.json",
|
|
78
|
+
"apps/creative-video-pipeline/app/layout.jsx",
|
|
79
|
+
"apps/creative-video-pipeline/app/page.jsx",
|
|
80
|
+
"apps/creative-video-pipeline/app/globals.css",
|
|
81
|
+
"apps/creative-video-pipeline/app/settings/keys/page.jsx",
|
|
82
|
+
"apps/creative-video-pipeline/app/api/pipeline/route.js",
|
|
83
|
+
"apps/creative-video-pipeline/lib/adapters/env.js",
|
|
84
|
+
"apps/creative-video-pipeline/lib/adapters/generative/index.js",
|
|
85
|
+
"apps/creative-video-pipeline/lib/domain/pipeline.js"
|
|
86
|
+
]
|
|
87
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Adapter Contracts
|
|
2
|
+
|
|
3
|
+
## Execution — growthub-pipeline (primary)
|
|
4
|
+
|
|
5
|
+
The official CLI + SDK is the execution layer. No custom wrapper.
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
growthub pipeline execute '<DynamicRegistryPipeline JSON>'
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
**SDK types:** `@growthub/api-contract`
|
|
12
|
+
- Input: `DynamicRegistryPipeline` — pipelineId, executionMode, nodes[].{nodeId, slug, bindings}
|
|
13
|
+
- Events: `ExecutionEvent` — validated with `isExecutionEvent()`
|
|
14
|
+
- Event types: `node_start`, `node_complete`, `node_error`, `progress`, `credit_warning`, `complete`, `error`
|
|
15
|
+
|
|
16
|
+
**Required env:**
|
|
17
|
+
- `GROWTHUB_BRIDGE_ACCESS_TOKEN`
|
|
18
|
+
- `GROWTHUB_BRIDGE_BASE_URL`
|
|
19
|
+
- Valid session from `growthub auth login` (`~/.claude/config/session.json`)
|
|
20
|
+
|
|
21
|
+
**Auth pre-flight:**
|
|
22
|
+
```bash
|
|
23
|
+
growthub auth whoami --json
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**Payload (DynamicRegistryPipeline):**
|
|
27
|
+
```json
|
|
28
|
+
{
|
|
29
|
+
"pipelineId": "<uuid>",
|
|
30
|
+
"executionMode": "hosted",
|
|
31
|
+
"nodes": [
|
|
32
|
+
{
|
|
33
|
+
"nodeId": "video-gen-1",
|
|
34
|
+
"slug": "video-generation",
|
|
35
|
+
"bindings": {
|
|
36
|
+
"videoModel": "veo-3.1-generate-001",
|
|
37
|
+
"prompt": "<scene prompt>",
|
|
38
|
+
"seconds": 8,
|
|
39
|
+
"aspectRatio": "9:16",
|
|
40
|
+
"creativeCount": 1,
|
|
41
|
+
"refs": [{ "name": "brand_reference", "dataUrl": "data:image/jpeg;base64,<b64>" }]
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Execution — byo-api-key (secondary)
|
|
51
|
+
|
|
52
|
+
**Required env:**
|
|
53
|
+
- `VIDEO_MODEL_PROVIDER` — `veo` | `fal` | `runway`
|
|
54
|
+
- Provider key: `GOOGLE_AI_API_KEY` / `FAL_API_KEY` / `RUNWAY_API_KEY`
|
|
55
|
+
|
|
56
|
+
Call the provider SDK directly. No CLI wrapper.
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Manifest (output contract)
|
|
61
|
+
|
|
62
|
+
`output/<client>/<project>/generative/manifest.json`:
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"kitId": "growthub-creative-video-pipeline-v1",
|
|
66
|
+
"adapter": "growthub-pipeline",
|
|
67
|
+
"executionId": "<from complete event>",
|
|
68
|
+
"createdAt": "<iso>",
|
|
69
|
+
"artifacts": [{ "url": "<artifact url>", "type": "video", "nodeId": "..." }]
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
This is the Stage 2 → Stage 3 handoff artifact. Stage 3 reads this to locate source clips.
|
package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/governed-workspace-primitives.md
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Governed Workspace Primitives v1.2
|
|
2
|
+
|
|
3
|
+
This kit implements the six-primitive governed-workspace contract.
|
|
4
|
+
|
|
5
|
+
## Primitive 1 — SKILL.md
|
|
6
|
+
|
|
7
|
+
Top-level `SKILL.md` at the kit root. Frontmatter declares triggers, selfEval criteria (5 items), maxRetries:3, helpers[], and subSkills[].
|
|
8
|
+
|
|
9
|
+
## Primitive 2 — AGENTS.md Pointer
|
|
10
|
+
|
|
11
|
+
`workers/creative-video-pipeline-operator/CLAUDE.md` serves as the operator contract. References the repo-level `AGENTS.md` as authoritative agent contract.
|
|
12
|
+
|
|
13
|
+
## Primitive 3 — project.md
|
|
14
|
+
|
|
15
|
+
`.growthub-fork/project.md` seeded from `templates/project.md` at fork register time via `scaffoldSessionMemory`. Contains `pipelineState` frontmatter tracking stage status.
|
|
16
|
+
|
|
17
|
+
Every stage boundary appends a log entry:
|
|
18
|
+
```
|
|
19
|
+
## Stage N Complete — <stage-name>
|
|
20
|
+
Date: <iso>
|
|
21
|
+
Output: <artifact path>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Primitive 4 — selfEval
|
|
25
|
+
|
|
26
|
+
`templates/self-eval.md` provides the self-eval template. `recordSelfEval` in `cli/src/skills/self-eval.ts` is the canonical primitive. maxRetries:3 applies to all three stages.
|
|
27
|
+
|
|
28
|
+
## Primitive 5 — Sub-skills
|
|
29
|
+
|
|
30
|
+
`skills/` directory contains three sub-skill SKILL.md files:
|
|
31
|
+
- `skills/brief-generation/SKILL.md`
|
|
32
|
+
- `skills/generative-execution/SKILL.md`
|
|
33
|
+
- `skills/video-edit/SKILL.md`
|
|
34
|
+
|
|
35
|
+
## Primitive 6 — Helpers
|
|
36
|
+
|
|
37
|
+
`helpers/` directory contains safe shell wrappers:
|
|
38
|
+
- `helpers/run-pipeline.sh` — wraps `growthub pipeline execute`
|
|
39
|
+
- `helpers/check-generative-adapter.sh` — validates adapter env
|
|
40
|
+
|
|
41
|
+
## trace.jsonl
|
|
42
|
+
|
|
43
|
+
Machine-readable governance log. Each stage boundary writes:
|
|
44
|
+
```json
|
|
45
|
+
{"type":"stage-complete","stage":"brief","ts":"<iso>"}
|
|
46
|
+
{"type":"stage-complete","stage":"generative","ts":"<iso>"}
|
|
47
|
+
{"type":"stage-complete","stage":"edit","ts":"<iso>"}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Additional event types: `auth-preflight`, `adapter-selected`, `artifact-written`, `self-eval-pass`, `self-eval-retry`.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Pipeline Architecture
|
|
2
|
+
|
|
3
|
+
## Stage 1 — Brief
|
|
4
|
+
|
|
5
|
+
**Input:** `brands/<client>/brand-kit.md`
|
|
6
|
+
**Process:** Brand-constrained scene structure and hook generation
|
|
7
|
+
**Output:** `output/<client>/<project>/brief/pipeline-brief.md`
|
|
8
|
+
|
|
9
|
+
The brief stage is purely Claude-driven. No external API calls. The brand-kit.md is the sole source of truth for brand voice, audience, scene count, and hook patterns. Optional: reference `CREATIVE_STRATEGIST_HOME/hooks/500-winning-hooks.csv` for hook inspiration — never as brand override.
|
|
10
|
+
|
|
11
|
+
## Stage 2 — Generate
|
|
12
|
+
|
|
13
|
+
**Input:** `pipeline-brief.md` scene prompts + reference images
|
|
14
|
+
**Output:** `GenerativeArtifact[]` + `output/<client>/<project>/generative/manifest.json`
|
|
15
|
+
|
|
16
|
+
Two adapter paths with identical output contracts:
|
|
17
|
+
|
|
18
|
+
### growthub-pipeline (primary)
|
|
19
|
+
```
|
|
20
|
+
DynamicRegistryPipeline JSON → growthub pipeline execute → NDJSON stream
|
|
21
|
+
→ official CLI/SDK ExecutionEvent handling → GenerativeArtifact[]
|
|
22
|
+
```
|
|
23
|
+
Node: `video-generation` / Model: `veo-3.1-generate-001`
|
|
24
|
+
|
|
25
|
+
### byo-api-key (secondary)
|
|
26
|
+
```
|
|
27
|
+
VIDEO_MODEL_PROVIDER (veo|fal|runway) → provider SDK → GenerativeArtifact[]
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Stage 3 — Edit
|
|
31
|
+
|
|
32
|
+
**Input:** `manifest.json` source clips + `pipeline-brief.md` editing guidelines
|
|
33
|
+
**Process:** Delegate entirely to `VIDEO_USE_HOME` video-use fork
|
|
34
|
+
**Output:** `output/<client>/<project>/final/final.mp4`
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
edit-plan.md (handoff) → video-use fork → ElevenLabs Scribe → word-boundary EDL → FFmpeg → final.mp4
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
The kit does NOT inline any video-use logic. The `edit-plan.md` is the only interface.
|
|
41
|
+
|
|
42
|
+
## Data Flow
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
brand-kit.md
|
|
46
|
+
│
|
|
47
|
+
▼ Stage 1
|
|
48
|
+
pipeline-brief.md
|
|
49
|
+
│
|
|
50
|
+
▼ Stage 2 (adapter-routed)
|
|
51
|
+
GenerativeArtifact[] + manifest.json
|
|
52
|
+
│
|
|
53
|
+
▼ Stage 3 (video-use delegation)
|
|
54
|
+
final.mp4
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Governance
|
|
58
|
+
|
|
59
|
+
Every stage boundary appends:
|
|
60
|
+
- `.growthub-fork/project.md` — human-readable progress log
|
|
61
|
+
- `trace.jsonl` — machine-readable stage events
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Starter Kit Overview
|
|
2
|
+
|
|
3
|
+
`growthub-creative-video-pipeline-v1` is a fully self-contained worker kit that composes three governed primitives into a single three-stage creative video pipeline.
|
|
4
|
+
|
|
5
|
+
## What's Included
|
|
6
|
+
|
|
7
|
+
| Surface | Description |
|
|
8
|
+
|---------|-------------|
|
|
9
|
+
| `studio/` | Vite 5 + React 18 local-first UI shell |
|
|
10
|
+
| `apps/creative-video-pipeline/` | Next.js 16 + React 19 Vercel-deployable app |
|
|
11
|
+
| `workers/creative-video-pipeline-operator/` | Governed worker contract |
|
|
12
|
+
| `skills/` | Three sub-skill primitives (brief, generative, edit) |
|
|
13
|
+
| `helpers/` | Safe shell wrappers |
|
|
14
|
+
| `templates/` | Governed output templates |
|
|
15
|
+
| `brands/` | Brand kit template + Growthub reference brand |
|
|
16
|
+
| `setup/` | Dependency check, env verify, fork clone, skill install |
|
|
17
|
+
| `docs/` | Architecture, adapter contracts, deployment |
|
|
18
|
+
|
|
19
|
+
## Three-Stage Pipeline
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
Stage 1 — Brief brands/<client>/brand-kit.md → pipeline-brief.md
|
|
23
|
+
Stage 2 — Generate growthub-pipeline | byo-api-key → GenerativeArtifact[] + manifest.json
|
|
24
|
+
Stage 3 — Edit VIDEO_USE_HOME fork → Scribe → EDL → FFmpeg → final.mp4
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Governed Workspace
|
|
28
|
+
|
|
29
|
+
Every stage boundary writes:
|
|
30
|
+
- Updated `.growthub-fork/project.md`
|
|
31
|
+
- A `{"type":"stage-complete","stage":"<name>","ts":"<iso>"}` event to `trace.jsonl`
|
|
32
|
+
|
|
33
|
+
See `docs/governed-workspace-primitives.md` for the full primitive contract.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Vercel Deployment
|
|
2
|
+
|
|
3
|
+
## Deploy the Next.js App
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
cd apps/creative-video-pipeline
|
|
7
|
+
vercel --prod
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
Or connect the `apps/creative-video-pipeline` directory in the Vercel dashboard.
|
|
11
|
+
|
|
12
|
+
## Environment Variables
|
|
13
|
+
|
|
14
|
+
Set these in Vercel → Project → Settings → Environment Variables:
|
|
15
|
+
|
|
16
|
+
| Variable | Required | Notes |
|
|
17
|
+
|----------|----------|-------|
|
|
18
|
+
| `CREATIVE_VIDEO_PIPELINE_GENERATIVE_ADAPTER` | yes | `growthub-pipeline` or `byo-api-key` |
|
|
19
|
+
| `GROWTHUB_BRIDGE_ACCESS_TOKEN` | adapter | growthub-pipeline only |
|
|
20
|
+
| `GROWTHUB_BRIDGE_BASE_URL` | adapter | growthub-pipeline only |
|
|
21
|
+
| `ELEVENLABS_API_KEY` | yes | Stage 3 transcription |
|
|
22
|
+
| `VIDEO_MODEL_PROVIDER` | adapter | byo-api-key only |
|
|
23
|
+
| `GOOGLE_AI_API_KEY` | conditional | veo provider |
|
|
24
|
+
| `FAL_API_KEY` | conditional | fal provider |
|
|
25
|
+
| `RUNWAY_API_KEY` | conditional | runway provider |
|
|
26
|
+
| `VIDEO_USE_HOME` | yes | Path to video-use fork (server-side Stage 3) |
|
|
27
|
+
|
|
28
|
+
## vercel.json
|
|
29
|
+
|
|
30
|
+
```json
|
|
31
|
+
{
|
|
32
|
+
"framework": "nextjs",
|
|
33
|
+
"buildCommand": "npm run build",
|
|
34
|
+
"installCommand": "npm install"
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Notes
|
|
39
|
+
|
|
40
|
+
- All pages using `readAdapterConfig()` or `describeGenerativeAdapter()` run server-side — env vars are never exposed to the client.
|
|
41
|
+
- `app/api/pipeline/route.js` uses `export const dynamic = "force-dynamic"` to read live env state at request time.
|
|
42
|
+
- The studio Vite shell (`studio/`) is local-only and is not deployed to Vercel.
|
package/assets/worker-kits/growthub-creative-video-pipeline-v1/examples/pipeline-brief-sample.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
client: growthub
|
|
3
|
+
project: launch-2025
|
|
4
|
+
stage: brief
|
|
5
|
+
brand_kit: brands/growthub/brand-kit.md
|
|
6
|
+
created_at: 2025-01-15T10:00:00Z
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Pipeline Brief — Growthub Launch 2025
|
|
10
|
+
|
|
11
|
+
## Brand Constraints
|
|
12
|
+
| Constraint | Value |
|
|
13
|
+
|------------|-------|
|
|
14
|
+
| Primary Colour | #38bdf8 (sky blue) |
|
|
15
|
+
| Tone | Direct, capable, builder-focused |
|
|
16
|
+
| Target Audience | Indie founders, solo operators, small creative teams |
|
|
17
|
+
| Platform | Instagram Reels / TikTok |
|
|
18
|
+
| Format | 9:16 vertical, 30s |
|
|
19
|
+
| Scene Count | 3 |
|
|
20
|
+
|
|
21
|
+
## Brief Overview
|
|
22
|
+
| Field | Value |
|
|
23
|
+
|-------|-------|
|
|
24
|
+
| Campaign Goal | Launch awareness for Growthub governed worker kits |
|
|
25
|
+
| Core Message | From brief to final video in three governed stages |
|
|
26
|
+
| CTA | Try the pipeline today |
|
|
27
|
+
|
|
28
|
+
## Scene Structure
|
|
29
|
+
| Scene | Duration | Hook Type | B-Roll Notes |
|
|
30
|
+
|-------|----------|-----------|--------------|
|
|
31
|
+
| 1 | 8s | Problem-agitation | Developer staring at blank terminal |
|
|
32
|
+
| 2 | 14s | Solution demo | Pipeline running, artifacts materialising |
|
|
33
|
+
| 3 | 8s | Social proof + CTA | Finished video output, Growthub branding |
|
|
34
|
+
|
|
35
|
+
## Scene 1 — Hook Variations
|
|
36
|
+
**A.** "You've been stuck on the brief for 3 hours. The pipeline has it in 30 seconds."
|
|
37
|
+
**B.** "Stop designing workflows. Start shipping governed ones."
|
|
38
|
+
**C.** "Brief to final video. Three stages. Zero guesswork."
|
|
39
|
+
**D.** "Every creative decision is logged. Every output is governed."
|
|
40
|
+
**E.** "The video pipeline that actually ships."
|
|
41
|
+
|
|
42
|
+
## Scene 2 — Solution Demo
|
|
43
|
+
Generative prompt: A clean dark terminal UI showing a three-stage pipeline strip — Brief, Generate, Edit — each card lighting up in sequence. Sky-blue accent colours. Text overlay: "governed workspace". Cinematic, confident pacing.
|
|
44
|
+
|
|
45
|
+
## Scene 3 — CTA
|
|
46
|
+
Generative prompt: Split screen — pipeline dashboard on the left, finished .mp4 playing on the right. Growthub wordmark animates in bottom-left. Text: "Try it today." Sky-blue text on dark background.
|
|
47
|
+
|
|
48
|
+
## Editing Guidelines
|
|
49
|
+
- Cut on beat (lo-fi electronic track, 100 BPM)
|
|
50
|
+
- Scene 1→2 hard cut at 8s
|
|
51
|
+
- Scene 2→3 fade at 22s
|
|
52
|
+
- Captions: word-boundary subtitles via ElevenLabs Scribe
|
|
53
|
+
- Final frame hold: 2s on CTA
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
*Generated by creative-video-pipeline-operator Stage 1 — Brief*
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# growthub-meta/
|
|
2
|
+
|
|
3
|
+
Kit metadata consumed by the Growthub registry and CLI export tooling.
|
|
4
|
+
|
|
5
|
+
| File | Purpose |
|
|
6
|
+
|------|---------|
|
|
7
|
+
| `kit-standard.md` | Kit standard version, outputStandard contract, and upgrade notes |
|
|
8
|
+
|
|
9
|
+
These files are read by `growthub worker-kit export` and `growthub worker-kit validate`.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Kit Standard
|
|
2
|
+
|
|
3
|
+
## Version
|
|
4
|
+
- Kit: `growthub-creative-video-pipeline-v1`
|
|
5
|
+
- Schema: `2`
|
|
6
|
+
- Standard: `v1.2`
|
|
7
|
+
- CLI minimum: `0.4.3`
|
|
8
|
+
|
|
9
|
+
## outputStandard
|
|
10
|
+
|
|
11
|
+
Required paths for a complete pipeline run:
|
|
12
|
+
```
|
|
13
|
+
output/<client>/<project>/brief/pipeline-brief.md
|
|
14
|
+
output/<client>/<project>/generative/manifest.json
|
|
15
|
+
output/<client>/<project>/final/final.mp4
|
|
16
|
+
output/<client>/<project>/.growthub-fork/project.md
|
|
17
|
+
output/<client>/<project>/.growthub-fork/trace.jsonl
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Upgrade Notes
|
|
21
|
+
|
|
22
|
+
- v1 → v2 schema: `frozenAssetPaths` array added. All asset paths enumerated in `kit.json`.
|
|
23
|
+
- outputStandard v1.2: `trace.jsonl` required at every stage boundary (previously optional).
|
|
24
|
+
- Adapter contract v1.0: `GenerativeArtifact[]` normalisation required for both adapters.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# helpers/
|
|
2
|
+
|
|
3
|
+
Safe shell helpers for the creative-video-pipeline operator. These wrap external commands with error handling and env validation. Never call raw CLI commands without going through these helpers.
|
|
4
|
+
|
|
5
|
+
| Helper | Purpose |
|
|
6
|
+
|--------|---------|
|
|
7
|
+
| `run-pipeline.sh` | Wraps `growthub pipeline execute` for Stage 2 |
|
|
8
|
+
| `check-generative-adapter.sh` | Validates env for the selected generative adapter |
|
|
9
|
+
| `check-pipeline-health.sh` | End-to-end readiness check across all three stages (composes the two above + Stage-3 deps + sub-skill / helper presence). Supports `--json`. |
|
package/assets/worker-kits/growthub-creative-video-pipeline-v1/helpers/check-generative-adapter.sh
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
ADAPTER="${CREATIVE_VIDEO_PIPELINE_GENERATIVE_ADAPTER:-growthub-pipeline}"
|
|
5
|
+
ERRORS=0
|
|
6
|
+
|
|
7
|
+
echo "[check-adapter] Adapter: $ADAPTER"
|
|
8
|
+
|
|
9
|
+
case "$ADAPTER" in
|
|
10
|
+
growthub-pipeline)
|
|
11
|
+
for var in GROWTHUB_BRIDGE_ACCESS_TOKEN GROWTHUB_BRIDGE_BASE_URL; do
|
|
12
|
+
if [ -z "${!var:-}" ]; then
|
|
13
|
+
echo "[check-adapter] Missing: $var" >&2
|
|
14
|
+
((ERRORS++))
|
|
15
|
+
fi
|
|
16
|
+
done
|
|
17
|
+
;;
|
|
18
|
+
byo-api-key)
|
|
19
|
+
if [ -z "${VIDEO_MODEL_PROVIDER:-}" ]; then
|
|
20
|
+
echo "[check-adapter] Missing: VIDEO_MODEL_PROVIDER" >&2
|
|
21
|
+
((ERRORS++))
|
|
22
|
+
else
|
|
23
|
+
case "$VIDEO_MODEL_PROVIDER" in
|
|
24
|
+
veo) [ -z "${GOOGLE_AI_API_KEY:-}" ] && echo "[check-adapter] Missing: GOOGLE_AI_API_KEY" >&2 && ((ERRORS++)) || true ;;
|
|
25
|
+
fal) [ -z "${FAL_API_KEY:-}" ] && echo "[check-adapter] Missing: FAL_API_KEY" >&2 && ((ERRORS++)) || true ;;
|
|
26
|
+
runway)[ -z "${RUNWAY_API_KEY:-}" ] && echo "[check-adapter] Missing: RUNWAY_API_KEY" >&2 && ((ERRORS++)) || true ;;
|
|
27
|
+
*) echo "[check-adapter] Unknown VIDEO_MODEL_PROVIDER: $VIDEO_MODEL_PROVIDER" >&2 && ((ERRORS++)) ;;
|
|
28
|
+
esac
|
|
29
|
+
fi
|
|
30
|
+
;;
|
|
31
|
+
*)
|
|
32
|
+
echo "[check-adapter] Unknown adapter: $ADAPTER (expected growthub-pipeline or byo-api-key)" >&2
|
|
33
|
+
((ERRORS++))
|
|
34
|
+
;;
|
|
35
|
+
esac
|
|
36
|
+
|
|
37
|
+
if [ "$ERRORS" -gt 0 ]; then
|
|
38
|
+
echo "[check-adapter] FAIL — $ERRORS error(s)" >&2
|
|
39
|
+
exit 1
|
|
40
|
+
fi
|
|
41
|
+
echo "[check-adapter] OK"
|