@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,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.
@@ -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.
@@ -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,8 @@
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 |
@@ -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"
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ # Wraps `growthub pipeline execute` for Stage 2 generative execution.
5
+ # Usage: run-pipeline.sh <json-payload-or-file> [output-dir]
6
+ #
7
+ # Args:
8
+ # payload — DynamicRegistryPipeline JSON string or path to a JSON file
9
+ # output-dir — where to write the NDJSON trace (default: ./output)
10
+
11
+ PAYLOAD="${1:?DynamicRegistryPipeline JSON payload or file path required}"
12
+ OUTPUT_DIR="${2:-./output}"
13
+
14
+ mkdir -p "$OUTPUT_DIR"
15
+ TRACE="$OUTPUT_DIR/pipeline-trace.ndjson"
16
+
17
+ if ! command -v growthub &>/dev/null; then
18
+ echo "[run-pipeline] growthub CLI not found. Install with: npm install -g @growthub/cli" >&2
19
+ exit 1
20
+ fi
21
+
22
+ # Auth pre-flight — session must be valid before executing
23
+ if ! growthub auth whoami --json >/dev/null 2>&1; then
24
+ echo "[run-pipeline] Not authenticated. Run: growthub auth login" >&2
25
+ exit 1
26
+ fi
27
+
28
+ echo "[run-pipeline] Executing pipeline..."
29
+ growthub pipeline execute "$PAYLOAD" 2>&1 | tee "$TRACE"
30
+ echo "[run-pipeline] Trace written to $TRACE"
@@ -0,0 +1,148 @@
1
+ {
2
+ "schemaVersion": 2,
3
+ "kit": {
4
+ "id": "growthub-creative-video-pipeline-v1",
5
+ "version": "1.0.0",
6
+ "name": "Growthub Creative Video Pipeline",
7
+ "description": "Chainable worker kit that composes creative-strategist brief logic, the growthub video-generation CMS node, and the video-use edit pipeline into a single governed workspace. Three sequential stages: (1) brand brief, (2) generative image/video via growthub pipeline execute or BYOK, (3) video editing via the video-use fork. The Vite local shell and Vercel app render all outputs and a unified API key settings surface.",
8
+ "type": "worker",
9
+ "visibility": "public-open-source",
10
+ "sourceRepo": "growthub-local",
11
+ "family": "studio"
12
+ },
13
+ "entrypoint": {
14
+ "workerId": "creative-video-pipeline-operator",
15
+ "path": "workers/creative-video-pipeline-operator/CLAUDE.md"
16
+ },
17
+ "workerIds": [
18
+ "creative-video-pipeline-operator"
19
+ ],
20
+ "agentContractPath": "workers/creative-video-pipeline-operator/CLAUDE.md",
21
+ "brandTemplatePath": "brands/_template/brand-kit.md",
22
+ "publicExampleBrandPaths": [
23
+ "brands/growthub/brand-kit.md"
24
+ ],
25
+ "frozenAssetPaths": [
26
+ "QUICKSTART.md",
27
+ ".env.example",
28
+ "SKILL.md",
29
+ "skills.md",
30
+ "output-standards.md",
31
+ "runtime-assumptions.md",
32
+ "validation-checklist.md",
33
+ "workers/creative-video-pipeline-operator/CLAUDE.md",
34
+ "brands/_template/brand-kit.md",
35
+ "brands/growthub/brand-kit.md",
36
+ "brands/NEW-CLIENT.md",
37
+ "setup/check-deps.sh",
38
+ "setup/verify-env.mjs",
39
+ "setup/clone-fork.sh",
40
+ "setup/install-skill.sh",
41
+ "output/README.md",
42
+ "templates/pipeline-brief.md",
43
+ "templates/generative-plan.md",
44
+ "templates/edit-plan.md",
45
+ "templates/project.md",
46
+ "templates/self-eval.md",
47
+ "examples/pipeline-brief-sample.md",
48
+ "docs/starter-kit-overview.md",
49
+ "docs/pipeline-architecture.md",
50
+ "docs/adapter-contracts.md",
51
+ "docs/vercel-deployment.md",
52
+ "docs/governed-workspace-primitives.md",
53
+ "growthub-meta/README.md",
54
+ "growthub-meta/kit-standard.md",
55
+ "helpers/README.md",
56
+ "helpers/run-pipeline.sh",
57
+ "helpers/check-generative-adapter.sh",
58
+ "skills/README.md",
59
+ "skills/brief-generation/SKILL.md",
60
+ "skills/generative-execution/SKILL.md",
61
+ "skills/video-edit/SKILL.md",
62
+ "studio/index.html",
63
+ "studio/package.json",
64
+ "studio/package-lock.json",
65
+ "studio/vite.config.js",
66
+ "studio/serve.mjs",
67
+ "studio/src/main.jsx",
68
+ "studio/src/App.jsx",
69
+ "studio/src/app.css",
70
+ "apps/creative-video-pipeline/README.md",
71
+ "apps/creative-video-pipeline/.env.example",
72
+ "apps/creative-video-pipeline/package.json",
73
+ "apps/creative-video-pipeline/package-lock.json",
74
+ "apps/creative-video-pipeline/next.config.js",
75
+ "apps/creative-video-pipeline/postcss.config.mjs",
76
+ "apps/creative-video-pipeline/vercel.json",
77
+ "apps/creative-video-pipeline/app/layout.jsx",
78
+ "apps/creative-video-pipeline/app/page.jsx",
79
+ "apps/creative-video-pipeline/app/globals.css",
80
+ "apps/creative-video-pipeline/app/settings/keys/page.jsx",
81
+ "apps/creative-video-pipeline/app/api/pipeline/route.js",
82
+ "apps/creative-video-pipeline/lib/adapters/env.js",
83
+ "apps/creative-video-pipeline/lib/adapters/generative/index.js",
84
+ "apps/creative-video-pipeline/lib/domain/pipeline.js"
85
+ ],
86
+ "setupPaths": {
87
+ "quickstart": "QUICKSTART.md",
88
+ "envExample": ".env.example",
89
+ "setupDir": "setup/",
90
+ "outputDir": "output/"
91
+ },
92
+ "outputStandard": {
93
+ "type": "working-directory",
94
+ "description": "Exported folder is a governed Growthub workspace. The Vite operator shell runs under studio/. The Vercel-ready app lives under apps/creative-video-pipeline/. Pipeline outputs land in output/<client-slug>/<project-slug>/{brief/,generative/,final/}.",
95
+ "requiredPaths": [
96
+ "QUICKSTART.md",
97
+ "kit.json",
98
+ ".env.example",
99
+ "bundles/growthub-creative-video-pipeline-v1.json",
100
+ "SKILL.md",
101
+ "skills.md",
102
+ "workers/creative-video-pipeline-operator/CLAUDE.md",
103
+ "brands/_template/brand-kit.md",
104
+ "brands/growthub/brand-kit.md",
105
+ "brands/NEW-CLIENT.md",
106
+ "setup/check-deps.sh",
107
+ "setup/verify-env.mjs",
108
+ "output/README.md",
109
+ "templates",
110
+ "templates/project.md",
111
+ "templates/self-eval.md",
112
+ "templates/pipeline-brief.md",
113
+ "helpers",
114
+ "helpers/README.md",
115
+ "skills",
116
+ "skills/README.md",
117
+ "docs",
118
+ "docs/governed-workspace-primitives.md",
119
+ "docs/adapter-contracts.md",
120
+ "docs/pipeline-architecture.md",
121
+ "studio",
122
+ "studio/package-lock.json",
123
+ "apps/creative-video-pipeline",
124
+ "apps/creative-video-pipeline/package-lock.json",
125
+ "apps/creative-video-pipeline/next.config.js",
126
+ "apps/creative-video-pipeline/lib/adapters",
127
+ "growthub-meta"
128
+ ]
129
+ },
130
+ "bundles": [
131
+ {
132
+ "id": "growthub-creative-video-pipeline-v1",
133
+ "version": "1.0.0",
134
+ "path": "bundles/growthub-creative-video-pipeline-v1.json"
135
+ }
136
+ ],
137
+ "executionMode": "export",
138
+ "activationModes": [
139
+ "export"
140
+ ],
141
+ "compatibility": {
142
+ "cliMinVersion": "0.4.3"
143
+ },
144
+ "provenance": {
145
+ "sourceRepo": "growthub-local",
146
+ "frozenAt": "2026-04-24T00:00:00.000Z"
147
+ }
148
+ }
@@ -0,0 +1,23 @@
1
+ # output/
2
+
3
+ Pipeline output artifacts. Structure: `output/<client>/<project>/`
4
+
5
+ ```
6
+ output/
7
+ <client>/
8
+ <project>/
9
+ brief/
10
+ pipeline-brief.md ← Stage 1 output
11
+ generative/
12
+ manifest.json ← GenerativeArtifact[] index
13
+ <artifact-id>.mp4 ← Generated video clips
14
+ <artifact-id>.jpg ← Generated images
15
+ final/
16
+ final.mp4 ← Stage 3 output
17
+ edit-plan.md ← video-use handoff artifact
18
+ .growthub-fork/
19
+ project.md ← Governed progress log
20
+ trace.jsonl ← Machine-readable stage events
21
+ ```
22
+
23
+ This directory is gitignored. Do not commit client output artifacts.
@@ -0,0 +1,63 @@
1
+ # Output Standards — Creative Video Pipeline
2
+
3
+ All pipeline outputs land under:
4
+
5
+ ```
6
+ output/<client-slug>/<project-slug>/
7
+ ├── brief/
8
+ │ └── pipeline-brief.md # Stage 1 deliverable — scene structure, hooks, brand constraints
9
+ ├── generative/
10
+ │ ├── manifest.json # Artifact list: {id, type, provider, url, localPath, nodeId}
11
+ │ ├── *.jpg / *.png # Generated images (if image nodes were included)
12
+ │ └── *.mp4 # Generated raw video clips from CMS node or BYOK provider
13
+ └── final/
14
+ └── final.mp4 # Stage 3 deliverable — edited, captioned, rendered output
15
+ ```
16
+
17
+ ## Stage 1 — Brief
18
+
19
+ Required: `output/<client>/<project>/brief/pipeline-brief.md`
20
+
21
+ Minimum contents:
22
+ - Brand constraints box (from `messaging_guardrails` in brand-kit.md)
23
+ - Scene structure table (N scenes)
24
+ - Hook variations A–E for Scene 1
25
+ - Editing guidelines section
26
+ - Optional appendix: AI generation prompts (labeled OPTIONAL)
27
+
28
+ ## Stage 2 — Generative
29
+
30
+ Required: `output/<client>/<project>/generative/manifest.json`
31
+
32
+ `manifest.json` shape:
33
+ ```json
34
+ [
35
+ {
36
+ "id": "<nodeId>-<index>",
37
+ "type": "video | image",
38
+ "provider": "growthub-pipeline | veo | fal | runway",
39
+ "nodeId": "<CMS node id or byo>",
40
+ "url": "<artifact URL from growthub or provider>",
41
+ "localPath": "output/<client>/<project>/generative/<filename>",
42
+ "generatedAt": "<ISO timestamp>",
43
+ "prompt": "<exact prompt used>"
44
+ }
45
+ ]
46
+ ```
47
+
48
+ The growthub-pipeline adapter writes this manifest from official CLI/SDK `ExecutionEvent` data. The BYOK path writes the same shape from provider SDK responses.
49
+
50
+ ## Stage 3 — Edit
51
+
52
+ Required: `output/<client>/<project>/final/final.mp4`
53
+
54
+ The video-use fork renders to `${VIDEO_USE_HOME}/<project>/edit/final.mp4`. Copy or symlink to `output/<client>/<project>/final/final.mp4` after QA pass.
55
+
56
+ Supporting artifacts (written to `output/<client>/<project>/final/` by the video-use agent):
57
+ - `edit-decision-list.md` — transcript-anchored EDL
58
+ - `render-plan.md` — FFmpeg filter graph
59
+ - `qa-checklist.md` — twelve production rules checked
60
+
61
+ ## Session persistence
62
+
63
+ Append to `.growthub-fork/project.md` at the completion of each stage.