@growthub/cli 0.7.8 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/assets/worker-kits/creative-strategist-v1/SKILL.md +95 -0
  2. package/assets/worker-kits/creative-strategist-v1/bundles/creative-strategist-v1.json +12 -2
  3. package/assets/worker-kits/creative-strategist-v1/helpers/README.md +29 -0
  4. package/assets/worker-kits/creative-strategist-v1/helpers/extract-muse-frames.sh +81 -0
  5. package/assets/worker-kits/creative-strategist-v1/helpers/grep-hooks.sh +62 -0
  6. package/assets/worker-kits/creative-strategist-v1/kit.json +20 -2
  7. package/assets/worker-kits/creative-strategist-v1/skills/README.md +23 -0
  8. package/assets/worker-kits/creative-strategist-v1/skills/frame-analysis/SKILL.md +88 -0
  9. package/assets/worker-kits/creative-strategist-v1/templates/project.md +48 -0
  10. package/assets/worker-kits/creative-strategist-v1/templates/self-eval.md +67 -0
  11. package/assets/worker-kits/creative-strategist-v1/workers/creative-strategist/CLAUDE.md +22 -0
  12. package/assets/worker-kits/growthub-ai-website-cloner-v1/SKILL.md +89 -0
  13. package/assets/worker-kits/growthub-ai-website-cloner-v1/bundles/growthub-ai-website-cloner-v1.json +9 -2
  14. package/assets/worker-kits/growthub-ai-website-cloner-v1/helpers/README.md +29 -0
  15. package/assets/worker-kits/growthub-ai-website-cloner-v1/kit.json +14 -2
  16. package/assets/worker-kits/growthub-ai-website-cloner-v1/skills/README.md +23 -0
  17. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/project.md +48 -0
  18. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/self-eval.md +67 -0
  19. package/assets/worker-kits/growthub-ai-website-cloner-v1/workers/ai-website-cloner-operator/CLAUDE.md +22 -0
  20. package/assets/worker-kits/growthub-custom-workspace-starter-v1/SKILL.md +122 -0
  21. package/assets/worker-kits/growthub-custom-workspace-starter-v1/bundles/growthub-custom-workspace-starter-v1.json +14 -2
  22. package/assets/worker-kits/growthub-custom-workspace-starter-v1/docs/governed-workspace-primitives.md +182 -0
  23. package/assets/worker-kits/growthub-custom-workspace-starter-v1/helpers/README.md +44 -0
  24. package/assets/worker-kits/growthub-custom-workspace-starter-v1/kit.json +16 -2
  25. package/assets/worker-kits/growthub-custom-workspace-starter-v1/skills/README.md +55 -0
  26. package/assets/worker-kits/growthub-custom-workspace-starter-v1/templates/project.md +55 -0
  27. package/assets/worker-kits/growthub-custom-workspace-starter-v1/templates/self-eval.md +67 -0
  28. package/assets/worker-kits/growthub-custom-workspace-starter-v1/workers/custom-workspace-operator/CLAUDE.md +24 -2
  29. package/assets/worker-kits/growthub-email-marketing-v1/SKILL.md +90 -0
  30. package/assets/worker-kits/growthub-email-marketing-v1/bundles/growthub-email-marketing-v1.json +9 -2
  31. package/assets/worker-kits/growthub-email-marketing-v1/helpers/README.md +29 -0
  32. package/assets/worker-kits/growthub-email-marketing-v1/kit.json +14 -2
  33. package/assets/worker-kits/growthub-email-marketing-v1/skills/README.md +23 -0
  34. package/assets/worker-kits/growthub-email-marketing-v1/templates/project.md +48 -0
  35. package/assets/worker-kits/growthub-email-marketing-v1/templates/self-eval.md +67 -0
  36. package/assets/worker-kits/growthub-email-marketing-v1/workers/email-marketing-strategist/CLAUDE.md +22 -0
  37. package/assets/worker-kits/growthub-geo-seo-v1/SKILL.md +90 -0
  38. package/assets/worker-kits/growthub-geo-seo-v1/bundles/growthub-geo-seo-v1.json +12 -3
  39. package/assets/worker-kits/growthub-geo-seo-v1/helpers/README.md +29 -0
  40. package/assets/worker-kits/growthub-geo-seo-v1/kit.json +23 -5
  41. package/assets/worker-kits/growthub-geo-seo-v1/skills/README.md +23 -0
  42. package/assets/worker-kits/growthub-geo-seo-v1/templates/project.md +48 -0
  43. package/assets/worker-kits/growthub-geo-seo-v1/templates/self-eval.md +67 -0
  44. package/assets/worker-kits/growthub-geo-seo-v1/workers/geo-seo-operator/CLAUDE.md +22 -0
  45. package/assets/worker-kits/growthub-hyperframes-studio-v1/SKILL.md +89 -0
  46. package/assets/worker-kits/growthub-hyperframes-studio-v1/bundles/growthub-hyperframes-studio-v1.json +6 -1
  47. package/assets/worker-kits/growthub-hyperframes-studio-v1/helpers/README.md +29 -0
  48. package/assets/worker-kits/growthub-hyperframes-studio-v1/kit.json +14 -2
  49. package/assets/worker-kits/growthub-hyperframes-studio-v1/skills/README.md +23 -0
  50. package/assets/worker-kits/growthub-hyperframes-studio-v1/templates/project.md +48 -0
  51. package/assets/worker-kits/growthub-hyperframes-studio-v1/templates/self-eval.md +67 -0
  52. package/assets/worker-kits/growthub-hyperframes-studio-v1/workers/hyperframes-studio-operator/CLAUDE.md +22 -0
  53. package/assets/worker-kits/growthub-marketing-skills-v1/SKILL.md +90 -0
  54. package/assets/worker-kits/growthub-marketing-skills-v1/bundles/growthub-marketing-skills-v1.json +12 -3
  55. package/assets/worker-kits/growthub-marketing-skills-v1/helpers/README.md +29 -0
  56. package/assets/worker-kits/growthub-marketing-skills-v1/kit.json +23 -5
  57. package/assets/worker-kits/growthub-marketing-skills-v1/skills/README.md +23 -0
  58. package/assets/worker-kits/growthub-marketing-skills-v1/templates/project.md +48 -0
  59. package/assets/worker-kits/growthub-marketing-skills-v1/templates/self-eval.md +67 -0
  60. package/assets/worker-kits/growthub-marketing-skills-v1/workers/marketing-operator/CLAUDE.md +22 -0
  61. package/assets/worker-kits/growthub-open-higgsfield-studio-v1/SKILL.md +89 -0
  62. package/assets/worker-kits/growthub-open-higgsfield-studio-v1/bundles/growthub-open-higgsfield-studio-v1.json +9 -2
  63. package/assets/worker-kits/growthub-open-higgsfield-studio-v1/helpers/README.md +29 -0
  64. package/assets/worker-kits/growthub-open-higgsfield-studio-v1/kit.json +14 -2
  65. package/assets/worker-kits/growthub-open-higgsfield-studio-v1/skills/README.md +23 -0
  66. package/assets/worker-kits/growthub-open-higgsfield-studio-v1/templates/project.md +48 -0
  67. package/assets/worker-kits/growthub-open-higgsfield-studio-v1/templates/self-eval.md +67 -0
  68. package/assets/worker-kits/growthub-open-higgsfield-studio-v1/workers/open-higgsfield-studio-operator/CLAUDE.md +22 -0
  69. package/assets/worker-kits/growthub-open-montage-studio-v1/SKILL.md +89 -0
  70. package/assets/worker-kits/growthub-open-montage-studio-v1/bundles/growthub-open-montage-studio-v1.json +9 -2
  71. package/assets/worker-kits/growthub-open-montage-studio-v1/helpers/README.md +29 -0
  72. package/assets/worker-kits/growthub-open-montage-studio-v1/kit.json +14 -2
  73. package/assets/worker-kits/growthub-open-montage-studio-v1/skills/README.md +23 -0
  74. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/project.md +48 -0
  75. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/self-eval.md +67 -0
  76. package/assets/worker-kits/growthub-open-montage-studio-v1/workers/open-montage-studio-operator/CLAUDE.md +22 -0
  77. package/assets/worker-kits/growthub-postiz-social-v1/SKILL.md +90 -0
  78. package/assets/worker-kits/growthub-postiz-social-v1/bundles/growthub-postiz-social-v1.json +9 -2
  79. package/assets/worker-kits/growthub-postiz-social-v1/helpers/README.md +29 -0
  80. package/assets/worker-kits/growthub-postiz-social-v1/kit.json +14 -2
  81. package/assets/worker-kits/growthub-postiz-social-v1/skills/README.md +23 -0
  82. package/assets/worker-kits/growthub-postiz-social-v1/templates/project.md +48 -0
  83. package/assets/worker-kits/growthub-postiz-social-v1/templates/self-eval.md +67 -0
  84. package/assets/worker-kits/growthub-postiz-social-v1/workers/postiz-social-operator/CLAUDE.md +22 -0
  85. package/assets/worker-kits/growthub-twenty-crm-v1/SKILL.md +89 -0
  86. package/assets/worker-kits/growthub-twenty-crm-v1/bundles/growthub-twenty-crm-v1.json +9 -2
  87. package/assets/worker-kits/growthub-twenty-crm-v1/helpers/README.md +29 -0
  88. package/assets/worker-kits/growthub-twenty-crm-v1/kit.json +14 -2
  89. package/assets/worker-kits/growthub-twenty-crm-v1/skills/README.md +23 -0
  90. package/assets/worker-kits/growthub-twenty-crm-v1/templates/project.md +48 -0
  91. package/assets/worker-kits/growthub-twenty-crm-v1/templates/self-eval.md +67 -0
  92. package/assets/worker-kits/growthub-twenty-crm-v1/workers/twenty-crm-operator/CLAUDE.md +22 -0
  93. package/assets/worker-kits/growthub-video-use-studio-v1/.env.example +13 -0
  94. package/assets/worker-kits/growthub-video-use-studio-v1/QUICKSTART.md +47 -0
  95. package/assets/worker-kits/growthub-video-use-studio-v1/SKILL.md +89 -0
  96. package/assets/worker-kits/growthub-video-use-studio-v1/brands/NEW-CLIENT.md +3 -0
  97. package/assets/worker-kits/growthub-video-use-studio-v1/brands/_template/brand-kit.md +7 -0
  98. package/assets/worker-kits/growthub-video-use-studio-v1/brands/growthub/brand-kit.md +6 -0
  99. package/assets/worker-kits/growthub-video-use-studio-v1/bundles/growthub-video-use-studio-v1.json +54 -0
  100. package/assets/worker-kits/growthub-video-use-studio-v1/docs/provider-adapter-layer.md +15 -0
  101. package/assets/worker-kits/growthub-video-use-studio-v1/docs/video-use-discovery-path.md +13 -0
  102. package/assets/worker-kits/growthub-video-use-studio-v1/docs/video-use-fork-integration.md +35 -0
  103. package/assets/worker-kits/growthub-video-use-studio-v1/examples/video-brief-sample.md +11 -0
  104. package/assets/worker-kits/growthub-video-use-studio-v1/growthub-meta/README.md +3 -0
  105. package/assets/worker-kits/growthub-video-use-studio-v1/growthub-meta/kit-standard.md +6 -0
  106. package/assets/worker-kits/growthub-video-use-studio-v1/helpers/README.md +29 -0
  107. package/assets/worker-kits/growthub-video-use-studio-v1/kit.json +112 -0
  108. package/assets/worker-kits/growthub-video-use-studio-v1/output/README.md +9 -0
  109. package/assets/worker-kits/growthub-video-use-studio-v1/output-standards.md +19 -0
  110. package/assets/worker-kits/growthub-video-use-studio-v1/runtime-assumptions.md +9 -0
  111. package/assets/worker-kits/growthub-video-use-studio-v1/setup/check-deps.sh +21 -0
  112. package/assets/worker-kits/growthub-video-use-studio-v1/setup/clone-fork.sh +18 -0
  113. package/assets/worker-kits/growthub-video-use-studio-v1/setup/install-skill.sh +23 -0
  114. package/assets/worker-kits/growthub-video-use-studio-v1/setup/verify-env.mjs +23 -0
  115. package/assets/worker-kits/growthub-video-use-studio-v1/skills/README.md +23 -0
  116. package/assets/worker-kits/growthub-video-use-studio-v1/skills.md +21 -0
  117. package/assets/worker-kits/growthub-video-use-studio-v1/templates/edit-decision-list.md +17 -0
  118. package/assets/worker-kits/growthub-video-use-studio-v1/templates/edit-strategy.md +11 -0
  119. package/assets/worker-kits/growthub-video-use-studio-v1/templates/project.md +48 -0
  120. package/assets/worker-kits/growthub-video-use-studio-v1/templates/qa-checklist.md +21 -0
  121. package/assets/worker-kits/growthub-video-use-studio-v1/templates/render-plan.md +40 -0
  122. package/assets/worker-kits/growthub-video-use-studio-v1/templates/self-eval.md +67 -0
  123. package/assets/worker-kits/growthub-video-use-studio-v1/templates/video-brief.md +11 -0
  124. package/assets/worker-kits/growthub-video-use-studio-v1/validation-checklist.md +11 -0
  125. package/assets/worker-kits/growthub-video-use-studio-v1/workers/video-use-studio-operator/CLAUDE.md +93 -0
  126. package/assets/worker-kits/growthub-zernio-social-v1/SKILL.md +90 -0
  127. package/assets/worker-kits/growthub-zernio-social-v1/bundles/growthub-zernio-social-v1.json +9 -2
  128. package/assets/worker-kits/growthub-zernio-social-v1/helpers/README.md +29 -0
  129. package/assets/worker-kits/growthub-zernio-social-v1/kit.json +14 -2
  130. package/assets/worker-kits/growthub-zernio-social-v1/skills/README.md +23 -0
  131. package/assets/worker-kits/growthub-zernio-social-v1/templates/project.md +48 -0
  132. package/assets/worker-kits/growthub-zernio-social-v1/templates/self-eval.md +67 -0
  133. package/assets/worker-kits/growthub-zernio-social-v1/workers/zernio-social-operator/CLAUDE.md +22 -0
  134. package/dist/index.js +974 -233
  135. package/package.json +2 -2
