throughput
Use when the user asks to open/show the CCC throughput (token) dashboard, or asks how many tokens they've used — overall/so far,…
Use when one release needs to go out across several channels at once — spawns one writer sibling session per channel via CCC (changelog, LinkedIn, X thread, optional blog) off a single source pack, then collates the drafts.
$ npx -y skills add amirfish1/claude-command-center --skill press-room --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/press-roomContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when one release needs to go out across several channels at once — spawns one writer sibling session per channel via CCC (changelog, LinkedIn, X thread, optional blog) off a single source pack, then collates the drafts.
name: press-room description: Use when one release needs to go out across several channels at once — spawns one writer sibling session per channel via CCC (changelog, LinkedIn, X thread, optional blog) off a single source pack, then collates the drafts. allowed-tools: Bash, Read, Write
Press-room turns one release into N channel drafts in parallel: you build a single source pack, spawn one writer session per channel each constrained to its format, and collate the returned drafts into per-channel files. It builds on the spawn/report_to mechanics in the `ccc-orchestration` skill — read that first for the full Spawn/Inject/Ask API.
**1 spawned session per channel** — default **3** (changelog, LinkedIn, X); the optional blog post makes **4**. Each spawn is a real billed session on the user's kanban — state the count before spawning.
Not for a one-channel announcement — write that yourself, or use `a-b-copy` if you want to compare two voices on it.
CCC_URL="$(cat ~/.claude/command-center/port.txt 2>/dev/null || echo "${CCC_URL:-http://127.0.0.1:8090}")"
curl -sf --max-time 2 "$CCC_URL/api/version" >/dev/null 2>&1 || CCC_URL="http://127.0.0.1:8090"
curl -sf --max-time 2 "$CCC_URL/api/version" >/dev/null 2>&1 || CCC_DOWN=1Notes: (a) run every CCC curl with the network sandbox **disabled** — the Bash sandbox blocks loopback and fails spuriously even when CCC is up. (b) URL-encode `repo_path` in query strings (`+` → `%2B`, space → `%20`). (c) Resolve your own session id from `$CLAUDE_SESSION_ID`, else the newest `*.jsonl` under `~/.claude/projects/<slugified-cwd>/` (see `ccc-orchestration`).
Write a single source-of-truth file (e.g. `/tmp/press-room-<version>.md`) so the channels can't drift apart or invent claims. Include:
diffs.
Every writer reads this file; none of them re-derives the facts.
All with `report_to` set to your own session id, each pointing at the source-pack file plus its channel constraints. Omit `"model"` and `"reasoning_effort"`: the server spawn defaults (Settings → Spawn defaults) apply. Pass either explicitly to keep cost down, with `"engine"` alongside it, since both are validated per engine (see `ccc-orchestration` § 2 for the per-engine effort ladders).
curl -s -X POST "$CCC_URL/api/sessions/spawn" -H "Content-Type: application/json" -d @- <<'JSON'
{
"prompt": "Write the <CHANNEL> draft for this release. Read the source pack at /tmp/press-room-<version>.md — it is the ONLY source of facts; invent nothing. Channel constraints: <CONSTRAINTS>. Report the draft only, no commentary.",
"repo_path": "/abs/path/to/repo",
"report_to": "<your-session-id>"
}
JSONBake in the per-channel `<CONSTRAINTS>`:
marketing adjectives.
CTA link, no hashtag spam.
one idea per post.
examples only from the source pack.
After spawning, **end your turn** and tell the user which channels are being drafted. Drafts arrive by injection (the `report_to` footer CCC appends). Never poll or sleep-loop (see `ccc-orchestration`). If a draft never arrives, check `GET /api/sessions/spawned` for whether that writer's session is still alive.
As drafts arrive, write each into `release-comms/<version>/<channel>.md` (one file per channel) and present the full set to the user. **Drafts only** — nothing is posted or published; publishing is a human decision.
If the arguments contain `dry-run`, print the channel list and session count, the source-pack path, and each channel's constraint block and prompt — then POST nothing and write no comms files.
If `CCC_DOWN=1` or a curl returns connection refused (exit 7): do not pretend it ran. Fall back to one `Task`-tool subagent per channel with the same prompts — same output, less visibility — and tell the user CCC was unreachable.
Not one session writing all channels — the voices bleed and the X thread reads like the blog. Not `a-b-copy` (that compares two voices on ONE piece; this fans one release out to MANY channels).
Your coding agents outgrew your terminal. CCC puts every session on one local board and tells you which one needs you. Not affiliated with Anthropic. Start the next while Claude builds the first. A real share card from one of the maintainer's machines.
Use when the user asks to open/show the CCC throughput (token) dashboard, or asks how many tokens they've used — overall/so far,…
Use when you want a marketing-copy A/B — spawns two writer sibling sessions via CCC that draft the SAME message architecture in…
Use when a bug has already survived at least one debugging attempt and you have 2-3 genuinely distinct root-cause hypotheses —…
Spawn, inject into, and ask questions of persistent sibling sessions via Claude Command Center (CCC).
Use to catch documentation that has silently gone stale — it spawns ONE fresh sibling session via CCC that extracts every…
Use for docs QA — it spawns ONE fresh sibling session via CCC that has never seen the feature, has it follow the README /…