@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.
Files changed (34) hide show
  1. package/assets/worker-kits/growthub-postiz-social-v1/.env.example +18 -0
  2. package/assets/worker-kits/growthub-postiz-social-v1/QUICKSTART.md +136 -0
  3. package/assets/worker-kits/growthub-postiz-social-v1/brands/NEW-CLIENT.md +67 -0
  4. package/assets/worker-kits/growthub-postiz-social-v1/brands/_template/brand-kit.md +120 -0
  5. package/assets/worker-kits/growthub-postiz-social-v1/brands/growthub/brand-kit.md +117 -0
  6. package/assets/worker-kits/growthub-postiz-social-v1/bundles/growthub-postiz-social-v1.json +52 -0
  7. package/assets/worker-kits/growthub-postiz-social-v1/docs/ai-caption-layer.md +118 -0
  8. package/assets/worker-kits/growthub-postiz-social-v1/docs/bullmq-queue-layer.md +157 -0
  9. package/assets/worker-kits/growthub-postiz-social-v1/docs/platform-coverage.md +97 -0
  10. package/assets/worker-kits/growthub-postiz-social-v1/docs/postiz-fork-integration.md +143 -0
  11. package/assets/worker-kits/growthub-postiz-social-v1/examples/analytics-brief-sample.md +125 -0
  12. package/assets/worker-kits/growthub-postiz-social-v1/examples/client-proposal-sample.md +127 -0
  13. package/assets/worker-kits/growthub-postiz-social-v1/examples/content-calendar-sample.md +75 -0
  14. package/assets/worker-kits/growthub-postiz-social-v1/examples/social-campaign-sample.md +104 -0
  15. package/assets/worker-kits/growthub-postiz-social-v1/growthub-meta/README.md +128 -0
  16. package/assets/worker-kits/growthub-postiz-social-v1/growthub-meta/kit-standard.md +113 -0
  17. package/assets/worker-kits/growthub-postiz-social-v1/kit.json +104 -0
  18. package/assets/worker-kits/growthub-postiz-social-v1/output/README.md +56 -0
  19. package/assets/worker-kits/growthub-postiz-social-v1/output-standards.md +127 -0
  20. package/assets/worker-kits/growthub-postiz-social-v1/runtime-assumptions.md +159 -0
  21. package/assets/worker-kits/growthub-postiz-social-v1/setup/check-deps.sh +117 -0
  22. package/assets/worker-kits/growthub-postiz-social-v1/setup/clone-fork.sh +83 -0
  23. package/assets/worker-kits/growthub-postiz-social-v1/setup/verify-env.mjs +99 -0
  24. package/assets/worker-kits/growthub-postiz-social-v1/skills.md +277 -0
  25. package/assets/worker-kits/growthub-postiz-social-v1/templates/analytics-brief.md +123 -0
  26. package/assets/worker-kits/growthub-postiz-social-v1/templates/caption-copy-deck.md +127 -0
  27. package/assets/worker-kits/growthub-postiz-social-v1/templates/client-proposal.md +139 -0
  28. package/assets/worker-kits/growthub-postiz-social-v1/templates/content-calendar.md +65 -0
  29. package/assets/worker-kits/growthub-postiz-social-v1/templates/platform-publishing-plan.md +112 -0
  30. package/assets/worker-kits/growthub-postiz-social-v1/templates/scheduling-manifest.md +83 -0
  31. package/assets/worker-kits/growthub-postiz-social-v1/templates/social-campaign-brief.md +111 -0
  32. package/assets/worker-kits/growthub-postiz-social-v1/validation-checklist.md +79 -0
  33. package/assets/worker-kits/growthub-postiz-social-v1/workers/postiz-social-operator/CLAUDE.md +287 -0
  34. 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.