@@ -0,0 +1,9 @@
1
+ # Runtime Assumptions
2
+
3
+ - Upstream project: `https://github.com/browser-use/video-use`
4
+ - Python `>=3.11` with `pip` available
5
+ - `ffmpeg` available in PATH (required)
6
+ - `yt-dlp` available in PATH (optional — only for downloading online sources)
7
+ - `ELEVENLABS_API_KEY` set in `.env` — required for transcript generation via ElevenLabs Scribe
8
+ - `~/.claude/skills/video-use` symlink present — set up by `setup/install-skill.sh`
9
+ - Commands run from an exported working directory; raw footage lives under `${VIDEO_USE_HOME}/<project>/`
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ need_cmd() {
5
+ command -v "$1" >/dev/null 2>&1 || {
6
+ echo "Missing dependency: $1" >&2
7
+ exit 1
8
+ }
9
+ }
10
+
11
+ optional_cmd() {
12
+ if ! command -v "$1" >/dev/null 2>&1; then
13
+ echo "Optional dependency not found: $1 (only needed for downloading online sources)" >&2
14
+ fi
15
+ }
16
+
17
+ need_cmd python3
18
+ need_cmd pip3
19
+ need_cmd git
20
+ need_cmd ffmpeg
21
+ optional_cmd yt-dlp
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ REPO_URL="${VIDEO_USE_REPO_URL:-https://github.com/browser-use/video-use}"
5
+ # Canonical: VIDEO_USE_HOME. Legacy alias: VIDEO_USE_FORK_PATH.
6
+ LOCAL_PATH="${VIDEO_USE_HOME:-${VIDEO_USE_FORK_PATH:-$HOME/video-use}}"
7
+
8
+ if [ -d "${LOCAL_PATH}/.git" ]; then
9
+ git -C "${LOCAL_PATH}" fetch origin
10
+ git -C "${LOCAL_PATH}" pull --ff-only
11
+ else
12
+ git clone "${REPO_URL}" "${LOCAL_PATH}"
13
+ fi
14
+
15
+ # Install the upstream package in editable mode so the CLI + skill resolve correctly.
16
+ if command -v pip3 >/dev/null 2>&1; then
17
+ (cd "${LOCAL_PATH}" && pip3 install -e .)
18
+ fi
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ # Register the video-use fork as a Claude Code skill per the upstream README contract.
5
+ # Canonical: VIDEO_USE_HOME. Legacy alias: VIDEO_USE_FORK_PATH.
6
+ LOCAL_PATH="${VIDEO_USE_HOME:-${VIDEO_USE_FORK_PATH:-$HOME/video-use}}"
7
+ SKILLS_DIR="${CLAUDE_SKILLS_DIR:-$HOME/.claude/skills}"
8
+ LINK_PATH="${SKILLS_DIR}/video-use"
9
+
10
+ if [ ! -d "${LOCAL_PATH}" ]; then
11
+ echo "video-use fork not found at ${LOCAL_PATH}. Run setup/clone-fork.sh first." >&2
12
+ exit 1
13
+ fi
14
+
15
+ mkdir -p "${SKILLS_DIR}"
16
+
17
+ if [ -L "${LINK_PATH}" ] || [ -e "${LINK_PATH}" ]; then
18
+ echo "Skill entry already present at ${LINK_PATH}. Leaving as-is." >&2
19
+ exit 0
20
+ fi
21
+
22
+ ln -s "${LOCAL_PATH}" "${LINK_PATH}"
23
+ echo "Linked ${LOCAL_PATH} -> ${LINK_PATH}"
@@ -0,0 +1,23 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+
4
+ const envPath = path.resolve(process.cwd(), ".env");
5
+ if (!fs.existsSync(envPath)) {
6
+ console.error(".env not found. Run: cp .env.example .env");
7
+ process.exit(1);
8
+ }
9
+
10
+ const raw = fs.readFileSync(envPath, "utf8");
11
+
12
+ // Canonical: VIDEO_USE_HOME. Legacy alias: VIDEO_USE_FORK_PATH.
13
+ if (!raw.includes("VIDEO_USE_HOME=") && !raw.includes("VIDEO_USE_FORK_PATH=")) {
14
+ console.error("VIDEO_USE_HOME (or legacy VIDEO_USE_FORK_PATH) is required in .env");
15
+ process.exit(1);
16
+ }
17
+
18
+ if (!/ELEVENLABS_API_KEY=\S/.test(raw) || /ELEVENLABS_API_KEY=your_elevenlabs_key_here/.test(raw)) {
19
+ console.error("ELEVENLABS_API_KEY is required in .env (for ElevenLabs Scribe transcription)");
20
+ process.exit(1);
21
+ }
22
+
23
+ console.log("Environment check passed.");
@@ -0,0 +1,23 @@
1
+ # `skills/` — nested sub-skill convention (primitive #5)
2
+
3
+ A **sub-skill** is a full `SKILL.md`-addressable lane that a parent skill can spawn as a parallel sub-agent.
4
+
5
+ ## Convention
6
+
7
+ ```
8
+ skills/
9
+ ├── README.md # this file
10
+ └── <slug>/ # kebab-case; matches the SKILL.md name
11
+ ├── SKILL.md # frontmatter + routing body (≤ 500 lines)
12
+ ├── references/ # optional — long docs loaded on demand
13
+ ├── templates/ # optional — reusable text/JS templates
14
+ └── scripts/ # optional — deterministic helpers
15
+ ```
16
+
17
+ Each sub-skill's frontmatter follows `@growthub/api-contract/skills::SkillManifest`. Sub-skills share the parent's `.growthub-fork/project.md` journal — they do not branch it.
18
+
19
+ ## Parallelism
20
+
21
+ Spawn a sub-skill sub-agent when (a) the sub-skill's work is fully scoped by its own criteria, and (b) the parent's next step does not depend on intermediate state from the sub-skill. Each sub-skill run appends a row to `project.md::subSkillRuns` so the parent can read the outcome on return.
22
+
23
+ See the parent `SKILL.md` `subSkills[]` array for the current roster.
@@ -0,0 +1,21 @@
1
+ # Video Use Studio Skills
2
+
3
+ 1. Read `runtime-assumptions.md`.
4
+ 2. Read `docs/video-use-fork-integration.md`.
5
+ 3. Confirm target format: content type, target length, aesthetic direction.
6
+ 4. Produce, in order:
7
+ - `templates/video-brief.md` — source inventory, goal, audience, duration
8
+ - `templates/edit-strategy.md` — 4–8 sentence proposed approach, wait for confirmation
9
+ - `templates/edit-decision-list.md` — transcript-anchored EDL with word-boundary cuts
10
+ - `templates/render-plan.md` — FFmpeg commands, overlay tool choice (Manim / Remotion / PIL)
11
+ - `templates/qa-checklist.md` — twelve production rules pass, subtitles-last validation
12
+
13
+ Non-negotiable rules enforced by this kit:
14
+
15
+ - Subtitles are applied last, after all overlays.
16
+ - 30 ms audio fades at every segment boundary.
17
+ - Word-boundary snapping for every cut; never cut inside a word.
18
+ - Overlays use `setpts=PTS-STARTPTS+T/TB` for timing.
19
+ - Cached transcripts are reused; never re-transcribe a source twice.
20
+
21
+ Use deterministic command paths. Resolve workspace with `${VIDEO_USE_HOME:-$HOME/video-use}`. Never expose `ELEVENLABS_API_KEY` in output artifacts.
@@ -0,0 +1,17 @@
1
+ # Edit Decision List
2
+
3
+ Every cut is snapped to a word boundary from the packed transcript. Timestamps are source-relative (HH:MM:SS.mmm). Never cut inside a word.
4
+
5
+ | # | Source file | In (word-boundary) | Out (word-boundary) | Pad (ms) | Overlay | Notes |
6
+ |---|---|---|---|---|---|---|
7
+ | | | | | | | |
8
+
9
+ ## Overlay references
10
+
11
+ - Overlay tool (Manim / Remotion / PIL):
12
+ - Timing shift formula: `setpts=PTS-STARTPTS+T/TB`
13
+
14
+ ## Caption strategy
15
+
16
+ - Packed phrase-level transcript path:
17
+ - Subtitles applied last, after all overlays.
@@ -0,0 +1,11 @@
1
+ # Edit Strategy
2
+
3
+ 4–8 sentences describing the proposed edit approach. The user must confirm this document in plain English before an EDL is generated.
4
+
5
+ - Opening hook:
6
+ - Core through-line:
7
+ - Pacing bias (tight / breathing / mixed):
8
+ - Aesthetic direction (grade, overlay tool, typography):
9
+ - Captions strategy:
10
+ - Target length + rationale:
11
+ - Risks to surface during self-evaluation:
@@ -0,0 +1,48 @@
1
+ ---
2
+ # .growthub-fork/project.md — session memory primitive (v1)
3
+ #
4
+ # Written by the CLI at init/import time. Append-only, human-readable; sits
5
+ # alongside the machine-readable `trace.jsonl`. Approvals, self-eval outcomes,
6
+ # and sub-skill runs all record here.
7
+ #
8
+ # Replaceable tokens (seeded at init time):
9
+ # {{KIT_ID}} {{FORK_ID}} {{STARTED_AT}} {{SOURCE}} {{SOURCE_REF}}
10
+
11
+ kitId: "{{KIT_ID}}"
12
+ forkId: "{{FORK_ID}}"
13
+ startedAt: "{{STARTED_AT}}"
14
+ source: "{{SOURCE}}"
15
+ sourceRef: "{{SOURCE_REF}}"
16
+ skillManifestVersion: 1
17
+ approvals: []
18
+ selfEvalHistory: []
19
+ subSkillRuns: []
20
+ ---
21
+
22
+ # Project journal — fork `{{FORK_ID}}`
23
+
24
+ Baseline primitive: `{{KIT_ID}}`. Seeded at `{{STARTED_AT}}` from `{{SOURCE}}` (`{{SOURCE_REF}}`).
25
+
26
+ This is your cross-session continuity surface. Read the last few entries before every session; append after every material change, approval, and self-eval boundary.
27
+
28
+ ## How to use this file
29
+
30
+ 1. **Session start.** Read the last 3 entries + tail 20 events in `.growthub-fork/trace.jsonl`. State your plan.
31
+ 2. **Material change.** Record as a dated bullet (what, why, outcome). Simultaneously append a typed event to `trace.jsonl` via the Fork Sync Agent — never bypass.
32
+ 3. **Approval boundary.** Add a row to `approvals` in the frontmatter (verbatim decision).
33
+ 4. **Self-eval boundary.** Append to `selfEvalHistory`: `attempt`, `criteria`, `outcome`, `notes`. Enforce `maxRetries: 3`.
34
+ 5. **Sub-skill spawn.** Append to `subSkillRuns`: `subSkill`, `startedAt`, `result`.
35
+
36
+ ## Session log
37
+
38
+ <!-- Append newest entries at the bottom. Format:
39
+
40
+ ### {{YYYY-MM-DD HH:mm UTC}} · {{skill-slug}}
41
+ - **Plan.** What you intend to do.
42
+ - **Changes.** Material changes (each must correspond to a trace event).
43
+ - **Outcome.** Pass / fail / parked. Reference self-eval criteria.
44
+ - **Next.** What the next session should pick up.
45
+
46
+ -->
47
+
48
+ _No sessions recorded yet. Populated as the fork is operated._
@@ -0,0 +1,21 @@
1
+ # QA Checklist — Twelve Production Rules
2
+
3
+ - [ ] Subtitles applied last, after every overlay
4
+ - [ ] 30 ms audio fade at every segment boundary
5
+ - [ ] Overlays shifted with `setpts=PTS-STARTPTS+T/TB`
6
+ - [ ] Every cut snapped to a word boundary
7
+ - [ ] Cut edges padded 30–200 ms
8
+ - [ ] No cut inside a word
9
+ - [ ] No re-transcription of a cached source
10
+ - [ ] Caption alignment matches the packed phrase-level transcript
11
+ - [ ] 30 ms fade-out on every overlay exit
12
+ - [ ] Subtitle sequencing respects speaker turns
13
+ - [ ] Output validated (duration, codec, resolution) before handoff
14
+ - [ ] Every destructive edit decision appended to `project.md`
15
+
16
+ ## Delivery checks
17
+
18
+ - [ ] Duration matches brief (± 500 ms)
19
+ - [ ] Aspect ratio correct
20
+ - [ ] Audio sync verified
21
+ - [ ] `${VIDEO_USE_HOME}/<project>/edit/final.mp4` exists and plays end-to-end
@@ -0,0 +1,40 @@
1
+ # Render Plan
2
+
3
+ ## Source resolution
4
+
5
+ ```bash
6
+ WORKSPACE="${VIDEO_USE_HOME:-${VIDEO_USE_FORK_PATH:-$HOME/video-use}}"
7
+ PROJECT_DIR="${WORKSPACE}/<project>"
8
+ ```
9
+
10
+ ## Transcription (idempotent — never re-transcribe a cached source)
11
+
12
+ ```bash
13
+ cd "${PROJECT_DIR}"
14
+ # ElevenLabs Scribe, keyed by ELEVENLABS_API_KEY from .env
15
+ python -m video_use.transcribe --source <input.mp4>
16
+ ```
17
+
18
+ ## Render
19
+
20
+ ```bash
21
+ cd "${PROJECT_DIR}"
22
+ python -m video_use.render \
23
+ --edl ../output/<client-slug>/<project-slug>/edit-decision-list.md \
24
+ --overlay <manim|remotion|pil> \
25
+ --out edit/final.mp4
26
+ ```
27
+
28
+ ## FFmpeg hard constraints
29
+
30
+ - 30 ms audio fade at every segment boundary.
31
+ - Word-boundary snapping for all cuts; pad edges 30–200 ms.
32
+ - Overlays shifted with `setpts=PTS-STARTPTS+T/TB`.
33
+ - Subtitles are applied last.
34
+
35
+ ## Checks
36
+
37
+ - Output path: `${PROJECT_DIR}/edit/final.mp4`
38
+ - Duration matches brief (± 500 ms)
39
+ - Codec: h264, audio: aac
40
+ - Self-evaluation loop runs up to 3 times before surfacing output
@@ -0,0 +1,67 @@
1
+ # Self-evaluation template — v1 primitive (Growthub, capability-agnostic)
2
+
3
+ A skill's `selfEval` contract declares **what good looks like** (`criteria[]`) and **the retry ceiling** (`maxRetries`). The agent drives the loop; this file is the pattern the agent follows at every unit of work.
4
+
5
+ The contract is defined in `@growthub/api-contract/skills::SkillSelfEval` and is **capability-agnostic** — the same primitive applies to code edits, copy drafts, CRM rules, API payloads, asset renders, audit passes, and every other domain. The "unit of work" is the smallest reversible change the skill operates on; concrete boundaries are defined in the kit's own `skills.md` operator runbook, not here.
6
+
7
+ ## Loop
8
+
9
+ ```
10
+ for attempt in 1..maxRetries: # default maxRetries = 3
11
+ generate — produce a proposal (whatever the skill produces)
12
+ apply — materialise the proposal against the fork
13
+ self-evaluate — for each criterion in skill.selfEval.criteria:
14
+ check → pass / fail / needs-confirmation
15
+ record — append to project.md (human) + trace.jsonl (machine)
16
+
17
+ if all criteria pass: break
18
+ if attempt == maxRetries: park with needs_confirmation note. Stop.
19
+ ```
20
+
21
+ ## What each attempt writes
22
+
23
+ ### Human row — append to `.growthub-fork/project.md` "Session log"
24
+
25
+ ```md
26
+ ### 2026-04-23 18:40 UTC · <skill-slug>
27
+ - **Plan.** What you intend to do this unit of work.
28
+ - **Changes.** Material change applied (must correspond to a trace event).
29
+ - **Self-eval.** attempt 2/3 — criterion "<one of skill.selfEval.criteria>" ✗ (<note>). Retrying.
30
+ - **Outcome.** retry-pending / pass / parked.
31
+ - **Next.** What the next attempt (or next session) should pick up.
32
+ ```
33
+
34
+ ### Machine row — append to `.growthub-fork/trace.jsonl` (via `appendKitForkTraceEvent`)
35
+
36
+ ```json
37
+ {
38
+ "ts": "2026-04-23T18:40:00.000Z",
39
+ "forkId": "<fork-id>",
40
+ "kitId": "<kit-id>",
41
+ "type": "self_eval_recorded",
42
+ "summary": "attempt 2/3 failed on <criterion>",
43
+ "detail": {
44
+ "skill": "<skill-slug>",
45
+ "attempt": 2,
46
+ "maxRetries": 3,
47
+ "criterion": "<one of skill.selfEval.criteria>",
48
+ "outcome": "fail",
49
+ "notes": "<short explanation>"
50
+ }
51
+ }
52
+ ```
53
+
54
+ ## Hard rules
55
+
56
+ 1. **Never exceed `maxRetries`.** At the ceiling, park with a `needs_confirmation` note and stop. Do not loop forever.
57
+ 2. **Record every attempt.** Even the first pass. Continuity depends on a complete journal.
58
+ 3. **Keep `project.md` and `trace.jsonl` in sync.** One without the other is a protocol violation.
59
+ 4. **Preserve prior entries.** Append-only. Never rewrite history.
60
+
61
+ ## Bound the blast radius
62
+
63
+ Evaluate at the smallest unit of work the skill operates on, not only at the end of a multi-step run. The retry ceiling applies to that unit — so a bad attempt does not sink the whole job.
64
+
65
+ What counts as a "unit of work" is **kit-specific** and lives in that kit's `skills.md` operator runbook — not in this agnostic template. A kit picks its own smallest reversible boundary and documents it in `skills.md`; this template does not prescribe one.
66
+
67
+ The agnostic SDK (`@growthub/api-contract/skills::SkillSelfEval`) does not encode any domain-specific boundaries — it only carries `criteria[]`, `maxRetries`, and `traceTo`. See `SKILL.md::selfEval.criteria` in this kit for the concrete checks, and `skills.md` for the kit-specific unit of work.
@@ -0,0 +1,11 @@
1
+ # Video Brief
2
+
3
+ - Goal:
4
+ - Audience:
5
+ - Source footage directory (`${VIDEO_USE_HOME}/<project>/`):
6
+ - Duration target:
7
+ - Aspect ratio:
8
+ - Delivery format: MP4 (h264)
9
+ - Aesthetic direction:
10
+ - Speakers / on-camera subjects:
11
+ - External sources to pull via `yt-dlp` (optional):
@@ -0,0 +1,11 @@
1
+ # Validation Checklist
2
+
3
+ - [ ] `bash setup/check-deps.sh` — Python, pip, git, ffmpeg present
4
+ - [ ] `node setup/verify-env.mjs` — `VIDEO_USE_HOME` and `ELEVENLABS_API_KEY` set
5
+ - [ ] `bash setup/clone-fork.sh` — video-use cloned and `pip install -e .` succeeded
6
+ - [ ] `bash setup/install-skill.sh` — `~/.claude/skills/video-use` symlink in place
7
+ - [ ] Source footage staged under `${VIDEO_USE_HOME}/<project>/`
8
+ - [ ] Planning artifacts written to `output/<client-slug>/<project-slug>/`
9
+ - [ ] `edit-strategy.md` confirmed before EDL generation
10
+ - [ ] Twelve production rules checklist passes in `qa-checklist.md`
11
+ - [ ] Final render exists at `${VIDEO_USE_HOME}/<project>/edit/final.mp4`
@@ -0,0 +1,93 @@
1
+ # Video Use Studio Operator
2
+
3
+ **Kit:** `growthub-video-use-studio-v1`
4
+ **Worker ID:** `video-use-studio-operator`
5
+ **Version:** `1.0.0`
6
+
7
+ ## Role
8
+
9
+ You convert raw footage and edit intent into implementation-ready video-use artifacts: a brief, a confirmed edit strategy, a transcript-anchored EDL, a render plan, and a QA pass. You operate the upstream [browser-use/video-use](https://github.com/browser-use/video-use) pipeline (transcription → packing → LLM reasoning → EDL → render → self-eval) from an exported working directory.
10
+
11
+ ## Required startup
12
+
13
+ 1. Read `skills.md`.
14
+ 2. Read `runtime-assumptions.md`.
15
+ 3. Read `docs/video-use-fork-integration.md`.
16
+ 4. Resolve `WORKSPACE="${VIDEO_USE_HOME:-${VIDEO_USE_FORK_PATH:-$HOME/video-use}}"`.
17
+ 5. Verify environment with `node setup/verify-env.mjs`.
18
+
19
+ If setup checks fail, stop and return remediation only. Do not invent API keys or hardcode machine paths.
20
+
21
+ ## Input contract
22
+
23
+ - Raw footage already staged under `${VIDEO_USE_HOME}/<project>/`.
24
+ - Brand kit at `brands/<client>/brand-kit.md` (copied from `brands/_template/`).
25
+ - User-supplied goal, target length, aesthetic direction.
26
+
27
+ ## Output artifacts
28
+
29
+ Write every planning deliverable to `output/<client-slug>/<project-slug>/`:
30
+
31
+ - `video-brief.md` — goal, audience, duration, ratio, delivery format
32
+ - `edit-strategy.md` — 4–8 sentence proposed approach, wait for explicit user confirmation before proceeding
33
+ - `edit-decision-list.md` — transcript-anchored cut list with word-boundary timestamps and overlay markers
34
+ - `render-plan.md` — FFmpeg filter graph, overlay tool choice, caption sequencing
35
+ - `qa-checklist.md` — twelve production rules pass
36
+
37
+ Rendered output is the upstream pipeline's responsibility:
38
+
39
+ - `${VIDEO_USE_HOME}/<project>/edit/final.mp4`
40
+
41
+ ## Fork integration
42
+
43
+ - Upstream contract: conversational edits via Claude Code skill at `~/.claude/skills/video-use`.
44
+ - Transcription: ElevenLabs Scribe (word-level, speaker-tagged, audio-event markers).
45
+ - Overlays: Manim / Remotion / PIL — operator chooses per project aesthetic.
46
+ - Session persistence: append each decision to `project.md` inside the source video directory.
47
+ - Self-evaluation loop: up to three iterative fixes before surfacing output to the user.
48
+
49
+ ## Non-negotiable production rules
50
+
51
+ 1. Subtitles last — applied after every overlay.
52
+ 2. 30 ms audio fade at every segment boundary.
53
+ 3. Overlays shifted with `setpts=PTS-STARTPTS+T/TB`.
54
+ 4. Word-boundary snapping for every cut.
55
+ 5. Pad cut edges with a 30–200 ms working window.
56
+ 6. Never cut inside a word.
57
+ 7. Never re-transcribe a cached source.
58
+ 8. Caption alignment matches the packed phrase-level transcript.
59
+ 9. 30 ms fade-out on every overlay exit.
60
+ 10. Subtitle sequencing respects speaker turns.
61
+ 11. Output is validated (duration, codec, resolution) before user handoff.
62
+ 12. Every destructive edit decision is logged to `project.md`.
63
+
64
+ ## Troubleshooting
65
+
66
+ - Missing `ELEVENLABS_API_KEY` → re-run `node setup/verify-env.mjs`.
67
+ - CORS / network failures on transcription → check the ElevenLabs key is active.
68
+ - `~/.claude/skills/video-use` missing → re-run `bash setup/install-skill.sh`.
69
+ - `ffmpeg`/`yt-dlp` not found → re-run `bash setup/check-deps.sh`.
70
+
71
+ Never write `.env` secrets into any output artifact. Never hardcode absolute user paths; always resolve through `${VIDEO_USE_HOME}` with a `$HOME/video-use` fallback.
72
+
73
+ ---
74
+
75
+ ## Governed-workspace primitives (v1.2)
76
+
77
+ This workspace carries the six architectural primitives every Growthub fork inherits. The contract is capability-agnostic (`@growthub/api-contract/skills::SkillManifest`); kit-specific specialisation lives in `skills.md` above.
78
+
79
+ 1. **`SKILL.md`** at the kit root — the discovery entry / routing menu. Read before `skills.md`.
80
+ 2. **Repo-root `AGENTS.md` pointer** — Cursor / Claude / Codex all read the same contract.
81
+ 3. **`.growthub-fork/project.md`** — session memory, seeded at init/import from `templates/project.md`. Append a dated entry after every material change.
82
+ 4. **Self-evaluation (`selfEval.criteria` + `maxRetries`)** — generate → apply → evaluate → record; retry up to 3; every attempt writes to both `project.md` (human) and `trace.jsonl` (machine). Use `recordSelfEval` (`cli/src/skills/self-eval.ts`); never bypass the fork-trace primitive.
83
+ 5. **Nested `skills/<slug>/SKILL.md`** — sub-skill lanes for parallel sub-agents on heavy or narrow work.
84
+ 6. **`helpers/<verb>.{sh,mjs,py}`** — safe shell tool layer; promote any inline shell that gets used twice.
85
+
86
+ Command surface from inside this fork:
87
+
88
+ - `growthub skills list` — enumerate this fork’s SKILL.md tree
89
+ - `growthub skills validate` — strict shape check
90
+ - `growthub skills session show` — print the current `.growthub-fork/project.md`
91
+ - `growthub skills session init --kit <kit-id>` — (re-)seed session memory
92
+
93
+ Full user-facing narrative: `cli/assets/worker-kits/growthub-custom-workspace-starter-v1/docs/governed-workspace-primitives.md` (also shipped into any workspace forked from the starter kit).
@@ -0,0 +1,90 @@
1
+ ---
2
+ name: growthub-zernio-social-v1
3
+ description: "Self-contained workspace for Zernio — the unified social media REST API for developers and AI agents. Use when the user says: \"zernio\", \"unified social api\", \"agent social posting\". Session memory tracks API calls, platform-specific payloads, and self-eval outcomes per post."
4
+ triggers:
5
+ - zernio social
6
+ - zernio social media studio
7
+ - fork growthub-zernio-social-v1
8
+ progressiveDisclosure: true
9
+ sessionMemory:
10
+ path: .growthub-fork/project.md
11
+ selfEval:
12
+ criteria:
13
+ - Operator contract (workers/zernio-social-operator/CLAUDE.md) read before any material change.
14
+ - .growthub-fork/project.md appended to at each material change.
15
+ - .growthub-fork/trace.jsonl receives a typed event for each material change.
16
+ - Kit-specific QUICKSTART / runtime-assumptions / output-standards honoured.
17
+ maxRetries: 3
18
+ traceTo: .growthub-fork/trace.jsonl
19
+ helpers: []
20
+ subSkills: []
21
+ mcpTools: []
22
+ ---
23
+
24
+ # Growthub Agent Worker Kit — Zernio Social Media Studio
25
+
26
+ Discovery entry + routing menu for the `growthub-zernio-social-v1` worker kit. Family: `studio`. Agent contract: `workers/zernio-social-operator/CLAUDE.md`.
27
+
28
+ ## When to use this skill
29
+
30
+ When the user's intent matches any of the triggers above — or when an agent has been dropped into a fork whose `.growthub-fork/fork.json` declares `kitId: "growthub-zernio-social-v1"`.
31
+
32
+ ## Decision tree
33
+
34
+ ```
35
+ Fork exists (this directory contains .growthub-fork/fork.json)?
36
+ ├── No → run: growthub starter init --out <path> (or import-repo / import-skill)
37
+ │ then: growthub kit download growthub-zernio-social-v1 --out <path>
38
+
39
+ └── Yes → read in this order:
40
+ 1. .growthub-fork/project.md — session memory (primitive #3)
41
+ 2. SKILL.md (this file) — routing menu (primitive #1)
42
+ 3. skills.md — operator runbook
43
+ 4. workers/zernio-social-operator/CLAUDE.md — agent contract
44
+ 5. QUICKSTART.md — first-run steps
45
+ 6. runtime-assumptions.md — host expectations
46
+ 7. .growthub-fork/policy.json — what you may touch
47
+ 8. .growthub-fork/trace.jsonl (tail 20) — recent machine history
48
+ ```
49
+
50
+ ## The six primitives (same shape across every Growthub worker kit)
51
+
52
+ 1. **`SKILL.md`** — this file.
53
+ 2. **Symlinked pointer** — repo-root `AGENTS.md` is authoritative.
54
+ 3. **`.growthub-fork/project.md`** — session memory, seeded by the CLI from `templates/project.md` at init/import time.
55
+ 4. **Self-evaluation** — generate → apply → evaluate → record; retry up to `selfEval.maxRetries` (default 3); mirrors the Fork Sync Agent's preview → apply → trace loop (primitive #4). Contract: `@growthub/api-contract/skills::SkillSelfEval`.
56
+ 5. **`skills/`** — nested sub-skills for parallel sub-agents on heavy / narrow work.
57
+ 6. **`helpers/`** — safe shell tool layer. Promote inline shell here whenever the same snippet is re-used.
58
+
59
+ ## Self-evaluation (primitive #4)
60
+
61
+ Enforce `selfEval.maxRetries: 3`. At the ceiling, park with a `needs_confirmation` note in `project.md` and stop. Record every attempt to both `project.md` and `trace.jsonl`.
62
+
63
+ ## Session memory (primitive #3)
64
+
65
+ `.growthub-fork/project.md` is the only cross-session continuity surface for this fork. Append at every material change, approval boundary, and self-eval outcome.
66
+
67
+ ## Sub-skills (primitive #5)
68
+
69
+ (None declared at the baseline; populate `skills/` and the frontmatter `subSkills[]` array as specialist lanes emerge.)
70
+
71
+ ## Helpers (primitive #6)
72
+
73
+ (None declared at the baseline; populate `helpers/` and the frontmatter `helpers[]` array as inline shell matures.)
74
+
75
+ ## MCP routing (optional)
76
+
77
+ List concrete MCP tool IDs in `mcpTools[]` when a fork runs an MCP server for auth-heavy actions. Declarative only at v1.
78
+
79
+ ## Related files
80
+
81
+ - `skills.md` — operator runbook (deep)
82
+ - `QUICKSTART.md` — first-run steps
83
+ - `runtime-assumptions.md` — host expectations
84
+ - `output-standards.md` — output locations + manifest shape
85
+ - `validation-checklist.md` — pre-flight checklist (if present)
86
+ - `templates/project.md` — session-memory template
87
+ - `templates/self-eval.md` — self-evaluation template
88
+ - `helpers/README.md` — safe shell tool layer convention
89
+ - `skills/README.md` — sub-skill convention
90
+ - `workers/zernio-social-operator/CLAUDE.md` — agent contract
@@ -73,12 +73,19 @@
73
73
  "studio/src/views/Sequences.jsx",
74
74
  "studio/src/views/Templates.jsx",
75
75
  "growthub-meta/README.md",
76
- "growthub-meta/kit-standard.md"
76
+ "growthub-meta/kit-standard.md",
77
+ "SKILL.md",
78
+ "templates/project.md",
79
+ "templates/self-eval.md",
80
+ "helpers/README.md",
81
+ "skills/README.md"
77
82
  ],
