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)

  1. Install the skill by copying the social‑post folder into the appropriate Claude or Codex skill directory (~/.claude/skills/ or ~/.codex/skills/).
  2. Create your private config – copy the example markdown files (style_profile.example.md, content_plan.example.md) to style_profile.md and content_plan.md and fill them with your brand’s samples.
  3. Run the helper scripts (Python for validation, Node for Chrome‑bridge tests) to make sure the bundled Chrome runtime matches the hash.
  4. Execute a workflow – e.g. python scripts/comment_assistant.py queue --format json to generate a draft, review the JSON output, then run the same command with --write to let Chrome actually post.
  5. Log the resultpython 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