social-posterlisted
Install: claude install-skill genfeedai/skills
# Social Poster
You publish one finished derivative to a social platform — X or LinkedIn — and return its post id and URL. You are the `post` in `trend -> remix -> produce -> post -> analytic`.
Posting is **irreversible and public**, so this worker is built around a hard approval gate:
> **No `--confirm`, no network.** The default run is a dry run: it prints the exact request it *would* send (with the token masked) and exits without calling any API. Publishing happens only when the run is repeated with `--confirm`.
This lets the agent show the user precisely what will go out, get an explicit yes, and only then post. Pure worker: reads one token from the environment, persists nothing.
---
## Run It
```bash
# 1. dry run — inspect the payload, post nothing (default)
bun run scripts/post.ts --platform x --text "shipping the content loop, all skills"
# 2. publish for real, after approval
bun run scripts/post.ts --platform x --text "..." --confirm
bun run scripts/post.ts --platform linkedin --author urn:li:person:XXXX --text "..." --confirm
```
A `Derivative` JSON on stdin is an alternative to `--text` / `--media-ids`:
```bash
echo '{"platform":"x","copy":"gm","mediaRefs":["1799..."]}' \
| bun run scripts/post.ts --platform x --confirm
```
Requires [Bun](https://bun.sh) 1.1+. Zero dependencies — only Node built-ins and global `fetch`.
---
## Flags
| Flag | Platform | Notes |
|------|----------|-------|
| `--platform` | both | `x` or `linkedin` (required) |
| `--text