78
83
  "optionalPresets": [],
79
84
  "export": {
80
85
  "folderName": "growthub-agent-worker-kit-zernio-social-v1",
81
86
  "zipFileName": "growthub-agent-worker-kit-zernio-social-v1.zip"
82
87
  },
83
- "activationModes": ["export"]
88
+ "activationModes": [
89
+ "export"
90
+ ]
84
91
  }
@@ -0,0 +1,29 @@
1
+ # `helpers/` — safe shell tool layer (primitive #6)
2
+
3
+ A **helper** is a small, deterministic script an agent invokes via one shell call instead of reconstructing a raw pipeline inline. Helpers are reviewable, deterministic, and safer than raw commands.
4
+
5
+ ## Convention
6
+
7
+ ```
8
+ helpers/
9
+ ├── README.md # this file
10
+ ├── <verb>.sh # single-purpose shell scripts
11
+ ├── <verb>.mjs # optional: Node-based helper
12
+ └── <verb>.py # optional: Python-based helper
13
+ ```
14
+
15
+ Every helper:
16
+
17
+ 1. Carries a one-line header comment: what it does + how to invoke it.
18
+ 2. Uses `set -euo pipefail` (or equivalent) — no silent failures.
19
+ 3. Has a matching row in the parent `SKILL.md`'s `helpers[]` frontmatter.
20
+ 4. Is referenced from `skills.md` at the step the agent should invoke it (no duplicated shell bodies).
21
+
22
+ ## When to promote an inline snippet
23
+
24
+ - Appears more than once in `skills.md`.
25
+ - Has fragile quoting or path interpolation.
26
+ - Calls a side-effecting binary (ffmpeg, git, gh, npm install).
27
+ - Multiple sub-skills invoke it.
28
+
29
+ See the parent `SKILL.md` `helpers[]` array for the current roster.
@@ -85,7 +85,12 @@
85
85
  "studio/src/views/Sequences.jsx",
86
86
  "studio/src/views/Templates.jsx",
87
87
  "growthub-meta/README.md",
88
- "growthub-meta/kit-standard.md"
88
+ "growthub-meta/kit-standard.md",
89
+ "SKILL.md",
90
+ "templates/project.md",
91
+ "templates/self-eval.md",
92
+ "helpers/README.md",
93
+ "skills/README.md"
89
94
  ],
90
95
  "setupPaths": {
91
96
  "quickstart": "QUICKSTART.md",
@@ -112,7 +117,14 @@
112
117
  "studio/dist",
113
118
  "templates",
114
119
  "docs",
115
- "growthub-meta"
120
+ "growthub-meta",
121
+ "SKILL.md",
122
+ "templates/project.md",
123
+ "templates/self-eval.md",
124
+ "helpers",
125
+ "helpers/README.md",
126
+ "skills",
127
+ "skills/README.md"
116
128
  ]
117
129
  },
118
130
  "bundles": [