@growthub/cli 0.8.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) 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 +124 -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 +87 -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 +9 -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/check-pipeline-health.sh +154 -0
  34. package/assets/worker-kits/growthub-creative-video-pipeline-v1/helpers/run-pipeline.sh +30 -0
  35. package/assets/worker-kits/growthub-creative-video-pipeline-v1/kit.json +154 -0
  36. package/assets/worker-kits/growthub-creative-video-pipeline-v1/output/README.md +23 -0
  37. package/assets/worker-kits/growthub-creative-video-pipeline-v1/output-standards.md +63 -0
  38. package/assets/worker-kits/growthub-creative-video-pipeline-v1/pipeline.manifest.json +83 -0
  39. package/assets/worker-kits/growthub-creative-video-pipeline-v1/runtime-assumptions.md +61 -0
  40. package/assets/worker-kits/growthub-creative-video-pipeline-v1/setup/check-deps.sh +63 -0
  41. package/assets/worker-kits/growthub-creative-video-pipeline-v1/setup/clone-fork.sh +18 -0
  42. package/assets/worker-kits/growthub-creative-video-pipeline-v1/setup/install-skill.sh +10 -0
  43. package/assets/worker-kits/growthub-creative-video-pipeline-v1/setup/verify-env.mjs +50 -0
  44. package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/README.md +11 -0
  45. package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/brief-generation/SKILL.md +42 -0
  46. package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/generative-execution/SKILL.md +86 -0
  47. package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/video-edit/SKILL.md +41 -0
  48. package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills.md +302 -0
  49. package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/index.html +12 -0
  50. package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/package-lock.json +20 -0
  51. package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/package.json +20 -0
  52. package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/serve.mjs +41 -0
  53. package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/src/App.jsx +210 -0
  54. package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/src/app.css +194 -0
  55. package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/src/main.jsx +10 -0
  56. package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/vite.config.js +8 -0
  57. package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/edit-plan.md +66 -0
  58. package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/generative-plan.md +83 -0
  59. package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/pipeline-brief.md +129 -0
  60. package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/project.md +68 -0
  61. package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/self-eval.md +67 -0
  62. package/assets/worker-kits/growthub-creative-video-pipeline-v1/validation/e2e-reference.md +166 -0
  63. package/assets/worker-kits/growthub-creative-video-pipeline-v1/validation-checklist.md +56 -0
  64. package/assets/worker-kits/growthub-creative-video-pipeline-v1/workers/creative-video-pipeline-operator/CLAUDE.md +109 -0
  65. package/assets/worker-kits/growthub-creative-video-pipeline-v1/workspace.dependencies.json +26 -0
  66. package/dist/index.js +3032 -1676
  67. package/package.json +2 -2
