Hao0321/claude-skill-social-post
A Claude Code skill by Hao (駱君昊) that learns your Facebook voice and auto-posts to FB / IG / Threads / X with a 14-day content calendar. Mega-viral validated: 80K reach / 448 likes / 500 comments on first post. Includes Day 2 flop postmortem.
What it is
claude‑skill‑social‑post is a Claude/Codex “skill” that lets a large‑language‑model (LLM) control a local Chrome instance to draft, review and (optionally) publish social‑media posts on Facebook, Instagram and Threads. It learns a brand’s “voice” from supplied examples, plans content, writes the post, stores a structured record of the outcome, and can push the post through the browser when the user explicitly enables the live switch.
Who it’s for
- LLM‑powered assistants (Claude, Codex) that need a plug‑in for social‑media operations.
- Marketers or community managers who want a reproducible, auditable workflow that keeps the actual posting step under human control.
- Developers who want to experiment with browser‑automation‑driven AI agents without using Meta’s private APIs.
Core capabilities (as described in the README)
| Feature | What it does |
|---|---|
| Voice learning (P1) | Takes a set of authorised sample posts (style_profile.md, content_plan.md) and extracts a SHA‑256 fingerprint so the model can mimic the brand’s tone. |
| Content planning (P0) | Generates a content brief and a posting schedule that the user can edit before any automation runs. |
| Draft & publish (P2) | Writes the post, shows it for user confirmation, then—if the live_browser_actuation_enabled flag is turned on—uses a controlled Chrome session to fill the form and click Submit. |
| Outcome logging (P3) | After a post is sent, the tool records the full HTML of the comment, timestamps, language cues, CTA, etc., into a structured JSON ledger that can be audited later. |
| Cross‑platform analysis (P4) | Normalises data from FB, IG and Threads so you can compare reach, engagement, voice consistency, etc., across platforms. |
| Comment operations (P5) | Provides a low‑level Chrome‑automation API for scanning a post, reading a specific comment, and (optionally) replying to it. All actions are gated behind a canary flag; the default is read‑only. |
| Safety & audit | Every browser action is signed with a SHA‑256 hash, stored in an append‑only ledger, and can only be executed when the user adds --write. The code refuses to run if the exact Chrome revision (26.825.51511) or its hash does not match the bundled version. |
| Testing harness | A suite of Python and Node scripts (self_test.py, comment_chrome_actuator_test.mjs, etc.) that run end‑to‑end tests on a local‑only Meta fixture. All live posting is disabled in the test mode. |
How you would use it (quick‑start)
- Install the skill by copying the
social‑postfolder into the appropriate Claude or Codex skill directory (~/.claude/skills/or~/.codex/skills/). - Create your private config – copy the example markdown files (
style_profile.example.md,content_plan.example.md) tostyle_profile.mdandcontent_plan.mdand fill them with your brand’s samples. - Run the helper scripts (Python for validation, Node for Chrome‑bridge tests) to make sure the bundled Chrome runtime matches the hash.
- Execute a workflow – e.g.
python scripts/comment_assistant.py queue --format jsonto generate a draft, review the JSON output, then run the same command with--writeto let Chrome actually post. - Log the result –
python scripts/log_outcome.py …stores the post’s HTML, timestamps, sentiment tags, etc., in a JSON ledger for later analysis.
Limitations & current state (as of the README)
- Live posting is disabled by default (
live_browser_actuation_enabled = false). Only a single “canary” IG reply has been verified; full multi‑platform automation is still in a candidate stage. - The tool works only with a logged‑in Chrome session; it never exports cookies or tokens.
- Scanning an entire feed is not yet supported – the skill can only target a specific comment identified by its exact URL.
- All “real” data (actual post text, images, account names, etc.) is excluded from the public repo; users must supply their own private files.
- Extensive negative testing is built in (timeouts, page‑unload, permission errors) and will abort the operation if any check fails.
Why it matters
- Demonstrates a real‑world LLM‑agent pattern: the model decides what to say, while a deterministic, auditable browser bridge handles how to deliver it.
- Keeps the privacy‑sensitive posting step under human control, satisfying platforms that forbid fully automated posting via unofficial APIs.
- Provides a structured data pipeline (SHA‑256‑verified content, rich metadata) that can feed downstream analytics or reinforcement‑learning loops.
License
MIT – free to use, modify, and redistribute with attribution.
Related
- Project
- Project
- Project
- Project
- Project