@growthub/cli 0.8.0 → 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-agency-portal-starter-v1/.env.example +53 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/QUICKSTART.md +98 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/SKILL.md +89 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/.env.example +25 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/README.md +36 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/app/api/settings/integrations/route.js +13 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/app/api/workspace/route.js +27 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/app/globals.css +237 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/app/layout.jsx +14 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/app/page.jsx +165 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/app/settings/integrations/page.jsx +134 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/auth/index.js +21 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/env.js +28 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/integrations/growthub-connection-normalizer.js +95 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/integrations/index.js +178 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/payments/index.js +13 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/persistence/index.js +13 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/persistence/postgres.js +16 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/persistence/provider-managed.js +16 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/persistence/qstash-kv.js +16 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/domain/integrations.js +185 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/domain/portal.js +16 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/next.config.js +10 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/package-lock.json +976 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/package.json +17 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/postcss.config.mjs +3 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/vercel.json +5 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/brands/NEW-CLIENT.md +10 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/brands/_template/brand-kit.md +27 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/brands/growthub/brand-kit.md +25 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/bundles/growthub-agency-portal-starter-v1.json +65 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/docs/adapter-contracts.md +79 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/docs/fork-sync-integration.md +32 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/docs/governed-workspace-primitives.md +182 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/docs/starter-kit-overview.md +30 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/docs/vercel-serverless-deployment.md +46 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/docs/vite-ui-shell-guide.md +24 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/examples/portal-brief-sample.md +44 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/examples/workspace-sample.md +10 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/growthub-meta/README.md +11 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/growthub-meta/kit-standard.md +16 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/helpers/README.md +49 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/kit.json +156 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/output/README.md +13 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/output-standards.md +25 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/runtime-assumptions.md +15 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/setup/check-deps.sh +20 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/setup/verify-env.mjs +92 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/skills/README.md +55 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/skills.md +133 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/studio/index.html +12 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/studio/package-lock.json +1677 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/studio/package.json +20 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/studio/serve.mjs +42 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/studio/src/App.jsx +162 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/studio/src/app.css +138 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/studio/src/main.jsx +10 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/studio/vite.config.js +8 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/agent-contract.md +9 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/client-onboarding-plan.md +56 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/deployment-handoff.md +61 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/deployment-plan.md +22 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/portal-brief.md +65 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/project.md +55 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/self-eval.md +67 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/supabase-setup-plan.md +26 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/workspace-brief.md +11 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/validation-checklist.md +32 -0
- package/assets/worker-kits/growthub-agency-portal-starter-v1/workers/agency-portal-operator/CLAUDE.md +75 -0
- 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 +42 -33
- package/package.json +1 -1
|
@@ -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.
|
|
@@ -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."
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { readFileSync, existsSync } from "fs";
|
|
3
|
+
import { resolve } from "path";
|
|
4
|
+
|
|
5
|
+
const ROOT = new URL("..", import.meta.url).pathname;
|
|
6
|
+
const envFile = resolve(ROOT, ".env.local");
|
|
7
|
+
|
|
8
|
+
if (existsSync(envFile)) {
|
|
9
|
+
const lines = readFileSync(envFile, "utf8").split("\n");
|
|
10
|
+
for (const line of lines) {
|
|
11
|
+
const trimmed = line.trim();
|
|
12
|
+
if (!trimmed || trimmed.startsWith("#")) continue;
|
|
13
|
+
const [key, ...rest] = trimmed.split("=");
|
|
14
|
+
if (key && rest.join("=")) process.env[key] = rest.join("=");
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const REQUIRED = [
|
|
19
|
+
"CREATIVE_VIDEO_PIPELINE_GENERATIVE_ADAPTER",
|
|
20
|
+
"ELEVENLABS_API_KEY",
|
|
21
|
+
];
|
|
22
|
+
|
|
23
|
+
const ADAPTER_DEPS = {
|
|
24
|
+
"growthub-pipeline": ["GROWTHUB_BRIDGE_ACCESS_TOKEN", "GROWTHUB_BRIDGE_BASE_URL"],
|
|
25
|
+
"byo-api-key": ["VIDEO_MODEL_PROVIDER"],
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const errors = [];
|
|
29
|
+
|
|
30
|
+
for (const key of REQUIRED) {
|
|
31
|
+
if (!process.env[key]) errors.push(`Missing required: ${key}`);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const adapter = process.env.CREATIVE_VIDEO_PIPELINE_GENERATIVE_ADAPTER ?? "growthub-pipeline";
|
|
35
|
+
const adapterDeps = ADAPTER_DEPS[adapter] ?? [];
|
|
36
|
+
for (const key of adapterDeps) {
|
|
37
|
+
if (!process.env[key]) errors.push(`Missing for ${adapter} adapter: ${key}`);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (!process.env.VIDEO_USE_HOME) {
|
|
41
|
+
errors.push("Missing VIDEO_USE_HOME (required for Stage 3)");
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (errors.length) {
|
|
45
|
+
console.error("Environment verification failed:");
|
|
46
|
+
for (const e of errors) console.error(` - ${e}`);
|
|
47
|
+
process.exit(1);
|
|
48
|
+
} else {
|
|
49
|
+
console.log("Environment verified.");
|
|
50
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# skills/
|
|
2
|
+
|
|
3
|
+
Sub-skills for the creative-video-pipeline operator. Each sub-skill is a self-contained governed primitive with its own SKILL.md.
|
|
4
|
+
|
|
5
|
+
| Sub-skill | Stage | Purpose |
|
|
6
|
+
|-----------|-------|---------|
|
|
7
|
+
| brief-generation | Stage 1 | Brand-grounded creative brief from brand-kit.md |
|
|
8
|
+
| generative-execution | Stage 2 | Adapter-routed generative image/video execution |
|
|
9
|
+
| video-edit | Stage 3 | video-use fork delegation: Scribe → EDL → FFmpeg |
|
|
10
|
+
|
|
11
|
+
The top-level `SKILL.md` at the kit root composes all three sub-skills into the full three-stage pipeline.
|
package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/brief-generation/SKILL.md
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: creative-video-pipeline/brief-generation
|
|
3
|
+
name: creative-video-pipeline-brief-generation
|
|
4
|
+
description: Generate the Stage 1 brand-grounded pipeline brief from the worker kit brand kit and write output artifacts.
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
triggers:
|
|
7
|
+
- "generate creative brief"
|
|
8
|
+
- "run brief stage"
|
|
9
|
+
- "stage 1 brief"
|
|
10
|
+
- "write pipeline brief"
|
|
11
|
+
selfEval:
|
|
12
|
+
criteria:
|
|
13
|
+
- "Brief is sourced exclusively from brand-kit.md — no invented brand attributes"
|
|
14
|
+
- "Scene structure matches brand hook patterns"
|
|
15
|
+
- "pipeline-brief.md written to output/<client>/<project>/brief/"
|
|
16
|
+
- "project.md appended with Stage 1 completion"
|
|
17
|
+
- "trace.jsonl event written for stage-complete"
|
|
18
|
+
maxRetries: 3
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Brief Generation Sub-Skill
|
|
22
|
+
|
|
23
|
+
## Role
|
|
24
|
+
Generate a brand-grounded creative brief for Stage 1 of the creative video pipeline.
|
|
25
|
+
|
|
26
|
+
## Input
|
|
27
|
+
- `brands/<client>/brand-kit.md` — brand constraints, audience, hooks, tone
|
|
28
|
+
- `CREATIVE_STRATEGIST_HOME` (optional) — for 500-winning-hooks.csv reference
|
|
29
|
+
- Client name + project name
|
|
30
|
+
|
|
31
|
+
## Process
|
|
32
|
+
1. Read `brands/<client>/brand-kit.md` in full
|
|
33
|
+
2. Identify brand tone, audience, hook patterns, and platform format
|
|
34
|
+
3. Populate `templates/pipeline-brief.md` — do not invent brand attributes
|
|
35
|
+
4. Write output to `output/<client>/<project>/brief/pipeline-brief.md`
|
|
36
|
+
5. Append Stage 1 completion entry to `.growthub-fork/project.md`
|
|
37
|
+
6. Append `{"type":"stage-complete","stage":"brief","ts":"<iso>"}` to `trace.jsonl`
|
|
38
|
+
|
|
39
|
+
## Output
|
|
40
|
+
- `output/<client>/<project>/brief/pipeline-brief.md`
|
|
41
|
+
- Updated `.growthub-fork/project.md`
|
|
42
|
+
- Updated `trace.jsonl`
|
package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/generative-execution/SKILL.md
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: creative-video-pipeline/generative-execution
|
|
3
|
+
name: creative-video-pipeline-generative-execution
|
|
4
|
+
description: Run Stage 2 generative execution through the selected adapter and write the generative manifest.
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
triggers:
|
|
7
|
+
- "run generative stage"
|
|
8
|
+
- "stage 2 generate"
|
|
9
|
+
- "generate video"
|
|
10
|
+
- "execute pipeline generation"
|
|
11
|
+
selfEval:
|
|
12
|
+
criteria:
|
|
13
|
+
- "Adapter selected from CREATIVE_VIDEO_PIPELINE_GENERATIVE_ADAPTER env var"
|
|
14
|
+
- "growthub-pipeline path: DynamicRegistryPipeline JSON assembled from brief, growthub pipeline execute called directly"
|
|
15
|
+
- "byo-api-key path: VIDEO_MODEL_PROVIDER resolved, provider SDK called"
|
|
16
|
+
- "manifest.json written to output/<client>/<project>/generative/ with execution results"
|
|
17
|
+
- "project.md and trace.jsonl updated with Stage 2 completion"
|
|
18
|
+
maxRetries: 3
|
|
19
|
+
helpers:
|
|
20
|
+
- "helpers/check-generative-adapter.sh"
|
|
21
|
+
- "helpers/run-pipeline.sh"
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# Generative Execution Sub-Skill
|
|
25
|
+
|
|
26
|
+
## Role
|
|
27
|
+
Execute Stage 2 via the official growthub CLI + `@growthub/api-contract` SDK. No custom execution layer.
|
|
28
|
+
|
|
29
|
+
## Adapter: growthub-pipeline (primary)
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Auth pre-flight
|
|
33
|
+
growthub auth whoami --json || { echo "Run: growthub auth login"; exit 1; }
|
|
34
|
+
|
|
35
|
+
# Assemble DynamicRegistryPipeline from the Stage 1 brief, then execute:
|
|
36
|
+
growthub pipeline execute '<DynamicRegistryPipeline JSON>'
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**`DynamicRegistryPipeline` shape (from `@growthub/api-contract`):**
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"pipelineId": "<uuid>",
|
|
43
|
+
"executionMode": "hosted",
|
|
44
|
+
"nodes": [
|
|
45
|
+
{
|
|
46
|
+
"nodeId": "video-gen-1",
|
|
47
|
+
"slug": "video-generation",
|
|
48
|
+
"bindings": {
|
|
49
|
+
"videoModel": "veo-3.1-generate-001",
|
|
50
|
+
"prompt": "<scene prompt from brief>",
|
|
51
|
+
"seconds": 8,
|
|
52
|
+
"aspectRatio": "9:16",
|
|
53
|
+
"creativeCount": 1,
|
|
54
|
+
"refs": [
|
|
55
|
+
{ "name": "brand_reference", "dataUrl": "data:image/jpeg;base64,<base64>" }
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
]
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
The CLI streams NDJSON `ExecutionEvent` objects typed by `@growthub/api-contract`. Use `isExecutionEvent()` to validate each line. The `complete` event signals success; the `error` event signals failure.
|
|
64
|
+
|
|
65
|
+
## Adapter: byo-api-key (secondary)
|
|
66
|
+
Resolve `VIDEO_MODEL_PROVIDER` (veo | fal | runway), call the provider SDK directly.
|
|
67
|
+
|
|
68
|
+
## Output
|
|
69
|
+
Write `output/<client>/<project>/generative/manifest.json`:
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"kitId": "growthub-creative-video-pipeline-v1",
|
|
73
|
+
"adapter": "growthub-pipeline",
|
|
74
|
+
"executionId": "<from complete event>",
|
|
75
|
+
"createdAt": "<iso>",
|
|
76
|
+
"artifacts": [/* urls/paths from execution output */]
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Process
|
|
81
|
+
1. Read `CREATIVE_VIDEO_PIPELINE_GENERATIVE_ADAPTER`
|
|
82
|
+
2. Run `helpers/check-generative-adapter.sh`
|
|
83
|
+
3. Assemble `DynamicRegistryPipeline` JSON from Stage 1 brief prompts and reference images
|
|
84
|
+
4. Execute: `bash helpers/run-pipeline.sh '<payload>'`
|
|
85
|
+
5. Write `manifest.json` from the execution result
|
|
86
|
+
6. Append Stage 2 completion to `project.md` and `trace.jsonl`
|