@growthub/cli 0.3.53 → 0.3.54
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-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/package.json +1 -1
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Content Calendar — Sample
|
|
2
|
+
|
|
3
|
+
<!-- Sample: Urban Cycle | Q2 2026 Urban Mobility Month | v1 | 2026-04-15 -->
|
|
4
|
+
<!-- This is a filled example demonstrating the expected format. Data is fictitious but realistic. -->
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Calendar Header
|
|
9
|
+
|
|
10
|
+
| Field | Value |
|
|
11
|
+
|---|---|
|
|
12
|
+
| Client | Urban Cycle |
|
|
13
|
+
| Campaign | Q2 2026 — Urban Mobility Month (Week 1 excerpt) |
|
|
14
|
+
| Period | 2026-05-01 to 2026-05-07 |
|
|
15
|
+
| Platforms | instagram, linkedin, twitter |
|
|
16
|
+
| Total Posts (Week 1) | 11 |
|
|
17
|
+
| Generated By | postiz-social-operator |
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Posting Cadence Summary
|
|
22
|
+
|
|
23
|
+
| Platform | Posts/Week | Best Times (ET) | Content Mix |
|
|
24
|
+
|---|---|---|---|
|
|
25
|
+
| instagram | 5 | Mon/Wed/Fri: 9am; Tue/Thu: 7pm | 40% Route Stories, 30% Advocacy, 20% Gear, 10% Community |
|
|
26
|
+
| linkedin | 3 | Tue: 8am, Thu: 8am, Sat: 10am | 50% Advocacy, 30% Community Spotlight, 20% Brand |
|
|
27
|
+
| twitter | daily | 8am and 12pm | 40% Advocacy, 30% Route, 20% Community, 10% Gear |
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Content Calendar (Week 1 Sample)
|
|
32
|
+
|
|
33
|
+
| Date | Day | Platform | Theme Pillar | Post Type | Caption Preview (first 100 chars) | CTA | Media Notes | Status |
|
|
34
|
+
|---|---|---|---|---|---|---|---|---|
|
|
35
|
+
| 2026-05-01 | Friday | instagram | Route Stories | image | "Friday route drop: The Lakeshore Loop — 8km of waterfront commuting bliss. No car lanes. No s..." | Link in bio | 1080×1350 portrait; sunrise on lake path; brand blue overlay in corner | draft |
|
|
36
|
+
| 2026-05-01 | Friday | twitter | Advocacy | text | "May is Urban Mobility Month. 68% of people who live within 5km of work still drive. What would..." | What would change your commute? Reply below | Text only | draft |
|
|
37
|
+
| 2026-05-03 | Sunday | instagram | Story | story | "Quick poll: Do you cycle to work? 🚲 YES / 🚗 Not yet" | Vote in story | Instagram Story format; brand template with poll sticker | draft |
|
|
38
|
+
| 2026-05-04 | Monday | instagram | Advocacy & Infrastructure | image | "Amsterdam added 7km of protected bike lanes last month. That's more than most North American ci..." | Link in bio | 1080×1080 square; split-screen city comparison graphic | draft |
|
|
39
|
+
| 2026-05-04 | Monday | twitter | Route Stories | text + image | "Your Monday commute route matters. Here's the Westside Cut — 12 minutes faster than the subway..." | Try the route — link in bio | 1200×675 landscape map image with route overlay | draft |
|
|
40
|
+
| 2026-05-05 | Tuesday | linkedin | Advocacy | text + image | "72% of urban commuters cite safety as the #1 barrier to cycling. Yet cities that invest in prot..." | What infrastructure change would make you ride? Comment below | 1200×627 landscape; infographic on cycling safety stats | draft |
|
|
41
|
+
| 2026-05-06 | Wednesday | instagram | Gear & Technique | carousel | "5 locks that actually work (and 2 that don't). Swipe for the breakdown →" | Save this | 5-slide carousel; 1080×1080; product photos + ratings | draft |
|
|
42
|
+
| 2026-05-06 | Wednesday | twitter | Community | text | "Community repair night recap: 23 bikes tuned, 4 new riders taught their first brake adjust, 1 p..." | Find your local repair night — link in bio | Text only | draft |
|
|
43
|
+
| 2026-05-07 | Thursday | linkedin | Community Spotlight | text + image | "Rider of the week: Maria C. — full-time nurse, 14km commute, 3 years running. No excuses, no c..." | Share your commute story in the comments | 1200×627; portrait photo of Maria with bike outside hospital | draft |
|
|
44
|
+
| 2026-05-07 | Thursday | instagram | Community Spotlight | reel | "Maria cycles 14km each way to her nursing shift. Every. Single. Day. Here's her route." | Follow for weekly rider stories | 1080×1920 Reel; 30s; talking head + B-roll of commute route | draft |
|
|
45
|
+
| 2026-05-07 | Thursday | twitter | Gear | text + image | "The one thing every urban cyclist needs but nobody talks about: a chain tensioner. Here's why →" | Reply with your go-to gear | 1200×675; product close-up with annotation | draft |
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Theme Distribution (Week 1)
|
|
50
|
+
|
|
51
|
+
| Pillar | Posts | % of Week |
|
|
52
|
+
|---|---|---|
|
|
53
|
+
| Route Stories | 2 | 18% |
|
|
54
|
+
| Advocacy & Infrastructure | 3 | 27% |
|
|
55
|
+
| Gear & Technique | 2 | 18% |
|
|
56
|
+
| Community Spotlight | 3 | 27% |
|
|
57
|
+
| Story / Poll | 1 | 9% |
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Platform Distribution (Week 1)
|
|
62
|
+
|
|
63
|
+
| Platform | Total Posts | % of Week |
|
|
64
|
+
|---|---|---|
|
|
65
|
+
| instagram | 6 | 55% |
|
|
66
|
+
| linkedin | 2 | 18% |
|
|
67
|
+
| twitter | 3 | 27% |
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Notes
|
|
72
|
+
|
|
73
|
+
- May 5 (Tuesday) is Bike to Work Day — plan a campaign-specific post for all platforms
|
|
74
|
+
- May 7 (Thursday) Maria Spotlight requires photo approval before scheduling
|
|
75
|
+
- Blackout period: May 12–13 (Victoria Day weekend in Canada) — reduce LinkedIn frequency
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Social Campaign Brief — Sample
|
|
2
|
+
|
|
3
|
+
<!-- Sample: Urban Cycle | Q2 2026 Brand Awareness Campaign | v1 | 2026-04-15 -->
|
|
4
|
+
<!-- This is a filled example demonstrating the expected detail level. Data is fictitious but realistic. -->
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Project Overview
|
|
9
|
+
|
|
10
|
+
| Field | Value |
|
|
11
|
+
|---|---|
|
|
12
|
+
| Client | Urban Cycle |
|
|
13
|
+
| Campaign Name | Q2 2026 — Urban Mobility Month |
|
|
14
|
+
| Campaign Objective | Brand awareness + community growth |
|
|
15
|
+
| Campaign Window | 2026-05-01 to 2026-06-30 |
|
|
16
|
+
| Total Duration | 60 days |
|
|
17
|
+
| Posting Cadence | 5x per week on Instagram; 3x per week on LinkedIn; daily on X |
|
|
18
|
+
| Target Platforms | instagram, linkedin, twitter |
|
|
19
|
+
| Execution Mode | agent-only |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Campaign Objective
|
|
24
|
+
|
|
25
|
+
Urban Cycle aims to establish itself as the leading brand voice in urban cycling advocacy during May and June 2026 — peak cycling season in North American cities. The campaign targets awareness and community building rather than direct conversion. Success is a 15% increase in Instagram followers, 25,000 monthly impressions across platforms, and at least 3 user-generated content posts tagged with #UrbanCycleMonth by campaign end.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Target Platforms
|
|
30
|
+
|
|
31
|
+
| Platform | Audience Fit | Content Format | Primary Goal |
|
|
32
|
+
|---|---|---|---|
|
|
33
|
+
| instagram | 68% of Urban Cycle's target demo (25–40, urban) are active Instagram users; visual platform aligns with cycling lifestyle | Static image, Reel, Story | Brand awareness, follower growth |
|
|
34
|
+
| linkedin | B2B reach for cycling infrastructure decision-makers, urban planners, and corporate wellness buyers | Text + image, Document carousel | Thought leadership, B2B pipeline |
|
|
35
|
+
| twitter | Real-time conversation during cycling events and advocacy moments; 42% of Urban Cycle's audience follows cycling news on X | Text, image | Community, newsjacking, advocacy |
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Audience Profile
|
|
40
|
+
|
|
41
|
+
### Primary Audience
|
|
42
|
+
|
|
43
|
+
| Attribute | Description |
|
|
44
|
+
|---|---|
|
|
45
|
+
| Age Range | 25–40 |
|
|
46
|
+
| Interests | Urban cycling, sustainability, active commuting, city planning |
|
|
47
|
+
| Platforms Most Active | Instagram, X |
|
|
48
|
+
| Pain Points | Lack of safe cycling infrastructure, inaccessible bike-share programs, no unified community platform |
|
|
49
|
+
| Content Preferences | Inspiring imagery, practical route tips, advocacy wins, behind-the-scenes city cycling stories |
|
|
50
|
+
|
|
51
|
+
### Secondary Audience
|
|
52
|
+
|
|
53
|
+
| Attribute | Description |
|
|
54
|
+
|---|---|
|
|
55
|
+
| Age Range | 18–25 |
|
|
56
|
+
| Interests | Environmental activism, side hustles, fixie culture |
|
|
57
|
+
| Platforms Most Active | Instagram, TikTok |
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## KPI Targets
|
|
62
|
+
|
|
63
|
+
| Metric | Target | Measurement Method |
|
|
64
|
+
|---|---|---|
|
|
65
|
+
| Impressions | 25,000 / month | Platform native analytics |
|
|
66
|
+
| Engagement Rate | ≥3.5% on Instagram | (likes + comments + shares + saves) / impressions × 100 |
|
|
67
|
+
| Follower Growth | +500 net new Instagram followers | Platform native |
|
|
68
|
+
| Link Clicks | 300 clicks to urbancycle.com (bio link + LinkedIn posts) | UTM tracking |
|
|
69
|
+
| UGC Posts | ≥3 posts tagged #UrbanCycleMonth | Manual search |
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Content Theme Pillars
|
|
74
|
+
|
|
75
|
+
| Pillar | Theme | Content Mix | Example Topics |
|
|
76
|
+
|---|---|---|---|
|
|
77
|
+
| 1 | Route Stories | 35% | "Best commute routes in [city]", "Hidden cycling paths", "Weekend ride reports" |
|
|
78
|
+
| 2 | Advocacy & Infrastructure | 25% | "Cities doing cycling right", "New bike lane wins", "Open letter to city planners" |
|
|
79
|
+
| 3 | Gear & Technique | 20% | "Essential cycling gear for commuters", "Maintenance tips", "Lock your bike right" |
|
|
80
|
+
| 4 | Community Spotlight | 15% | "Rider of the week", "Local group rides", "Community repair nights" |
|
|
81
|
+
| 5 | Brand & Behind the Scenes | 5% | "How Urban Cycle started", "Meet the team", "What we're building next" |
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Brand Voice
|
|
86
|
+
|
|
87
|
+
| Attribute | Spec |
|
|
88
|
+
|---|---|
|
|
89
|
+
| Tone | Passionate, community-first, data-informed. We advocate — we don't preach. |
|
|
90
|
+
| Words to Use | "ride", "route", "commute", "community", "advocate", "city", "local" |
|
|
91
|
+
| Words to Avoid | "disruptive", "hustle", "hack", "crush" |
|
|
92
|
+
| Emoji Usage | 2–3 on Instagram, 0–1 on LinkedIn, 0–1 on X |
|
|
93
|
+
| CTA Style | Community invitation: "Join us", "Share your route", "What's your city?", "Tag a rider" |
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Deliverables Scope
|
|
98
|
+
|
|
99
|
+
- [x] Content Calendar (60 days, 3 platforms)
|
|
100
|
+
- [x] Platform Publishing Plan
|
|
101
|
+
- [x] Caption Copy Deck (A/B/C variants)
|
|
102
|
+
- [ ] Scheduling Manifest (agent-only dry-run)
|
|
103
|
+
- [ ] Analytics Brief (end of campaign)
|
|
104
|
+
- [ ] Client Proposal
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# Growthub Meta — growthub-postiz-social-v1
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Kit Identity
|
|
6
|
+
|
|
7
|
+
| Field | Value |
|
|
8
|
+
|---|---|
|
|
9
|
+
| Kit ID | `growthub-postiz-social-v1` |
|
|
10
|
+
| Version | `1.0.0` |
|
|
11
|
+
| Schema Version | `2` |
|
|
12
|
+
| Type | `worker` |
|
|
13
|
+
| Family | `operator` |
|
|
14
|
+
| Execution Mode | `export` |
|
|
15
|
+
| Activation Modes | `["export"]` |
|
|
16
|
+
| Visibility | `public-open-source` |
|
|
17
|
+
| Source Repo | `growthub-local` |
|
|
18
|
+
| Frozen At | `2026-04-15T00:00:00.000Z` |
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## What This Kit Does
|
|
23
|
+
|
|
24
|
+
The Growthub Postiz Social Media Studio is a worker kit that wraps the [Postiz](https://github.com/gitroomhq/postiz-app) open-source social media scheduling platform (~28,000 GitHub stars, MIT license) to produce AI-assisted social media campaigns, content calendars, caption copy decks, and scheduling manifests across 28+ platforms.
|
|
25
|
+
|
|
26
|
+
The kit provides a self-contained local execution environment. An operator exports the kit, points Claude Code's Working Directory at the kit root, and the `postiz-social-operator` worker handles the complete 10-step social media campaign workflow.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Folder Structure
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
growthub-postiz-social-v1/
|
|
34
|
+
kit.json ← Kit manifest (schemaVersion: 2)
|
|
35
|
+
QUICKSTART.md ← Setup guide
|
|
36
|
+
.env.example ← Environment template
|
|
37
|
+
skills.md ← Master methodology doc (read at every session)
|
|
38
|
+
output-standards.md ← Output naming, structure, quality bar
|
|
39
|
+
runtime-assumptions.md ← Frozen upstream assumptions
|
|
40
|
+
validation-checklist.md ← Pre-session + kit validation checklists
|
|
41
|
+
bundles/
|
|
42
|
+
growthub-postiz-social-v1.json ← Bundle manifest
|
|
43
|
+
workers/
|
|
44
|
+
postiz-social-operator/
|
|
45
|
+
CLAUDE.md ← Agent operating instructions (entrypoint)
|
|
46
|
+
brands/
|
|
47
|
+
_template/
|
|
48
|
+
brand-kit.md ← Blank client brand kit template
|
|
49
|
+
growthub/
|
|
50
|
+
brand-kit.md ← Growthub internal reference example
|
|
51
|
+
NEW-CLIENT.md ← Instructions for adding new clients
|
|
52
|
+
setup/
|
|
53
|
+
clone-fork.sh ← Clones Postiz, runs docker compose up
|
|
54
|
+
verify-env.mjs ← Verifies fork, API, workspace ID, API key
|
|
55
|
+
check-deps.sh ← Verifies Node, Docker, docker compose, git
|
|
56
|
+
output/
|
|
57
|
+
README.md ← Output directory structure and naming
|
|
58
|
+
templates/ ← 7 production-quality campaign templates
|
|
59
|
+
social-campaign-brief.md
|
|
60
|
+
content-calendar.md
|
|
61
|
+
platform-publishing-plan.md
|
|
62
|
+
caption-copy-deck.md
|
|
63
|
+
scheduling-manifest.md
|
|
64
|
+
analytics-brief.md
|
|
65
|
+
client-proposal.md
|
|
66
|
+
examples/ ← 4 filled samples for reference
|
|
67
|
+
social-campaign-sample.md
|
|
68
|
+
content-calendar-sample.md
|
|
69
|
+
analytics-brief-sample.md
|
|
70
|
+
client-proposal-sample.md
|
|
71
|
+
docs/ ← 4 technical reference documents
|
|
72
|
+
postiz-fork-integration.md
|
|
73
|
+
platform-coverage.md
|
|
74
|
+
ai-caption-layer.md
|
|
75
|
+
bullmq-queue-layer.md
|
|
76
|
+
growthub-meta/
|
|
77
|
+
README.md ← This file
|
|
78
|
+
kit-standard.md ← Kit rules and required-files contract
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Activation
|
|
84
|
+
|
|
85
|
+
This kit is activated in `export` mode:
|
|
86
|
+
|
|
87
|
+
1. CLI exports the kit to a local folder
|
|
88
|
+
2. User points Claude Code's Working Directory at the exported folder root
|
|
89
|
+
3. `workers/postiz-social-operator/CLAUDE.md` is the agent entrypoint
|
|
90
|
+
|
|
91
|
+
No server-side activation is required. The kit is fully self-contained.
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Upstream Fork
|
|
96
|
+
|
|
97
|
+
| Field | Value |
|
|
98
|
+
|---|---|
|
|
99
|
+
| Fork Repo | https://github.com/gitroomhq/postiz-app |
|
|
100
|
+
| License | MIT |
|
|
101
|
+
| Default Clone Path | `~/postiz-app` |
|
|
102
|
+
| Env Var Override | `POSTIZ_FORK_PATH` |
|
|
103
|
+
| Services | Docker Compose: Postiz app (port 3000), Redis (6379), PostgreSQL (5432) |
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Supported Output Categories
|
|
108
|
+
|
|
109
|
+
| Category | Templates | Examples |
|
|
110
|
+
|---|---|---|
|
|
111
|
+
| Social Campaign Briefs | `templates/social-campaign-brief.md` | `examples/social-campaign-sample.md` |
|
|
112
|
+
| Content Calendars | `templates/content-calendar.md` | `examples/content-calendar-sample.md` |
|
|
113
|
+
| Platform Publishing Plans | `templates/platform-publishing-plan.md` | — |
|
|
114
|
+
| Caption Copy Decks | `templates/caption-copy-deck.md` | — |
|
|
115
|
+
| Scheduling Manifests | `templates/scheduling-manifest.md` | — |
|
|
116
|
+
| Analytics Briefs | `templates/analytics-brief.md` | `examples/analytics-brief-sample.md` |
|
|
117
|
+
| Client Proposals | `templates/client-proposal.md` | `examples/client-proposal-sample.md` |
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Related Kits
|
|
122
|
+
|
|
123
|
+
| Kit | Family | Purpose |
|
|
124
|
+
|---|---|---|
|
|
125
|
+
| `creative-strategist-v1` | workflow | Campaign strategy and creative briefs |
|
|
126
|
+
| `growthub-email-marketing-v1` | operator | Email marketing campaigns |
|
|
127
|
+
| `growthub-open-higgsfield-studio-v1` | studio | AI video generation via Open Higgsfield |
|
|
128
|
+
| `growthub-geo-seo-v1` | studio | GEO + SEO auditing |
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Kit Standard — growthub-postiz-social-v1
|
|
2
|
+
|
|
3
|
+
**These rules govern the kit's structure, agent behavior, and output contract. All operators and maintainers must follow them.**
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Required Files Contract
|
|
8
|
+
|
|
9
|
+
The following files must be present in every valid kit installation. Any missing file constitutes a broken kit.
|
|
10
|
+
|
|
11
|
+
| File | Purpose | Can Be Empty? |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| `kit.json` | Kit manifest | No — must be valid JSON with schemaVersion: 2 |
|
|
14
|
+
| `QUICKSTART.md` | User-facing setup guide | No |
|
|
15
|
+
| `.env.example` | Environment template | No |
|
|
16
|
+
| `skills.md` | Master methodology doc | No — must contain all 10 steps |
|
|
17
|
+
| `output-standards.md` | Output rules | No |
|
|
18
|
+
| `runtime-assumptions.md` | Upstream assumptions | No |
|
|
19
|
+
| `validation-checklist.md` | Pre-session checklist | No |
|
|
20
|
+
| `workers/postiz-social-operator/CLAUDE.md` | Agent entrypoint | No |
|
|
21
|
+
| `brands/_template/brand-kit.md` | Blank brand kit template | No |
|
|
22
|
+
| `brands/growthub/brand-kit.md` | Example brand kit | No |
|
|
23
|
+
| `brands/NEW-CLIENT.md` | New client instructions | No |
|
|
24
|
+
| `setup/clone-fork.sh` | Fork installation script | No |
|
|
25
|
+
| `setup/verify-env.mjs` | Environment verification | No |
|
|
26
|
+
| `setup/check-deps.sh` | Dependency check | No |
|
|
27
|
+
| `output/README.md` | Output directory guide | No |
|
|
28
|
+
| All 7 template files | Campaign output templates | No — each must have all sections |
|
|
29
|
+
| All 4 example files | Reference samples | No — must contain realistic filled data |
|
|
30
|
+
| All 4 doc files | Technical reference | No |
|
|
31
|
+
| `bundles/growthub-postiz-social-v1.json` | Bundle manifest | No |
|
|
32
|
+
| `growthub-meta/README.md` | Kit metadata | No |
|
|
33
|
+
| `growthub-meta/kit-standard.md` | This file | No |
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Bundle Contract
|
|
38
|
+
|
|
39
|
+
| Requirement | Rule |
|
|
40
|
+
|---|---|
|
|
41
|
+
| Bundle ID | Must match kit ID: `growthub-postiz-social-v1` |
|
|
42
|
+
| Kit ID in bundle | Must be `growthub-postiz-social-v1` |
|
|
43
|
+
| Worker ID in bundle | Must be `postiz-social-operator` |
|
|
44
|
+
| Schema version | Must be `2` |
|
|
45
|
+
| `requiredFrozenAssets` | Must list all files in `kit.json` `frozenAssetPaths` |
|
|
46
|
+
| Export folder name | `growthub-agent-worker-kit-postiz-social-v1` |
|
|
47
|
+
| Export zip name | `growthub-agent-worker-kit-postiz-social-v1.zip` |
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Agent Rules
|
|
52
|
+
|
|
53
|
+
### Workflow Order
|
|
54
|
+
|
|
55
|
+
The operator must follow the 10-step workflow in `workers/postiz-social-operator/CLAUDE.md` strictly. Steps must not be skipped or reordered. The environment gate (Step 0) must run before anything else.
|
|
56
|
+
|
|
57
|
+
### Platform IDs
|
|
58
|
+
|
|
59
|
+
The operator must only use platform IDs from `docs/platform-coverage.md`. Invented platform slugs are not acceptable. If the user requests a platform not in the coverage doc, the operator must note it as unsupported in the current Postiz instance and suggest the nearest supported alternative.
|
|
60
|
+
|
|
61
|
+
### Caption Variants
|
|
62
|
+
|
|
63
|
+
Every post in the Caption Copy Deck must have exactly 3 variants (A, B, C). The variants must be meaningfully different in opening hook and structure — not minor word substitutions. Character limits must be checked and documented for every variant.
|
|
64
|
+
|
|
65
|
+
### Scheduling Manifest
|
|
66
|
+
|
|
67
|
+
When a scheduling manifest is produced:
|
|
68
|
+
- `dryRun` must be `true` in agent-only mode
|
|
69
|
+
- All `scheduledAt` values must be ISO 8601 with explicit timezone
|
|
70
|
+
- All `postId` values must follow the naming convention
|
|
71
|
+
- No manifest may reference a platform not confirmed to be connected in the Postiz instance
|
|
72
|
+
|
|
73
|
+
### No Secrets in Outputs
|
|
74
|
+
|
|
75
|
+
The operator must never include `DATABASE_URL`, `REDIS_URL`, `JWT_SECRET`, OAuth tokens, or any other secret value in any output file. `.env.example` uses placeholder comments only.
|
|
76
|
+
|
|
77
|
+
### Template-Bound Outputs
|
|
78
|
+
|
|
79
|
+
All output artifacts must use the templates in `templates/`. The operator must not invent new template schemas or change the required section structure.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Runtime Rules
|
|
84
|
+
|
|
85
|
+
### Three Execution Modes Are First-Class
|
|
86
|
+
|
|
87
|
+
`local-fork`, `agent-only`, and `hybrid` are all valid execution modes. The kit must never require local-fork mode for a session to produce valid campaign outputs. Agent-only mode is always a valid fallback for campaign planning, caption drafting, and dry-run scheduling manifests.
|
|
88
|
+
|
|
89
|
+
### Postiz Is the Reference Substrate
|
|
90
|
+
|
|
91
|
+
The platform integrations, BullMQ queue configuration, and API contract in the Postiz fork are the source of truth for scheduling behavior. The kit documents and wraps that behavior — it does not redefine it. When the upstream Postiz API changes, `runtime-assumptions.md` must be updated.
|
|
92
|
+
|
|
93
|
+
### Markdown Is the Primary Output Format
|
|
94
|
+
|
|
95
|
+
All campaign artifacts are Markdown files. The scheduling manifest is a JSON file. These are the canonical records — no other formats are produced by this kit unless explicitly requested.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Versioning Rules
|
|
100
|
+
|
|
101
|
+
| Scenario | Action |
|
|
102
|
+
|---|---|
|
|
103
|
+
| Bug fix in a template or doc file | Patch version bump: `1.0.0` → `1.0.1` |
|
|
104
|
+
| New template or platform added | Minor version bump: `1.0.0` → `1.1.0` |
|
|
105
|
+
| Workflow restructured or output schema changed | Major version bump: `1.0.0` → `2.0.0` |
|
|
106
|
+
| Upstream Postiz adds new platform integration | Minor bump + update `runtime-assumptions.md` and `docs/platform-coverage.md` |
|
|
107
|
+
| Postiz changes API contract | Major bump if breaking + update `runtime-assumptions.md` and `docs/bullmq-queue-layer.md` |
|
|
108
|
+
|
|
109
|
+
Version bumps must update:
|
|
110
|
+
- `kit.json` → `kit.version`
|
|
111
|
+
- `bundles/growthub-postiz-social-v1.json` → `bundle.version`
|
|
112
|
+
- `growthub-meta/README.md` → Version field
|
|
113
|
+
- `runtime-assumptions.md` → Frozen date and changelog note
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 2,
|
|
3
|
+
"kit": {
|
|
4
|
+
"id": "growthub-postiz-social-v1",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"name": "Growthub Agent Worker Kit — Postiz Social Media Studio",
|
|
7
|
+
"description": "Self-contained local execution environment for Postiz, the open-source agentic social media scheduler. Produces implementation-ready social media campaigns, content calendars, multi-platform publishing plans, AI-assisted captions, and analytics briefings across 28+ platforms including Instagram, LinkedIn, TikTok, X/Twitter, YouTube, Pinterest, Reddit, Bluesky, and more.",
|
|
8
|
+
"type": "worker",
|
|
9
|
+
"visibility": "public-open-source",
|
|
10
|
+
"sourceRepo": "growthub-local",
|
|
11
|
+
"family": "studio"
|
|
12
|
+
},
|
|
13
|
+
"entrypoint": {
|
|
14
|
+
"workerId": "postiz-social-operator",
|
|
15
|
+
"path": "workers/postiz-social-operator/CLAUDE.md"
|
|
16
|
+
},
|
|
17
|
+
"workerIds": [
|
|
18
|
+
"postiz-social-operator"
|
|
19
|
+
],
|
|
20
|
+
"agentContractPath": "workers/postiz-social-operator/CLAUDE.md",
|
|
21
|
+
"brandTemplatePath": "brands/_template/brand-kit.md",
|
|
22
|
+
"publicExampleBrandPaths": [
|
|
23
|
+
"brands/growthub/brand-kit.md"
|
|
24
|
+
],
|
|
25
|
+
"frozenAssetPaths": [
|
|
26
|
+
"QUICKSTART.md",
|
|
27
|
+
".env.example",
|
|
28
|
+
"skills.md",
|
|
29
|
+
"output-standards.md",
|
|
30
|
+
"runtime-assumptions.md",
|
|
31
|
+
"validation-checklist.md",
|
|
32
|
+
"workers/postiz-social-operator/CLAUDE.md",
|
|
33
|
+
"brands/_template/brand-kit.md",
|
|
34
|
+
"brands/growthub/brand-kit.md",
|
|
35
|
+
"brands/NEW-CLIENT.md",
|
|
36
|
+
"setup/clone-fork.sh",
|
|
37
|
+
"setup/verify-env.mjs",
|
|
38
|
+
"setup/check-deps.sh",
|
|
39
|
+
"output/README.md",
|
|
40
|
+
"templates/social-campaign-brief.md",
|
|
41
|
+
"templates/content-calendar.md",
|
|
42
|
+
"templates/platform-publishing-plan.md",
|
|
43
|
+
"templates/caption-copy-deck.md",
|
|
44
|
+
"templates/analytics-brief.md",
|
|
45
|
+
"templates/scheduling-manifest.md",
|
|
46
|
+
"templates/client-proposal.md",
|
|
47
|
+
"examples/social-campaign-sample.md",
|
|
48
|
+
"examples/content-calendar-sample.md",
|
|
49
|
+
"examples/analytics-brief-sample.md",
|
|
50
|
+
"examples/client-proposal-sample.md",
|
|
51
|
+
"docs/postiz-fork-integration.md",
|
|
52
|
+
"docs/platform-coverage.md",
|
|
53
|
+
"docs/ai-caption-layer.md",
|
|
54
|
+
"docs/bullmq-queue-layer.md",
|
|
55
|
+
"growthub-meta/README.md",
|
|
56
|
+
"growthub-meta/kit-standard.md"
|
|
57
|
+
],
|
|
58
|
+
"setupPaths": {
|
|
59
|
+
"quickstart": "QUICKSTART.md",
|
|
60
|
+
"envExample": ".env.example",
|
|
61
|
+
"setupDir": "setup/",
|
|
62
|
+
"outputDir": "output/"
|
|
63
|
+
},
|
|
64
|
+
"outputStandard": {
|
|
65
|
+
"type": "working-directory",
|
|
66
|
+
"description": "Exported folder is intended to be pointed at directly by the agent Working Directory. All outputs are Markdown files written to output/<client-slug>/<project-slug>/.",
|
|
67
|
+
"requiredPaths": [
|
|
68
|
+
"QUICKSTART.md",
|
|
69
|
+
".env.example",
|
|
70
|
+
"kit.json",
|
|
71
|
+
"bundles/growthub-postiz-social-v1.json",
|
|
72
|
+
"skills.md",
|
|
73
|
+
"workers/postiz-social-operator/CLAUDE.md",
|
|
74
|
+
"brands/_template/brand-kit.md",
|
|
75
|
+
"brands/growthub/brand-kit.md",
|
|
76
|
+
"brands/NEW-CLIENT.md",
|
|
77
|
+
"setup/clone-fork.sh",
|
|
78
|
+
"setup/verify-env.mjs",
|
|
79
|
+
"setup/check-deps.sh",
|
|
80
|
+
"output/README.md",
|
|
81
|
+
"templates",
|
|
82
|
+
"docs",
|
|
83
|
+
"growthub-meta"
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
"bundles": [
|
|
87
|
+
{
|
|
88
|
+
"id": "growthub-postiz-social-v1",
|
|
89
|
+
"version": "1.0.0",
|
|
90
|
+
"path": "bundles/growthub-postiz-social-v1.json"
|
|
91
|
+
}
|
|
92
|
+
],
|
|
93
|
+
"executionMode": "export",
|
|
94
|
+
"activationModes": [
|
|
95
|
+
"export"
|
|
96
|
+
],
|
|
97
|
+
"compatibility": {
|
|
98
|
+
"cliMinVersion": "0.3.53"
|
|
99
|
+
},
|
|
100
|
+
"provenance": {
|
|
101
|
+
"sourceRepo": "growthub-local",
|
|
102
|
+
"frozenAt": "2026-04-15T00:00:00.000Z"
|
|
103
|
+
}
|
|
104
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Output Directory
|
|
2
|
+
|
|
3
|
+
This directory is where all campaign deliverables are written.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Structure
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
output/
|
|
11
|
+
<client-slug>/
|
|
12
|
+
<project-slug>/
|
|
13
|
+
SocialCampaignBrief_v<N>_<YYYYMMDD>.md
|
|
14
|
+
ContentCalendar_v<N>_<YYYYMMDD>.md
|
|
15
|
+
PlatformPublishingPlan_v<N>_<YYYYMMDD>.md
|
|
16
|
+
CaptionCopyDeck_v<N>_<YYYYMMDD>.md
|
|
17
|
+
SchedulingManifest_v<N>_<YYYYMMDD>.md (if scheduling requested)
|
|
18
|
+
AnalyticsBrief_v<N>_<YYYYMMDD>.md (if analytics data provided)
|
|
19
|
+
ClientProposal_v<N>_<YYYYMMDD>.md (if requested)
|
|
20
|
+
scheduling-manifest.json (machine-readable, for Postiz API)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Naming Convention
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
<ClientSlug>_<OutputType>_v<N>_<YYYYMMDD>.md
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
- **ClientSlug:** TitleCase, no spaces (`UrbanCycle`, not `Urban Cycle`)
|
|
32
|
+
- **OutputType:** CamelCase (`SocialCampaignBrief`, `ContentCalendar`, etc.)
|
|
33
|
+
- **Version:** `v1`, `v2`, etc.
|
|
34
|
+
- **Date:** `YYYYMMDD` format
|
|
35
|
+
|
|
36
|
+
**Example:** `UrbanCycle_ContentCalendar_v1_20260415.md`
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Adding a New Project
|
|
41
|
+
|
|
42
|
+
When starting a campaign for a new client or a new project for an existing client:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
mkdir -p output/<client-slug>/<project-slug>
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The operator will write all deliverables to this directory and log the project in the brand kit DELIVERABLES LOG.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Git and Version Control
|
|
53
|
+
|
|
54
|
+
The `output/` directory is excluded from kit exports. Do not commit client deliverables to the kit repository. Keep outputs in your local working directory or a separate client delivery folder.
|
|
55
|
+
|
|
56
|
+
If you are version-controlling client outputs separately, use the project slug as the branch or folder name.
|