name: hbcf-social-media
description: Draft Facebook and Instagram posts, generate branded graphics, process event photos, and prepare Publer CSV bulk uploads for the Hitchin Beer & Cider Festival in the established festival voice. Covers the full visual template library (sponsor thanks, countdown cards, big-number stats, list feature carousels, partner spotlights, launch moments, watermarked event photos), the photo treatment workflow (HEIC conversion, square cropping, hedgehog watermarking), parsing of teammate Word-doc drafts, and the image-vs-video posting strategy. Use this skill whenever asked to write posts for HBCF, thank a sponsor, announce a beer or session, post festival updates, draft countdown posts, prepare event-day carousels, watermark or crop a photo for the festival, parse a draft from Rachel or another teammate, or prepare bulk schedules in Publer. Triggers include "HBCF post", "Hitchin Beer Festival social", "thank [sponsor] for the festival", "countdown post", "Publer CSV", "festival Instagram", "festival photo", "watermark this", "festival video", "festival carousel", "Rachel's draft", "import", "import the batch", "run the import" (the .import/ folder workflow), or any social media work for the Hitchin Beer & Cider Festival 2026. Use this even if the user just mentions a sponsor name in the context of the festival.
HBCF Social Media Manager
Voice, post templates, hashtag and tag library, and Publer CSV workflow for the Hitchin Beer & Cider Festival's Facebook and Instagram accounts.
This skill does NOT contain Publer credentials or account passwords. Those live in the team's shared password manager. This skill is the operational playbook only.
Festival facts
| Item | Value |
|---|---|
| Event | Hitchin Beer & Cider Festival 2026 |
| Dates | 4th to 6th June 2026 |
| Venue | Hitchin Rugby Club |
| Full address | King George V Playing Fields, Old Hale Way, Hitchin, SG5 1XL |
| Opening (Thursday) | 5pm to 11pm |
| Opening (Friday) | 12pm to 11pm |
| Opening (Saturday) | 12pm to 10pm |
| Scale | Around 200 beers, ciders, perries and meads |
| Token and glass policy | Entry includes a festival glass and a starter set of tokens to use at the bar. Additional token cards available throughout the festival. Unused tokens and the glass can be refunded on exit. |
| Tickets | https://hitchinbeerciderfestival.org.uk/ |
| Tickets (CAMRA direct) | https://tckty.camra.org.uk/e/499/hitchin-beer-cider-festival-2026 |
| New for 2026 | Free entry for CAMRA and Hitchin Rugby Club members |
| Organisers | CAMRA North Hertfordshire and Hitchin Rugby Club |
| Sponsorship contact | sponsorship@northherts.camra.org.uk |
| facebook.com/HitchinBeerCiderFestival | |
| @hitchinbeerciderfestival | |
| Brand pink | #EC008C (process magenta, from the hedgehog logo) |
| Brand font | Bebas Regular (Ryoichi Tsunekawa) |
The full address must appear on every post's footer block. Hitchin Rugby Club alone is not enough.
Voice rules
These are the exact rules configured in Publer's brand voice. Use them whenever drafting a post, whether for the AI to generate or for a human to write.
Always:
- British English throughout (
-ise,-our,-respellings: organise, colour, centre) - Sentence case body text
- 80 to 150 words of body text before hashtags
- Specific facts: brewery names, sponsor descriptions, opening times, prices
- One clear call to action with a link, where relevant
- The festival's standard footer block (dates, venue, tickets)
Never:
- Emojis of any kind, in any position
- Em-dashes (
—); use commas, semicolons, colons or single hyphens instead - American spellings
- More than one exclamation mark per post; prefer none
- Hype phrases: "don't miss out", "act fast", "limited time", "you won't believe"
- Corporate jargon: synergy, leverage, stakeholder, unlock, deep dive
- Generic AI phrases: "dive into", "unpack", "in today's world", "let's explore", "elevate"
- Rhetorical-question openers ("Ever wondered...?", "Want to know...?")
- Made-up facts. If a beer name, sponsor description, ABV or detail is unknown, leave a placeholder in square brackets such as
[BEER NAME]for human review. Never invent.
CAMRA terminology used correctly: cask, real ale, perry, mead. Do not call cask ale "craft" unless referring specifically to keg craft beer.
Import command (.import/ workflow)
The fastest way to turn a teammate's raw drop into ready-to-schedule posts. A teammate puts a base message and the post images into the .import/ folder at the repo root, then asks to "import". This command runs the whole pipeline end to end: parse the message, brand the images, build the two CSVs, push the images so Publer can fetch them, and hand back short manual Publer steps.
Trigger on: "import", "import the batch", "run the import", or finding content in .import/.
.import/ is gitignored. It is a scratch inbox, not a tracked folder. Its contents are inputs only; the command writes processed outputs into the real asset folders (community/, partners/, etc.) and csv/.
What the folder holds
- One base message — a
.docx,.txt, or.mdfile with the caption text. This is the teammate's voice; treat it as a draft to parse, not to rewrite. - One or more images —
.heic,.jpeg/.jpg, or.png. Usually real photos that need cropping and the hedgehog watermark. Branded graphics from the design team are the exception (no watermark).
Steps
- Scan
.import/. List every document and image. If there is more than one document, ask which is the base message, then read it.- Extract
.docxtext withtextutil -convert txt -stdout file.docx(macOS) orpython-docx.
- Extract
- Confirm the batch details. Use
AskUserQuestionwith options for anything not clear from the message:- Batch name — the
<series>-<batch>slug for filenames (e.g.mp-visit,day3). - Target image folder —
community/,partners/,sponsors/, etc. Suggest one from the topic; create a new folder if none fit. - Schedule date and time — for the
Datecolumn (YYYY/MM/DD HH:MM). Suggest a sensible slot; the user can override. - Single post or carousel — if a carousel, confirm the slide order.
- Photos vs branded graphics — only real photos get the watermark.
- Batch name — the
- Parse the base message. Apply the standard fixes from "Parsing drafts from teammates" silently. Preserve the body wording and any urgency. Flag the fixes you made in the final reply.
- Draft the FB and IG captions. Run the voice rules. Add the canonical hashtag block and the partnership line. No
@mentions in either caption. IG gets the link-in-bio line; FB gets the plain tickets URL. - Brand the images. For each photo: convert HEIC if needed, centre-crop to 1080×1080, apply the hedgehog watermark (see "Photo treatment workflow"). Skip the watermark for branded graphics. Name files descriptively; number carousel slides in order (
<batch>-1-<subject>.png). Write them into the chosen folder. - Write alt text for each image, one per slide, in slide order.
- Build the two CSVs. One Facebook, one Instagram, all 12 columns.
Media URL(s)is the comma-separated raw URLs in slide order;Alt text(s)is the||-separated alt texts in the same order. Save ascsv/hbcf-<batch>-facebook.csvandcsv/hbcf-<batch>-instagram.csv. - Push to
main. Stage the new images and the two CSVs only (never.import/). Commit with afeat(<folder>): ...message and push, so the raw URLs are live before the user opens Publer. - Verify the raw URLs return 200 before reporting success.
- Present results and short instructions (see below).
- Offer to clear
.import/so the next run starts clean. Ask before deleting; these are the teammate's originals.
Output to present
Keep it short. Most users run this often and do not need the full Publer guide re-explained each time.
- One line per artifact created (images, the two CSV paths, the commit hash).
- Confirmation that the raw URLs resolve.
- The manual Publer steps, condensed:
- Publer → Create → Bulk Options → Import CSV → select the Facebook CSV.
- Load drafts, confirm images attached, select the Facebook page, add
@CAMRA North Hertfordshireand@Hitchin Rugby Club(plus any relevant) via the composer, set the schedule, submit. - Repeat with the Instagram CSV (no
@mentions; set in-image tags if needed).
- A closing line offering more: full Publer walkthrough, a different schedule, or caption edits.
When to ask vs proceed
- Ask when: the batch name or target folder is ambiguous, the schedule is unstated, the carousel order is unclear, or it is uncertain whether an image is a photo or a branded graphic.
- Proceed without asking when: there is one document and one or more photos, the topic maps cleanly to a folder, and the message states the date and time. Note the assumptions in the final reply so the user can correct them.
Parsing drafts from teammates
Rachel and other team members often provide draft captions in Word documents (.docx) or pasted text. These drafts are good source material but need standard fixes before they are ready for Publer. Apply the fixes silently and flag them in the response when delivering the CSV.
Standard fixes (apply silently, flag in the reply)
| In the draft | Replace with | Reason |
|---|---|---|
- (space-hyphen-space) joiner |
, (comma) |
Reads cleaner; em-dash-adjacent punctuation breaks the voice rules across a campaign |
Hitchin Rugby Club (alone in footer) |
King George V Playing Fields, Old Hale Way, Hitchin, SG5 1XL |
Canonical venue line, includes postcode for travel |
@HitchinBeerCiderFestival @camranorthherts ... block |
Drop entirely from the caption | Won't resolve via CSV import; FB mentions are added in composer after import |
| (no partnership line) | Add In partnership with CAMRA North Hertfordshire and Hitchin Rugby Club. at the end |
Consistent footer across the campaign |
Advance tickets still available on the last day of the festival |
Tickets at the door, no need to book in advance |
Last day; no advance ticket sales |
Preserve the original
- Body wording — the body of the caption is the teammate's voice. Do not paraphrase or "improve" it. Only apply the fixes in the table above.
- Urgency and tone — if the draft has urgency ("Today is our last day", "Doors close at 10pm"), keep it intact. Rachel's notes sometimes say "do not soften it"; even when they don't, urgency is intentional.
- Specific facts — beer counts, opening times, sponsor names. If anything looks wrong, flag and ask rather than silently changing.
When to flag and ask
- Ticket framing on the last day (advance vs door) if it's ambiguous
- Photo selection or order if the draft references images you don't have or in an order that doesn't match what was uploaded
- Any factual claim that contradicts known festival facts (dates, address, opening times, scale)
- Anything that affects branding tone (e.g. a draft using emojis or em-dashes — flag rather than rewrite)
Posting notes from the draft
Drafts often include posting notes at the bottom (e.g. "post before midday", "use alongside your video", "change 11pm to 10pm if posting Saturday"). Treat these as instructions and:
- Schedule the CSV to the time indicated
- Surface any conditional instructions in the response so the human knows what to adjust if circumstances change
- If the notes say "do not soften it", do not soften the urgency
Post structure template
1. One-line hook or announcement
2. Two or three sentences of detail
3. Call to action with link (if relevant)
4. Dates and venue block
5. Tickets line and URL
6. Hashtag block
7. Partnership line
Caption ends at the partnership line. Facebook @ mentions are added in the Publer composer after CSV import, not in the caption text (see Account tag library).
Instagram differences
Use the same body as Facebook, with these adjustments:
- Add
or visit the link in our bio.immediately after the tickets URL - No
@mentions in the caption (Instagram discovery runs on hashtags) - For sponsor posts, mention the sponsor by name in the body copy. In-image account tags can be set in Publer's per-post UI if the sponsor has an active IG.
Sponsor post recipe
Sponsor thank-you posts follow a stable shape. Use it for every sponsor.
We're delighted to have [SPONSOR NAME] supporting the Hitchin Beer
& Cider Festival 2026 as [TIER PHRASE].
[2-3 sentence company description with one or two verifiable facts:
location, year established, services or products, local angle if any.]
To learn more, visit their website:
[SPONSOR URL]
We are grateful for their [continued] support of [community events
in Hitchin / the festival] and proud to have them backing the festival
this year. [TIER PAYOFF LINE: where attendees will see the sponsor at
the festival.]
4th to 6th June 2026
King George V Playing Fields, Old Hale Way, Hitchin, SG5 1XL
Advance tickets are on sale now:
https://hitchinbeerciderfestival.org.uk/
[or visit the link in our bio. <- Instagram only]
[HASHTAG BLOCK]
In partnership with CAMRA North Hertfordshire and Hitchin Rugby Club.
For Facebook, @ mention the sponsor's Page in the composer after CSV import. Use the sponsor's actual Facebook Page name (not their handle from another platform).
Tier phrases and payoff lines
| Tier | Tier phrase | Payoff line example |
|---|---|---|
| T-shirt sponsor | one of our t-shirt sponsors |
Look out for their logo on the volunteer and crew t-shirts across all three days. |
| Programme sponsor | our programme sponsor |
Look out for their branding throughout the festival programme. |
| Cider Bar sponsor | sponsors of the Cider Bar |
Raise a glass at the Cider Bar and you'll see their logo nearby. |
| International Beer Bar sponsor | sponsors of the International Beer Bar |
Raise a glass at the International Beer Bar and you'll see their logo nearby. |
| Cask sponsor | one of our cask sponsors |
Look out for the cask carrying their name on the bar. |
| General sponsor | one of our festival sponsors |
(omit a specific payoff line; generic gratitude is enough) |
"Continued" vs plain support
Use continued support of community events in Hitchin only when there is verifiable evidence the sponsor has supported community events before (their own website, news articles, prior sponsorships). Otherwise use support of the festival.
Research checklist for a new sponsor
Before drafting, gather:
- Verified company name and primary website
- Year established or years in operation
- Location and any local angle (Hitchin, North Herts, Hertfordshire)
- One or two factual products, services, or recognitions
- Facebook page URL
- Instagram handle (or confirmation they have none)
- Sponsorship tier (so the tier phrase and payoff line are correct)
- Image asset (the sponsor thank-you graphic provided by the festival design team)
Do not draft without these. If something is missing, ask the user or leave a placeholder.
Countdown post recipe
A 10-day daily countdown plus a Thursday-morning launch post is the standard run-up to the festival. Countdown posts publish at 10:00 daily; the launch post publishes earlier at 09:00 to differentiate from the countdown rhythm and to catch the morning scroll before people commit to evening plans elsewhere.
Daily theme rotation
| Day | Theme | Notes |
|---|---|---|
| 10 | Welcome and scale | Set up the festival, lead with the 200-drinks headline |
| 9 | CAMRA curation | Who chose the range and why it matters |
| 8 | Member free-entry | Catches CAMRA and Hitchin Rugby Club members early |
| 7 | One week to go | Practical, include the session times grid |
| 6 | Cider Bar focus | Differentiates from beer-only festivals |
| 5 | First-time visitor guide | Glass, starter tokens, top-ups, refund on exit |
| 4 | International Beer Bar | Range across cask, cider, international |
| 3 | Volunteer-led ethos | Add #VolunteerLed #CAMRAVolunteers to the hashtag block |
| 2 | Logistics and travel | Full address, parking, train station |
| 1 | Eve of opening | Anticipation, last advance ticket nudge |
| 0 (launch) | "It begins tonight" | Schedule 09:00 Thursday; opens at 5pm |
This rotation is illustrative, not fixed. Substitute themes as the year warrants (charity partner highlight, music or entertainment teaser, key sponsor recognition).
Countdown post template
[X days to go opener; see joiner variation rule below]
[2-3 sentences on the day's theme]
Advance tickets are on sale now:
https://hitchinbeerciderfestival.org.uk/
[or visit the link in our bio. <- Instagram only]
4th to 6th June 2026
[Optional: session times line for the Day 7 logistics post]
King George V Playing Fields, Old Hale Way, Hitchin, SG5 1XL
[HASHTAG BLOCK]
In partnership with CAMRA North Hertfordshire and Hitchin Rugby Club.
For Facebook, @ mention CAMRA North Hertfordshire and Hitchin Rugby Club (always), plus CAMRA national and Hitchin Nub News when relevant, in the Publer composer after CSV import.
Joiner variation rule
Across a 10+ post series the same opener pattern reads as automated. Vary the sentence joiner across the run:
- Full stop:
"9 days to go. Here is what is waiting..." - Colon:
"7 days to go: one week until..." - Comma:
"6 days to go, and cider is very much on the menu..." - Single hyphen: permitted but use at most once or twice across the series
Single hyphens pass the voice rules per post, but become a tell when overused across a campaign. Each individual post is fine with a dash; the cumulative effect across the series needs variety.
Launch day (day 0)
The Thursday morning post breaks the "X days to go" pattern. Use an opener that signals the moment:
"It begins tonight. The Hitchin Beer & Cider Festival 2026 opens at 5pm.""Today's the day. Doors open at 5pm at Hitchin Rugby Club.""The festival opens tonight at 5pm."
Body should cover: scale (200 drinks), session times, member free entry, advance vs gate tickets. Keep to 80-150 words.
Big number stat post recipe
A single arresting number can carry an entire post. Used during the campaign for:
47ciders, perries and meads at the Cider Bar80world beers at the International Beer Bar
The shape is one number, one descriptor, framed by festival branding.
Post template
[Kicker:] ON THE CIDER BAR / ON THE INTERNATIONAL BEER BAR
[Hero number:] 47 / 80 (very large, dominant)
[Descriptor:] CIDERS, PERRIES & MEADS / WORLD BEERS
[Body, 80-120 words explaining what attendees will find]
[Standard footer block: dates, venue, hashtags, partnership line]
When to use this template
- A bar or category has a single headline number worth promoting (count, percentage, years)
- The number is between 10 and 999 (single-digit numbers feel small; four-digit numbers crowd the canvas)
- You can write 80-150 words of body content explaining what the number represents
Graphic specification
See "Visual template library" below for the big-number stat graphic spec.
List feature post recipe
A list of items grouped under one theme works as a multi-slide carousel. Used during the campaign for:
- Dark ales feature: title card + brewery slides (Moor, Kernel, Abbeydale)
- World beer feature: big-
80card + Belgium list + Germany list (within the same big-number post)
The shape is a title slide followed by 2-4 detail slides, each focused on one item.
Post template
Carousel structure:
- Slide 1: List title card (e.g. "DARK ALES TO TRY")
- Slides 2-4: One item per slide (brewery logo + beer name, or country + beer list)
Caption:
[2-3 sentence intro to the theme]
[Quick list of what's featured in the carousel, plain text]
[Standard footer: dates, venue, hashtags, partnership line]
When to use this template
- A bar has a defined sub-theme worth its own post (dark ales, vegan ales, GF/vegan, light sessions, a specific country's beers)
- 3-4 items make the list (2 is too thin; 5+ overcrowds the carousel and individual slides feel rushed)
- The items are visually distinguishable (different breweries' pump clips, country names, style classifications)
Graphic specification
See "Visual template library" below for list feature graphic specs.
Partner spotlight recipe
A partner or chosen charity beneficiary post recognises an organisation that is supported by, or supports, the festival. Used during the campaign for:
- Feed Up Warm Up (chosen charity beneficiary, returning for the third year)
Post template
[Kicker:] PROUDLY SUPPORTING
[Centre:] Partner logo (preserved in native colours where possible)
[Festival branding at the bottom]
Caption:
The Hitchin Beer & Cider Festival is delighted to welcome [PARTNER]
[back for their Nth year with us / to the festival for the first time].
[2-3 sentences on what the partner does, in factual terms]
[Practical call to action: where to find them on site, what they're doing]
[Standard footer + hashtags including #Charity if applicable]
When to use this template
- A charity, community organisation, or non-sponsor partner is associated with the festival
- The partner has a recognisable logo or visual identity
- The relationship is supportive rather than transactional (a sponsor uses the sponsor template instead)
When NOT to use this template
- Sponsor relationships — use the sponsor thank-you recipe instead
- Suppliers, vendors, contractors — these don't typically get a spotlight unless there's a community angle
A specific note on Feed Up Warm Up
Feed Up Warm Up is the festival's chosen charity beneficiary, not a partner in the technical sense. Token cards left without refunds, plus any additional money donated by visitors, go directly to the charity. They do not receive funds from the overall festival budget. This funding mechanism is intentionally not mentioned on social media — public-facing posts use "supporting" language, not financial detail.
Graphic specification
See "Visual template library" below for partner spotlight graphic spec.
Launch moment recipe
A celebratory milestone post when doors open. Used during the campaign for:
- "WE ARE OPEN / COME ON IN" at 5pm Thursday
Post template
[Top:] WE ARE OPEN
[Centre:] Pink hedgehog (large, hero)
[Below:] COME ON IN
[Bottom:] HITCHIN BEER & CIDER FESTIVAL 2026
Caption:
We are open. Come on in.
Walk-up tickets are available at the door, no need to book in advance.
Everyone is welcome.
If you are not drinking, you do not pay to come in. Free entry for
under-18s, non-drinkers and designated drivers, so bring the family along.
The marquee is dry, comfortable and stocked with around 200 real ales,
ciders, perries and meads.
Open until [11pm Thursday and Friday / 10pm Saturday] tonight. See you in there.
[Standard footer + hashtags including #FamilyFriendly]
When to use this template
- A milestone moment that deserves its own post (doors open, daily opening, last day morning)
- Not for general updates — a launch moment is a single-purpose celebratory beat
Critical messaging points
- Tickets at the door — every launch moment should mention door tickets, not push advance sales
- Family welcome, free non-drinker entry — distinguishes HBCF from drinks-only events; high-value information for waverers
- Closing time only, not opening time — if posted at the moment doors open, "we are open until 11pm" reads as a present statement; including "doors open at 5pm" reads as future tense and confuses
Graphic specification
See "Visual template library" below for launch moment graphic spec.
Event-day photo recipe
Posts featuring real festival photos taken on the day (or yesterday). Used during the campaign for:
- Volunteer briefing thank-you (Thursday)
- Weather reassurance (Friday, with archival photo)
- Day 2 opening carousel (Friday — glass, customers, queue, bar)
- Day 3 last day carousel (Saturday — welcome desk, attendees, bar, outdoor crowd)
Post template
Carousel:
- 1 to 4 square-cropped photos with hedgehog watermark lower-right
- Slide order tells a story (e.g. welcome → enjoying → action → scale)
Caption:
[Opening line tied to the day or event]
[2-3 sentences of context. If using archival photo, do not claim it's current]
[Practical call to action: what's still available, opening hours, ticket info]
[Standard footer]
When to use this template
- Festival is live or about to open
- You have real photos taken on-site (or archival photos for illustrative purposes)
- The photo itself carries the message; minimal templating
Photo handling
All photos in this recipe get the standard treatment: HEIC conversion if needed, centre crop to 1080x1080, hedgehog watermark in white box lower-right. See "Photo treatment workflow" below.
Slide ordering for carousels
A 3-4 slide carousel reads better when slides build a narrative arc rather than appearing in random order. Established patterns:
- Welcome (people/volunteers) → Experience (attendees enjoying) → Action (bar, serving) → Scale (crowd or outdoor shot)
- Product (the glass) → People (attendees) → Demand (queue or busy bar) → Operation (the team running it)
Lead with the most visually distinctive frame; that determines the carousel thumbnail.
Hashtag library
Canonical block (every sponsor post)
#HitchinBeerFestival #HBCF2026 #RealAle #RealCider #CAMRA #Hitchin #NorthHerts #Hertfordshire #SupportLocal #CommunityEvent
Brewery or cask-relevant posts
Add #CaskAle between #CAMRA and #Hitchin:
#HitchinBeerFestival #HBCF2026 #RealAle #RealCider #CAMRA #CaskAle #Hitchin #NorthHerts #Hertfordshire #SupportLocal #CommunityEvent
Cider-relevant posts
Add #Perry or #BritishCider as appropriate.
Volunteer-related posts
Add #VolunteerLed and #CAMRAVolunteers.
Rules
- Cap at 10 hashtags per post unless there is a strong reason to add more
- Keep canonical block intact; add topical tags rather than substituting
Account tag library
Confirmed: Publer CSV imports do not resolve Facebook mentions in any syntax
Confirmed by Publer support on 2026-05-24. Every attempted CSV-side syntax fails to produce a real Facebook mention:
| Attempted CSV syntax | Behaviour at publish |
|---|---|
@camranorthherts (plain handle) |
Publishes as literal text |
[Name](https://facebook.com/handle) (markdown link) |
Publishes as literal text |
| Page URL on its own | Publishes as literal text or a link preview |
| Page ID inserted in the caption | Publishes as literal text |
The Facebook API requires the mention to be resolved by selecting a suggestion returned by Publer's composer autocomplete. This is enforced by Facebook (not chosen by Publer), and Publer has stated there are no plans to change CSV import to do this server-side. Reference: https://publer.com/help/en/article/how-to-tagmention-people-or-social-accounts-12vywhs/
The practical consequence: Facebook post mentions must be added in the Publer composer after CSV import, every time. Plan for this in the workflow rather than fighting it.
Facebook tag block (canonical)
In partnership with CAMRA North Hertfordshire and Hitchin Rugby Club.
No @ mentions in the CSV caption. The partnership line names the two core partner accounts (CAMRA North Hertfordshire and Hitchin Rugby Club) as plain text. During the post-import review step, the reviewer converts those names to real @ tags using composer autocomplete, and adds any further tags (sponsor handle, Campaign for Real Ale, Hitchin Nub News) at their discretion.
Mentions to add in the composer (FB)
For every Facebook post during review, type @ and select from the autocomplete dropdown:
| Always | Type | Then select |
|---|---|---|
| CAMRA North Hertfordshire | @CAMRA North |
"CAMRA North Hertfordshire" |
| Hitchin Rugby Club | @Hitchin Rugby |
"Hitchin Rugby Club" |
| When relevant | Type | Then select |
|---|---|---|
| The Campaign for Real Ale (the national body) | @CAMRA or @Campaign |
"CAMRA" or "Campaign for Real Ale" |
| Hitchin Nub News | @Hitchin Nub |
"Hitchin Nub News" |
| Sponsor (sponsor posts only) | @<sponsor name> |
The verified Facebook Page |
Important Facebook tagging rules (per Publer docs):
- Search by Page name, not handle or username. Facebook's autocomplete matches the page's display name.
- The result must be selected from the autocomplete dropdown for the mention to register.
- Only Facebook Pages can be tagged, not personal profiles.
Instagram tag block (canonical)
In partnership with CAMRA North Hertfordshire and Hitchin Rugby Club.
No @ mentions at all. Discovery on Instagram runs on hashtags; the marginal cross-promotion value of @ tags does not justify the additional manual step. If a specific sponsor post warrants tagging the sponsor's IG, add it in the composer at review time.
Verified handles (reference only)
These are the actual platform handles for the orgs we deal with. They are NOT used in CSV captions; they are stored here so the team knows what to search for in composer autocomplete.
| Account | Facebook Page name | Instagram handle |
|---|---|---|
| HBCF (self) | Hitchin Beer Cider Festival | @hitchinbeerciderfestival |
| CAMRA North Herts | CAMRA North Hertfordshire | @camranorthherts |
| Campaign for Real Ale | CAMRA (or Campaign for Real Ale) | @campaignforrealale |
| Hitchin Nub News | Hitchin Nub News | @hitchinnubnews |
| Hitchin Rugby Club | Hitchin Rugby Club | (no active IG, verify before tagging) |
In-image account tags (Instagram only)
Instagram allows tagging accounts on the image itself, separate from the caption. This is a different mechanism, set up in Publer's UI per post. For sponsor posts, add:
- The sponsor's IG handle, if it exists
@camranorthherts@hitchinnubnews
These in-image tags resolve correctly even when added in Publer's UI.
Content categories and cadence
Roughly six to eight weeks before the festival, post on this rhythm. Adjust for available material.
| Category | Cadence | Notes |
|---|---|---|
| Countdown | Daily for the final 10 days, plus a launch-day post | See Countdown post recipe above for themes per day |
| Sponsor thanks | One per sponsor, mid-week | Use the sponsor thank-you graphic; tag their accounts |
| Beer or cider promotion | 2 to 3 per week from 3 weeks out | Specific brewery, style, or producer |
| Volunteer recruitment | Fortnightly until 2 weeks before | Link to the volunteering page |
| Member benefit | 2 to 3 times | Highlight the new-for-2026 free entry for CAMRA and HRC members |
| Practical info | Weekly | Opening times, transport, accessibility, food vendors |
| Charity partner | One mid-campaign, one during festival | |
| First-time visitor guide | Built into the Day 5 countdown post | Glass, starter tokens, top-ups, refund on exit |
| Build-up photos | Daily during setup week | Marquee going up, casks arriving, signage |
| On-site live | 2 to 3 per session during festival | Crowds, specific beers being tapped, music |
| Post-event thank-you | 3 posts in the week after | Volunteers, sponsors, attendees (separately) |
Visual template library
The festival's visual identity rests on three things: festival pink #EC008C, Bebas Regular typography, and the pink hedgehog mark. Every branded graphic uses these. Photos use the hedgehog as a watermark only (see "Photo treatment workflow" below).
Brand identity (canonical)
| Element | Value |
|---|---|
| Canvas | 1080 × 1080 PNG (square) for feed posts |
| Background | White (#FFFFFF) for branded graphics; photo content for photo posts |
| Brand colour | Pink #EC008C (process magenta) |
| Typography | Bebas Regular, all-caps, by Ryoichi Tsunekawa (free for commercial use) |
| Logo | Pink hedgehog (pink-hedgehog_png.webp), white pixels treated as transparent before compositing |
Files are saved as PNG with optimize=True. Publer accepts JPG, PNG, GIF, MP4. Do not upload Affinity Photo (.afphoto), PSD, or other proprietary formats; export to PNG first.
Template: Sponsor thank-you graphic
The festival uses a consistent sponsor thank-you template, produced by the design team (not this skill):
- Square format (1024×1024 or larger), suitable for both FB and IG
- White background
THANK YOU TO OUR SPONSORin dark red across the top- Sponsor logo centred
HITCHIN BEER & CIDER FESTIVALin dark red across the bottom
Template: Brewery / cask spotlight
Used for individual brewery features and brewery carousels (e.g. cask brewery curation, craft brewery curation). One slide per brewery.
Specification:
- 1080×1080 white canvas
- Top kicker text in pink Bebas:
NEW TO THE FESTIVAL,BREWERY SPOTLIGHT,CASK BAR PICK,CRAFT BAR PICK, or similar at ~90pt - Brewery logo centred at approximately 800×400 (scale to fit aspect ratio, keep native colours)
- Bottom-left:
HITCHIN BEER & CIDERoverFESTIVAL 2026in pink Bebas ~56pt - Bottom-right: small pink hedgehog ~130×130
Logo treatment:
- If the logo has its own dark/black background, keep it as a dark tile rather than trying to extract — looks like a deliberate design choice (Bishop Nick, Pretty Decent)
- If the logo is on white or transparent, place directly
- Never invert or recolour the logo to match the festival's pink
Template: Countdown card
Used for the daily countdown posts (days 10 down to 1) and the launch day post. Generated programmatically by this skill.
Specification:
- 1080×1080 white canvas
- Top text band: countdown line in pink Bebas ~130pt
- Days 10 to 2:
X DAYS LEFT - Day 1:
1 DAY LEFT(singular) - Launch day:
OPENS TODAY(or equivalent short phrase)
- Days 10 to 2:
- Centre: pink hedgehog ~520×520, transparent background composited over white
- Bottom text band: two lines in pink Bebas ~78pt
- Line 1:
HITCHIN BEER & CIDER - Line 2:
FESTIVAL 2026
- Line 1:
File naming convention:
countdown-10.pngthroughcountdown-1.pngfor daily countdowncountdown-launch.pngfor the Thursday morning launch graphic
Template: Big number stat post
A single dominant number framed by festival branding.
Specification:
- 1080×1080 white canvas
- Top kicker in pink Bebas ~70-80pt: context line (e.g.
ON THE CIDER BAR) - Centre: the number itself in pink Bebas at very large size (~480-500pt for two-digit numbers like
47,80) - Below centre: descriptor in pink Bebas ~70pt (e.g.
CIDERS, PERRIES & MEADS) - Bottom-left:
HITCHIN BEER & CIDERoverFESTIVAL 2026~56pt - Bottom-right: small pink hedgehog ~130×130
Used in campaign: Cider Bar 47, World Beer Bar 80.
Template: List feature carousel
Multi-slide carousel for grouped content.
Slide 1 (title card) specification:
- 1080×1080 white canvas
- Top kicker in pink Bebas ~85pt: theme name (e.g.
DARK ALES TO TRY) - Centre: 3-5 list items in pink Bebas ~70-90pt, each line a brewery name + beer name
- Bottom-left:
HITCHIN BEER & CIDERoverFESTIVAL 2026~56pt - Bottom-right: small pink hedgehog ~130×130
Subsequent slides (one per item):
- Use the brewery / cask spotlight template (above)
- Or a country-list card for international beer carousels (kicker + country name + beer list + branding)
Used in campaign: Dark Ales (4 slides), World Beer Bar (3 slides: big-80 + Belgium list + Germany list).
Template: Partner spotlight
For charity beneficiaries and community partners.
Specification:
- 1080×1080 white canvas
- Top kicker in pink Bebas ~110pt:
PROUDLY SUPPORTING - Centre: partner logo in native colours, scaled to ~800×400 box
- Bottom-left:
HITCHIN BEER & CIDERoverFESTIVAL 2026~56pt - Bottom-right: small pink hedgehog ~130×130
Logo treatment:
- Use the partner's native colours, even if they clash with festival pink. The partner's brand identity matters more than visual harmony with the festival
- If the partner logo is supplied on a black background, replace the dark pixels with white before placing (use threshold-based flatten, not transparency, to avoid haloing)
Used in campaign: Feed Up Warm Up (orange + blue logo on white festival canvas).
Template: Launch moment card
A milestone-marker graphic for the moment doors open.
Specification:
- 1080×1080 white canvas
- Top in pink Bebas ~160pt:
WE ARE OPEN(dominant message) - Centre: pink hedgehog ~460×460
- Below hedgehog in pink Bebas ~100pt:
COME ON IN - Bottom centred in pink Bebas ~52pt:
HITCHIN BEER & CIDER FESTIVAL 2026
Used in campaign: Thursday 5pm "we are open" launch moment.
Template: Photo with hedgehog watermark
Real event-day photos cropped to square with the hedgehog watermark applied lower-right. See "Photo treatment workflow" below for the full procedure.
Visual specification:
- 1080×1080 (square crop of the original photo)
- Hedgehog watermark in white rounded box, lower-right, 30px margin
- White box: 180×180, slight rounded corners (radius 12), 235 alpha (slightly translucent)
- Hedgehog: 130×130, pink, centred inside the white box
Used in campaign: volunteer briefing thank-you, weather reassurance, Day 2 carousel (4 slides), Day 3 carousel (4 slides).
Photo treatment workflow
When teammates share photos for an event-day post, the photo needs square cropping plus the hedgehog watermark. Photos arrive as iPhone HEIC, WhatsApp JPEG, or DSLR JPEG.
Step 1: Convert HEIC if needed
iPhone photos arrive as .HEIC which PIL doesn't read natively. Install and register the HEIC opener once per session:
import pillow_heif
pillow_heif.register_heif_opener()
# After this, PIL.Image.open() handles .HEIC files transparently
Install with pip install pillow-heif --break-system-packages if not present.
Step 2: Centre crop to square
Default to a centre crop. Most festival photos have the main subject central, and centre crop is predictable. The original aspect ratio is usually 4:3 (1.33) landscape or 3:4 portrait; for either, crop to a square by removing equal amounts from the longer dimension.
w, h = photo.size
crop_size = min(w, h)
left = (w - crop_size) // 2
top = (h - crop_size) // 2
photo_sq = photo.crop((left, top, left + crop_size, top + crop_size))
photo_sq = photo_sq.resize((1080, 1080), Image.LANCZOS)
When centre crop is wrong:
- Subject is significantly off-centre (rare for posed event photos)
- Bar signage or branding is at one edge and you want to preserve it
- Faces or named individuals would be cut off
For those cases, compute a weighted crop manually. Do not write a "smart crop" routine; the photos are too varied for it to be reliable.
Step 3: Apply the hedgehog watermark
White rounded box in the lower-right corner, with the pink hedgehog centred inside it.
from PIL import Image, ImageDraw
def load_hedgehog(target_size):
"""Load the pink hedgehog and make white pixels transparent."""
h = Image.open(HEDGEHOG_PATH).convert("RGBA")
data = [(255, 255, 255, 0) if (r > 240 and g > 240 and b > 240) else (r, g, b, a)
for (r, g, b, a) in h.getdata()]
h.putdata(data)
return h.resize((target_size, target_size), Image.LANCZOS)
def apply_watermark(photo_sq):
"""Composite the hedgehog watermark in lower-right white box."""
margin = 30
box_size = 180
hedge_size = 130
photo_sq = photo_sq.convert("RGBA")
overlay = Image.new("RGBA", photo_sq.size, (0, 0, 0, 0))
draw = ImageDraw.Draw(overlay)
box_x = photo_sq.width - box_size - margin
box_y = photo_sq.height - box_size - margin
draw.rounded_rectangle(
[(box_x, box_y), (box_x + box_size, box_y + box_size)],
radius=12, fill=(255, 255, 255, 235)
)
photo_sq = Image.alpha_composite(photo_sq, overlay)
hedgehog = load_hedgehog(hedge_size)
photo_sq.paste(hedgehog,
(box_x + (box_size - hedge_size) // 2,
box_y + (box_size - hedge_size) // 2),
hedgehog)
return photo_sq.convert("RGB")
When to apply the watermark (and when not to)
Apply watermark: real photographs (HEIC, JPEG from event days, archival photos used in current posts).
Do not apply watermark: branded graphics that already include festival branding (sponsor cards, countdown cards, stat cards, partner cards, launch cards). These have the hedgehog and festival name built into the layout already; adding a watermark double-brands them and looks amateur.
File naming for photos
Use descriptive snake-case names tied to the post or moment:
volunteer-briefing.pngweather-marquee.pngday2-1-glass.png,day2-2-customers.png,day2-3-queue.png,day2-4-bar.pngday3-1-welcome.png,day3-2-goers.png,day3-3-bar.png,day3-4-crowd.png
For carousels, number the slides in the filename so the order is unambiguous when uploaded.
Mixed media: images and videos
Different content types need different treatment. The temptation to mix image and video in one carousel is real; the reliability of doing it via Publer CSV is low. The pattern below favours reliability over feature-completeness.
Image-only carousels via CSV: reliable
CSV bulk import handles multiple images cleanly:
- Comma-separated URLs in the
Media URL(s)column - Matching alt texts in
Alt text(s)separated by|| - Works for both Facebook and Instagram
- Carousel slide order matches URL order in the CSV
This is the default for event-day photo posts.
Video posts: post separately, native upload
Videos work best as standalone posts, not as slides in a carousel:
- On Instagram: post as a Reel. Reels get significantly more reach than feed slides or video posts in a carousel
- On Facebook: post as a native video post (not a link share)
- Upload natively via the FB/IG mobile apps or via Publer's UI; not via CSV
- Posting natively lets the platforms transcode and handle the format conversion automatically
Codec considerations
iPhone videos default to HEVC (H.265). Facebook and Instagram prefer H.264 and may transcode HEVC poorly or refuse to upload it. If a video fails to upload:
- Check the codec with
ffprobe - If HEVC, convert to H.264 with HandBrake (Mac, free) or ffmpeg one-liner
- MP4 container is more universal than MOV
Mixed image + video carousels
Both Instagram and Facebook support mixed-media carousels (since 2022 for IG). But doing this via Publer CSV is unreliable for two reasons:
- GitHub raw URLs work for images but are not designed for video streaming. Video files load slowly and may time out during Publer's CSV import
- Aspect ratios usually don't match between square photos and landscape video
Workaround if you really need a mixed-media carousel:
- Upload via Publer's UI (not CSV), attaching the video file directly
- Or pre-convert the video to a square 1080×1080 export with H.264 codec
- Or — usually best — split into separate posts: one image carousel, one standalone video Reel/post
Default recommendation
For event-day content, treat images and videos as separate posts. Image carousels via CSV, videos as native Reels/posts. The video gets better engagement on its own anyway.
Publer CSV bulk upload
Reference: https://publer.com/help/en/article/how-to-schedule-in-bulk-using-a-csv-file-3yvwt/
CSV columns
Publer's template has 12 columns. Keep all 12 in every CSV, even when most are blank; the column structure is part of the import contract. Reference: https://publer.com/blog/ultimate-csv-bulk-scheduler-social-media/
| # | Column | HBCF use | Notes |
|---|---|---|---|
| 1 | Date | Yes | YYYY/MM/DD HH:MM (24-hour). Leave blank to auto-schedule via labels. |
| 2 | Text | Yes | The post caption. Newlines preserved when field is quoted. |
| 3 | Link(s) | No | Leave blank for countdown and sponsor posts. If populated on Facebook, the post converts to a link-preview share and the image loses prominence. Tickets URL stays inside the Text field. |
| 4 | Media URL(s) | Yes | Publicly accessible image URL. Use the GitHub raw URL pattern below. |
| 5 | Title | No | For videos, LinkedIn PDFs, Pinterest pins only. |
| 6 | Label(s) | Yes | countdown-fb, countdown-ig, sponsor-thanks-fb, sponsor-thanks-ig, etc. Used for grouping and auto-schedule. |
| 7 | Alt text(s) | Yes | Accessibility text describing the image. Separate multiples with ||. |
| 8 | Comment(s) | Optional | First comment text. Published as a visible comment by the same account immediately after the main post. Useful for engagement questions, follow-up CTAs, or moving hashtags out of the caption. Does NOT support @ mentions (same constraint as the main caption). Multiples separated with ||. |
| 9 | Board, Album, or Category | No | Pinterest boards, Facebook albums, Google categories. Not used. |
| 10 | Post Subtype | No | short, reel, story, pdf, etc. Use when scheduling Instagram Stories or Reels in future; not for countdown feed posts. |
| 11 | CTA | Conditional | Facebook and Google only. Requires the Link(s) column to be populated, which conflicts with native image posts. Do not use on countdown or sponsor posts. Useful for dedicated text-led "buy tickets" or "tickets running low" Facebook reminders, where BUY_TICKETS is the relevant value. Available CTAs include BUY_TICKETS, LEARN_MORE, SIGN_UP, DONATE_NOW, CONTACT_US. |
| 12 | Reminder | No | For push-notification reminders. We auto-publish. |
Critical rule: one CSV per platform
Split posts into two separate CSVs, one for Facebook and one for Instagram. Do not mix platforms in a single CSV.
Why:
- Cleaner account assignment in Publer (whole CSV maps to one account)
- Per-platform scheduling can be applied to all rows at once via Publer's "apply to all" UI
- Per-platform differences (link-in-bio line, tag block, future CTA usage) stay encapsulated
- Easier to troubleshoot and edit
- Aligned with Publer's own recommendation when platform-specific columns differ
Naming convention:
hbcf-<series>-<batch>-facebook.csvfor the Facebook CSVhbcf-<series>-<batch>-instagram.csvfor the Instagram CSV
For example: hbcf-countdown-day-9-to-launch-facebook.csv and the matching -instagram.csv.
Other rules
- Use Google Sheets, not Excel, when editing CSVs by hand. Publer's documentation is explicit that special characters and styled text only round-trip correctly via Sheets.
- Keep all 12 columns in the CSV header, even when most are blank. The structure is part of the contract.
Image hosting via GitHub
Images for posts are hosted in the Hitchin-Beer-Cider-Festival/Social repository on GitHub. The raw URL pattern is:
https://raw.githubusercontent.com/Hitchin-Beer-Cider-Festival/Social/main/<folder>/<filename>
Folder convention (as established during the 2026 campaign):
countdown/for countdown graphics (countdown-1.pngthroughcountdown-launch.png)brewery-spotlights/for individual brewery feature graphics (one PNG per brewery)cider/for Cider Bar feature posts (cider-bar-47.pngetc.)beers/for beer style or category feature posts (dark ales, world beer slides, etc.)partners/for charity beneficiary and community partner posts (Feed Up Warm Up etc.)community/for event-day photos with watermarks (volunteers, weather, day 2/3 carousels, launch moment)sponsors/for sponsor thank-you graphics from the design team
When in doubt, choose a folder by topic; create a new folder if the existing ones don't fit. Topic-based folder organisation keeps the repo browsable as the asset library grows year on year.
To add new images:
- Push the file to the appropriate folder on
main - Verify by opening the raw URL in a browser
- Reference in the
Media URL(s)column of the CSV
Publer fetches the image at CSV import time, so the file must be on main and publicly accessible before the CSV is uploaded.
Upload workflow
Repeat this sequence twice: once for the Facebook CSV, once for the Instagram CSV.
- Prepare both CSVs (Facebook and Instagram) with assembled captions, hashtags, and the plain-text partnership line. Do NOT include
@mentions in the caption. - Confirm images are pushed to GitHub and the raw URLs resolve in a browser
- In Publer: Create → Bulk Options → Import CSV and select one CSV
- Click the upload notification to load the draft posts
- Verify images attached automatically from the URLs. If any post shows missing media, wait a minute for GitHub raw to propagate, then retry, or attach manually
- Select the social account for this CSV (Facebook page for the FB CSV, Instagram account for the IG CSV). With one CSV per platform, you can select-all rather than filtering by label
- For the Facebook CSV: open each draft and add
@mentions via composer autocomplete. Always add@CAMRA North Hertfordshireand@Hitchin Rugby Club. Add@CAMRA(national) and@Hitchin Nub Newswhen relevant. For sponsor posts, also add the sponsor's Facebook Page. See Account tag library for the autocomplete trigger strings. - For the Instagram CSV: no
@mentions needed in the caption. For sponsor posts, set in-image account tags via Publer's per-post UI rather than typing in the caption. - Review every post individually
- Set scheduling and submit
- Repeat steps 3 to 10 for the other CSV
Account assignment
Publer does NOT assign posts to accounts automatically from the CSV. With the two-CSV split, each CSV represents one platform, and you can apply the account to all rows at once. The Label(s) column is still useful for organisation and any future auto-schedule rules.
Quality checks before publishing
Run both checklists before scheduling a batch.
Voice and content checks
- British English spelling throughout
- No emojis anywhere in the post
- No em-dashes; commas, semicolons or single hyphens used instead
- At most one exclamation mark; ideally none
- Body text between 80 and 150 words
- No invented facts; placeholders flagged in square brackets if needed
- Sponsor name spelled exactly as the sponsor uses it (check their own website)
- Sponsor URL works (open it; do not trust autocomplete)
- Tier phrase matches the actual sponsorship agreement
- Payoff line is plausible (does the sponsor's logo actually appear where you claim?)
- Festival dates correct:
4th to 6th June 2026 - Venue full address used in footer:
King George V Playing Fields, Old Hale Way, Hitchin, SG5 1XL
Tags and accounts
- Hashtag block matches the canonical (or brewery / volunteer variant)
- FB caption does NOT contain
@mentions (those are added in composer after import) - IG caption does NOT contain
@mentions - Partnership line present at the end of caption naming CAMRA North Hertfordshire and Hitchin Rugby Club
- No invented handles; only Page names confirmed against the org's own website
- In-image account tags planned for Instagram (separate from caption, set in Publer UI)
CSV checks (if bulk uploading)
- Two CSVs produced, one for Facebook and one for Instagram (not mixed)
- All 12 Publer columns present in each CSV header, blanks where not used
- Labels set to
countdown-fb/countdown-igorsponsor-thanks-fb/sponsor-thanks-igmatching the CSV's platform - Link(s) column blank for image-led posts (otherwise FB converts to link-share format)
- CTA column blank for image-led posts (requires Link, conflicts with native image)
- Media URL(s) populated with the GitHub raw URL pointing at the correct folder and filename
- Image files actually pushed to
mainofHitchin-Beer-Cider-Festival/Socialbefore CSV upload - Raw image URL verified by opening it in a browser
- CSV exported from Google Sheets, not Excel
- Text field opens with double-quote in Publer preview (newlines preserved)
Publer post-import checks
- Images attached automatically; if any are missing, wait for GitHub raw to propagate or attach manually
- Correct account assigned per label (
-fbto Facebook,-igto Instagram) - Facebook rows:
@mentions added via composer autocomplete (CAMRA North Hertfordshire, Hitchin Rugby Club always; CAMRA national, Hitchin Nub News, sponsor as relevant) - Facebook mentions display as friendly page names in cyan, not as
@handleplain text - Instagram rows: in-image account tags set if applicable
- Each post reviewed individually before scheduling
Confirmed sponsors (rolling list)
Update this when new sponsors are signed.
| Sponsor | Tier | Local? | FB | IG |
|---|---|---|---|---|
| Maish Devitt & Associates (MDA Law) | Cider Bar | Yes (Hitchin) | @mda.law | @mda.law |
| Modern Networks | T-shirt | Yes (Hitchin) | @modernnetworks | None (B2B only) |
| Charles Church | T-shirt | Yes (Gosmore, St Ippolyts) | TBC | TBC |
| Buntingford Brewery | Programme | Yes (North Herts) | TBC | TBC |
| Function Security | International Beer Bar | Yes (Hitchin) | TBC | TBC |
When TBC, the team should verify the sponsor's actual Facebook Page name and Instagram handle by checking the sponsor's own website footer for social links. Do not guess handles based on the company name. The verified Page name is used in the Publer composer @ autocomplete during post-import review.
Workflow
If the work starts from a drop in .import/, follow the "Import command (.import/ workflow)" section instead; it orchestrates the steps below end to end. The numbered flow here is the manual path for work that does not come through .import/.
- Understand the brief. Sponsor thank-you, countdown series, single countdown post, beer announcement, volunteer call-out, big-number stat, list feature, partner spotlight, launch moment, event-day photo carousel, or something else?
- If a teammate draft is supplied (Word doc or pasted text), apply the standard fixes silently (see "Parsing drafts from teammates"). Preserve the original body wording and any urgency.
- Gather facts. Use the research checklist for sponsor posts. For other categories, gather the specific factual content first.
- Process photos if needed. Convert HEIC, centre crop to 1080×1080, apply hedgehog watermark for real photos (not branded graphics). See "Photo treatment workflow".
- Decide image vs video strategy. Image-only carousels go via CSV. Videos go as separate native posts (Reels/native video). Do not mix in a CSV carousel.
- Draft the post body. Follow the appropriate recipe (sponsor, countdown, big number stat, list feature, partner spotlight, launch moment, event-day photo). Run the voice rules in your head as you write.
- Produce platform variants. Facebook and Instagram each need their own version.
- Add hashtags and tags. Pull from the libraries above.
- For countdown series, vary the joiners. Don't let every opener use the same construction.
- Run both quality checklists.
- Output:
- For a single post: present as two text blocks (FB and IG) for the user to copy into Publer
- For a batch: produce two CSV files, one per platform, named
hbcf-<series>-<batch>-facebook.csvandhbcf-<series>-<batch>-instagram.csv, each containing all 12 Publer columns - For a countdown series: produce both CSVs and the PNG graphics
- For an event-day photo carousel: produce both CSVs plus a zipped folder bundle with the processed photos under the right
community/(or other) folder for direct unzip into the repo
- Note any TBC handles or facts the user needs to verify before scheduling.
Things this skill does not do
- Generate sponsor thank-you graphics; those come from the design team
- Hold Publer login credentials; those are in the shared password manager
- Schedule posts directly; Publer's UI is used for the final step
- Replace human review; every generated post is reviewed by a human before publishing
- Transcode video; if a video needs codec conversion (HEVC → H.264), use HandBrake or ffmpeg externally
- Generate animated content (Stories, Reels with motion graphics)
Changelog
v1.4.0 (post-2026 festival)
- Import command (
.import/workflow) — one end-to-end command that turns a teammate's raw drop (base message plus images in the gitignored.import/folder) into branded images, two platform CSVs, a push tomain, and short manual Publer steps. Orchestrates the existing draft-parsing, photo-treatment, CSV, and push sub-workflows. Interactive: asks for batch name, target folder, schedule, and carousel order when not obvious; proceeds with stated assumptions otherwise. .gitignoreadded — excludes.import/(scratch inbox) and.DS_Store.
v1.3.0 (post-2026 festival)
Added based on patterns that emerged during the live 2026 campaign:
- Parsing drafts from teammates — the four standard fixes for Rachel's Word-doc drafts ( - joiner → comma, venue line, drop @-block, add partnership line), preservation of body wording and urgency, posting-notes handling.
- Five new post recipes:
- Big number stat post (used for cider 47, world beer 80)
- List feature carousel (used for dark ales, world beer carousels)
- Partner spotlight (used for Feed Up Warm Up)
- Launch moment card (used for the "we are open" 5pm Thursday moment)
- Event-day photo carousel (used for volunteer briefing, weather, day 2 and day 3)
- Visual template library — replaces and expands the previous "Image conventions" section. Documents all seven templates (sponsor, countdown, big number stat, list feature, partner spotlight, launch moment, photo with watermark) with concrete sizing.
- Photo treatment workflow — HEIC conversion, centre crop to square, hedgehog watermark in white box lower-right. Includes PIL code references for the watermark and crop routines. Rule about when to apply the watermark (real photos yes, branded graphics no).
- Mixed media: images and videos — image-only carousels via CSV (reliable), videos as separate native Reels/posts (better engagement, avoids HEVC codec and GitHub-raw streaming issues), guidance on mixed carousels.
- Folder convention updated —
partners/,community/,cider/,beers/,brewery-spotlights/added; topic-based naming for year-on-year repo growth. - Workflow steps expanded — explicit photo processing step, draft parsing step, image/video strategy decision, event-day carousel bundle output.
v1.1.0 (pre-2026 festival)
Initial published version. Core sponsor and countdown recipes, hashtag and account tag libraries, Publer CSV bulk upload workflow with the confirmed CSV mention-resolution constraint.