@growthub/cli 0.3.53 → 0.3.55
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-ai-website-cloner-v1/.env.example +7 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/QUICKSTART.md +116 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/brands/NEW-CLIENT.md +22 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/brands/_template/brand-kit.md +27 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/brands/growthub/brand-kit.md +26 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/bundles/growthub-ai-website-cloner-v1.json +53 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/ai-website-cloner-fork-integration.md +118 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/design-token-system.md +135 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/multi-phase-pipeline.md +129 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/parallel-builder-dispatch.md +103 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/clone-brief-sample.md +54 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/component-spec-sample.md +123 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/platform-handoff-sample.md +102 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/visual-qa-sample.md +119 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/growthub-meta/README.md +71 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/growthub-meta/kit-standard.md +47 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/kit.json +105 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/output/README.md +26 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/output-standards.md +75 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/runtime-assumptions.md +70 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/setup/check-deps.sh +50 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/setup/clone-fork.sh +66 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/setup/verify-env.mjs +78 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/skills.md +186 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/asset-manifest.md +57 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/builder-dispatch-plan.md +92 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/clone-brief.md +59 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/component-spec.md +124 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/design-token-extraction.md +89 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/platform-handoff.md +114 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/reconnaissance-report.md +77 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/visual-qa-checklist.md +107 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/validation-checklist.md +76 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/workers/ai-website-cloner-operator/CLAUDE.md +256 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/.env.example +40 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/QUICKSTART.md +114 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/brands/NEW-CLIENT.md +42 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/brands/_template/brand-kit.md +49 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/brands/growthub/brand-kit.md +50 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/bundles/growthub-open-montage-studio-v1.json +55 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/docs/cms-node-bridge.md +152 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/docs/open-montage-fork-integration.md +120 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/docs/pipeline-reference.md +147 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/docs/provider-adapter-layer.md +105 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/examples/cms-node-video-gen-sample.md +109 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/examples/pipeline-selection-sample.md +67 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/examples/platform-ready-handoff-sample.md +101 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/examples/video-production-brief-sample.md +68 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/growthub-meta/README.md +7 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/growthub-meta/kit-standard.md +45 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/kit.json +107 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/output/README.md +34 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/output-standards.md +79 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/runtime-assumptions.md +86 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/setup/check-deps.sh +43 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/setup/clone-fork.sh +53 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/setup/verify-env.mjs +102 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/skills.md +254 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/asset-tracking.md +46 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/cms-node-pipeline-mapping.md +64 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/generation-batch-plan.md +70 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/pipeline-selection-brief.md +67 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/platform-ready-execution-handoff.md +103 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/prompt-matrix.md +48 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/provider-selection-brief.md +86 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/review-qa-checklist.md +59 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/scene-plan.md +65 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/video-production-brief.md +58 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/validation-checklist.md +46 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/workers/open-montage-studio-operator/CLAUDE.md +304 -0
- package/assets/worker-kits/growthub-postiz-social-v1/.env.example +18 -0
- package/assets/worker-kits/growthub-postiz-social-v1/QUICKSTART.md +136 -0
- package/assets/worker-kits/growthub-postiz-social-v1/brands/NEW-CLIENT.md +67 -0
- package/assets/worker-kits/growthub-postiz-social-v1/brands/_template/brand-kit.md +120 -0
- package/assets/worker-kits/growthub-postiz-social-v1/brands/growthub/brand-kit.md +117 -0
- package/assets/worker-kits/growthub-postiz-social-v1/bundles/growthub-postiz-social-v1.json +52 -0
- package/assets/worker-kits/growthub-postiz-social-v1/docs/ai-caption-layer.md +118 -0
- package/assets/worker-kits/growthub-postiz-social-v1/docs/bullmq-queue-layer.md +157 -0
- package/assets/worker-kits/growthub-postiz-social-v1/docs/platform-coverage.md +97 -0
- package/assets/worker-kits/growthub-postiz-social-v1/docs/postiz-fork-integration.md +143 -0
- package/assets/worker-kits/growthub-postiz-social-v1/examples/analytics-brief-sample.md +125 -0
- package/assets/worker-kits/growthub-postiz-social-v1/examples/client-proposal-sample.md +127 -0
- package/assets/worker-kits/growthub-postiz-social-v1/examples/content-calendar-sample.md +75 -0
- package/assets/worker-kits/growthub-postiz-social-v1/examples/social-campaign-sample.md +104 -0
- package/assets/worker-kits/growthub-postiz-social-v1/growthub-meta/README.md +128 -0
- package/assets/worker-kits/growthub-postiz-social-v1/growthub-meta/kit-standard.md +113 -0
- package/assets/worker-kits/growthub-postiz-social-v1/kit.json +104 -0
- package/assets/worker-kits/growthub-postiz-social-v1/output/README.md +56 -0
- package/assets/worker-kits/growthub-postiz-social-v1/output-standards.md +127 -0
- package/assets/worker-kits/growthub-postiz-social-v1/runtime-assumptions.md +159 -0
- package/assets/worker-kits/growthub-postiz-social-v1/setup/check-deps.sh +117 -0
- package/assets/worker-kits/growthub-postiz-social-v1/setup/clone-fork.sh +83 -0
- package/assets/worker-kits/growthub-postiz-social-v1/setup/verify-env.mjs +99 -0
- package/assets/worker-kits/growthub-postiz-social-v1/skills.md +277 -0
- package/assets/worker-kits/growthub-postiz-social-v1/templates/analytics-brief.md +123 -0
- package/assets/worker-kits/growthub-postiz-social-v1/templates/caption-copy-deck.md +127 -0
- package/assets/worker-kits/growthub-postiz-social-v1/templates/client-proposal.md +139 -0
- package/assets/worker-kits/growthub-postiz-social-v1/templates/content-calendar.md +65 -0
- package/assets/worker-kits/growthub-postiz-social-v1/templates/platform-publishing-plan.md +112 -0
- package/assets/worker-kits/growthub-postiz-social-v1/templates/scheduling-manifest.md +83 -0
- package/assets/worker-kits/growthub-postiz-social-v1/templates/social-campaign-brief.md +111 -0
- package/assets/worker-kits/growthub-postiz-social-v1/validation-checklist.md +79 -0
- package/assets/worker-kits/growthub-postiz-social-v1/workers/postiz-social-operator/CLAUDE.md +287 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/.env.example +15 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/QUICKSTART.md +90 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/brands/NEW-CLIENT.md +57 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/brands/_template/brand-kit.md +88 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/brands/growthub/brand-kit.md +92 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/bundles/growthub-twenty-crm-v1.json +56 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/docs/api-and-webhooks.md +296 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/docs/data-model-layer.md +172 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/docs/twenty-fork-integration.md +213 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/examples/crm-playbook-sample.md +172 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/examples/crm-setup-sample.md +100 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/examples/lead-enrichment-sample.md +117 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/examples/pipeline-automation-sample.md +132 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/growthub-meta/README.md +114 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/growthub-meta/kit-standard.md +61 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/kit.json +108 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/output/README.md +46 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/output-standards.md +175 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/runtime-assumptions.md +150 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/setup/check-deps.sh +56 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/setup/clone-fork.sh +77 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/setup/verify-env.mjs +105 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/skills.md +401 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/api-query-plan.md +179 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/crm-playbook.md +155 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/crm-setup-brief.md +94 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/custom-object-design.md +115 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/data-model-design.md +112 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/enrichment-field-map.md +100 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/import-mapping.md +139 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/integration-handoff.md +190 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/lead-enrichment-pipeline.md +128 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/pipeline-automation-brief.md +88 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/webhook-integration-spec.md +129 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/workspace-config-checklist.md +129 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/validation-checklist.md +115 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/workers/twenty-crm-operator/CLAUDE.md +310 -0
- package/package.json +1 -1
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
# Open Montage Studio Operator — Agent Operating Instructions
|
|
2
|
+
|
|
3
|
+
**Kit:** `growthub-open-montage-studio-v1`
|
|
4
|
+
**Worker ID:** `open-montage-studio-operator`
|
|
5
|
+
**Version:** `1.0.0`
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## YOUR ROLE
|
|
10
|
+
|
|
11
|
+
You are the Growthub Open Montage Studio Operator. You turn content goals, brand inputs, and asset constraints into production-ready video using OpenMontage — the open-source agentic video production system. You bridge GrowthHub CMS node outputs (video/image generation) into OpenMontage's pipeline and composition engine.
|
|
12
|
+
|
|
13
|
+
**You produce:**
|
|
14
|
+
- Video production briefs
|
|
15
|
+
- Pipeline selection briefs (mapping intent to one of 12 OpenMontage pipelines)
|
|
16
|
+
- Provider and CMS node selection recommendations
|
|
17
|
+
- Scene plans
|
|
18
|
+
- Prompt matrices
|
|
19
|
+
- Generation batch plans
|
|
20
|
+
- Asset tracking sheets
|
|
21
|
+
- Review QA checklists
|
|
22
|
+
- Platform-ready execution handoff docs
|
|
23
|
+
- CMS node integration mappings (when using GrowthHub-hosted generation)
|
|
24
|
+
|
|
25
|
+
**You do NOT produce:**
|
|
26
|
+
- Vague ideation with no execution path
|
|
27
|
+
- Prompts before confirming pipeline and provider path
|
|
28
|
+
- Provider credentials or raw secrets
|
|
29
|
+
- Speculation about tool behavior without checking the local OpenMontage clone
|
|
30
|
+
- One-off CLI automation unless the active environment already requires it
|
|
31
|
+
|
|
32
|
+
**Your source of truth for methodology is `skills.md`. Read it before beginning any task.**
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## MASTER SKILL DOC
|
|
37
|
+
|
|
38
|
+
Always read `skills.md` at the start of every session. It defines:
|
|
39
|
+
- Workflow order
|
|
40
|
+
- Pipeline selection logic (12 pipelines)
|
|
41
|
+
- Provider scoring methodology (7 dimensions)
|
|
42
|
+
- CMS node bridge mapping
|
|
43
|
+
- Prompt planning rules
|
|
44
|
+
- Output artifact order
|
|
45
|
+
- QA and handoff standards
|
|
46
|
+
|
|
47
|
+
If `skills.md` cannot be read, stop and report the error.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## WORKFLOW — 10 STEPS, STRICT ORDER, NO SKIPPING
|
|
52
|
+
|
|
53
|
+
### STEP 0 — Environment gate (run before everything else)
|
|
54
|
+
|
|
55
|
+
Before loading any methodology or brand context, verify the environment is ready.
|
|
56
|
+
|
|
57
|
+
**Check 1 — `.env` file exists:**
|
|
58
|
+
|
|
59
|
+
If `.env` is missing, stop and tell the user:
|
|
60
|
+
|
|
61
|
+
> `.env` not found. Run: `cp .env.example .env` then add your API keys. See the QUICKSTART for provider setup order.
|
|
62
|
+
|
|
63
|
+
**Check 2 — At least one generation provider is configured:**
|
|
64
|
+
|
|
65
|
+
Read `.env` and confirm at least one of these is set and is not a placeholder:
|
|
66
|
+
- `FAL_KEY` — unlocks FLUX images + Kling/Veo/MiniMax video
|
|
67
|
+
- `OPENAI_API_KEY` — unlocks DALL-E 3 + OpenAI TTS
|
|
68
|
+
- `PEXELS_API_KEY` — unlocks free stock media
|
|
69
|
+
|
|
70
|
+
If none are set, check whether the user has a GrowthHub session for CMS node generation:
|
|
71
|
+
|
|
72
|
+
> No provider keys found. You can either:
|
|
73
|
+
> 1. Add API keys to `.env` (see QUICKSTART for free-tier options)
|
|
74
|
+
> 2. Use GrowthHub CMS nodes for generation (requires `growthub auth:login`)
|
|
75
|
+
> 3. Use zero-key mode (Piper TTS + free archives + Remotion composition only)
|
|
76
|
+
|
|
77
|
+
**Check 3 — OpenMontage clone (local-fork mode only):**
|
|
78
|
+
|
|
79
|
+
If using `local-fork` execution mode, check whether the clone exists at the path in `OPENMONTAGE_PATH` (default `~/OpenMontage`).
|
|
80
|
+
|
|
81
|
+
If not found:
|
|
82
|
+
|
|
83
|
+
> OpenMontage not found. Run: `bash setup/clone-fork.sh`
|
|
84
|
+
|
|
85
|
+
Or switch execution mode to `agent-only` or `hybrid`.
|
|
86
|
+
|
|
87
|
+
**Check 4 — Dependencies (local-fork mode only):**
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
bash setup/check-deps.sh
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Checks for `python3`, `ffmpeg`, `node`, and `npm`. All four are required for local-fork execution.
|
|
94
|
+
|
|
95
|
+
Do not proceed to Step 1 until the env gate passes.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
### STEP 1 — Read methodology + load brand context
|
|
100
|
+
|
|
101
|
+
Read:
|
|
102
|
+
|
|
103
|
+
```text
|
|
104
|
+
skills.md
|
|
105
|
+
brands/growthub/brand-kit.md
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
If a client brand kit exists, load that instead. If not, start from `brands/_template/brand-kit.md`.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
### STEP 2 — Read runtime and integration docs
|
|
113
|
+
|
|
114
|
+
Read:
|
|
115
|
+
|
|
116
|
+
```text
|
|
117
|
+
runtime-assumptions.md
|
|
118
|
+
docs/open-montage-fork-integration.md
|
|
119
|
+
docs/provider-adapter-layer.md
|
|
120
|
+
docs/cms-node-bridge.md
|
|
121
|
+
docs/pipeline-reference.md
|
|
122
|
+
output-standards.md
|
|
123
|
+
validation-checklist.md
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
These files define the environment boundary. Do not improvise around them.
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
### STEP 3 — Inspect the local OpenMontage fork before planning
|
|
131
|
+
|
|
132
|
+
Before writing prompts or scene plans, inspect the actual working substrate if a fork is available.
|
|
133
|
+
|
|
134
|
+
Priority source-of-truth files in the OpenMontage clone:
|
|
135
|
+
|
|
136
|
+
```text
|
|
137
|
+
README.md
|
|
138
|
+
config.yaml
|
|
139
|
+
pipeline_defs/ # All 12 pipeline YAML manifests
|
|
140
|
+
tools/tool_registry.py # Tool discovery and support envelope
|
|
141
|
+
tools/video/ # Video generation tools
|
|
142
|
+
tools/graphics/ # Image generation tools
|
|
143
|
+
tools/audio/ # TTS and music tools
|
|
144
|
+
skills/pipelines/ # Per-pipeline stage director skills
|
|
145
|
+
remotion-composer/ # React/Remotion composition engine
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Run capability discovery if local fork is available:
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
cd ~/OpenMontage && python -c "from tools.tool_registry import registry; import json; registry.discover(); print(json.dumps(registry.support_envelope(), indent=2))"
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
If the user is not pointing at a fork checkout, proceed using the assumptions frozen in this kit and explicitly mark the plan as `repo-unverified`.
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
### STEP 4 — Ask the 3-question gate
|
|
159
|
+
|
|
160
|
+
Ask exactly 3 clarification questions before drafting. Use the highest-risk unknowns:
|
|
161
|
+
|
|
162
|
+
1. What is the primary output objective: explainer, animation, cinematic trailer, documentary montage, talking head, screen demo, avatar video, podcast repurpose, localization, or clip batch?
|
|
163
|
+
2. What source assets already exist: brand kit, reference video/images, audio, footage, or GrowthHub CMS node outputs (video-generation, image-generation nodes)?
|
|
164
|
+
3. What is the delivery constraint: local-fork with full tool access, agent-only with CMS node generation, or hybrid?
|
|
165
|
+
|
|
166
|
+
Do not generate prompts until these are answered or clearly inferable.
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
### STEP 5 — Select the pipeline
|
|
171
|
+
|
|
172
|
+
Map the job to one of 12 OpenMontage pipelines:
|
|
173
|
+
|
|
174
|
+
| Pipeline | Best For |
|
|
175
|
+
|----------|----------|
|
|
176
|
+
| Animated Explainer | Educational content, tutorials, topic breakdowns |
|
|
177
|
+
| Animation | Social media, product demos, abstract concepts |
|
|
178
|
+
| Avatar Spokesperson | Corporate comms, training, announcements |
|
|
179
|
+
| Cinematic | Brand films, teasers, promotional content |
|
|
180
|
+
| Clip Factory | Repurposing long content for social media |
|
|
181
|
+
| Documentary Montage | Video essays, mood pieces, real-footage B-roll edits |
|
|
182
|
+
| Hybrid | Enhancing existing footage with AI-generated support visuals |
|
|
183
|
+
| Localization & Dub | Multi-language distribution |
|
|
184
|
+
| Podcast Repurpose | Podcast marketing, audiogram videos |
|
|
185
|
+
| Screen Demo | Product demos, tutorials, documentation |
|
|
186
|
+
| Talking Head | Presentations, vlogs, interviews |
|
|
187
|
+
|
|
188
|
+
Use `templates/pipeline-selection-brief.md` to document:
|
|
189
|
+
- requested outcome
|
|
190
|
+
- reason for pipeline choice
|
|
191
|
+
- input asset requirements
|
|
192
|
+
- output constraints
|
|
193
|
+
- fallback pipeline if the first path fails
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
### STEP 6 — Select providers and CMS nodes
|
|
198
|
+
|
|
199
|
+
Determine the provider mix using the 7-dimension scoring model:
|
|
200
|
+
- Task fit (30%)
|
|
201
|
+
- Output quality (20%)
|
|
202
|
+
- Control features (15%)
|
|
203
|
+
- Reliability (15%)
|
|
204
|
+
- Cost efficiency (10%)
|
|
205
|
+
- Latency (5%)
|
|
206
|
+
- Continuity (5%)
|
|
207
|
+
|
|
208
|
+
**CMS Node Integration:** If the user has GrowthHub CMS nodes available (video-generation, image-generation families), map them as provider sources:
|
|
209
|
+
|
|
210
|
+
| CMS Node Family | OpenMontage Tool Category | Usage |
|
|
211
|
+
|-----------------|---------------------------|-------|
|
|
212
|
+
| `video` | `tools/video/` | CMS node output URLs feed into composition as source clips |
|
|
213
|
+
| `image` | `tools/graphics/` | CMS node output URLs feed into composition as scene images |
|
|
214
|
+
|
|
215
|
+
Use `templates/provider-selection-brief.md` and `templates/cms-node-pipeline-mapping.md`.
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
### STEP 7 — Build the production artifacts
|
|
220
|
+
|
|
221
|
+
Write in this order:
|
|
222
|
+
1. Video production brief
|
|
223
|
+
2. Pipeline selection brief
|
|
224
|
+
3. Provider / CMS node selection brief
|
|
225
|
+
4. Scene plan
|
|
226
|
+
5. Prompt matrix
|
|
227
|
+
6. Generation batch plan
|
|
228
|
+
7. Asset tracking sheet
|
|
229
|
+
8. Review QA checklist
|
|
230
|
+
9. Platform-ready execution handoff
|
|
231
|
+
|
|
232
|
+
If a reference video exists, analyze it before the scene plan (pacing, hooks, structure, tone).
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
### STEP 8 — Match the execution mode
|
|
237
|
+
|
|
238
|
+
Pick one execution path:
|
|
239
|
+
- `local-fork` — Full OpenMontage clone with all tools. Agent reads pipeline manifests, calls Python tools, renders via Remotion/FFmpeg.
|
|
240
|
+
- `agent-only` — No local clone. CMS nodes provide generation. Agent produces production artifacts and composition guidance. User runs final render via GrowthHub hosted execution.
|
|
241
|
+
- `hybrid` — CMS nodes for generation + local OpenMontage for post-production (FFmpeg composition, subtitle burn-in, audio mixing, color grading).
|
|
242
|
+
|
|
243
|
+
Do not claim the environment can do something the inspected setup does not support.
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
### STEP 9 — Execute or hand off
|
|
248
|
+
|
|
249
|
+
**Local-fork mode:** Direct the agent to execute the pipeline:
|
|
250
|
+
```
|
|
251
|
+
research -> proposal -> script -> scene_plan -> assets -> edit -> compose
|
|
252
|
+
```
|
|
253
|
+
Each stage follows its pipeline stage director skill in `skills/pipelines/`.
|
|
254
|
+
|
|
255
|
+
**Agent-only / hybrid mode:** Produce the complete handoff package so the user or a downstream agent can execute:
|
|
256
|
+
- All production artifacts from Step 7
|
|
257
|
+
- CMS node execution instructions (which nodes to run, with what inputs)
|
|
258
|
+
- Post-production instructions (composition, audio, subtitles)
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
### STEP 10 — Log the deliverable
|
|
263
|
+
|
|
264
|
+
Outputs must be saved under:
|
|
265
|
+
|
|
266
|
+
```text
|
|
267
|
+
output/<client-slug>/<project-slug>/
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
Append a deliverable line in the active brand kit:
|
|
271
|
+
|
|
272
|
+
```text
|
|
273
|
+
- YYYY-MM-DD | OpenMontage Video Package v<N> — <Project Name> | output/<client-slug>/<project-slug>/
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## CRITICAL RULES
|
|
279
|
+
|
|
280
|
+
| Rule | Meaning |
|
|
281
|
+
|---|---|
|
|
282
|
+
| Env gate must pass first | No `.env` or no provider = check CMS nodes or zero-key mode |
|
|
283
|
+
| Read `skills.md` first | No memory-only operation |
|
|
284
|
+
| Inspect the fork before planning | `tool_registry.py` and `pipeline_defs/` outrank assumptions |
|
|
285
|
+
| Pick one primary pipeline | No mixed-pipeline output without explicit transition notes |
|
|
286
|
+
| Provider choice uses 7-dimension scoring | Do not pick providers by name recognition alone |
|
|
287
|
+
| CMS nodes are first-class providers | Treat hosted generation outputs as source assets for composition |
|
|
288
|
+
| Pipeline stages are strict order | research -> proposal -> script -> scene_plan -> assets -> edit -> compose |
|
|
289
|
+
| Budget governance applies | Estimate costs before execution, respect spend caps |
|
|
290
|
+
| Outputs must be operational | Every file should help an operator execute immediately |
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
## REQUIRED OUTPUT ORDER
|
|
295
|
+
|
|
296
|
+
1. `VideoProductionBrief`
|
|
297
|
+
2. `PipelineSelectionBrief`
|
|
298
|
+
3. `ProviderSelectionBrief`
|
|
299
|
+
4. `ScenePlan`
|
|
300
|
+
5. `PromptMatrix`
|
|
301
|
+
6. `GenerationBatchPlan`
|
|
302
|
+
7. `AssetTracking`
|
|
303
|
+
8. `ReviewQAChecklist`
|
|
304
|
+
9. `PlatformReadyExecutionHandoff`
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Growthub Postiz Social Studio — Environment Config
|
|
2
|
+
# Copy this file to .env and fill in your values.
|
|
3
|
+
# Never commit .env to version control.
|
|
4
|
+
|
|
5
|
+
# Optional override for your local Postiz fork path.
|
|
6
|
+
# Default used by scripts is ~/postiz-app.
|
|
7
|
+
# POSTIZ_FORK_PATH=/path/to/your/postiz-app
|
|
8
|
+
|
|
9
|
+
# Base URL for the local Postiz API.
|
|
10
|
+
POSTIZ_API_URL=http://localhost:3000
|
|
11
|
+
|
|
12
|
+
# Required for scheduling manifest submission.
|
|
13
|
+
# Find this in Postiz Settings > Workspace.
|
|
14
|
+
POSTIZ_WORKSPACE_ID=your_postiz_workspace_id_here
|
|
15
|
+
|
|
16
|
+
# Optional for AI-enhanced caption generation in agent/hybrid mode.
|
|
17
|
+
# Get one at https://console.anthropic.com
|
|
18
|
+
ANTHROPIC_API_KEY=your_anthropic_key_here
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# Growthub Postiz Social Media Studio — Quickstart
|
|
2
|
+
|
|
3
|
+
**Kit:** `growthub-postiz-social-v1`
|
|
4
|
+
**Worker:** `postiz-social-operator`
|
|
5
|
+
**Platform:** [Postiz](https://github.com/gitroomhq/postiz-app)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## What This Kit Does
|
|
10
|
+
|
|
11
|
+
The Growthub Postiz Social Media Studio is a self-contained AI agent environment for planning, drafting, scheduling, and analyzing social media campaigns using the Postiz open-source platform. It wraps the self-hosted Postiz workspace to produce:
|
|
12
|
+
|
|
13
|
+
- Social campaign briefs (objective, platforms, audience, KPIs)
|
|
14
|
+
- 30/60/90-day content calendars with theme pillars
|
|
15
|
+
- Platform publishing plans for 28+ social networks
|
|
16
|
+
- Caption copy decks with A/B/C variants per post
|
|
17
|
+
- BullMQ-compatible scheduling manifests for Postiz API
|
|
18
|
+
- Analytics briefings (engagement, reach, growth signals)
|
|
19
|
+
- Client-ready proposals with platform mix and ROI projections
|
|
20
|
+
|
|
21
|
+
Supported platforms include: Instagram, LinkedIn, TikTok, X/Twitter, YouTube, Pinterest, Reddit, Bluesky, Facebook, Mastodon, Slack, Telegram, and 16+ more. See `docs/platform-coverage.md` for the full list.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Setup — 6 Steps
|
|
26
|
+
|
|
27
|
+
### Step 1 — Point Your Working Directory
|
|
28
|
+
|
|
29
|
+
Export this kit to a local folder and point Claude Code's Working Directory at the kit root. All paths in the kit are relative to the kit root.
|
|
30
|
+
|
|
31
|
+
### Step 2 — Copy the Environment File
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
cp .env.example .env
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Fill in your Postiz workspace credentials and API endpoint. No platform OAuth tokens are stored in this kit — those live inside the Postiz admin UI.
|
|
38
|
+
|
|
39
|
+
### Step 3 — Verify the Environment
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
node setup/verify-env.mjs
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
This checks:
|
|
46
|
+
- Whether the Postiz fork is cloned at `POSTIZ_FORK_PATH` (default: `~/postiz-app`)
|
|
47
|
+
- Whether the Postiz API is reachable on port 3000
|
|
48
|
+
- Whether `ANTHROPIC_API_KEY` is valid format (if set for AI caption enhancement)
|
|
49
|
+
- No OAuth tokens are validated here — those are managed inside Postiz
|
|
50
|
+
|
|
51
|
+
### Step 4 — Check Dependencies
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
bash setup/check-deps.sh
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Verifies that `node`, `docker`, `docker compose`, and `git` are available. Checks Node.js version (18+ required). Checks Docker engine is running.
|
|
58
|
+
|
|
59
|
+
### Step 5 — Clone and Start the Postiz Workspace (Local-Fork Mode Only)
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
bash setup/clone-fork.sh
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
This clones `postiz-app` to `~/postiz-app` (or `POSTIZ_FORK_PATH` if set), runs `docker compose up -d` to start Redis, PostgreSQL, and the Postiz API, and waits for the API healthcheck to pass.
|
|
66
|
+
|
|
67
|
+
Skip this step if you are using **agent-only mode** — the operator can plan campaigns, draft captions, and produce content calendars without a running Postiz instance.
|
|
68
|
+
|
|
69
|
+
### Step 6 — Start a Session
|
|
70
|
+
|
|
71
|
+
Open Claude Code, set the Working Directory to this kit root, and start your session. The operator will guide you through the 10-step workflow.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Execution Modes
|
|
76
|
+
|
|
77
|
+
| Mode | Requirements | Use When |
|
|
78
|
+
|---|---|---|
|
|
79
|
+
| `local-fork` | Node 18+, Docker, Postiz running | You want to schedule posts via the Postiz API and use multi-workspace features |
|
|
80
|
+
| `agent-only` | Nothing — Claude handles everything | You need campaign planning, content calendars, and caption drafts without a running instance |
|
|
81
|
+
| `hybrid` | ANTHROPIC_API_KEY + Postiz running | Best of both — agent reasoning with live Postiz API scheduling |
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## First Run
|
|
86
|
+
|
|
87
|
+
1. Tell the operator: **"Plan a 30-day Instagram + LinkedIn campaign for [your brand]"**
|
|
88
|
+
2. The operator will ask 4 clarifying questions (client, platforms, objective, cadence)
|
|
89
|
+
3. The operator runs the 10-step workflow and produces all campaign artifacts
|
|
90
|
+
4. Output is saved to `output/<client-slug>/<project-slug>/`
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## New Client Setup
|
|
95
|
+
|
|
96
|
+
See `brands/NEW-CLIENT.md` for instructions on adding a new client brand kit.
|
|
97
|
+
|
|
98
|
+
Quick version:
|
|
99
|
+
```bash
|
|
100
|
+
cp brands/_template/brand-kit.md brands/<client-slug>/brand-kit.md
|
|
101
|
+
# Then fill in the fields in the new file
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Available Commands
|
|
107
|
+
|
|
108
|
+
Tell the operator which you need:
|
|
109
|
+
|
|
110
|
+
| Command | What It Does |
|
|
111
|
+
|---|---|
|
|
112
|
+
| `/postiz campaign` | Full campaign brief + content calendar + publishing plan |
|
|
113
|
+
| `/postiz calendar` | Content calendar only — existing brief provided |
|
|
114
|
+
| `/postiz captions` | Caption copy deck for a specific platform or batch |
|
|
115
|
+
| `/postiz schedule` | Generate BullMQ-compatible scheduling manifest |
|
|
116
|
+
| `/postiz analytics` | Analytics briefing from Postiz API data or provided metrics |
|
|
117
|
+
| `/postiz proposal` | Client-ready proposal with platform mix and ROI projection |
|
|
118
|
+
| `/postiz platforms` | Platform coverage report for a specific client context |
|
|
119
|
+
| `/postiz quick` | 30-second campaign snapshot for a domain or brand |
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Key Files
|
|
124
|
+
|
|
125
|
+
| File | Purpose |
|
|
126
|
+
|---|---|
|
|
127
|
+
| `workers/postiz-social-operator/CLAUDE.md` | Agent operating instructions (start here) |
|
|
128
|
+
| `skills.md` | Full methodology — read at every session |
|
|
129
|
+
| `brands/_template/brand-kit.md` | Blank brand kit template |
|
|
130
|
+
| `brands/growthub/brand-kit.md` | Growthub reference example |
|
|
131
|
+
| `output/README.md` | Output directory structure and naming |
|
|
132
|
+
| `docs/postiz-fork-integration.md` | How this kit integrates with Postiz |
|
|
133
|
+
| `docs/platform-coverage.md` | All 28+ supported platforms with format specs |
|
|
134
|
+
| `docs/ai-caption-layer.md` | AI caption generation methodology |
|
|
135
|
+
| `docs/bullmq-queue-layer.md` | Scheduling manifest format for Postiz API |
|
|
136
|
+
| `validation-checklist.md` | Pre-session checklist |
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Adding a New Client
|
|
2
|
+
|
|
3
|
+
This guide explains how to create a brand kit for a new client in the Postiz Social Media Studio.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Steps
|
|
8
|
+
|
|
9
|
+
### 1. Copy the Template
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
cp brands/_template/brand-kit.md brands/<client-slug>/brand-kit.md
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Replace `<client-slug>` with a lowercase, hyphenated version of the client name. Examples:
|
|
16
|
+
- "Urban Cycle" → `urban-cycle`
|
|
17
|
+
- "Acme SaaS Corp" → `acme-saas`
|
|
18
|
+
- "The Bloom Studio" → `bloom-studio`
|
|
19
|
+
|
|
20
|
+
### 2. Fill in the Brand Kit
|
|
21
|
+
|
|
22
|
+
Open the new file and fill in every section:
|
|
23
|
+
- **Client Identity** — name, slug, industry, website
|
|
24
|
+
- **Social Media Presence** — existing accounts, follower counts, current activity level
|
|
25
|
+
- **Target Audience** — primary and secondary audience profiles
|
|
26
|
+
- **Campaign Objectives** — metrics, targets, and timelines
|
|
27
|
+
- **Brand Voice** — tone, personality, approved/blocked words, emoji usage
|
|
28
|
+
- **Content Theme Pillars** — 3–5 recurring themes with platform assignments
|
|
29
|
+
- **Competitor Reference Accounts** — 2–3 accounts to reference for format benchmarking
|
|
30
|
+
- **Agency Context** — engagement stage, retainer, reporting cadence
|
|
31
|
+
|
|
32
|
+
### 3. Verify the Brand Kit
|
|
33
|
+
|
|
34
|
+
Before using the brand kit in a session, confirm:
|
|
35
|
+
- [ ] `client-slug` in the filename matches the `Client Slug` field in the kit
|
|
36
|
+
- [ ] At least one platform is listed in `Social Media Presence`
|
|
37
|
+
- [ ] At least one campaign objective has a measurable target
|
|
38
|
+
- [ ] Brand voice section is complete — no empty `[fill in]` placeholders
|
|
39
|
+
- [ ] At least 3 content theme pillars are defined
|
|
40
|
+
|
|
41
|
+
### 4. Tell the Operator
|
|
42
|
+
|
|
43
|
+
Start your Claude Code session and say:
|
|
44
|
+
> "Load the brand kit for [client-name] and begin a [campaign objective] campaign."
|
|
45
|
+
|
|
46
|
+
The operator will read the brand kit and ask the 4-question gate before producing any output.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Brand Kit Naming Rules
|
|
51
|
+
|
|
52
|
+
| Rule | Correct | Incorrect |
|
|
53
|
+
|---|---|---|
|
|
54
|
+
| Directory name is lowercase kebab-case | `brands/urban-cycle/` | `brands/UrbanCycle/` |
|
|
55
|
+
| Filename is always `brand-kit.md` | `brands/urban-cycle/brand-kit.md` | `brands/urban-cycle/UrbanCycle.md` |
|
|
56
|
+
| Slug contains no spaces | `acme-saas` | `acme saas` |
|
|
57
|
+
| Slug contains no special chars | `bloom-studio` | `bloom/studio` |
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Note on Public Brand Kits
|
|
62
|
+
|
|
63
|
+
Brand kits are **not included in kit exports by default**. The only brand kits included in exports are:
|
|
64
|
+
- `brands/_template/brand-kit.md` — the blank template
|
|
65
|
+
- `brands/growthub/brand-kit.md` — the public reference example
|
|
66
|
+
|
|
67
|
+
Client brand kits you create live in your local kit installation only. They are not bundled into the export zip or submitted to any external service.
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Brand Kit — [Client Name]
|
|
2
|
+
|
|
3
|
+
<!-- Replace [Client Name] with the actual client name and rename this file to brands/<client-slug>/brand-kit.md -->
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Client Identity
|
|
8
|
+
|
|
9
|
+
| Field | Value |
|
|
10
|
+
|---|---|
|
|
11
|
+
| Client Name | [Client Name] |
|
|
12
|
+
| Client Slug | [client-slug] |
|
|
13
|
+
| Industry | [e.g., SaaS / E-commerce / Hospitality / Fintech] |
|
|
14
|
+
| Website | [https://...] |
|
|
15
|
+
| Primary Contact | [Name, email] |
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Social Media Presence
|
|
20
|
+
|
|
21
|
+
| Platform | Handle | Followers | Current Status |
|
|
22
|
+
|---|---|---|---|
|
|
23
|
+
| Instagram | [@handle] | [N] | [Active / Inactive / New] |
|
|
24
|
+
| LinkedIn | [company page URL] | [N followers] | [Active / Inactive] |
|
|
25
|
+
| TikTok | [@handle] | [N] | [Active / Inactive] |
|
|
26
|
+
| X/Twitter | [@handle] | [N] | [Active / Inactive] |
|
|
27
|
+
| [Other] | [handle] | [N] | [Active / Inactive] |
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Target Audience
|
|
32
|
+
|
|
33
|
+
### Primary Audience
|
|
34
|
+
|
|
35
|
+
| Attribute | Description |
|
|
36
|
+
|---|---|
|
|
37
|
+
| Age Range | [e.g., 25–40] |
|
|
38
|
+
| Gender | [e.g., 55% female, 45% male] |
|
|
39
|
+
| Location | [e.g., North America, English-speaking markets] |
|
|
40
|
+
| Interests | [e.g., entrepreneurship, productivity, design] |
|
|
41
|
+
| Pain Points | [e.g., too many disconnected tools, manual social media posting] |
|
|
42
|
+
| Content Preferences | [e.g., educational how-tos, success stories, data-driven insights] |
|
|
43
|
+
|
|
44
|
+
### Secondary Audience
|
|
45
|
+
|
|
46
|
+
| Attribute | Description |
|
|
47
|
+
|---|---|
|
|
48
|
+
| Age Range | [e.g., 18–25] |
|
|
49
|
+
| Interests | [e.g., tech, side projects] |
|
|
50
|
+
| Platform | [e.g., TikTok, Reddit] |
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Campaign Objectives
|
|
55
|
+
|
|
56
|
+
| Objective | Metric | Target | Timeline |
|
|
57
|
+
|---|---|---|---|
|
|
58
|
+
| [Brand awareness] | [Impressions] | [50,000/month] | [Q2 2026] |
|
|
59
|
+
| [Lead generation] | [Link clicks] | [200/month] | [Q2 2026] |
|
|
60
|
+
| [Community growth] | [Follower growth] | [+500] | [Q2 2026] |
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Brand Voice
|
|
65
|
+
|
|
66
|
+
| Attribute | Spec |
|
|
67
|
+
|---|---|
|
|
68
|
+
| Tone | [e.g., Professional but approachable. Data-driven without being dry. Never salesy.] |
|
|
69
|
+
| Personality | [e.g., Smart, helpful, occasionally witty] |
|
|
70
|
+
| Words to Use | [e.g., "build", "grow", "automate", "team", "results"] |
|
|
71
|
+
| Words to Avoid | [e.g., "hack", "guru", "crush it", "cheap", "amazing"] |
|
|
72
|
+
| Emoji Usage | [e.g., Minimal on LinkedIn; moderate on Instagram; more on TikTok] |
|
|
73
|
+
| CTA Style | [e.g., Direct action verbs: "Start today", "Learn more", "Join the team"] |
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Content Theme Pillars
|
|
78
|
+
|
|
79
|
+
| Pillar | Description | Platforms | % of Calendar |
|
|
80
|
+
|---|---|---|---|
|
|
81
|
+
| [Industry Insights] | [What we know that others don't — data, trends, analysis] | [All] | [40%] |
|
|
82
|
+
| [Product Value] | [Feature spotlights, use cases, ROI stories] | [LinkedIn, Instagram] | [30%] |
|
|
83
|
+
| [Social Proof] | [Customer testimonials, case studies, results] | [All] | [20%] |
|
|
84
|
+
| [Community] | [Q&A, behind the scenes, team moments] | [Instagram, TikTok] | [10%] |
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Competitor Reference Accounts
|
|
89
|
+
|
|
90
|
+
| Platform | Account | Why Reference |
|
|
91
|
+
|---|---|---|
|
|
92
|
+
| [Instagram] | [@competitor] | [Strong visual brand, good engagement format] |
|
|
93
|
+
| [LinkedIn] | [competitor company page] | [Industry leader, consistent posting cadence] |
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Agency Context
|
|
98
|
+
|
|
99
|
+
| Field | Value |
|
|
100
|
+
|---|---|
|
|
101
|
+
| Engagement Stage | [Prospect / Onboarding / Retained] |
|
|
102
|
+
| Monthly Retainer | [e.g., $X,XXX/month or "not established"] |
|
|
103
|
+
| Campaign Budget | [e.g., $X,XXX / campaign or "TBD"] |
|
|
104
|
+
| Reporting Cadence | [e.g., Monthly analytics brief] |
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## CRM Notes
|
|
109
|
+
|
|
110
|
+
<!-- Internal notes for agency context. Not included in client-facing outputs. -->
|
|
111
|
+
|
|
112
|
+
[Add internal notes here: key contacts, relationship history, upsell opportunities, account health signals]
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## DELIVERABLES LOG
|
|
117
|
+
|
|
118
|
+
<!-- Append a line for each completed deliverable. -->
|
|
119
|
+
|
|
120
|
+
<!-- - YYYY-MM-DD | Social Media Campaign Package v1 — [Project Name] | output/<client-slug>/<project-slug>/ -->
|