@growthub/cli 0.8.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/.env.example +28 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/QUICKSTART.md +118 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/SKILL.md +124 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/.env.example +20 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/README.md +33 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/app/api/pipeline/route.js +27 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/app/globals.css +203 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/app/layout.jsx +14 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/app/page.jsx +131 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/app/settings/keys/page.jsx +154 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/lib/adapters/env.js +14 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/lib/adapters/generative/index.js +31 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/lib/domain/pipeline.js +30 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/next.config.js +10 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/package-lock.json +17 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/package.json +17 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/postcss.config.mjs +3 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/vercel.json +5 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/brands/NEW-CLIENT.md +21 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/brands/_template/brand-kit.md +123 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/brands/growthub/brand-kit.md +123 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/bundles/growthub-creative-video-pipeline-v1.json +87 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/adapter-contracts.md +73 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/governed-workspace-primitives.md +50 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/pipeline-architecture.md +61 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/starter-kit-overview.md +33 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/vercel-deployment.md +42 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/examples/pipeline-brief-sample.md +56 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/growthub-meta/README.md +9 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/growthub-meta/kit-standard.md +24 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/helpers/README.md +9 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/helpers/check-generative-adapter.sh +41 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/helpers/check-pipeline-health.sh +154 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/helpers/run-pipeline.sh +30 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/kit.json +154 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/output/README.md +23 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/output-standards.md +63 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/pipeline.manifest.json +83 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/runtime-assumptions.md +61 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/setup/check-deps.sh +63 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/setup/clone-fork.sh +18 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/setup/install-skill.sh +10 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/setup/verify-env.mjs +50 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/README.md +11 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/brief-generation/SKILL.md +42 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/generative-execution/SKILL.md +86 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/video-edit/SKILL.md +41 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills.md +302 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/index.html +12 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/package-lock.json +20 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/package.json +20 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/serve.mjs +41 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/src/App.jsx +210 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/src/app.css +194 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/src/main.jsx +10 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/vite.config.js +8 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/edit-plan.md +66 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/generative-plan.md +83 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/pipeline-brief.md +129 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/project.md +68 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/self-eval.md +67 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/validation/e2e-reference.md +166 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/validation-checklist.md +56 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/workers/creative-video-pipeline-operator/CLAUDE.md +109 -0
- package/assets/worker-kits/growthub-creative-video-pipeline-v1/workspace.dependencies.json +26 -0
- package/dist/index.js +3032 -1676
- package/package.json +2 -2
package/assets/worker-kits/growthub-creative-video-pipeline-v1/helpers/check-pipeline-health.sh
ADDED
|
@@ -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."
|