@capitalthought/social-skill
v0.5.0
Published
Claude Code skills for drafting social posts in Josh Baer's voice via the social Cloudflare Worker (https://social.relradar.ai). Installs /social-login + /social-draft + /social-suggest + /social-push. Auth via Google SSO; supports per-operator preview mo
Downloads
720
Maintainers
Readme
Social Drafting Agent — Operator setup
This gets you running the /social-draft skill on your Mac so you can feed Josh draft tweets / LinkedIn posts in his voice. Josh approves and ships from his side.
One-time setup. ~5 minutes.
What this does
You type:
/social-draft cole sansom shipped a payments demo todayA Cloudflare Worker generates 3 candidates in Josh's voice (~5 seconds) and sends them to Josh's iMessage. Josh picks one and ships it. Your scope is create_draft only — you can't approve or publish.
Prerequisites
- A Mac with macOS 13 or newer.
- A
@capitalfactory.comGoogle account. (Personal Gmail won't work — the domain is allow-listed.) - Homebrew. Run
brew --versionto check. If it's not installed:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)".
Install steps
1. Install Claude Code
npm install -g @anthropic-ai/claude-codeIf npm isn't installed: brew install node first, then re-run the command above.
Confirm:
claude --version2. Install the skills
npx -y @capitalthought/social-skill@latest installThat drops four skills into ~/.claude/skills/ — social-login (sign in), social-draft (generate), social-suggest (steer a new round), and social-push (preview-mode forward). Re-run any time to upgrade.
3. Sign in with Google
Start Claude Code:
claudeThen:
/social-loginYour browser opens to https://wittpost.com/auth/device. Click Continue with Google and sign in with your primary [email protected] account — not the short [email protected] alias. The page confirms you're signed in; the terminal writes your tokens to ~/.config/social/auth.json.
You'll see:
Signed in as <you>@capitalfactory.com (operator=op_<firstname>).
Access token expires in 3600s; /social-draft auto-refreshes.Tokens last 30 days. To sign out: /social-logout.
4. Draft your first post
/social-draft cole shipped a payments demo today(Use a real topic — Josh sees every draft. There's no test mode.)
You'll see 3 candidates in the terminal. Josh gets the same 3 candidates via iMessage and picks one.
Not quite right? Retry or suggest a direction
If none of the 3 land, you don't have to settle:
- Retry — re-run
/social-draft <same topic>for a fresh 3 (no new input). - Suggest — give it a direction and get a new round steered that way:
/social-suggest lead with the speed angle, drop the nostalgiaThat re-drafts the same topic, leaning hard into your direction. Suggest as many rounds as you want — each builds on the last.
Preview mode (some operators)
Josh can set you to preview mode. If so, /social-draft generates the 3 candidates into YOUR terminal but does not text Josh — that's on purpose, so you can review and iterate first. The output will say so. When you've got the one you want:
/social-push <draft_id>That forwards your single curated pick to Josh's approval chat. He approves/ships from there. (In the default "immediate" mode, you skip this — Josh is texted as soon as the candidates generate.)
Daily usage
/social-draft <what the post is about>Optional steering for tone or framing:
/social-draft demo day prep --context "tone is excitement not nostalgia; mention 7 cities not just Austin"Good drafts come from specifics, not adjectives:
- "Cole shipped a payments demo today" beats "Cole is great".
- Include proper nouns and @-handles. Wrong handles get flagged.
- Use
--contextfor anti-frames (what NOT to do) and concrete reframes (what to do instead). Vague steering doesn't move output much.
Josh reviews on his timeline. You don't need to wait around — he'll ship one when he ships one.
If something breaks
| If you see this | Run this |
|---|---|
| not signed in. Run /social-login first. | /social-login |
| 401 unknown_token from the Worker | /social-login (refresh expired) |
| 400 suppressed | Rephrase — your topic hit the suppression list |
| 400 invalid_input | Trim the topic (>500 chars or empty) |
| Anything else | Screenshot + iMessage Josh |
What you can't do (by design)
| | | |---|---| | Generate drafts | Your scope | | Approve a draft | Josh-only | | Publish to X / LinkedIn | Josh-only | | Schedule for later | Josh-only | | See other operators' drafts | Each operator sees only their own |
The social agent is Josh's voice on his accounts; the human-in-the-loop is non-negotiable.
Multi-device
Tokens are per-machine. Sign in on multiple Macs independently; /social-logout on one doesn't affect the others.
To start over on a single Mac: rm ~/.config/social/auth.json && /social-login.
