@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.
Files changed (132) hide show
  1. package/assets/worker-kits/growthub-agency-portal-starter-v1/.env.example +53 -0
  2. package/assets/worker-kits/growthub-agency-portal-starter-v1/QUICKSTART.md +98 -0
  3. package/assets/worker-kits/growthub-agency-portal-starter-v1/SKILL.md +89 -0
  4. package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/.env.example +25 -0
  5. package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/README.md +36 -0
  6. package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/app/api/settings/integrations/route.js +13 -0
  7. package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/app/api/workspace/route.js +27 -0
  8. package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/app/globals.css +237 -0
  9. package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/app/layout.jsx +14 -0
  10. package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/app/page.jsx +165 -0
  11. package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/app/settings/integrations/page.jsx +134 -0
  12. package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/auth/index.js +21 -0
  13. package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/env.js +28 -0
  14. package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/integrations/growthub-connection-normalizer.js +95 -0
  15. package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/integrations/index.js +178 -0
  16. package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/payments/index.js +13 -0
  17. package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/persistence/index.js +13 -0
  18. package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/persistence/postgres.js +16 -0
  19. package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/persistence/provider-managed.js +16 -0
  20. package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/adapters/persistence/qstash-kv.js +16 -0
  21. package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/domain/integrations.js +185 -0
  22. package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/lib/domain/portal.js +16 -0
  23. package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/next.config.js +10 -0
  24. package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/package-lock.json +976 -0
  25. package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/package.json +17 -0
  26. package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/postcss.config.mjs +3 -0
  27. package/assets/worker-kits/growthub-agency-portal-starter-v1/apps/agency-portal/vercel.json +5 -0
  28. package/assets/worker-kits/growthub-agency-portal-starter-v1/brands/NEW-CLIENT.md +10 -0
  29. package/assets/worker-kits/growthub-agency-portal-starter-v1/brands/_template/brand-kit.md +27 -0
  30. package/assets/worker-kits/growthub-agency-portal-starter-v1/brands/growthub/brand-kit.md +25 -0
  31. package/assets/worker-kits/growthub-agency-portal-starter-v1/bundles/growthub-agency-portal-starter-v1.json +65 -0
  32. package/assets/worker-kits/growthub-agency-portal-starter-v1/docs/adapter-contracts.md +79 -0
  33. package/assets/worker-kits/growthub-agency-portal-starter-v1/docs/fork-sync-integration.md +32 -0
  34. package/assets/worker-kits/growthub-agency-portal-starter-v1/docs/governed-workspace-primitives.md +182 -0
  35. package/assets/worker-kits/growthub-agency-portal-starter-v1/docs/starter-kit-overview.md +30 -0
  36. package/assets/worker-kits/growthub-agency-portal-starter-v1/docs/vercel-serverless-deployment.md +46 -0
  37. package/assets/worker-kits/growthub-agency-portal-starter-v1/docs/vite-ui-shell-guide.md +24 -0
  38. package/assets/worker-kits/growthub-agency-portal-starter-v1/examples/portal-brief-sample.md +44 -0
  39. package/assets/worker-kits/growthub-agency-portal-starter-v1/examples/workspace-sample.md +10 -0
  40. package/assets/worker-kits/growthub-agency-portal-starter-v1/growthub-meta/README.md +11 -0
  41. package/assets/worker-kits/growthub-agency-portal-starter-v1/growthub-meta/kit-standard.md +16 -0
  42. package/assets/worker-kits/growthub-agency-portal-starter-v1/helpers/README.md +49 -0
  43. package/assets/worker-kits/growthub-agency-portal-starter-v1/kit.json +156 -0
  44. package/assets/worker-kits/growthub-agency-portal-starter-v1/output/README.md +13 -0
  45. package/assets/worker-kits/growthub-agency-portal-starter-v1/output-standards.md +25 -0
  46. package/assets/worker-kits/growthub-agency-portal-starter-v1/runtime-assumptions.md +15 -0
  47. package/assets/worker-kits/growthub-agency-portal-starter-v1/setup/check-deps.sh +20 -0
  48. package/assets/worker-kits/growthub-agency-portal-starter-v1/setup/verify-env.mjs +92 -0
  49. package/assets/worker-kits/growthub-agency-portal-starter-v1/skills/README.md +55 -0
  50. package/assets/worker-kits/growthub-agency-portal-starter-v1/skills.md +133 -0
  51. package/assets/worker-kits/growthub-agency-portal-starter-v1/studio/index.html +12 -0
  52. package/assets/worker-kits/growthub-agency-portal-starter-v1/studio/package-lock.json +1677 -0
  53. package/assets/worker-kits/growthub-agency-portal-starter-v1/studio/package.json +20 -0
  54. package/assets/worker-kits/growthub-agency-portal-starter-v1/studio/serve.mjs +42 -0
  55. package/assets/worker-kits/growthub-agency-portal-starter-v1/studio/src/App.jsx +162 -0
  56. package/assets/worker-kits/growthub-agency-portal-starter-v1/studio/src/app.css +138 -0
  57. package/assets/worker-kits/growthub-agency-portal-starter-v1/studio/src/main.jsx +10 -0
  58. package/assets/worker-kits/growthub-agency-portal-starter-v1/studio/vite.config.js +8 -0
  59. package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/agent-contract.md +9 -0
  60. package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/client-onboarding-plan.md +56 -0
  61. package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/deployment-handoff.md +61 -0
  62. package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/deployment-plan.md +22 -0
  63. package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/portal-brief.md +65 -0
  64. package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/project.md +55 -0
  65. package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/self-eval.md +67 -0
  66. package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/supabase-setup-plan.md +26 -0
  67. package/assets/worker-kits/growthub-agency-portal-starter-v1/templates/workspace-brief.md +11 -0
  68. package/assets/worker-kits/growthub-agency-portal-starter-v1/validation-checklist.md +32 -0
  69. package/assets/worker-kits/growthub-agency-portal-starter-v1/workers/agency-portal-operator/CLAUDE.md +75 -0
  70. package/assets/worker-kits/growthub-creative-video-pipeline-v1/.env.example +28 -0
  71. package/assets/worker-kits/growthub-creative-video-pipeline-v1/QUICKSTART.md +118 -0
  72. package/assets/worker-kits/growthub-creative-video-pipeline-v1/SKILL.md +103 -0
  73. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/.env.example +20 -0
  74. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/README.md +33 -0
  75. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/app/api/pipeline/route.js +27 -0
  76. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/app/globals.css +203 -0
  77. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/app/layout.jsx +14 -0
  78. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/app/page.jsx +131 -0
  79. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/app/settings/keys/page.jsx +154 -0
  80. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/lib/adapters/env.js +14 -0
  81. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/lib/adapters/generative/index.js +31 -0
  82. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/lib/domain/pipeline.js +30 -0
  83. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/next.config.js +10 -0
  84. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/package-lock.json +17 -0
  85. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/package.json +17 -0
  86. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/postcss.config.mjs +3 -0
  87. package/assets/worker-kits/growthub-creative-video-pipeline-v1/apps/creative-video-pipeline/vercel.json +5 -0
  88. package/assets/worker-kits/growthub-creative-video-pipeline-v1/brands/NEW-CLIENT.md +21 -0
  89. package/assets/worker-kits/growthub-creative-video-pipeline-v1/brands/_template/brand-kit.md +123 -0
  90. package/assets/worker-kits/growthub-creative-video-pipeline-v1/brands/growthub/brand-kit.md +123 -0
  91. package/assets/worker-kits/growthub-creative-video-pipeline-v1/bundles/growthub-creative-video-pipeline-v1.json +83 -0
  92. package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/adapter-contracts.md +73 -0
  93. package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/governed-workspace-primitives.md +50 -0
  94. package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/pipeline-architecture.md +61 -0
  95. package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/starter-kit-overview.md +33 -0
  96. package/assets/worker-kits/growthub-creative-video-pipeline-v1/docs/vercel-deployment.md +42 -0
  97. package/assets/worker-kits/growthub-creative-video-pipeline-v1/examples/pipeline-brief-sample.md +56 -0
  98. package/assets/worker-kits/growthub-creative-video-pipeline-v1/growthub-meta/README.md +9 -0
  99. package/assets/worker-kits/growthub-creative-video-pipeline-v1/growthub-meta/kit-standard.md +24 -0
  100. package/assets/worker-kits/growthub-creative-video-pipeline-v1/helpers/README.md +8 -0
  101. package/assets/worker-kits/growthub-creative-video-pipeline-v1/helpers/check-generative-adapter.sh +41 -0
  102. package/assets/worker-kits/growthub-creative-video-pipeline-v1/helpers/run-pipeline.sh +30 -0
  103. package/assets/worker-kits/growthub-creative-video-pipeline-v1/kit.json +148 -0
  104. package/assets/worker-kits/growthub-creative-video-pipeline-v1/output/README.md +23 -0
  105. package/assets/worker-kits/growthub-creative-video-pipeline-v1/output-standards.md +63 -0
  106. package/assets/worker-kits/growthub-creative-video-pipeline-v1/runtime-assumptions.md +61 -0
  107. package/assets/worker-kits/growthub-creative-video-pipeline-v1/setup/check-deps.sh +63 -0
  108. package/assets/worker-kits/growthub-creative-video-pipeline-v1/setup/clone-fork.sh +18 -0
  109. package/assets/worker-kits/growthub-creative-video-pipeline-v1/setup/install-skill.sh +10 -0
  110. package/assets/worker-kits/growthub-creative-video-pipeline-v1/setup/verify-env.mjs +50 -0
  111. package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/README.md +11 -0
  112. package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/brief-generation/SKILL.md +42 -0
  113. package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/generative-execution/SKILL.md +86 -0
  114. package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills/video-edit/SKILL.md +41 -0
  115. package/assets/worker-kits/growthub-creative-video-pipeline-v1/skills.md +302 -0
  116. package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/index.html +12 -0
  117. package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/package-lock.json +20 -0
  118. package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/package.json +20 -0
  119. package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/serve.mjs +41 -0
  120. package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/src/App.jsx +210 -0
  121. package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/src/app.css +194 -0
  122. package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/src/main.jsx +10 -0
  123. package/assets/worker-kits/growthub-creative-video-pipeline-v1/studio/vite.config.js +8 -0
  124. package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/edit-plan.md +66 -0
  125. package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/generative-plan.md +83 -0
  126. package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/pipeline-brief.md +129 -0
  127. package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/project.md +68 -0
  128. package/assets/worker-kits/growthub-creative-video-pipeline-v1/templates/self-eval.md +67 -0
  129. package/assets/worker-kits/growthub-creative-video-pipeline-v1/validation-checklist.md +52 -0
  130. package/assets/worker-kits/growthub-creative-video-pipeline-v1/workers/creative-video-pipeline-operator/CLAUDE.md +109 -0
  131. package/dist/index.js +42 -33
  132. 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 |
@@ -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.
@@ -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`
@@ -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`