bama
BAMA: 모든 Mac 앱을 만들 수 있습니다
marketing-skill 12개 조합 가능한 마케팅 스킬 Claude Code 플러그인
Claude Code plugin with 12 composable marketing skills: competitor research, content calendars, SEO briefs, ad copy, cold outreach, short-form video packages, and rules-aware community posting, plus a
스킬HTML · PythonGitHub @marcosmodly직접 설치운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
설치형 프로젝트는 배포 도메인 없이도 확인할 수 있습니다. 개인 저장소는 GitHub 로그인으로, 조직 저장소는 위의 저장소 확인 파일로 직접 확인해 주세요.
Claude Code plugin with 12 composable marketing skills: competitor research, content calendars, SEO briefs, ad copy, cold outreach, short-form video packages, and rules-aware community posting, plus a pipeline to publish via webhook or platform APIs.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
12 AI marketing skills in one Claude Code plugin: competitor research,
social media content calendars, LinkedIn and X posts, SEO content briefs,
ad copy, email sequences, personalized cold email outreach, TikTok / Reels /
YouTube Shorts scripts, Reddit and Hacker News posts, and approval-gated
publishing to n8n, Make, or platform APIs.
Every skill is a standard SKILL.md in skills/, shares one
brand-voice config, and works on its own or chained together. Nothing
posts or sends without your explicit approval. Using OpenAI Codex? See
Using with Codex.README 전문 보기 ↗14 AI marketing skills in one Claude Code plugin: competitor research, social media content calendars, LinkedIn and X posts, SEO content briefs, ad copy, email sequences, personalized cold email outreach, TikTok / Reels / YouTube Shorts scripts, montages edited from your own videos or photos, Reddit and Hacker News posts, and approval-gated publishing to n8n, Make, or platform APIs.
claude plugin marketplace add marcosmodly/marketing-skill
claude plugin install marketing-skill@marketing-skill
Every skill is a standard SKILL.md in skills/, shares one
brand-voice config, and works on its own or chained together. Nothing
posts or sends without your explicit approval. Using OpenAI Codex? See
Using with Codex.
If it saves you time, a star on the repo helps other people find it. Made something with it? Share it in Show and tell.
▶ Watch the 78-second launch video: the plugin installing and running its skills in Claude Code, the questions it asks before a video (where you post, who presents, a video you like, the tools you pay for), your own character in the mascot's place, and Claude copying how a video you like is edited, all cut like a product launch, with one camera moving from screen to screen. The plugin made it itself from one script, with a voiceover, subtitles synced to it, and music cut on the beat.
▶ Watch the vertical cut (9:16, for TikTok, Reels, and Shorts): the plugin's 3D mascot presenting all fourteen skills under the bold captions, made from its own script the same way.
▶ Watch: your own character
(22 seconds): bring your mascot or avatar as a rigged 3D model (.glb)
and it takes the robot's place, playing its own animations or posed from
its skeleton, holding your product, and talking with the voice. Three
different rigs, one script.
Music from #Uppbeat (free for Creators!): https://uppbeat.io/music/tracks/21-on-the-block/funky-diesel License code: WKCBH1LMDV3AQDIE · Voiceover: AI voice (Kokoro)
32 video templates, rendered on your machine with music composed in your brand's own sound. Each frame below is one template, mid-video:
Marketing videos (ads, demos, narrated explainers, testimonials, FAQs, launches, team)
Everyday posts: meme captions, comment bait, skits, and stories
3D and pixel-art animation, narrated, with captions synced to the voice. The 3D videos star your brand's mascot: it walks, waves, holds up your product, points at your screen, cheers, and lip-syncs to the voice.
The earlier landscape explainer was made with the same renderer.
See a full worked run → — one continuous
full-pipeline call from research to the approval checkpoint before
anything actually publishes.
| Skill | Triggers on | Does |
|---|---|---|
competitor-research | "research a competitor," "analyze a rival," "build a battlecard" | Full analytical competitor brief: overview, recent moves, messaging analysis, SWOT, recommendations, sources |
content-calendar | "content calendar," "a week of posts," "plan a month of content" | Batch-generates several dated, platform-tagged posts in one pass, checked against state/content-calendar.md so it doesn't repeat a recent topic; queues everything for approval, never sends |
content-repurposer | "repurpose this," "turn this into a LinkedIn post/thread/newsletter" | One source → a LinkedIn post, a Twitter/X thread, and a newsletter blurb, in one pass |
seo-brief | "SEO brief," "keyword research," "optimize this for search" | Target/secondary keywords, search intent, suggested outline, meta title/description — never fabricates search-volume numbers |
ad-copy-generator | "ad copy," "Meta/Google/LinkedIn ad variants," "A/B test copy" | Multiple ad variants per platform, each a distinct hook angle, sized to that platform's character limits |
email-sequence | "email sequence," "drip campaign," "welcome series" | A multi-email sequence with send timing, subject lines, and a real narrative arc across emails |
email-outreach | "cold outreach," "prospecting emails," "daily sales outreach," "personalized cold email to [name]" | Researches real prospects against a defined ICP (public-web research by default; a connected prospecting tool only if you ask for verified contact details), checks each one against a permanent contact log so nobody's contacted twice — or ever again once unsubscribed/replied — drafts a genuinely personalized email per prospect, re-confirms strategy monthly, and queues everything for approval (or drafts directly in Gmail if connected); never sends |
visual-brief-generator | "visual brief," "video brief," "shot list," "image prompts for X" | A structured shot list, per-scene prompts, aspect ratios, and style guide; generates the actual asset only if a visual-gen tool is connected |
short-form-video | "TikTok video," "Instagram Reel script," "YouTube Short," "short-form/vertical video for..." | A hook-first script/shot list plus a ready-to-post package per platform (YouTube Shorts/Instagram Reels/TikTok) — title/caption, sized hashtags, and a best-time-to-post window, shaped to one of 23 marketing video types (testimonial, how-to, announcement, and so on) or 22 everyday FYP formats (POV, tier list, text-message skit, storytime, and so on); if you opt in, makes the actual video too, either with a connected tool (Higgsfield, Figma Weave, Canva, or similar) or by rendering it locally (): animated text over stock or AI backgrounds, or a narrated animation starring the brand's 3D mascot, or pixel art, with music in the project's own saved sound; otherwise points to current free tools |
Plus one setup command: /marketing-skill:marketing-setup.
competitor-research, content-calendar, content-repurposer,
seo-brief, ad-copy-generator, email-sequence, email-outreach,
visual-brief-generator, short-form-video, and community-post-generator
can pull from the project they're installed in instead of requiring you to
paste content every time. If you reference
"our product," "our feature," "our changelog," etc. without providing the
text, they'll check README*, CHANGELOG*, docs/**/*.md, and
package.json/pyproject.toml at the project root first, and ask you
directly only if nothing relevant turns up. They only read
documentation-oriented files this way — never arbitrary source code — so
install this in your product's own repo to get the most out of it.
Plugin method (recommended):
claude plugin marketplace add marcosmodly/marketing-skill
claude plugin install marketing-skill@marketing-skill
This works once the plugin's branch is merged to the repo's default
branch, since marketplace add tracks a repo's default branch. To try it
before merging (e.g. against a feature branch), clone the repo locally and
point at your checkout instead — this is verified to work regardless of
which branch is checked out:
git clone https://github.com/marcosmodly/marketing-skill.git
cd marketing-skill && git checkout <branch-name> # if not already on it
claude plugin marketplace add ./
claude plugin install marketing-skill@marketing-skill
Manual fallback: no confirmed minimum Claude Code version exists for
the plugin system — if claude plugin isn't available on your install
(check with claude plugin --help), copy the skills in by hand instead:
cp -r skills/* ~/.claude/skills/ # personal, all projects
# or
cp -r skills/* /your/project/.claude/skills/ # project-scoped
The manual copy skips the setup command (see "Configure" below for the
equivalent manual step) and ${CLAUDE_PLUGIN_ROOT} path substitution.
Copied skills can't find references/, state/, or scripts/ on their
own, so set CLAUDE_PLUGIN_ROOT to your clone of this repo before
starting Claude Code (export CLAUDE_PLUGIN_ROOT=/path/to/marketing-skill);
otherwise each skill asks you where the plugin lives.
OpenAI's Codex reads Claude Code's plugin files (.claude-plugin/), so
the same repo installs there too:
codex plugin marketplace add marcosmodly/marketing-skill
codex plugin add marketing-skill@marketing-skill
To try a branch, add --ref <branch-name> to the first command, or pass
the path to a local clone instead of marcosmodly/marketing-skill.
All 14 skills load as-is; Codex ignores the allowed-tools line. A few
things differ from Claude Code:
Setup command: Codex turns /marketing-skill:marketing-setup into
a skill, so ask Codex to "run the marketing setup" instead of typing
the slash command. Codex only converts commands under 4 KB, so keep
commands/marketing-setup.md short when editing it.
Plugin folder: Codex doesn't fill in ${CLAUDE_PLUGIN_ROOT}. Each
skill works out the plugin folder itself (from the CLAUDE_PLUGIN_ROOT
environment variable, or by finding the folder that holds
references/brand-voice.md). Setting the variable is the reliable
option, and it keeps your brand voice and queued posts in a folder you
control rather than in Codex's installed copy:
export CLAUDE_PLUGIN_ROOT=/path/to/marketing-skill # your clone
codex
Sandbox: in its usual workspace-write mode, Codex only writes
inside the folder you started it in and blocks network access from
shell commands. If the plugin folder is somewhere else, add it to
writable_roots (or approve the writes when asked). Publishing
(publish_webhook.py, publish_direct.py) needs network access. Both
settings go in ~/.codex/config.toml:
[sandbox_workspace_write]
writable_roots = ["/path/to/marketing-skill"]
network_access = true
Live research: competitor-research, seo-brief,
community-post-generator, content-calendar, email-outreach,
short-form-video, and full-pipeline research the web as they run.
Set web_search = "live" in ~/.codex/config.toml so results are
current rather than cached.
Connected tools: Gmail drafts, prospecting tools, and video tools (Higgsfield, Figma Weave, Canva) work once the matching MCP server is set up in Codex. Without one, each skill falls back the same way it does in Claude Code.
Every skill reads references/brand-voice.md before producing output —
your task priority, content types (short-form video, long-form video,
text posts, email, images), target audience, tone, output format, banned
words, and formatting constraints, defined once and reused everywhere.
/marketing-skill:marketing-setup any time
(first-run or to update your answers). If you make videos, it also asks
where you post them, who presents them (you, your own 3D character, the
robot mascot, a realistic AI avatar, or no one), a video whose style to
follow, which paid tools you have, and whose voice
(what Claude asks before a video).references/brand-voice.md directly — keep its
section headings intact so every skill can still find them.email-outreach additionally reads its own
references/outreach-strategy.md — ICP/target segment(s), value
proposition and angle per segment, offer and primary CTA, daily volume,
follow-up cadence, and suppression window. It's configured the same way:
guided setup the first time email-outreach runs, or hand-edit directly.
Unlike brand-voice.md, it also re-opens itself automatically — the
skill checks its "last refreshed" date on every run and walks you through
a strategy-refresh conversation once 30 days have passed, using
state/outreach-log.md's accumulated send/reply/bounce counts to inform
it.
short-form-video writes the script, captions, hashtags, and posting
times for TikTok, Reels, and Shorts, and, if you want, makes the video:
compose.js)..glb)? It takes the robot's place, with every action and
prop; or as
a pixel-art game with chiptune music (style: 3d or style: pixel).captions: bold gives any narrated video the cover
of the big creator ads: huge capitals boxed in black with the selling
words in yellow, the first line on screen from frame 0, a series tag
("week 2") in the corner, and your screenshot on the laptop or phone in
your own photo.captions: subtitle).reference.js reads how it's edited (every cut and
transition, how long scenes hold, the montage bursts, one moving camera
or cut after cut, its palette, its tempo, whether it cuts on the beat)
and plans yours to match, copying the editing, never the content.cut.js); screen recordings play in a
phone frame.clip-montage, the default and free): the
phone videos you film, each at its best moment, cut on the beat of your
own music, with a clip's own sound, your voiceover and synced captions,
labels, and a client's own look and contact end card (montage.js).montage-video): a home's or a product's
photos, each moving: free local 3D moves and pans, or, on a paid plan
you approve, real camera moves and new angles generated by a connected
AI video model (Figma Weave, Higgsfield) and checked against each
photo.Every video gets your sonic identity (one genre, key, and hook, so your sound becomes recognizable) and visual identity (colors, font, and a logo end card that lands with the sonic logo), the hook on screen from the first frame, and a QA pass for text the platforms' buttons would cover or that leaves too fast to read. Hook variants render several openings to test, and a video log steers the next videos by how yours actually did. Setup is free: Node, Playwright, and ffmpeg.
cd scripts/video && npm install
node compose.js script.md # a narrated video page from a script
node montage.js inspect clips/ --slug maple # bring in a client's clips or photos; then montage.js <script.md>
node render.js page.html out.mp4 --cover 0 # the video, its captions (.srt), and its cover
A mascot video or the bold cover, step by step. Ask Claude in plain words, for example "make a 3D mascot video about our new invoicing app, here's a screenshot" (add "with our own mascot, here's the .glb" to put your character in the robot's place), or "make a TikTok with the big bold captions, here's a photo of me holding my laptop and a screenshot of the app". It writes a script like this one, voices it, and renders it:
---
style: 3d # the mascot; leave it out for photo backgrounds
character: assets/our-mascot.glb # optional: your own rigged 3D character instead of the robot
captions: bold # big boxed captions; *words* in asterisks turn yellow
hook: we made invoicing *one tap*
series: week 2 # a tag in the top corner
---
1. We made invoicing *one tap*. [shot: mascot do=talk prop=laptop src=assets/app.png]
2. It took a year of late nights. [shot: desk src=assets/app.png]
3. Here's the new app. [shot: mascot do=point prop=screen src=assets/app.png]
4. Try it *free* this week. [shot: mascot do=cheer]
To make it by hand, put your screenshot in state/videos/assets/, save
the script as script.md, and run the commands above. Every action,
prop, and scene the mascot has:
3D and pixel-art animation.
The bold look, and putting your app on the screen in a photo of you:
The bold look.
A launch video of your app or tool, its screens instead of a presenter
("make a launch video for my CLI, here are the install commands"):
The product demo.
A video edited like one you like ("make ours like this one", with the
video attached): Copy a video you like.
Everything else, from backgrounds and sound to templates and connected video tools: docs/video.md.
content-calendar batch-generates posts and queues them in
state/content-calendar.md — a plain Markdown table that's both the
forward calendar and the permanent send history (rows accumulate; nothing
gets cleared out). It's safe to hand-edit directly. The table itself is
just an index: each row's Notes column points at the file under
state/posts/ that actually holds that post's full content —
publish-pipeline reads the file, not the table, when it sends.
The file enforces a separation of duties that every skill in this plugin
respects: generation and approval are always two different steps.
content-calendar (and anything else that drafts content) can only write
Planned, Drafted, or Ready for Approval to a row's Status — never
Approved. Only publish-pipeline writes Approved, and only
immediately after showing the real content to a human in a live
conversation and getting an actual reply back — silence, a timeout, or
the request having been phrased as blanket authorization ("just post
these") never counts as that reply. publish-pipeline then flips the row
to Sent right after a successful send.
When more than one row is ready at once, publish-pipeline lists them
together as a numbered batch (each with its Account/Destination/
Attachments/Final Text spelled out) instead of asking "send this?" one
row at a time — a reply has to name specific numbers to approve them,
since an unqualified "send them all" invites rubber-stamping a list
nobody actually read. It also flags any row more than 14 days old as
Stale right in that listing, and content-calendar separately reports
how many rows across the whole calendar have crossed that age every time
it runs — a queue that's easy to lose track of is exactly what turns a
careful approval step into a bulk-approved backlog later.
This matters most the moment you try to run this plugin unattended — see "Running this on a schedule" below.
Nothing in this plugin runs on a timer by itself — a skill only executes
when a session invokes it. To get daily/weekly output, schedule the
session, not the plugin: Claude Cowork's scheduled tasks (or Claude
Code's own Routines/triggers) can fire a session on a cadence that runs
content-calendar or full-pipeline.
That solves "run it every day." It does not turn this into unattended
auto-posting, on purpose: content-calendar only ever queues rows as
Drafted/Ready for Approval, and publish-pipeline only sends a row
already Approved by an actual human reply in that conversation — a
scheduled trigger firing with nobody there to reply just leaves content
queued for you to review later, which is the intended behavior, not a
bug to work around. If you deliberately want unattended sending, you'd
need to change that approval step yourself — this plugin doesn't ship a
way to do that, on the theory that a live company account posting
unsupervised is a decision only you should make explicitly, not one a
scheduling tool should make for you by default.
email-outreach follows the exact same model, just applied to cold email
instead of social posts: schedule a daily session to get a consistent
daily batch (its own "consistent daily outreach" requirement), and it
queues every draft as Drafted/Ready for Approval — never Sent —
exactly like content-calendar does, for the same reason. Its monthly
strategy refresh doesn't need a separate schedule at all: the skill
checks references/outreach-strategy.md's own last-refreshed date on
every run and walks through the refresh conversation itself once 30 days
have passed, so the one daily trigger alone covers both cadences.
scripts/publish_webhook.py), or post straight
to LinkedIn, X, Facebook, Reddit, Discord, Slack, Telegram, dev.to,
YouTube, Instagram, or TikTok with your own credentials
(scripts/publish_direct.py). Both refuse to run without --dry-run
or --confirmed. The page covers what each platform's access really
takes, including TikTok's private-only rule until your app is audited.community-post-generator researches each subreddit's, Product Hunt's,
Hacker News's, Indie Hackers', dev.to's, or a Telegram channel's actual
rules before drafting, and asks you for Discord's and Slack's.A skill is a folder with a SKILL.md file that teaches Claude a
repeatable task. Claude reads each skill's description and uses it
automatically when your request matches ("write an SEO brief for…",
"give me a week of LinkedIn posts"), or you can call one by name, such as
/marketing-skill:seo-brief.
No. Research uses Claude's built-in web search and fetch, and every skill produces its full written output with no connector or API key. Gmail, a prospecting tool, Higgsfield, Canva, and platform API credentials are optional extras, and paid ones are used only when you ask. Rendering a video locally needs only free tools (Node, Playwright, and ffmpeg), plus free Pexels and Pixabay keys if you want stock backgrounds. Actually sending content needs your own webhook or credentials.
No. Drafts are queued in state/, and only publish-pipeline sends,
after you approve specific items in a live conversation.
email-outreach creates drafts and never sends. See
Content calendar & approval model.
Yes. Ask for what you need and only the matching skill runs. To skip the plugin system, copy the skill folders in by hand (see Install).
Partly, and docs/results.md has what there is.
evals/, scored with and
without the plugin by claude plugin eval. They test the things a skill
promises: a No-Go when a subreddit bans self-promotion, no made-up search
volumes, no invented facts about a competitor. In the latest run the
plugin clearly beat plain Claude on one (asking for a Discord server's
rules instead of drafting blind), led by a run on two, tied on three,
and lost one (its battlecard stated an absence the source didn't). All
of it is published, the loss included.python3 scripts/results.py turns your logs into
removal rates, medians, and reply rates, with "too few to tell" until
there's enough to go on..claude-plugin/
plugin.json # plugin metadata
marketplace.json # lets this repo install itself via `marketplace add` (Claude Code and Codex)
skills/ # the 14 skills, one SKILL.md each
commands/
marketing-setup.md # the /marketing-skill:marketing-setup command
references/
brand-voice.md # shared config every skill reads (hand-edited)
outreach-strategy.md # email-outreach's own config: ICP, angle, offer, cadence (hand-edited or guided setup)
video-types.md # 23 marketing video types: goal, short-form beats, and how each gets made (hand-editable)
sound-guide.md # music genres, sound effects, how to pick a project's sonic identity, a hook library, licensed tracks
hooks.md # hook patterns by goal, written to work with the sound off, and how to test them
video-rendering.md # the local render procedure short-form-video follows
fyp-formats.md # 22 everyday / FYP formats: why each works, beats, copy at two tones, weekly mix and rotation
montage-guide.md # clip-montage's and montage-video's shot order, filming tips, moves, music by mood, and wording rules
docs/ # the longer guides: video, publishing, community posts, outreach, the template gallery, and results.md (the plugin's own numbers)
evals/ # claude plugin eval cases: each runs with and without the plugin, and the difference is scored
state/
content-calendar.md # calendar/history index (generated + appended to, hand-editable)
posts/ # one file per queued post's full content, linked from the index above
outreach-log.md # outreach queue/history + permanent suppression list (generated + appended to, hand-editable)
outreach/ # one file per drafted email's full content, linked from the log above
video-log.md # every posted video with its format, hook, and numbers; steers the next ones
post-log.md # every posted Reddit/HN/dev.to/text post: the verdict it went out under, removed or not, and its numbers
clients/ # one profile per client (look, sound, contact details, notes); kept out of git
scripts/
publish_webhook.py # stdlib-only webhook sender (see --help)
publish_direct.py # stdlib-only direct-to-platform scaffold (LinkedIn/X/Meta/Reddit/Discord/Slack/Telegram/dev.to/YouTube/Instagram/TikTok), needs your own API credentials (see --help); --metrics reads a post's numbers back
results.py # stdlib-only: what the logs add up to (removal rates, medians, reply rates, an A/B significance test), or an eval result's table
video/
render.js # animated HTML page -> vertical MP4 with an original soundtrack (needs Node, Playwright, ffmpeg)
soundtrack.js # the music and sound-effects synthesizer render.js uses (no dependencies)
media.js # finds stock photos and clips (Pexels, Pixabay, Openverse) and writes their credits
check.js # QA pass over templates: layout lint, cues, fonts, loudness, contact sheets
voice.js # free local voiceover (Kokoro): a script -> one WAV per line
captions.js # word timing for a voice line, caption chunks, and .srt files
compose.js # a narrated video page from a script: voice, backgrounds (photos, the 3D mascot, or pixel art), synced captions, the bold look
montage.js # a montage page from a client's clips or photos: intake, clip moments and sound, moves, beat-synced cuts, labels, contact end card
depth.js # a photo's depth map (free local model), for the montage's 3D camera moves
brand.js # applies the Visual Identity to a page: colors, font, logo end card
cut.js # a filmed talking-head take: pauses cut, captions, and a page to render it
beats.js # a music track's tempo, beats, bars, and drops, to cut a video on its beat
reference.js # how a reference video is edited (cuts, transitions, pacing, palette, tempo), and a plan to match it
gallery.js # rebuilds the template gallery in docs/gallery
templates/ # 8 marketing + 22 everyday + 3D (the mascot: templates/mascot.py; the product demo's screens: templates/demo.py) and pixel-art starting pages, built by templates/build.py
Made a content calendar, a cold email batch, a video, or a launch post with these skills? Post it in Show and tell, along with which skills you ran and anything that didn't work the way you expected. Questions go in Q&A, and bugs in Issues.
Fixes, new skills, and docs are welcome. CONTRIBUTING.md covers how to send a pull request and run the checks first.
scripts/video/clip-montage | "make a montage of these videos," "edit these clips into a reel," "recap video from today," "make a montage" | The default for montages, and free: brings in the user's own clips (location data stripped), looks at each one frame by frame to pick its best moment, and renders a 9:16 montage cut on the beat of their own music (or a generated track, or none for an in-app sound), with a clip's own sound where someone talks, their voiceover with synced captions, labels, and the client's contact end card; then edits it on request, saving each version. With only photos it asks for clips first, then hands over to montage-video |
montage-video | "make a video from these listing photos," "turn these product photos into a reel," "property tour from these pictures" | Brings in the client's photos and clips (upright, sized, location data stripped), looks at each one to order the shots, and renders a 9:16 montage with moves, beat-synced cuts, labels, price and specs, music or a voiceover with synced captions, and the client's branded contact end card; then edits it on request, saving each version and what each client prefers |
community-post-generator | "post this to r/[subreddit]," "help me post on Product Hunt," "write a Show HN/Show IH for this," "post this on dev.to," "post this in our Discord/Slack/Telegram" | Live-researches that specific subreddit's, Product Hunt's, Hacker News's, Indie Hackers', dev.to's, or a public Telegram channel's/group's actual rules and typical post style first (verifying each source is actually about that target, not a similarly-named one); for Discord, Slack, and private Telegram targets, asks you for the rules instead, since it can't research those. Gives a plain Go/No-Go either way, and only drafts a post (shaped for that platform — title+body, title+URL+first comment for Show HN, dev.to's title+body+tags, or a single chat message in Discord's, Slack's, or Telegram's own formatting for the chat platforms) if it's actually welcome there, written to read like a person wrote it |
publish-pipeline | "publish this," "send to n8n/Make," "fire the webhook," "send the queued post for [date]" | Packages finished content/assets into JSON and hands off to your automation via webhook (or, optionally, straight to a platform API) after showing you the exact payload |
full-pipeline | "run the full pipeline," "research X and publish it," "do the whole thing end to end" | Chains research, repurposing, visual brief, and publish into one run, with a mandatory pause before anything actually publishes |