@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.
- 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 +103 -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 +83 -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 +8 -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/run-pipeline.sh +30 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/kit.json +148 -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/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-checklist.md +52 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/workers/creative-video-pipeline-operator/CLAUDE.md +109 -0
- package/dist/index.js +9 -0
- 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.
|
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,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 |
|
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"
|
|
@@ -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.
|