{"_id":"@capitalthought/social-skill","_rev":"5-b1473bd7386366ca3186e0ed53e6e3e3","name":"@capitalthought/social-skill","dist-tags":{"latest":"0.5.0"},"versions":{"0.1.0":{"name":"@capitalthought/social-skill","version":"0.1.0","keywords":["claude-code","skill","social","capitalthought"],"author":{"name":"Joshua Baer","email":"josh@quityourjob.com"},"license":"UNLICENSED","_id":"@capitalthought/social-skill@0.1.0","maintainers":[{"name":"joshuabaer","email":"npmjs@joshspam.com"}],"homepage":"https://github.com/capitalthought/social#readme","bugs":{"url":"https://github.com/capitalthought/social/issues"},"bin":{"social-skill":"bin/install.js"},"dist":{"shasum":"abbfaa4333ed01fd0b04ed107269e5e23bb874e7","tarball":"https://registry.npmjs.org/@capitalthought/social-skill/-/social-skill-0.1.0.tgz","fileCount":4,"integrity":"sha512-RNMDfOnfdc8K3dry9NjOK5n11v1g2VqcO8zDXi4bIO7JCJVw4Znwu/gVnNV1J3lug7kq/dgegtuh/kahknRQhw==","signatures":[{"sig":"MEYCIQD8YRWqnCKq0l07qQGxgIK8ScPpuS9G+QrtaujPh+XD6wIhAI1ifJauj6SEunJ9LJWPf5MQLn+Q2fLiVTCVOtqgVGlH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19985},"type":"module","engines":{"node":">=20"},"gitHead":"161fdad3e2e32d1a22ff034fd6fdd0063df569a5","_npmUser":{"name":"joshuabaer","email":"npmjs@joshspam.com"},"repository":{"url":"git+https://github.com/capitalthought/social.git","type":"git","directory":"kyle-setup"},"_npmVersion":"11.12.1","description":"Claude Code skill for drafting social posts in Josh Baer's voice via the social Cloudflare Worker (https://social.relradar.ai). Auth via Google SSO.","directories":{},"_nodeVersion":"26.0.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/social-skill_0.1.0_1779673867676_0.9637165766873079","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@capitalthought/social-skill","version":"0.2.0","keywords":["claude-code","skill","social","capitalthought"],"author":{"name":"Joshua Baer","email":"josh@quityourjob.com"},"license":"UNLICENSED","_id":"@capitalthought/social-skill@0.2.0","maintainers":[{"name":"joshuabaer","email":"npmjs@joshspam.com"}],"homepage":"https://github.com/capitalthought/social#readme","bugs":{"url":"https://github.com/capitalthought/social/issues"},"bin":{"social-skill":"bin/install.js"},"dist":{"shasum":"3b96cbfe1276f3d22dd95049db25af83fcb5a238","tarball":"https://registry.npmjs.org/@capitalthought/social-skill/-/social-skill-0.2.0.tgz","fileCount":4,"integrity":"sha512-yxQ2hm6wKW4iPJZBSAdf09CMEAkZqJmabSub9WiLt/US55u6xOu+dFCKonLaLwXboZYth7bcMUn5K3jYu/3wdw==","signatures":[{"sig":"MEUCIEVjEOo67NQmDMNFBoPe/6yx1XrKOVoY8fCR8EaDfHvcAiEA5VUNLQ2a+SQynND/FQ742Xm6+w1/oGmBwtSn4CizgNY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17234},"type":"module","engines":{"node":">=20"},"gitHead":"24714e8a07b696fcd3c4d1885a24b6de29049ab7","_npmUser":{"name":"joshuabaer","email":"npmjs@joshspam.com"},"repository":{"url":"git+https://github.com/capitalthought/social.git","type":"git","directory":"kyle-setup"},"_npmVersion":"11.12.1","description":"Claude Code skill for drafting social posts in Josh Baer's voice via the social Cloudflare Worker (https://social.relradar.ai). Auth via Google SSO.","directories":{},"_nodeVersion":"26.0.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/social-skill_0.2.0_1779676395271_0.6465608498059272","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@capitalthought/social-skill","version":"0.3.0","keywords":["claude-code","skill","social","capitalthought"],"author":{"name":"Joshua Baer","email":"josh@quityourjob.com"},"license":"UNLICENSED","_id":"@capitalthought/social-skill@0.3.0","maintainers":[{"name":"joshuabaer","email":"npmjs@joshspam.com"}],"homepage":"https://github.com/capitalthought/social#readme","bugs":{"url":"https://github.com/capitalthought/social/issues"},"bin":{"social-skill":"bin/install.js"},"dist":{"shasum":"ac6891cf024a879148c53249a5b1a98935aabb6d","tarball":"https://registry.npmjs.org/@capitalthought/social-skill/-/social-skill-0.3.0.tgz","fileCount":5,"integrity":"sha512-Nd7OF1aCFVC2LbHkaxhd+RWOzcC7ZJ/ultXPnZjdfUTBW3WC1kCBR108nadLp54cwd5GPAZhnUjcJ4N5fYeQ3w==","signatures":[{"sig":"MEUCIQCzP23ZJO+WdyeL4WkySKCpRtmCCCdDknlHLGr9NqOqkwIgcpROk17sj12aYPe/yp7ApG9eUYkOuhsd3TotXuniD7U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23683},"type":"module","engines":{"node":">=20"},"gitHead":"09fa6f574178f993088986193fe072401a2bc458","_npmUser":{"name":"joshuabaer","email":"npmjs@joshspam.com"},"repository":{"url":"git+https://github.com/capitalthought/social.git","type":"git","directory":"kyle-setup"},"_npmVersion":"11.12.1","description":"Claude Code skills for drafting social posts in Josh Baer's voice via the social Cloudflare Worker (https://social.relradar.ai). Installs /social-draft + /social-push. Auth via Google SSO; supports per-operator preview mode.","directories":{},"_nodeVersion":"26.0.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/social-skill_0.3.0_1779938572839_0.033497181692227374","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@capitalthought/social-skill","version":"0.4.0","keywords":["claude-code","skill","social","capitalthought"],"author":{"name":"Joshua Baer","email":"josh@quityourjob.com"},"license":"UNLICENSED","_id":"@capitalthought/social-skill@0.4.0","maintainers":[{"name":"joshuabaer","email":"npmjs@joshspam.com"}],"homepage":"https://github.com/capitalthought/social#readme","bugs":{"url":"https://github.com/capitalthought/social/issues"},"bin":{"social-skill":"bin/install.js"},"dist":{"shasum":"2695e91dfe2fdf7617df919220281aabae5cbac9","tarball":"https://registry.npmjs.org/@capitalthought/social-skill/-/social-skill-0.4.0.tgz","fileCount":6,"integrity":"sha512-vtfNLoTFk7fmjg0cnM1MMT3fL8sdejXHZss2Y2u0PIi911FKiEecnoQXCa/N+PsuMr4aQGAlHrd07P3PywARGw==","signatures":[{"sig":"MEUCIHCHi0YZrmu4ymL1zPhZ/UeFjRY6Dcw35V3opq1GW0vRAiEAoZVOiNkcS/ti1WoH/k1PmurhWYGXQ88qG59MTj+Md2w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31899},"type":"module","engines":{"node":">=20"},"gitHead":"5a8e56f2108dda494df9522e42150294b7fd98e1","_npmUser":{"name":"joshuabaer","email":"npmjs@joshspam.com"},"repository":{"url":"git+https://github.com/capitalthought/social.git","type":"git","directory":"kyle-setup"},"_npmVersion":"11.12.1","description":"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-push. Auth via Google SSO; supports per-operator preview mode.","directories":{},"_nodeVersion":"26.0.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/social-skill_0.4.0_1779939258547_0.10707016427675753","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@capitalthought/social-skill","version":"0.5.0","description":"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","type":"module","bin":{"social-skill":"bin/install.js"},"engines":{"node":">=20"},"repository":{"type":"git","url":"git+https://github.com/capitalthought/social.git","directory":"kyle-setup"},"keywords":["claude-code","skill","social","capitalthought"],"author":{"name":"Joshua Baer","email":"josh@quityourjob.com"},"license":"UNLICENSED","publishConfig":{"access":"public"},"gitHead":"79be37c89a7dbbabf9ed373fd2cabb8a1ac6c2ab","_id":"@capitalthought/social-skill@0.5.0","bugs":{"url":"https://github.com/capitalthought/social/issues"},"homepage":"https://github.com/capitalthought/social#readme","_nodeVersion":"26.0.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-2Tk/UNVYx8bFdKvd+kkpF4jrVPy+08uLKYBzxuc0EIEk5/ZkdLM1yXgbicAAZ0BGTArJwpaOicVwO7Qkb+Hhzg==","shasum":"53b30e5f41f8cf9a92b63b593f29149390964953","tarball":"https://registry.npmjs.org/@capitalthought/social-skill/-/social-skill-0.5.0.tgz","fileCount":7,"unpackedSize":38940,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDaqIKBwkhaZEespjQDFAE77vvIYlBe4nWZPXeeL/aQcgIhAML9L6Cv2TWoYeyU4pTVmbI3qWgnydz1q3W/ieEVsjNo"}]},"_npmUser":{"name":"joshuabaer","email":"npmjs@joshspam.com"},"directories":{},"maintainers":[{"name":"joshuabaer","email":"npmjs@joshspam.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/social-skill_0.5.0_1780024558143_0.2621758683785902"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-25T01:51:07.487Z","modified":"2026-05-29T03:15:58.442Z","0.1.0":"2026-05-25T01:51:07.831Z","0.2.0":"2026-05-25T02:33:15.407Z","0.3.0":"2026-05-28T03:22:52.982Z","0.4.0":"2026-05-28T03:34:18.714Z","0.5.0":"2026-05-29T03:15:58.321Z"},"bugs":{"url":"https://github.com/capitalthought/social/issues"},"author":{"name":"Joshua Baer","email":"josh@quityourjob.com"},"license":"UNLICENSED","homepage":"https://github.com/capitalthought/social#readme","keywords":["claude-code","skill","social","capitalthought"],"repository":{"type":"git","url":"git+https://github.com/capitalthought/social.git","directory":"kyle-setup"},"description":"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","maintainers":[{"name":"joshuabaer","email":"npmjs@joshspam.com"}],"readme":"# Social Drafting Agent — Operator setup\n\nThis 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.\n\n**One-time setup. ~5 minutes.**\n\n---\n\n## What this does\n\nYou type:\n\n```\n/social-draft cole sansom shipped a payments demo today\n```\n\nA 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.\n\n---\n\n## Prerequisites\n\n1. A Mac with macOS 13 or newer.\n2. A `@capitalfactory.com` Google account. (Personal Gmail won't work — the domain is allow-listed.)\n3. Homebrew. Run `brew --version` to check. If it's not installed: `/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"`.\n\n---\n\n## Install steps\n\n### 1. Install Claude Code\n\n```bash\nnpm install -g @anthropic-ai/claude-code\n```\n\nIf `npm` isn't installed: `brew install node` first, then re-run the command above.\n\nConfirm:\n\n```bash\nclaude --version\n```\n\n### 2. Install the skills\n\n```bash\nnpx -y @capitalthought/social-skill@latest install\n```\n\nThat 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.\n\n### 3. Sign in with Google\n\nStart Claude Code:\n\n```bash\nclaude\n```\n\nThen:\n\n```\n/social-login\n```\n\nYour browser opens to `https://wittpost.com/auth/device`. Click **Continue with Google** and sign in with your **primary** `firstnamelastname@capitalfactory.com` account — not the short `firstname@capitalfactory.com` alias. The page confirms you're signed in; the terminal writes your tokens to `~/.config/social/auth.json`.\n\nYou'll see:\n\n```\nSigned in as <you>@capitalfactory.com (operator=op_<firstname>).\nAccess token expires in 3600s; /social-draft auto-refreshes.\n```\n\nTokens last 30 days. To sign out: `/social-logout`.\n\n### 4. Draft your first post\n\n```\n/social-draft cole shipped a payments demo today\n```\n\n(Use a real topic — Josh sees every draft. There's no test mode.)\n\nYou'll see 3 candidates in the terminal. Josh gets the same 3 candidates via iMessage and picks one.\n\n### Not quite right? Retry or suggest a direction\n\nIf none of the 3 land, you don't have to settle:\n\n- **Retry** — re-run `/social-draft <same topic>` for a fresh 3 (no new input).\n- **Suggest** — give it a direction and get a new round steered that way:\n\n```\n/social-suggest lead with the speed angle, drop the nostalgia\n```\n\nThat re-drafts the same topic, leaning hard into your direction. Suggest as many rounds as you want — each builds on the last.\n\n### Preview mode (some operators)\n\nJosh 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:\n\n```\n/social-push <draft_id>\n```\n\nThat 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.)\n\n---\n\n## Daily usage\n\n```\n/social-draft <what the post is about>\n```\n\nOptional steering for tone or framing:\n\n```\n/social-draft demo day prep --context \"tone is excitement not nostalgia; mention 7 cities not just Austin\"\n```\n\nGood drafts come from specifics, not adjectives:\n\n- *\"Cole shipped a payments demo today\"* beats *\"Cole is great\"*.\n- Include proper nouns and @-handles. Wrong handles get flagged.\n- Use `--context` for anti-frames (what NOT to do) and concrete reframes (what to do instead). Vague steering doesn't move output much.\n\nJosh reviews on his timeline. You don't need to wait around — he'll ship one when he ships one.\n\n---\n\n## If something breaks\n\n| If you see this | Run this |\n|---|---|\n| `not signed in. Run /social-login first.` | `/social-login` |\n| `401 unknown_token` from the Worker | `/social-login` (refresh expired) |\n| `400 suppressed` | Rephrase — your topic hit the suppression list |\n| `400 invalid_input` | Trim the topic (>500 chars or empty) |\n| Anything else | Screenshot + iMessage Josh |\n\n---\n\n## What you can't do (by design)\n\n| | |\n|---|---|\n| Generate drafts | Your scope |\n| Approve a draft | Josh-only |\n| Publish to X / LinkedIn | Josh-only |\n| Schedule for later | Josh-only |\n| See other operators' drafts | Each operator sees only their own |\n\nThe social agent is Josh's voice on his accounts; the human-in-the-loop is non-negotiable.\n\n---\n\n## Multi-device\n\nTokens are per-machine. Sign in on multiple Macs independently; `/social-logout` on one doesn't affect the others.\n\nTo start over on a single Mac: `rm ~/.config/social/auth.json && /social-login`.\n","readmeFilename":"README.md"}