@@ -0,0 +1,154 @@
1
+ #!/usr/bin/env bash
2
+ # check-pipeline-health.sh
3
+ #
4
+ # Composable end-to-end readiness check for the creative-video-pipeline kit.
5
+ # Wraps existing setup/verify-env.mjs + helpers/check-generative-adapter.sh
6
+ # and adds checks that span all three stages (sub-skills present, helpers
7
+ # executable, output dir writable, Stage-3 deps).
8
+ #
9
+ # Usage:
10
+ # bash helpers/check-pipeline-health.sh # human output, exit non-zero on failure
11
+ # bash helpers/check-pipeline-health.sh --json # JSON report on stdout
12
+ #
13
+ # Convention: docs/PIPELINE_KIT_CONTRACT_V1.md (kit-local health helper)
14
+ set -uo pipefail
15
+
16
+ JSON_MODE=0
17
+ if [ "${1:-}" = "--json" ]; then
18
+ JSON_MODE=1
19
+ fi
20
+
21
+ KIT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
22
+
23
+ PASS=()
24
+ FAIL=()
25
+ WARN=()
26
+
27
+ record_pass() { PASS+=("$1"); }
28
+ record_fail() { FAIL+=("$1"); }
29
+ record_warn() { WARN+=("$1"); }
30
+
31
+ # --- Load .env / .env.local if present (for inherited shell, mjs reads its own) ---
32
+ for env_file in "$KIT_ROOT/.env" "$KIT_ROOT/.env.local"; do
33
+ if [ -f "$env_file" ]; then
34
+ set -a
35
+ # shellcheck disable=SC1090
36
+ . "$env_file"
37
+ set +a
38
+ fi
39
+ done
40
+
41
+ # --- 1. .env presence ---
42
+ if [ -f "$KIT_ROOT/.env" ] || [ -f "$KIT_ROOT/.env.local" ]; then
43
+ record_pass "env-file-present"
44
+ elif [ -f "$KIT_ROOT/.env.example" ]; then
45
+ record_warn "env-file-missing-but-example-available"
46
+ else
47
+ record_fail "env-file-missing-and-no-example"
48
+ fi
49
+
50
+ # --- 2. setup/verify-env.mjs passes ---
51
+ if [ -f "$KIT_ROOT/setup/verify-env.mjs" ]; then
52
+ if node "$KIT_ROOT/setup/verify-env.mjs" >/dev/null 2>&1; then
53
+ record_pass "verify-env"
54
+ else
55
+ record_fail "verify-env"
56
+ fi
57
+ else
58
+ record_fail "verify-env-script-missing"
59
+ fi
60
+
61
+ # --- 3. helpers/check-generative-adapter.sh passes ---
62
+ if [ -x "$KIT_ROOT/helpers/check-generative-adapter.sh" ]; then
63
+ if bash "$KIT_ROOT/helpers/check-generative-adapter.sh" >/dev/null 2>&1; then
64
+ record_pass "generative-adapter-env"
65
+ else
66
+ record_fail "generative-adapter-env"
67
+ fi
68
+ else
69
+ record_fail "check-generative-adapter-not-executable"
70
+ fi
71
+
72
+ # --- 4. VIDEO_USE_HOME resolves to a directory ---
73
+ if [ -n "${VIDEO_USE_HOME:-}" ] && [ -d "${VIDEO_USE_HOME}" ]; then
74
+ record_pass "video-use-home"
75
+ else
76
+ record_fail "video-use-home-missing-or-not-a-directory"
77
+ fi
78
+
79
+ # --- 5. ELEVENLABS_API_KEY (Stage 3 transcription) ---
80
+ if [ -n "${ELEVENLABS_API_KEY:-}" ]; then
81
+ record_pass "elevenlabs-api-key"
82
+ else
83
+ record_fail "elevenlabs-api-key-missing"
84
+ fi
85
+
86
+ # --- 6. output/ writable ---
87
+ mkdir -p "$KIT_ROOT/output" 2>/dev/null || true
88
+ if [ -w "$KIT_ROOT/output" ]; then
89
+ record_pass "output-dir-writable"
90
+ else
91
+ record_fail "output-dir-not-writable"
92
+ fi
93
+
94
+ # --- 7. Stage sub-skills present ---
95
+ for stage in brief-generation generative-execution video-edit; do
96
+ if [ -f "$KIT_ROOT/skills/$stage/SKILL.md" ]; then
97
+ record_pass "sub-skill-$stage"
98
+ else
99
+ record_fail "sub-skill-$stage-missing"
100
+ fi
101
+ done
102
+
103
+ # --- 8. Helpers executable ---
104
+ for helper in run-pipeline.sh check-generative-adapter.sh check-pipeline-health.sh; do
105
+ helper_path="$KIT_ROOT/helpers/$helper"
106
+ if [ -f "$helper_path" ] && [ -r "$helper_path" ]; then
107
+ record_pass "helper-$helper"
108
+ else
109
+ record_fail "helper-$helper-missing"
110
+ fi
111
+ done
112
+
113
+ # --- 9. pipeline.manifest.json + workspace.dependencies.json present (kit contract v1) ---
114
+ for manifest in pipeline.manifest.json workspace.dependencies.json; do
115
+ if [ -f "$KIT_ROOT/$manifest" ]; then
116
+ record_pass "manifest-$manifest"
117
+ else
118
+ record_warn "manifest-$manifest-missing"
119
+ fi
120
+ done
121
+
122
+ # --- Render result ---
123
+ if [ "$JSON_MODE" = "1" ]; then
124
+ printf '{'
125
+ printf '"kitId":"growthub-creative-video-pipeline-v1",'
126
+ printf '"convention":"docs/PIPELINE_KIT_CONTRACT_V1.md",'
127
+ printf '"pass":['
128
+ for i in "${!PASS[@]}"; do
129
+ [ "$i" -gt 0 ] && printf ','
130
+ printf '"%s"' "${PASS[$i]}"
131
+ done
132
+ printf '],"warn":['
133
+ for i in "${!WARN[@]}"; do
134
+ [ "$i" -gt 0 ] && printf ','
135
+ printf '"%s"' "${WARN[$i]}"
136
+ done
137
+ printf '],"fail":['
138
+ for i in "${!FAIL[@]}"; do
139
+ [ "$i" -gt 0 ] && printf ','
140
+ printf '"%s"' "${FAIL[$i]}"
141
+ done
142
+ printf ']}\n'
143
+ else
144
+ echo "[check-pipeline-health] Kit: growthub-creative-video-pipeline-v1"
145
+ for item in "${PASS[@]}"; do echo " PASS $item"; done
146
+ for item in "${WARN[@]}"; do echo " WARN $item"; done
147
+ for item in "${FAIL[@]}"; do echo " FAIL $item" >&2; done
148
+ echo "[check-pipeline-health] pass=${#PASS[@]} warn=${#WARN[@]} fail=${#FAIL[@]}"
149
+ fi
150
+
151
+ if [ "${#FAIL[@]}" -gt 0 ]; then
152
+ exit 1
153
+ fi
154
+ exit 0
@@ -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,154 @@
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
+ "pipeline.manifest.json",
34
+ "workspace.dependencies.json",
35
+ "workers/creative-video-pipeline-operator/CLAUDE.md",
36
+ "brands/_template/brand-kit.md",
37
+ "brands/growthub/brand-kit.md",
38
+ "brands/NEW-CLIENT.md",
39
+ "setup/check-deps.sh",
40
+ "setup/verify-env.mjs",
41
+ "setup/clone-fork.sh",
42
+ "setup/install-skill.sh",
43
+ "output/README.md",
44
+ "templates/pipeline-brief.md",
45
+ "templates/generative-plan.md",
46
+ "templates/edit-plan.md",
47
+ "templates/project.md",
48
+ "templates/self-eval.md",
49
+ "examples/pipeline-brief-sample.md",
50
+ "docs/starter-kit-overview.md",
51
+ "docs/pipeline-architecture.md",
52
+ "docs/adapter-contracts.md",
53
+ "docs/vercel-deployment.md",
54
+ "docs/governed-workspace-primitives.md",
55
+ "growthub-meta/README.md",
56
+ "growthub-meta/kit-standard.md",
57
+ "helpers/README.md",
58
+ "helpers/run-pipeline.sh",
59
+ "helpers/check-generative-adapter.sh",
60
+ "helpers/check-pipeline-health.sh",
61
+ "validation/e2e-reference.md",
62
+ "skills/README.md",
63
+ "skills/brief-generation/SKILL.md",
64
+ "skills/generative-execution/SKILL.md",
65
+ "skills/video-edit/SKILL.md",
66
+ "studio/index.html",
67
+ "studio/package.json",
68
+ "studio/package-lock.json",
69
+ "studio/vite.config.js",
70
+ "studio/serve.mjs",
71
+ "studio/src/main.jsx",
72
+ "studio/src/App.jsx",
73
+ "studio/src/app.css",
74
+ "apps/creative-video-pipeline/README.md",
75
+ "apps/creative-video-pipeline/.env.example",
76
+ "apps/creative-video-pipeline/package.json",
77
+ "apps/creative-video-pipeline/package-lock.json",
78
+ "apps/creative-video-pipeline/next.config.js",
79
+ "apps/creative-video-pipeline/postcss.config.mjs",
80
+ "apps/creative-video-pipeline/vercel.json",
81
+ "apps/creative-video-pipeline/app/layout.jsx",
82
+ "apps/creative-video-pipeline/app/page.jsx",
83
+ "apps/creative-video-pipeline/app/globals.css",
84
+ "apps/creative-video-pipeline/app/settings/keys/page.jsx",
85
+ "apps/creative-video-pipeline/app/api/pipeline/route.js",
86
+ "apps/creative-video-pipeline/lib/adapters/env.js",
87
+ "apps/creative-video-pipeline/lib/adapters/generative/index.js",
88
+ "apps/creative-video-pipeline/lib/domain/pipeline.js"
89
+ ],
90
+ "setupPaths": {
91
+ "quickstart": "QUICKSTART.md",
92
+ "envExample": ".env.example",
93
+ "setupDir": "setup/",
94
+ "outputDir": "output/"
95
+ },
96
+ "outputStandard": {
97
+ "type": "working-directory",
98
+ "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/}.",
99
+ "requiredPaths": [
100
+ "QUICKSTART.md",
101
+ "kit.json",
102
+ ".env.example",
103
+ "bundles/growthub-creative-video-pipeline-v1.json",
104
+ "SKILL.md",
105
+ "skills.md",
106
+ "pipeline.manifest.json",
107
+ "workspace.dependencies.json",
108
+ "workers/creative-video-pipeline-operator/CLAUDE.md",
109
+ "brands/_template/brand-kit.md",
110
+ "brands/growthub/brand-kit.md",
111
+ "brands/NEW-CLIENT.md",
112
+ "setup/check-deps.sh",
113
+ "setup/verify-env.mjs",
114
+ "output/README.md",
115
+ "templates",
116
+ "templates/project.md",
117
+ "templates/self-eval.md",
118
+ "templates/pipeline-brief.md",
119
+ "helpers",
120
+ "helpers/README.md",
121
+ "skills",
122
+ "skills/README.md",
123
+ "docs",
124
+ "docs/governed-workspace-primitives.md",
125
+ "docs/adapter-contracts.md",
126
+ "docs/pipeline-architecture.md",
127
+ "studio",
128
+ "studio/package-lock.json",
129
+ "apps/creative-video-pipeline",
130
+ "apps/creative-video-pipeline/package-lock.json",
131
+ "apps/creative-video-pipeline/next.config.js",
132
+ "apps/creative-video-pipeline/lib/adapters",
133
+ "growthub-meta"
134
+ ]
135
+ },
136
+ "bundles": [
137
+ {
138
+ "id": "growthub-creative-video-pipeline-v1",
139
+ "version": "1.0.0",
140
+ "path": "bundles/growthub-creative-video-pipeline-v1.json"
141
+ }
142
+ ],
143
+ "executionMode": "export",
144
+ "activationModes": [
145
+ "export"
146
+ ],
147
+ "compatibility": {
148
+ "cliMinVersion": "0.4.3"
149
+ },
150
+ "provenance": {
151
+ "sourceRepo": "growthub-local",
152
+ "frozenAt": "2026-04-24T00:00:00.000Z"
153
+ }
154
+ }
@@ -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.
@@ -0,0 +1,83 @@
1
+ {
2
+ "version": 1,
3
+ "kitId": "growthub-creative-video-pipeline-v1",
4
+ "pipelineId": "creative-video-pipeline",
5
+ "outputTopology": {
6
+ "root": "output/<client>/<project>",
7
+ "buckets": ["brief", "generative", "final"]
8
+ },
9
+ "tracePolicy": {
10
+ "convention": "docs/PIPELINE_TRACE_CONVENTION_V1.md",
11
+ "traceFile": ".growthub-fork/trace.jsonl",
12
+ "projectMemoryFile": ".growthub-fork/project.md"
13
+ },
14
+ "sessionMemoryPolicy": {
15
+ "seedTemplate": "templates/project.md",
16
+ "appendOn": ["stage-completed", "stage-failed", "self-eval"]
17
+ },
18
+ "stages": [
19
+ {
20
+ "id": "brief-generation",
21
+ "label": "Brief",
22
+ "subSkillPath": "skills/brief-generation/SKILL.md",
23
+ "inputArtifacts": [
24
+ "brands/<client>/brand-kit.md"
25
+ ],
26
+ "outputArtifacts": [
27
+ "output/<client>/<project>/brief/pipeline-brief.md"
28
+ ],
29
+ "helperPaths": [],
30
+ "adapterModes": [],
31
+ "externalDependencies": [],
32
+ "traceRequired": true,
33
+ "projectMemoryRequired": true
34
+ },
35
+ {
36
+ "id": "generative-execution",
37
+ "label": "Generate",
38
+ "subSkillPath": "skills/generative-execution/SKILL.md",
39
+ "inputArtifacts": [
40
+ "output/<client>/<project>/brief/pipeline-brief.md"
41
+ ],
42
+ "outputArtifacts": [
43
+ "output/<client>/<project>/generative/manifest.json"
44
+ ],
45
+ "helperPaths": [
46
+ "helpers/run-pipeline.sh",
47
+ "helpers/check-generative-adapter.sh"
48
+ ],
49
+ "adapterModes": [
50
+ "growthub-pipeline",
51
+ "byo-api-key"
52
+ ],
53
+ "externalDependencies": [],
54
+ "traceRequired": true,
55
+ "projectMemoryRequired": true
56
+ },
57
+ {
58
+ "id": "video-edit",
59
+ "label": "Edit",
60
+ "subSkillPath": "skills/video-edit/SKILL.md",
61
+ "inputArtifacts": [
62
+ "output/<client>/<project>/generative/manifest.json",
63
+ "output/<client>/<project>/brief/pipeline-brief.md"
64
+ ],
65
+ "outputArtifacts": [
66
+ "output/<client>/<project>/final/final.mp4"
67
+ ],
68
+ "helperPaths": [],
69
+ "adapterModes": [],
70
+ "externalDependencies": ["video-use"],
71
+ "traceRequired": true,
72
+ "projectMemoryRequired": true
73
+ }
74
+ ],
75
+ "convention": {
76
+ "spec": "docs/PIPELINE_KIT_CONTRACT_V1.md",
77
+ "sdkType": "@growthub/api-contract/pipeline-kits#PipelineKitManifest",
78
+ "sdkVersion": 1,
79
+ "version": 1,
80
+ "interpretedBy": ["growthub kit pipeline inspect", "agents", "operators"],
81
+ "runtimeEnforcement": "none"
82
+ }
83
+ }
@@ -0,0 +1,61 @@
1
+ # Runtime Assumptions — Creative Video Pipeline
2
+
3
+ ## Required dependencies
4
+
5
+ | Dependency | Version | Purpose |
6
+ |---|---|---|
7
+ | Node.js | >= 20 | CLI, Vite dev, Next.js dev |
8
+ | Git | any | Fork registration |
9
+ | FFmpeg | any | Stage 3 video render |
10
+ | Python 3 | >= 3.11 | video-use upstream pipeline |
11
+ | pip | any | video-use install |
12
+
13
+ Optional:
14
+
15
+ | Dependency | Purpose |
16
+ |---|---|
17
+ | yt-dlp | Downloading online source clips for Stage 3 |
18
+
19
+ ## Required secrets
20
+
21
+ | Env var | Required when | Notes |
22
+ |---|---|---|
23
+ | `ELEVENLABS_API_KEY` | Always (Stage 3) | ElevenLabs Scribe word-level transcription |
24
+ | `GROWTHUB_BRIDGE_ACCESS_TOKEN` | `ADAPTER=growthub-pipeline` | Auth token from `growthub auth login` |
25
+ | `GROWTHUB_BRIDGE_BASE_URL` | `ADAPTER=growthub-pipeline` | Growthub hosted base URL |
26
+ | `GOOGLE_AI_API_KEY` | `ADAPTER=byo-api-key`, `PROVIDER=veo` | Google AI / Vertex key |
27
+ | `FAL_API_KEY` | `ADAPTER=byo-api-key`, `PROVIDER=fal` | fal.ai key |
28
+ | `RUNWAY_API_KEY` | `ADAPTER=byo-api-key`, `PROVIDER=runway` | Runway key |
29
+
30
+ ## Workspace paths
31
+
32
+ | Path | Default | Purpose |
33
+ |---|---|---|
34
+ | `CREATIVE_VIDEO_PIPELINE_HOME` | `$HOME/creative-video-pipeline` | Kit workspace root |
35
+ | `VIDEO_USE_HOME` | `$HOME/video-use` | video-use upstream fork |
36
+ | `CREATIVE_STRATEGIST_HOME` | `$HOME/creative-strategist` | Optional: hooks library source |
37
+
38
+ ## Growthub CLI
39
+
40
+ Minimum version: `0.4.3`. Verify:
41
+
42
+ ```bash
43
+ growthub --version
44
+ ```
45
+
46
+ Required for `growthub pipeline execute` (Stage 2, primary adapter) and `growthub kit fork` commands.
47
+
48
+ ## video-use fork
49
+
50
+ Cloned to `${VIDEO_USE_HOME:-$HOME/video-use}` by `setup/clone-fork.sh`. Registered as a Claude Code skill by `setup/install-skill.sh`. Required for Stage 3.
51
+
52
+ ## Claude Code skill
53
+
54
+ `~/.claude/skills/video-use` symlink must be present for conversational edit flow. Set up by `setup/install-skill.sh`.
55
+
56
+ ## Credential hygiene
57
+
58
+ - No secrets are stored in this kit.
59
+ - All secrets live in the per-fork `.env` (not committed).
60
+ - `ELEVENLABS_API_KEY` must never appear in any output artifact.
61
+ - Provider keys must never appear in any output artifact.
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ PASS=0; FAIL=0
5
+
6
+ check() {
7
+ if command -v "$1" &>/dev/null; then
8
+ echo " [ok] $1"
9
+ ((PASS++))
10
+ else
11
+ echo " [missing] $1"
12
+ ((FAIL++))
13
+ fi
14
+ }
15
+
16
+ echo "=== growthub-creative-video-pipeline-v1 dependency check ==="
17
+ echo ""
18
+ echo "CLI tools:"
19
+ check growthub
20
+ check node
21
+ check npm
22
+ check ffmpeg
23
+
24
+ echo ""
25
+ echo "Optional (video-use fork):"
26
+ if [ -n "${VIDEO_USE_HOME:-}" ] && [ -d "$VIDEO_USE_HOME" ]; then
27
+ echo " [ok] VIDEO_USE_HOME=$VIDEO_USE_HOME"
28
+ else
29
+ echo " [missing] VIDEO_USE_HOME — set and point to video-use fork clone"
30
+ fi
31
+
32
+ echo ""
33
+ echo "Environment:"
34
+ for var in CREATIVE_VIDEO_PIPELINE_GENERATIVE_ADAPTER ELEVENLABS_API_KEY; do
35
+ if [ -n "${!var:-}" ]; then
36
+ echo " [ok] $var"
37
+ else
38
+ echo " [missing] $var"
39
+ fi
40
+ done
41
+
42
+ ADAPTER="${CREATIVE_VIDEO_PIPELINE_GENERATIVE_ADAPTER:-growthub-pipeline}"
43
+ if [ "$ADAPTER" = "growthub-pipeline" ]; then
44
+ for var in GROWTHUB_BRIDGE_ACCESS_TOKEN GROWTHUB_BRIDGE_BASE_URL; do
45
+ if [ -n "${!var:-}" ]; then
46
+ echo " [ok] $var"
47
+ else
48
+ echo " [missing] $var (required for growthub-pipeline adapter)"
49
+ fi
50
+ done
51
+ elif [ "$ADAPTER" = "byo-api-key" ]; then
52
+ for var in VIDEO_MODEL_PROVIDER; do
53
+ if [ -n "${!var:-}" ]; then
54
+ echo " [ok] $var"
55
+ else
56
+ echo " [missing] $var (required for byo-api-key adapter)"
57
+ fi
58
+ done
59
+ fi
60
+
61
+ echo ""
62
+ echo "Result: $PASS ok, $FAIL missing"
63
+ [ "$FAIL" -eq 0 ] && echo "All required dependencies present." || echo "Fix missing items before running the pipeline."
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ DEST="${VIDEO_USE_HOME:-$HOME/video-use}"
5
+
6
+ if [ -d "$DEST/.git" ]; then
7
+ echo "video-use fork already cloned at $DEST"
8
+ exit 0
9
+ fi
10
+
11
+ echo "Clone the video-use fork into $DEST, then re-run this script or set VIDEO_USE_HOME."
12
+ echo ""
13
+ echo " git clone <your-video-use-fork-url> $DEST"
14
+ echo ""
15
+ echo "After cloning, install dependencies:"
16
+ echo " cd $DEST && npm install"
17
+ echo ""
18
+ echo "Then set VIDEO_USE_HOME=$DEST in your .env.local"
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ SKILL_SRC="$(cd "$(dirname "$0")/.." && pwd)/SKILL.md"
5
+ DEST_DIR="$HOME/.claude/skills/growthub-creative-video-pipeline"
6
+
7
+ mkdir -p "$DEST_DIR"
8
+ cp "$SKILL_SRC" "$DEST_DIR/SKILL.md"
9
+ echo "Skill installed to $DEST_DIR/SKILL.md"
10
+ echo "Reload Claude Code (or open a new session) to activate."