@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,139 @@
|
|
|
1
|
+
# Social Media Campaign Proposal
|
|
2
|
+
|
|
3
|
+
<!-- Client: [client-slug] | Version: v1 | Date: YYYY-MM-DD -->
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Executive Summary
|
|
8
|
+
|
|
9
|
+
<!-- 2–3 sentence overview: who the client is, the campaign objective, the recommended platform mix, and the expected business outcome. No filler — every sentence must reference a concrete number or outcome. -->
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Campaign Overview
|
|
14
|
+
|
|
15
|
+
| Field | Value |
|
|
16
|
+
|---|---|
|
|
17
|
+
| Proposed Campaign Name | <!-- --> |
|
|
18
|
+
| Campaign Objective | <!-- --> |
|
|
19
|
+
| Recommended Platforms | <!-- --> |
|
|
20
|
+
| Campaign Duration | <!-- e.g., 90 days --> |
|
|
21
|
+
| Total Posts | <!-- e.g., 120 posts across 4 platforms --> |
|
|
22
|
+
| Start Date | <!-- YYYY-MM-DD (proposed) --> |
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Why These Platforms
|
|
27
|
+
|
|
28
|
+
<!-- For each recommended platform, explain the audience fit in 1–2 sentences grounded in the client's target demographics. No generic "Instagram has a large user base" statements. -->
|
|
29
|
+
|
|
30
|
+
| Platform | Audience Fit | Primary Role in Campaign |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| <!-- instagram --> | <!-- e.g., 68% of client's target demographic (25–40, urban professionals) are active Instagram users --> | <!-- Brand awareness through visual storytelling and Reels --> |
|
|
33
|
+
| <!-- linkedin --> | <!-- --> | <!-- --> |
|
|
34
|
+
| <!-- tiktok --> | <!-- --> | <!-- --> |
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Content Strategy
|
|
39
|
+
|
|
40
|
+
### Theme Pillars
|
|
41
|
+
|
|
42
|
+
| Pillar | Description | % of Calendar | Key Formats |
|
|
43
|
+
|---|---|---|---|
|
|
44
|
+
| <!-- Industry Insights --> | <!-- What the client knows that their audience doesn't --> | <!-- 40% --> | <!-- Carousels, long-form captions --> |
|
|
45
|
+
| <!-- Product Value --> | <!-- Feature spotlights, use cases, comparisons --> | <!-- 30% --> | <!-- Images, short video demos --> |
|
|
46
|
+
| <!-- Social Proof --> | <!-- Customer stories, testimonials, case data --> | <!-- 20% --> | <!-- Quote graphics, video testimonials --> |
|
|
47
|
+
| <!-- Community --> | <!-- Q&A, polls, behind-the-scenes --> | <!-- 10% --> | <!-- Stories, polls, text posts --> |
|
|
48
|
+
|
|
49
|
+
### Caption Strategy
|
|
50
|
+
|
|
51
|
+
All captions will be drafted as A/B/C variants. The selected variant per post will be chosen based on:
|
|
52
|
+
- Platform-specific tone profile
|
|
53
|
+
- Content pillar (educational pillars → Variant A; community pillars → Variant C)
|
|
54
|
+
- A/B test results from prior campaigns (if analytics data is available)
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Deliverables
|
|
59
|
+
|
|
60
|
+
| Deliverable | Format | Cadence |
|
|
61
|
+
|---|---|---|
|
|
62
|
+
| Social Campaign Brief | Markdown | Once (at campaign start) |
|
|
63
|
+
| Content Calendar | Markdown | Once (monthly refresh) |
|
|
64
|
+
| Platform Publishing Plan | Markdown | Once (at campaign start) |
|
|
65
|
+
| Caption Copy Deck | Markdown | Per 30-day block |
|
|
66
|
+
| Scheduling Manifest | JSON | Per 30-day block |
|
|
67
|
+
| Analytics Brief | Markdown | Monthly |
|
|
68
|
+
| Client Proposal | Markdown | At engagement start |
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Engagement Tiers
|
|
73
|
+
|
|
74
|
+
### Tier 1 — Campaign Starter
|
|
75
|
+
|
|
76
|
+
**Scope:** 1 platform, 3 posts/week, 30-day content calendar, caption copy deck (A/B variants), one analytics brief
|
|
77
|
+
|
|
78
|
+
**Includes:**
|
|
79
|
+
- Social Campaign Brief
|
|
80
|
+
- 30-Day Content Calendar (13 posts)
|
|
81
|
+
- Caption Copy Deck (A/B variants)
|
|
82
|
+
- One Month Analytics Brief
|
|
83
|
+
|
|
84
|
+
**Best for:** Clients testing social media for the first time or validating a single platform.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
### Tier 2 — Multi-Platform Growth
|
|
89
|
+
|
|
90
|
+
**Scope:** Up to 3 platforms, 5 posts/week per platform, 90-day content calendar, full caption copy deck (A/B/C), Postiz scheduling setup, monthly analytics
|
|
91
|
+
|
|
92
|
+
**Includes:**
|
|
93
|
+
- Social Campaign Brief
|
|
94
|
+
- 90-Day Content Calendar (up to 195 posts)
|
|
95
|
+
- Platform Publishing Plan
|
|
96
|
+
- Caption Copy Deck (A/B/C variants)
|
|
97
|
+
- Postiz Scheduling Manifest + setup support
|
|
98
|
+
- 3× Monthly Analytics Briefs
|
|
99
|
+
|
|
100
|
+
**Best for:** Brands actively investing in social media growth with a dedicated content team.
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
### Tier 3 — Full Social Media Operator
|
|
105
|
+
|
|
106
|
+
**Scope:** Up to 5 platforms, daily cadence, full campaign lifecycle, AI-assisted caption generation, Postiz multi-workspace management, weekly analytics
|
|
107
|
+
|
|
108
|
+
**Includes:**
|
|
109
|
+
- Social Campaign Brief (refreshed quarterly)
|
|
110
|
+
- Rolling 30-Day Content Calendar (maintained ongoing)
|
|
111
|
+
- Platform Publishing Plan
|
|
112
|
+
- Caption Copy Deck (A/B/C variants + AI-enhanced alternatives)
|
|
113
|
+
- Postiz Scheduling Manifest (submitted on approval)
|
|
114
|
+
- Weekly Analytics Briefings
|
|
115
|
+
- Quarterly Campaign Strategy Review
|
|
116
|
+
|
|
117
|
+
**Best for:** Clients treating social media as a primary growth channel with volume demands across multiple platforms.
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## ROI Projection
|
|
122
|
+
|
|
123
|
+
<!-- Ground these projections in documented platform benchmarks. Do not invent numbers. -->
|
|
124
|
+
|
|
125
|
+
| Scenario | Baseline Assumptions | Projected Outcome | Source |
|
|
126
|
+
|---|---|---|---|
|
|
127
|
+
| Conservative (Tier 1) | 3 posts/week, 1 platform, avg 1.5% engagement rate | <!-- +X followers, Y impressions / month --> | Industry average — [source] |
|
|
128
|
+
| Mid (Tier 2) | 5 posts/week × 3 platforms, avg 2.5% engagement | <!-- --> | <!-- --> |
|
|
129
|
+
| Aggressive (Tier 3) | Daily × 5 platforms, AI captions, Postiz scheduling | <!-- --> | <!-- --> |
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Next Steps
|
|
134
|
+
|
|
135
|
+
1. Select engagement tier
|
|
136
|
+
2. Complete brand kit (or review and approve Growthub's draft)
|
|
137
|
+
3. Approve first 30-day content calendar
|
|
138
|
+
4. Connect platforms in Postiz admin UI (if using local-fork or hosted Postiz)
|
|
139
|
+
5. Campaign goes live on agreed start date
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Content Calendar
|
|
2
|
+
|
|
3
|
+
<!-- Client: [client-slug] | Project: [project-slug] | Version: v1 | Date: YYYY-MM-DD -->
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Calendar Header
|
|
8
|
+
|
|
9
|
+
| Field | Value |
|
|
10
|
+
|---|---|
|
|
11
|
+
| Client | <!-- client name --> |
|
|
12
|
+
| Campaign | <!-- campaign name --> |
|
|
13
|
+
| Period | <!-- YYYY-MM-DD to YYYY-MM-DD --> |
|
|
14
|
+
| Platforms | <!-- comma-separated --> |
|
|
15
|
+
| Total Posts | <!-- N --> |
|
|
16
|
+
| Generated By | postiz-social-operator |
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Posting Cadence Summary
|
|
21
|
+
|
|
22
|
+
| Platform | Posts/Week | Best Times | Content Mix |
|
|
23
|
+
|---|---|---|---|
|
|
24
|
+
| <!-- platform --> | <!-- e.g., 3 --> | <!-- e.g., Mon/Wed/Fri 9am ET --> | <!-- e.g., 50% educational, 30% promotional, 20% community --> |
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Content Calendar
|
|
29
|
+
|
|
30
|
+
| Date | Day | Platform | Theme Pillar | Post Type | Caption Preview (first 100 chars) | CTA | Media Notes | Status |
|
|
31
|
+
|---|---|---|---|---|---|---|---|---|
|
|
32
|
+
| <!-- YYYY-MM-DD --> | <!-- Mon --> | <!-- instagram --> | <!-- Industry Insights --> | <!-- image --> | <!-- First 100 characters of caption A... --> | <!-- Link in bio --> | <!-- 1080×1080 static image, brand colors --> | draft |
|
|
33
|
+
| | | | | | | | | |
|
|
34
|
+
| | | | | | | | | |
|
|
35
|
+
| | | | | | | | | |
|
|
36
|
+
| | | | | | | | | |
|
|
37
|
+
|
|
38
|
+
<!-- Add one row per scheduled post. Use platform slugs from docs/platform-coverage.md. -->
|
|
39
|
+
<!-- Status values: draft | approved | scheduled | published -->
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Theme Distribution
|
|
44
|
+
|
|
45
|
+
| Pillar | Posts | % of Calendar |
|
|
46
|
+
|---|---|---|
|
|
47
|
+
| <!-- Industry Insights --> | <!-- 12 --> | <!-- 40% --> |
|
|
48
|
+
| <!-- Product Value --> | <!-- 9 --> | <!-- 30% --> |
|
|
49
|
+
| <!-- Social Proof --> | <!-- 6 --> | <!-- 20% --> |
|
|
50
|
+
| <!-- Community --> | <!-- 3 --> | <!-- 10% --> |
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Platform Distribution
|
|
55
|
+
|
|
56
|
+
| Platform | Total Posts | % of Calendar |
|
|
57
|
+
|---|---|---|
|
|
58
|
+
| <!-- instagram --> | <!-- --> | <!-- --> |
|
|
59
|
+
| <!-- linkedin --> | <!-- --> | <!-- --> |
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Notes
|
|
64
|
+
|
|
65
|
+
<!-- Any campaign-level constraints, blackout dates, or scheduling dependencies. -->
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# Platform Publishing Plan
|
|
2
|
+
|
|
3
|
+
<!-- Client: [client-slug] | Project: [project-slug] | Version: v1 | Date: YYYY-MM-DD -->
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
| Field | Value |
|
|
10
|
+
|---|---|
|
|
11
|
+
| Client | <!-- client name --> |
|
|
12
|
+
| Campaign | <!-- campaign name --> |
|
|
13
|
+
| Platforms in Scope | <!-- N platforms --> |
|
|
14
|
+
| Plan Period | <!-- YYYY-MM-DD to YYYY-MM-DD --> |
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Per-Platform Publishing Specs
|
|
19
|
+
|
|
20
|
+
<!-- One section per platform. Only include platforms selected in the Social Campaign Brief. -->
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
### Platform: <!-- instagram -->
|
|
25
|
+
|
|
26
|
+
| Attribute | Spec |
|
|
27
|
+
|---|---|
|
|
28
|
+
| Platform ID | <!-- instagram --> |
|
|
29
|
+
| Posting Frequency | <!-- e.g., 5x per week --> |
|
|
30
|
+
| Best Posting Times | <!-- e.g., Mon/Wed/Fri: 9am–11am ET; Tue/Thu: 6pm–8pm ET --> |
|
|
31
|
+
| Primary Content Format | <!-- e.g., Static image (80%), Reel (20%) --> |
|
|
32
|
+
| Character Limit | <!-- 2,200 (aim for ≤150 above fold) --> |
|
|
33
|
+
| Hashtag Count | <!-- 3–5 primary hashtags --> |
|
|
34
|
+
| Caption Tone | <!-- e.g., Visual-first, story-driven, aspirational --> |
|
|
35
|
+
| Link Strategy | <!-- e.g., Link in bio only; rotate per campaign phase --> |
|
|
36
|
+
| Media Specs (Image) | <!-- 1080×1080 (square), 1080×1350 (portrait); ≤30MB, JPG/PNG --> |
|
|
37
|
+
| Media Specs (Video) | <!-- 1080×1920 (Reels); max 90 seconds; MP4 preferred --> |
|
|
38
|
+
| Media Specs (Carousel) | <!-- Up to 10 slides; 1080×1080 each --> |
|
|
39
|
+
| Account | <!-- @account_handle --> |
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
### Platform: <!-- linkedin -->
|
|
44
|
+
|
|
45
|
+
| Attribute | Spec |
|
|
46
|
+
|---|---|
|
|
47
|
+
| Platform ID | <!-- linkedin --> |
|
|
48
|
+
| Posting Frequency | <!-- e.g., 3x per week --> |
|
|
49
|
+
| Best Posting Times | <!-- e.g., Tue/Wed/Thu: 8am–10am ET --> |
|
|
50
|
+
| Primary Content Format | <!-- e.g., Text + image (60%), Document/carousel (30%), Video (10%) --> |
|
|
51
|
+
| Character Limit | <!-- 3,000 (optimal engagement: 150–300 chars for opening hook) --> |
|
|
52
|
+
| Hashtag Count | <!-- 3–5 relevant professional hashtags --> |
|
|
53
|
+
| Caption Tone | <!-- e.g., Professional, insight-driven, no jargon --> |
|
|
54
|
+
| Link Strategy | <!-- e.g., Link in first comment (reduces algorithmic suppression of link posts) --> |
|
|
55
|
+
| Media Specs (Image) | <!-- 1200×627 (landscape), PNG/JPG; ≤5MB --> |
|
|
56
|
+
| Media Specs (Document) | <!-- PDF up to 300 pages, 100MB max --> |
|
|
57
|
+
| Account | <!-- company page or personal profile --> |
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
### Platform: <!-- tiktok -->
|
|
62
|
+
|
|
63
|
+
| Attribute | Spec |
|
|
64
|
+
|---|---|
|
|
65
|
+
| Platform ID | <!-- tiktok --> |
|
|
66
|
+
| Posting Frequency | <!-- e.g., 5x per week --> |
|
|
67
|
+
| Best Posting Times | <!-- e.g., Mon–Fri: 7am–9am ET and 7pm–9pm ET --> |
|
|
68
|
+
| Primary Content Format | <!-- Video only --> |
|
|
69
|
+
| Character Limit | <!-- 2,200 (optimal: first 150 characters before "more" fold) --> |
|
|
70
|
+
| Hashtag Count | <!-- 3–6 hashtags mixing trending and niche --> |
|
|
71
|
+
| Caption Tone | <!-- Casual, trend-aware, authentic, hook-first --> |
|
|
72
|
+
| Link Strategy | <!-- Bio link only (Linktree or equivalent) --> |
|
|
73
|
+
| Media Specs (Video) | <!-- 1080×1920 (9:16); 15 seconds – 10 minutes; MP4/MOV; ≤500MB --> |
|
|
74
|
+
| Account | <!-- @tiktok_handle --> |
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
### Platform: <!-- twitter (X) -->
|
|
79
|
+
|
|
80
|
+
| Attribute | Spec |
|
|
81
|
+
|---|---|
|
|
82
|
+
| Platform ID | <!-- twitter --> |
|
|
83
|
+
| Posting Frequency | <!-- e.g., daily --> |
|
|
84
|
+
| Best Posting Times | <!-- e.g., 8am–10am ET and 12pm–2pm ET on weekdays --> |
|
|
85
|
+
| Primary Content Format | <!-- Text (50%), Text + image (40%), Thread (10%) --> |
|
|
86
|
+
| Character Limit | <!-- 280 characters (aim ≤240 for RT space) --> |
|
|
87
|
+
| Hashtag Count | <!-- 1–2 hashtags maximum --> |
|
|
88
|
+
| Caption Tone | <!-- Concise, punchy, opinion-forward, conversation-sparking --> |
|
|
89
|
+
| Link Strategy | <!-- Direct URL in tweet --> |
|
|
90
|
+
| Media Specs (Image) | <!-- 1200×675 (landscape) or 1200×1200 (square); ≤5MB; JPG/PNG/GIF --> |
|
|
91
|
+
| Account | <!-- @twitter_handle --> |
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Content Mix by Platform
|
|
96
|
+
|
|
97
|
+
| Platform | Educational | Promotional | Community | Entertainment |
|
|
98
|
+
|---|---|---|---|---|
|
|
99
|
+
| <!-- instagram --> | <!-- 40% --> | <!-- 30% --> | <!-- 20% --> | <!-- 10% --> |
|
|
100
|
+
| <!-- linkedin --> | <!-- 50% --> | <!-- 30% --> | <!-- 20% --> | <!-- 0% --> |
|
|
101
|
+
| <!-- tiktok --> | <!-- 30% --> | <!-- 20% --> | <!-- 10% --> | <!-- 40% --> |
|
|
102
|
+
| <!-- twitter --> | <!-- 40% --> | <!-- 20% --> | <!-- 30% --> | <!-- 10% --> |
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Cross-Platform Coordination
|
|
107
|
+
|
|
108
|
+
<!-- Describe how content is adapted across platforms rather than duplicated. -->
|
|
109
|
+
|
|
110
|
+
| Source Content | Instagram Adaptation | LinkedIn Adaptation | TikTok Adaptation | X Adaptation |
|
|
111
|
+
|---|---|---|---|---|
|
|
112
|
+
| <!-- Blog post / case study --> | <!-- Visual pull quote card --> | <!-- Professional insight thread --> | <!-- Talking head video summary --> | <!-- 3-tweet thread with key stats --> |
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Scheduling Manifest
|
|
2
|
+
|
|
3
|
+
<!-- Client: [client-slug] | Project: [project-slug] | Version: v1 | Date: YYYY-MM-DD -->
|
|
4
|
+
<!-- Execution Mode: local-fork | agent-only (dry-run) -->
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Manifest Overview
|
|
9
|
+
|
|
10
|
+
| Field | Value |
|
|
11
|
+
|---|---|
|
|
12
|
+
| Client | <!-- client name --> |
|
|
13
|
+
| Campaign | <!-- campaign name --> |
|
|
14
|
+
| Workspace ID | <!-- Postiz workspace UUID or "placeholder" for dry-run --> |
|
|
15
|
+
| Postiz API URL | <!-- http://localhost:3000 or hosted URL --> |
|
|
16
|
+
| Total Posts | <!-- N --> |
|
|
17
|
+
| Schedule Period | <!-- YYYY-MM-DD to YYYY-MM-DD --> |
|
|
18
|
+
| Generated By | postiz-social-operator |
|
|
19
|
+
| Dry Run | <!-- true / false --> |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## How to Submit (Local-Fork Mode)
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Submit manifest to Postiz API
|
|
27
|
+
curl -X POST http://localhost:3000/api/v1/posts/bulk \
|
|
28
|
+
-H "Content-Type: application/json" \
|
|
29
|
+
-H "Authorization: Bearer <your-postiz-jwt-token>" \
|
|
30
|
+
-d @scheduling-manifest.json
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## scheduling-manifest.json
|
|
36
|
+
|
|
37
|
+
```json
|
|
38
|
+
{
|
|
39
|
+
"postizSchedulingManifest": {
|
|
40
|
+
"version": "1.0",
|
|
41
|
+
"workspaceId": "<postiz-workspace-uuid>",
|
|
42
|
+
"generatedAt": "<ISO-8601-timestamp>",
|
|
43
|
+
"dryRun": false,
|
|
44
|
+
"posts": [
|
|
45
|
+
{
|
|
46
|
+
"postId": "<client-slug>-<YYYYMMDD>-<platform>-001",
|
|
47
|
+
"platform": "<postiz-platform-id>",
|
|
48
|
+
"scheduledAt": "<ISO-8601-timestamp-with-timezone>",
|
|
49
|
+
"content": "<selected caption variant — full text>",
|
|
50
|
+
"mediaAssets": [],
|
|
51
|
+
"tags": ["<hashtag1>", "<hashtag2>"],
|
|
52
|
+
"status": "pending"
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Post Schedule Table
|
|
62
|
+
|
|
63
|
+
| Post ID | Platform | Scheduled At | Caption Variant | Media Assets | Status |
|
|
64
|
+
|---|---|---|---|---|---|
|
|
65
|
+
| <!-- client-slug-20260415-instagram-001 --> | <!-- instagram --> | <!-- 2026-04-15T09:00:00-05:00 --> | <!-- A --> | <!-- none / [asset-filename.jpg] --> | pending |
|
|
66
|
+
| | | | | | |
|
|
67
|
+
| | | | | | |
|
|
68
|
+
|
|
69
|
+
<!-- One row per post. postId must follow: <client-slug>-<YYYYMMDD>-<platform>-<sequence> -->
|
|
70
|
+
<!-- scheduledAt must be ISO 8601 with timezone: YYYY-MM-DDTHH:MM:SS±HH:MM -->
|
|
71
|
+
<!-- Platform IDs from docs/platform-coverage.md -->
|
|
72
|
+
<!-- Caption variant references the selected variant (A/B/C) from the Caption Copy Deck -->
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Post-Submission Verification
|
|
77
|
+
|
|
78
|
+
After submitting the manifest to the Postiz API:
|
|
79
|
+
|
|
80
|
+
1. Confirm all posts appear in the Postiz admin UI → Calendar view
|
|
81
|
+
2. Verify `scheduledAt` timestamps match the content calendar exactly
|
|
82
|
+
3. Check that media assets are linked correctly (if applicable)
|
|
83
|
+
4. Set status to `scheduled` in the Content Calendar for each confirmed post
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Social Campaign Brief
|
|
2
|
+
|
|
3
|
+
<!-- Client: [client-slug] | Project: [project-slug] | Version: v1 | Date: YYYY-MM-DD -->
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Project Overview
|
|
8
|
+
|
|
9
|
+
| Field | Value |
|
|
10
|
+
|---|---|
|
|
11
|
+
| Client | <!-- client name --> |
|
|
12
|
+
| Campaign Name | <!-- campaign name --> |
|
|
13
|
+
| Campaign Objective | <!-- brand awareness / lead generation / engagement / product launch / community growth --> |
|
|
14
|
+
| Campaign Window | <!-- YYYY-MM-DD to YYYY-MM-DD --> |
|
|
15
|
+
| Total Duration | <!-- e.g., 30 days --> |
|
|
16
|
+
| Posting Cadence | <!-- e.g., 3x per week per platform --> |
|
|
17
|
+
| Target Platforms | <!-- comma-separated list --> |
|
|
18
|
+
| Execution Mode | <!-- local-fork / agent-only / hybrid --> |
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Campaign Objective
|
|
23
|
+
|
|
24
|
+
<!-- One paragraph stating the primary goal, what success looks like, and what problem the campaign solves for the client. -->
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Target Platforms
|
|
29
|
+
|
|
30
|
+
| Platform | Audience Fit | Content Format | Primary Goal |
|
|
31
|
+
|---|---|---|---|
|
|
32
|
+
| <!-- platform --> | <!-- why this platform fits the audience --> | <!-- image / video / carousel / text --> | <!-- specific platform goal --> |
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Audience Profile
|
|
37
|
+
|
|
38
|
+
### Primary Audience
|
|
39
|
+
|
|
40
|
+
| Attribute | Description |
|
|
41
|
+
|---|---|
|
|
42
|
+
| Age Range | <!-- e.g., 25–40 --> |
|
|
43
|
+
| Interests | <!-- e.g., entrepreneurship, SaaS, productivity --> |
|
|
44
|
+
| Platforms Most Active | <!-- e.g., LinkedIn, X --> |
|
|
45
|
+
| Pain Points | <!-- what they struggle with --> |
|
|
46
|
+
| Content Preferences | <!-- educational / entertaining / inspirational / promotional --> |
|
|
47
|
+
|
|
48
|
+
### Secondary Audience
|
|
49
|
+
|
|
50
|
+
| Attribute | Description |
|
|
51
|
+
|---|---|
|
|
52
|
+
| Age Range | <!-- --> |
|
|
53
|
+
| Interests | <!-- --> |
|
|
54
|
+
| Platforms Most Active | <!-- --> |
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## KPI Targets
|
|
59
|
+
|
|
60
|
+
| Metric | Target | Measurement Method |
|
|
61
|
+
|---|---|---|
|
|
62
|
+
| Impressions | <!-- e.g., 50,000 / month --> | Platform native analytics |
|
|
63
|
+
| Engagement Rate | <!-- e.g., ≥3% --> | (likes + comments + shares) / impressions |
|
|
64
|
+
| Follower Growth | <!-- e.g., +500 net new followers --> | Platform native |
|
|
65
|
+
| Link Clicks | <!-- e.g., 200 clicks to landing page --> | UTM tracking / bio link |
|
|
66
|
+
| Conversions | <!-- e.g., 20 demo requests --> | CRM / tracking pixel |
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Content Theme Pillars
|
|
71
|
+
|
|
72
|
+
<!-- Define 3–5 recurring themes that anchor the content calendar. Each pillar should be a distinct topic area that aligns with the campaign objective. -->
|
|
73
|
+
|
|
74
|
+
| Pillar | Theme | Content Mix | Example Topics |
|
|
75
|
+
|---|---|---|---|
|
|
76
|
+
| 1 | <!-- e.g., Industry Insights --> | <!-- % of calendar --> | <!-- e.g., "Top 5 trends in...", "What the data shows..." --> |
|
|
77
|
+
| 2 | <!-- e.g., Product Value --> | <!-- % --> | <!-- --> |
|
|
78
|
+
| 3 | <!-- e.g., Social Proof --> | <!-- % --> | <!-- --> |
|
|
79
|
+
| 4 | <!-- e.g., Behind the Scenes --> | <!-- % --> | <!-- --> |
|
|
80
|
+
| 5 | <!-- e.g., Community Engagement --> | <!-- % --> | <!-- optional --> |
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Brand Voice
|
|
85
|
+
|
|
86
|
+
| Attribute | Spec |
|
|
87
|
+
|---|---|
|
|
88
|
+
| Tone | <!-- e.g., Professional but approachable, data-driven, never salesy --> |
|
|
89
|
+
| Words to Use | <!-- e.g., "build", "grow", "automate", "team" --> |
|
|
90
|
+
| Words to Avoid | <!-- e.g., "cheap", "hack", "guru" --> |
|
|
91
|
+
| Emoji Usage | <!-- e.g., Minimal — max 2 per caption on LinkedIn; more casual on Instagram --> |
|
|
92
|
+
| CTA Style | <!-- e.g., Direct verbs: "Start today", "Learn more", "Join us" --> |
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Competitor Reference Accounts
|
|
97
|
+
|
|
98
|
+
| Platform | Account | Why Reference |
|
|
99
|
+
|---|---|---|
|
|
100
|
+
| <!-- --> | <!-- --> | <!-- e.g., strong engagement format, industry leader --> |
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Deliverables Scope
|
|
105
|
+
|
|
106
|
+
- [ ] Content Calendar (<!-- N --> posts over <!-- N --> days)
|
|
107
|
+
- [ ] Platform Publishing Plan
|
|
108
|
+
- [ ] Caption Copy Deck (A/B/C variants per post)
|
|
109
|
+
- [ ] Scheduling Manifest
|
|
110
|
+
- [ ] Analytics Brief (end of campaign)
|
|
111
|
+
- [ ] Client Proposal
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Validation Checklist — growthub-postiz-social-v1
|
|
2
|
+
|
|
3
|
+
**Run through this checklist before starting every operator session and before delivering any artifact package.**
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Pre-Session Checklist
|
|
8
|
+
|
|
9
|
+
### Environment Gate
|
|
10
|
+
|
|
11
|
+
- [ ] Node.js 18+ is installed (`node --version` returns 18+)
|
|
12
|
+
- [ ] Docker is installed and running (`docker --version`)
|
|
13
|
+
- [ ] `docker compose` command is available
|
|
14
|
+
- [ ] Git is installed (`git --version`)
|
|
15
|
+
|
|
16
|
+
### Local-Fork Mode (skip if agent-only)
|
|
17
|
+
|
|
18
|
+
- [ ] Postiz fork is cloned at `POSTIZ_FORK_PATH` (default: `~/postiz-app`)
|
|
19
|
+
- [ ] `docker compose ps` shows `postiz`, `postiz-postgres`, `postiz-redis` all running
|
|
20
|
+
- [ ] `curl http://localhost:3000/api/healthcheck` returns a 200 response
|
|
21
|
+
- [ ] At least one platform integration is connected and authorized in the Postiz admin UI
|
|
22
|
+
- [ ] `POSTIZ_WORKSPACE_ID` is set in `.env` (required for scheduling manifest submission)
|
|
23
|
+
|
|
24
|
+
### Agent-Only Mode (skip if local-fork)
|
|
25
|
+
|
|
26
|
+
- [ ] Mode is confirmed with the user and documented as `agent-only` at the top of all outputs
|
|
27
|
+
- [ ] Scheduling manifests are marked as `dry-run: true` in the manifest header
|
|
28
|
+
|
|
29
|
+
### Context
|
|
30
|
+
|
|
31
|
+
- [ ] Brand kit exists for the active client (`brands/<client-slug>/brand-kit.md`)
|
|
32
|
+
- [ ] Campaign objective is confirmed (one of: brand awareness / lead generation / engagement / product launch / community growth)
|
|
33
|
+
- [ ] Target platforms are confirmed and in the supported list (`docs/platform-coverage.md`)
|
|
34
|
+
- [ ] Campaign timeframe and posting cadence are confirmed
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Pre-Delivery Checklist
|
|
39
|
+
|
|
40
|
+
### Content Calendar
|
|
41
|
+
|
|
42
|
+
- [ ] All calendar rows have dates within the campaign window
|
|
43
|
+
- [ ] All platform slugs match `docs/platform-coverage.md`
|
|
44
|
+
- [ ] All post types are valid for their target platform
|
|
45
|
+
- [ ] Every row has a non-empty CTA
|
|
46
|
+
- [ ] Media asset notes are present for all image/video/carousel posts
|
|
47
|
+
|
|
48
|
+
### Caption Copy Deck
|
|
49
|
+
|
|
50
|
+
- [ ] All 3 variants (A/B/C) are present for every post entry
|
|
51
|
+
- [ ] All captions respect platform character limits
|
|
52
|
+
- [ ] Hashtag counts are within platform-recommended ranges
|
|
53
|
+
- [ ] No placeholder text remains (no `[INSERT CAPTION HERE]` style fragments)
|
|
54
|
+
|
|
55
|
+
### Scheduling Manifest
|
|
56
|
+
|
|
57
|
+
- [ ] All `scheduledAt` timestamps are ISO 8601 format with timezone offset
|
|
58
|
+
- [ ] All `postId` values follow the naming convention
|
|
59
|
+
- [ ] `workspaceId` is present (or `"placeholder"` with `dry-run: true` in agent-only mode)
|
|
60
|
+
- [ ] Every post in the manifest has a corresponding entry in the ContentCalendar
|
|
61
|
+
|
|
62
|
+
### Output Files
|
|
63
|
+
|
|
64
|
+
- [ ] All files follow the naming convention (`ClientSlug_OutputType_v<N>_<YYYYMMDD>.md`)
|
|
65
|
+
- [ ] All files are saved to `output/<client-slug>/<project-slug>/`
|
|
66
|
+
- [ ] Deliverable is logged in the brand kit DELIVERABLES LOG
|
|
67
|
+
- [ ] No API keys, tokens, or credentials appear in any output file
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Kit Integrity Checklist (run after kit changes)
|
|
72
|
+
|
|
73
|
+
- [ ] `kit.json` is valid JSON with `schemaVersion: 2`
|
|
74
|
+
- [ ] All paths in `frozenAssetPaths` exist on disk
|
|
75
|
+
- [ ] All paths in `outputStandard.requiredPaths` exist on disk
|
|
76
|
+
- [ ] Bundle manifest `bundles/growthub-postiz-social-v1.json` exists and matches kit.json
|
|
77
|
+
- [ ] `bundle.kitId` in bundle manifest matches `kit.id` in kit.json
|
|
78
|
+
- [ ] `bundle.workerId` in bundle manifest matches `entrypoint.workerId` in kit.json
|
|
79
|
+
- [ ] All paths in `requiredFrozenAssets` in bundle manifest exist on disk
|