@growthub/cli 0.8.1 → 0.8.2

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 (63) hide show
  1. package/assets/worker-kits/growthub-creative-video-pipeline-v1/.env.example +28 -0
  2. package/assets/worker-kits/growthub-creative-video-pipeline-v1/QUICKSTART.md +118 -0
  3. package/assets/worker-kits/growthub-creative-video-pipeline-v1/SKILL.md +103 -0
  4. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/.env.example +20 -0
  5. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/README.md +33 -0
  6. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/app/api/pipeline/route.js +27 -0
  7. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/app/globals.css +203 -0
  8. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/app/layout.jsx +14 -0
  9. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/app/page.jsx +131 -0
  10. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/app/settings/keys/page.jsx +154 -0
  11. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/lib/adapters/env.js +14 -0
  12. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/lib/adapters/generative/index.js +31 -0
  13. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/lib/domain/pipeline.js +30 -0
  14. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/next.config.js +10 -0
  15. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/package-lock.json +17 -0
  16. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/package.json +17 -0
  17. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/postcss.config.mjs +3 -0
  18. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/vercel.json +5 -0
  19. package/assets/worker-kits/growthub-creative-video-pipeline-v1/brands/NEW-CLIENT.md +21 -0
  20. package/assets/worker-kits/growthub-creative-video-pipeline-v1/brands/_template/brand-kit.md +123 -0
  21. package/assets/worker-kits/growthub-creative-video-pipeline-v1/brands/growthub/brand-kit.md +123 -0
  22. package/assets/worker-kits/growthub-creative-video-pipeline-v1/bundles/growthub-creative-video-pipeline-v1.json +83 -0
  23. package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/adapter-contracts.md +73 -0
  24. package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/governed-workspace-primitives.md +50 -0
  25. package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/pipeline-architecture.md +61 -0
  26. package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/starter-kit-overview.md +33 -0
  27. package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/vercel-deployment.md +42 -0
  28. package/assets/worker-kits/growthub-creative-video-pipeline-v1/examples/pipeline-brief-sample.md +56 -0
  29. package/assets/worker-kits/growthub-creative-video-pipeline-v1/growthub-meta/README.md +9 -0
  30. package/assets/worker-kits/growthub-creative-video-pipeline-v1/growthub-meta/kit-standard.md +24 -0
  31. package/assets/worker-kits/growthub-creative-video-pipeline-v1/helpers/README.md +8 -0
  32. package/assets/worker-kits/growthub-creative-video-pipeline-v1/helpers/check-generative-adapter.sh +41 -0
  33. package/assets/worker-kits/growthub-creative-video-pipeline-v1/helpers/run-pipeline.sh +30 -0
  34. package/assets/worker-kits/growthub-creative-video-pipeline-v1/kit.json +148 -0
  35. package/assets/worker-kits/growthub-creative-video-pipeline-v1/output/README.md +23 -0
  36. package/assets/worker-kits/growthub-creative-video-pipeline-v1/output-standards.md +63 -0
  37. package/assets/worker-kits/growthub-creative-video-pipeline-v1/runtime-assumptions.md +61 -0
  38. package/assets/worker-kits/growthub-creative-video-pipeline-v1/setup/check-deps.sh +63 -0
  39. package/assets/worker-kits/growthub-creative-video-pipeline-v1/setup/clone-fork.sh +18 -0
  40. package/assets/worker-kits/growthub-creative-video-pipeline-v1/setup/install-skill.sh +10 -0
  41. package/assets/worker-kits/growthub-creative-video-pipeline-v1/setup/verify-env.mjs +50 -0
  42. package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/README.md +11 -0
  43. package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/brief-generation/SKILL.md +42 -0
  44. package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/generative-execution/SKILL.md +86 -0
  45. package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/video-edit/SKILL.md +41 -0
  46. package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills.md +302 -0
  47. package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/index.html +12 -0
  48. package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/package-lock.json +20 -0
  49. package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/package.json +20 -0
  50. package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/serve.mjs +41 -0
  51. package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/src/App.jsx +210 -0
  52. package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/src/app.css +194 -0
  53. package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/src/main.jsx +10 -0
  54. package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/vite.config.js +8 -0
  55. package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/edit-plan.md +66 -0
  56. package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/generative-plan.md +83 -0
  57. package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/pipeline-brief.md +129 -0
  58. package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/project.md +68 -0
  59. package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/self-eval.md +67 -0
  60. package/assets/worker-kits/growthub-creative-video-pipeline-v1/validation-checklist.md +52 -0
  61. package/assets/worker-kits/growthub-creative-video-pipeline-v1/workers/creative-video-pipeline-operator/CLAUDE.md +109 -0
  62. package/dist/index.js +9 -0
  63. package/package.json +1 -1
@@ -0,0 +1,154 @@
1
+ import { readAdapterConfig } from "@/lib/adapters/env";
2
+ import Link from "next/link";
3
+
4
+ const KEYS = [
5
+ {
6
+ env: "CREATIVE_VIDEO_PIPELINE_GENERATIVE_ADAPTER",
7
+ label: "Generative Adapter",
8
+ badge: "required",
9
+ note: "growthub-pipeline (default) or byo-api-key",
10
+ },
11
+ {
12
+ env: "GROWTHUB_BRIDGE_ACCESS_TOKEN",
13
+ label: "Bridge Access Token",
14
+ badge: "required",
15
+ note: "Required for growthub-pipeline adapter. Obtain from Growthub dashboard.",
16
+ },
17
+ {
18
+ env: "GROWTHUB_BRIDGE_BASE_URL",
19
+ label: "Bridge Base URL",
20
+ badge: "required",
21
+ note: "Required for growthub-pipeline adapter. e.g. https://api.growthub.ai",
22
+ },
23
+ {
24
+ env: "ELEVENLABS_API_KEY",
25
+ label: "ElevenLabs API Key",
26
+ badge: "required",
27
+ note: "Required for Stage 3 word-level transcription via Scribe.",
28
+ },
29
+ {
30
+ env: "VIDEO_MODEL_PROVIDER",
31
+ label: "Video Model Provider",
32
+ badge: "conditional",
33
+ note: "Required for byo-api-key adapter. One of: veo | fal | runway",
34
+ },
35
+ {
36
+ env: "GOOGLE_AI_API_KEY",
37
+ label: "Google AI API Key",
38
+ badge: "conditional",
39
+ note: "Required when VIDEO_MODEL_PROVIDER=veo",
40
+ },
41
+ {
42
+ env: "FAL_API_KEY",
43
+ label: "Fal API Key",
44
+ badge: "conditional",
45
+ note: "Required when VIDEO_MODEL_PROVIDER=fal",
46
+ },
47
+ {
48
+ env: "RUNWAY_API_KEY",
49
+ label: "Runway API Key",
50
+ badge: "conditional",
51
+ note: "Required when VIDEO_MODEL_PROVIDER=runway",
52
+ },
53
+ {
54
+ env: "VIDEO_USE_HOME",
55
+ label: "VIDEO_USE_HOME",
56
+ badge: "required",
57
+ note: "Absolute path to the video-use fork clone. Required for Stage 3.",
58
+ },
59
+ {
60
+ env: "CREATIVE_VIDEO_PIPELINE_HOME",
61
+ label: "Pipeline Home",
62
+ badge: "conditional",
63
+ note: "Override workspace root. Defaults to $HOME/creative-video-pipeline",
64
+ },
65
+ ];
66
+
67
+ const SETUP_CARDS = [
68
+ {
69
+ step: "01",
70
+ label: "Copy .env.example",
71
+ code: "cp .env.example .env.local",
72
+ },
73
+ {
74
+ step: "02",
75
+ label: "Set adapter",
76
+ code: "CREATIVE_VIDEO_PIPELINE_GENERATIVE_ADAPTER=growthub-pipeline",
77
+ },
78
+ {
79
+ step: "03",
80
+ label: "Clone video-use fork",
81
+ code: "bash setup/clone-fork.sh",
82
+ },
83
+ ];
84
+
85
+ function KeysPage() {
86
+ const config = readAdapterConfig();
87
+
88
+ return (
89
+ <main className="shell">
90
+ <aside className="sidebar">
91
+ <div className="brand">
92
+ <span className="brand-mark">CV</span>
93
+ <span>Creative Video Pipeline</span>
94
+ </div>
95
+ <nav className="nav">
96
+ <Link href="/">Pipeline</Link>
97
+ <Link href="/settings/keys">API Keys</Link>
98
+ </nav>
99
+ <div className="sidebar-footer">
100
+ <span className="status-dot" />
101
+ Governed worker kit
102
+ </div>
103
+ </aside>
104
+
105
+ <section className="main">
106
+ <div className="toolbar-strip">
107
+ <div>
108
+ <strong>API Key Configuration</strong>
109
+ <p>Adapter: <code>{config.generativeAdapter}</code> &mdash; Bridge: {config.hasBridgeToken ? "set" : "missing"} &mdash; ElevenLabs: {config.hasElevenLabsKey ? "set" : "missing"}</p>
110
+ </div>
111
+ <Link href="/">← Back to Pipeline</Link>
112
+ </div>
113
+
114
+ <div className="page-heading">
115
+ <p className="eyebrow">Configuration</p>
116
+ <h1>API Keys</h1>
117
+ <p>
118
+ Set these variables in <code>.env.local</code> (local dev) or Vercel environment settings (production).
119
+ Growthub-pipeline adapter requires the Bridge token. BYOK requires a provider key. Stage 3 always requires ElevenLabs.
120
+ </p>
121
+ </div>
122
+
123
+ <div className="setup-grid">
124
+ {SETUP_CARDS.map((card) => (
125
+ <article className="setup-card" key={card.step}>
126
+ <span>{card.step}</span>
127
+ <strong>{card.label}</strong>
128
+ <code>{card.code}</code>
129
+ </article>
130
+ ))}
131
+ </div>
132
+
133
+ <div className="key-board">
134
+ {KEYS.map((key) => (
135
+ <div className="key-row" key={key.env}>
136
+ <div className="key-row-top">
137
+ <code>{key.env}</code>
138
+ <span className={`key-badge ${key.badge}`}>{key.badge}</span>
139
+ </div>
140
+ <p>{key.note}</p>
141
+ </div>
142
+ ))}
143
+ </div>
144
+
145
+ <p className="settings-note">
146
+ Never commit secrets. Use <code>.env.local</code> locally and Vercel environment variables for deployment.
147
+ The <code>.env.example</code> file in the kit root documents all variables without values.
148
+ </p>
149
+ </section>
150
+ </main>
151
+ );
152
+ }
153
+
154
+ export default KeysPage;
@@ -0,0 +1,14 @@
1
+ export function readAdapterConfig() {
2
+ return {
3
+ generativeAdapter: process.env.CREATIVE_VIDEO_PIPELINE_GENERATIVE_ADAPTER || "growthub-pipeline",
4
+ pipelineHome: process.env.CREATIVE_VIDEO_PIPELINE_HOME || null,
5
+ videoUseHome: process.env.VIDEO_USE_HOME || null,
6
+ hasElevenLabsKey: Boolean(process.env.ELEVENLABS_API_KEY),
7
+ hasBridgeToken: Boolean(process.env.GROWTHUB_BRIDGE_ACCESS_TOKEN),
8
+ bridgeBaseUrl: process.env.GROWTHUB_BRIDGE_BASE_URL || null,
9
+ videoModelProvider: process.env.VIDEO_MODEL_PROVIDER || null,
10
+ hasGoogleKey: Boolean(process.env.GOOGLE_AI_API_KEY),
11
+ hasFalKey: Boolean(process.env.FAL_API_KEY),
12
+ hasRunwayKey: Boolean(process.env.RUNWAY_API_KEY),
13
+ };
14
+ }
@@ -0,0 +1,31 @@
1
+ const ADAPTERS = {
2
+ "growthub-pipeline": {
3
+ id: "growthub-pipeline",
4
+ label: "growthub-pipeline",
5
+ description: "Hosted CMS video-generation node via growthub pipeline execute. Requires GROWTHUB_BRIDGE_ACCESS_TOKEN + authenticated session.",
6
+ requiredEnv: ["GROWTHUB_BRIDGE_ACCESS_TOKEN", "GROWTHUB_BRIDGE_BASE_URL"],
7
+ cliCommand: "growthub pipeline execute '<DynamicRegistryPipeline JSON>'",
8
+ sdkContract: "@growthub/api-contract — DynamicRegistryPipeline, ExecutionEvent, isExecutionEvent",
9
+ },
10
+ "byo-api-key": {
11
+ id: "byo-api-key",
12
+ label: "byo-api-key",
13
+ description: "Direct provider SDK calls. Set VIDEO_MODEL_PROVIDER (veo | fal | runway) + provider key.",
14
+ requiredEnv: ["VIDEO_MODEL_PROVIDER"],
15
+ cliCommand: null,
16
+ sdkContract: "provider SDK — Google AI / Fal / Runway",
17
+ },
18
+ };
19
+
20
+ export function describeGenerativeAdapter() {
21
+ const id = process.env.CREATIVE_VIDEO_PIPELINE_GENERATIVE_ADAPTER || "growthub-pipeline";
22
+ return ADAPTERS[id] ?? ADAPTERS["growthub-pipeline"];
23
+ }
24
+
25
+ export function readGenerativeConfig() {
26
+ const adapter = describeGenerativeAdapter();
27
+ return {
28
+ adapter,
29
+ missingEnv: adapter.requiredEnv.filter((k) => !process.env[k]),
30
+ };
31
+ }
@@ -0,0 +1,30 @@
1
+ export const pipelineStages = [
2
+ {
3
+ id: "brief",
4
+ step: "01",
5
+ label: "Brief",
6
+ description: "Brand-grounded creative brief sourced from brand-kit.md. Scene structure, hooks, and constraints locked before generation.",
7
+ outputPath: "output/<client>/<project>/brief/pipeline-brief.md",
8
+ },
9
+ {
10
+ id: "generate",
11
+ step: "02",
12
+ label: "Generate",
13
+ description: "Generative image/video via adapter (growthub-pipeline or byo-api-key). Normalised to GenerativeArtifact[] + manifest.json.",
14
+ outputPath: "output/<client>/<project>/generative/manifest.json",
15
+ },
16
+ {
17
+ id: "edit",
18
+ step: "03",
19
+ label: "Edit",
20
+ description: "ElevenLabs Scribe transcription → word-boundary EDL → FFmpeg render via video-use fork. Final output: final.mp4.",
21
+ outputPath: "output/<client>/<project>/final/final.mp4",
22
+ },
23
+ ];
24
+
25
+ export const stageStatus = {
26
+ PENDING: "pending",
27
+ ACTIVE: "active",
28
+ COMPLETE: "complete",
29
+ ERROR: "error",
30
+ };
@@ -0,0 +1,10 @@
1
+ const nextConfig = {
2
+ typedRoutes: false,
3
+ turbopack: {
4
+ root: process.cwd()
5
+ }
6
+ };
7
+ var stdin_default = nextConfig;
8
+ export {
9
+ stdin_default as default
10
+ };
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "growthub-creative-video-pipeline-app",
3
+ "version": "1.0.0",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "growthub-creative-video-pipeline-app",
9
+ "version": "1.0.0",
10
+ "dependencies": {
11
+ "next": "16.2.4",
12
+ "react": "^19.0.0",
13
+ "react-dom": "^19.0.0"
14
+ }
15
+ }
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "growthub-creative-video-pipeline-app",
3
+ "version": "1.0.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "next dev",
8
+ "build": "next build",
9
+ "start": "next start",
10
+ "lint": "next lint"
11
+ },
12
+ "dependencies": {
13
+ "next": "16.2.4",
14
+ "react": "19.2.4",
15
+ "react-dom": "19.2.4"
16
+ }
17
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "framework": "nextjs",
3
+ "buildCommand": "npm run build",
4
+ "installCommand": "npm install"
5
+ }
@@ -0,0 +1,21 @@
1
+ # New Client — Onboarding
2
+
3
+ When the operator starts a new project:
4
+
5
+ 1. Create `brands/<client-slug>/brand-kit.md` from the `_template` scaffold.
6
+ 2. Fill in all YAML fields — Identity, Audience, Messaging, Brand Design, Talent, Assets, Platform.
7
+ 3. Create `brands/<client-slug>/assets/` for logo and reference images.
8
+ 4. Append a `registered` event to `.growthub-fork/trace.jsonl` with `{clientSlug}` in the detail.
9
+ 5. Run `growthub kit fork status <fork-id>` to confirm no drift was introduced.
10
+
11
+ The `_template/` brand is upstream-owned; all real client work lives under `brands/<client-slug>/`.
12
+
13
+ ## Quick scaffold
14
+
15
+ ```bash
16
+ SLUG=<client-slug>
17
+ cp brands/_template/brand-kit.md brands/${SLUG}/brand-kit.md
18
+ mkdir -p brands/${SLUG}/assets
19
+ ```
20
+
21
+ Fill every field. Use "N/A" or "TBD" if unknown — do not delete keys.
@@ -0,0 +1,123 @@
1
+ # Brand Kit — [CLIENT NAME]
2
+ > Copy this file to `brands/<client-slug>/brand-kit.md` and fill in every field.
3
+ > Leave no field blank. Use "N/A" or "TBD" if unknown — do not delete the key.
4
+
5
+ ---
6
+
7
+ ## IDENTITY
8
+
9
+ ```yaml
10
+ client_name: "" # Full legal/brand name
11
+ slug: "" # kebab-case folder name e.g. "greentree-wellness"
12
+ industry: "" # e.g. Healthcare / Med Spa / Legal / Real Estate
13
+ primary_service: "" # The ONE service this campaign promotes
14
+ campaign_name: "" # e.g. "Regenerative Medicine — Spring 2026"
15
+ date_onboarded: "" # YYYY-MM-DD
16
+ account_owner: "" # Internal contact name
17
+ ```
18
+
19
+ ---
20
+
21
+ ## AUDIENCE
22
+
23
+ ```yaml
24
+ target_age_range: "" # e.g. "55–70"
25
+ target_gender: "" # e.g. "All" / "Female-skewing" / "Male"
26
+ target_pain_point: "" # e.g. "Chronic joint pain — knees, hips, shoulders"
27
+ target_intent: "" # e.g. "Actively seeking non-surgical treatment options"
28
+ geographic_target: "" # e.g. "New Jersey — Bergen/Morris/Essex County"
29
+ do_not_attract: "" # Who we explicitly DO NOT want — critical for ad targeting
30
+ # e.g. "Pain medication / opioid patients. People seeking prescriptions."
31
+ ```
32
+
33
+ ---
34
+
35
+ ## MESSAGING
36
+
37
+ ```yaml
38
+ core_message: "" # One sentence — what the brand promises
39
+ emotional_arc: "" # e.g. "Struggle → Recognition → Transformation → Action"
40
+ tone: [] # 3–5 adjectives e.g. ["warm", "credible", "science-informed", "hopeful"]
41
+ approved_phrases: [] # Language that IS approved for use
42
+ # e.g. ["natural healing", "body's own repair process", "results within weeks"]
43
+ messaging_guardrails: [] # Language that is NEVER allowed
44
+ # e.g. ["pain management", "medication", "prescriptions", "opioids"]
45
+ cta_text: "" # Primary CTA e.g. "Schedule Your Free Consultation"
46
+ cta_offer: "" # Offer text e.g. "Free Initial Assessment" / "50% off first visit"
47
+ ```
48
+
49
+ ---
50
+
51
+ ## BRAND DESIGN
52
+
53
+ ```yaml
54
+ colors:
55
+ primary: "" # Hex e.g. "2D6A4F"
56
+ secondary: "" # Hex e.g. "40916C"
57
+ light_accent: "" # Hex e.g. "D8F3DC"
58
+ dark: "" # Hex e.g. "1B1B1B"
59
+ white: "FFFFFF"
60
+ mid_gray: "6B7280"
61
+
62
+ fonts:
63
+ primary: "Arial" # Default — change only if brand font is embedded
64
+ heading_size: 56 # Half-points. 56 = 28pt heading
65
+ body_size: 20 # Half-points. 20 = 10pt body
66
+
67
+ logo_file: "" # Relative path e.g. "assets/logo.png"
68
+ logo_on_dark: "" # Version for dark backgrounds e.g. "assets/logo-white.png"
69
+ ```
70
+
71
+ ---
72
+
73
+ ## TALENT & PRODUCTION
74
+
75
+ ```yaml
76
+ doctor_or_founder_name: "" # Full name + credentials e.g. "Dr. Anthony Carabasi, DO"
77
+ founder_on_camera: "" # Yes / No / Available on request
78
+ ai_avatar_type: "" # Photoreal / Talking Head / UGC / None
79
+ ai_actor_age_range: "" # e.g. "55–65"
80
+ ai_actor_notes: "" # e.g. "Warm, relatable, diverse — 2 actors per creative"
81
+ ugc_inspiration: "" # Link to reference actors/style
82
+ vo_style: "" # e.g. "Warm credible male, 40–55, calm pace — NOT announcer"
83
+ broll_cadence: "" # e.g. "Cut every ~3 seconds — never >3s of uninterrupted talking head"
84
+ ```
85
+
86
+ ---
87
+
88
+ ## ASSET LINKS
89
+
90
+ ```yaml
91
+ brand_assets_air: "" # e.g. "https://app.air.inc/a/b302d671b"
92
+ broll_library: "" # e.g. "https://app.air.inc/a/b9bf52f3b"
93
+ ugc_inspiration: "" # e.g. "https://app.air.inc/a/bb21113fd"
94
+ google_drive: "" # Drive folder link if applicable
95
+ instagram: "" # Instagram handle or URL
96
+ tiktok: "" # TikTok handle or URL
97
+ website: "" # Main website URL
98
+ landing_page: "" # Specific campaign landing page URL
99
+ phone_number: "" # Contact number for CTA overlays
100
+ previous_ads: [] # List of previous ad files/links for reference
101
+ ```
102
+
103
+ ---
104
+
105
+ ## PLATFORM & FORMAT
106
+
107
+ ```yaml
108
+ primary_platforms: [] # e.g. ["Meta Feed", "Instagram Reels", "YouTube Pre-Roll"]
109
+ aspect_ratios: [] # e.g. ["9:16", "1:1", "16:9"]
110
+ caption_default: "ON" # ON / OFF — always ON unless client specifies otherwise
111
+ compliance_notes: "" # Any legal/regulatory constraints
112
+ # e.g. "No before/after guarantees. 'Results may vary' required if specific claims made."
113
+ ```
114
+
115
+ ---
116
+
117
+ ## DELIVERABLES LOG
118
+
119
+ > Append a new line each time a deliverable is completed.
120
+
121
+ ```
122
+ - YYYY-MM-DD | [Asset Type] v[N] | [file path or link]
123
+ ```
@@ -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,83 @@
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
+ "workers/creative-video-pipeline-operator/CLAUDE.md",
31
+ "brands/_template/brand-kit.md",
32
+ "brands/growthub/brand-kit.md",
33
+ "brands/NEW-CLIENT.md",
34
+ "setup/check-deps.sh",
35
+ "setup/verify-env.mjs",
36
+ "setup/clone-fork.sh",
37
+ "setup/install-skill.sh",
38
+ "output/README.md",
39
+ "templates/pipeline-brief.md",
40
+ "templates/generative-plan.md",
41
+ "templates/edit-plan.md",
42
+ "templates/project.md",
43
+ "templates/self-eval.md",
44
+ "examples/pipeline-brief-sample.md",
45
+ "docs/starter-kit-overview.md",
46
+ "docs/pipeline-architecture.md",
47
+ "docs/adapter-contracts.md",
48
+ "docs/vercel-deployment.md",
49
+ "docs/governed-workspace-primitives.md",
50
+ "growthub-meta/README.md",
51
+ "growthub-meta/kit-standard.md",
52
+ "helpers/README.md",
53
+ "helpers/run-pipeline.sh",
54
+ "helpers/check-generative-adapter.sh",
55
+ "skills/README.md",
56
+ "skills/brief-generation/SKILL.md",
57
+ "skills/generative-execution/SKILL.md",
58
+ "skills/video-edit/SKILL.md",
59
+ "studio/index.html",
60
+ "studio/package.json",
61
+ "studio/package-lock.json",
62
+ "studio/vite.config.js",
63
+ "studio/serve.mjs",
64
+ "studio/src/main.jsx",
65
+ "studio/src/App.jsx",
66
+ "studio/src/app.css",
67
+ "apps/creative-video-pipeline/README.md",
68
+ "apps/creative-video-pipeline/.env.example",
69
+ "apps/creative-video-pipeline/package.json",
70
+ "apps/creative-video-pipeline/package-lock.json",
71
+ "apps/creative-video-pipeline/next.config.js",
72
+ "apps/creative-video-pipeline/postcss.config.mjs",
73
+ "apps/creative-video-pipeline/vercel.json",
74
+ "apps/creative-video-pipeline/app/layout.jsx",
75
+ "apps/creative-video-pipeline/app/page.jsx",
76
+ "apps/creative-video-pipeline/app/globals.css",
77
+ "apps/creative-video-pipeline/app/settings/keys/page.jsx",
78
+ "apps/creative-video-pipeline/app/api/pipeline/route.js",
79
+ "apps/creative-video-pipeline/lib/adapters/env.js",
80
+ "apps/creative-video-pipeline/lib/adapters/generative/index.js",
81
+ "apps/creative-video-pipeline/lib/domain/pipeline.js"
82
+ ]
83
+ }