ops-socialslisted
Install: claude install-skill Lifecycle-Innovations-Limited/claude-ops
# /ops-socials — public social channels router
Three reading/posting surfaces, **multiple publishing identities**. Don't cross the streams — between surfaces *or* between identities.
## Resolve the IDENTITY before anything else (READ FIRST)
This router serves two **strictly separated** classes of identity. Posting to the wrong one is the cardinal failure mode of this skill.
1. **Personal / founder identity** — the owner's own artist / entrepreneur brand. Publishes via **Typefully** (`$SOCIAL_SET_ID`, the global Typefully default). This identity is registered at `$PREFS_PATH/preferences.json` → `marketing.social_identities.personal.*`.
2. **Project brands** — each marketing project (e.g. a product) is its own brand with its own channels. Each is registered at `marketing.projects.<project>.social` with a `social.engine`.
**Resolution algorithm — run at the start of every flow:**
```
intent is owner autopilot status (`healify`, "show me the autopilot status", `/ops-socials healify`, owner-autopilot read-out)?
├─ YES → skip project/personal identity resolution; run the Owner autopilot status recipe below (read-only). `healify` here is NOT a project name.
└─ NO → continue
intent mentions / implies a named project (project arg, product name, "post for <project>")?
├─ YES → read marketing.projects.<project>.social.engine from $PREFS_PATH/preferences.json
│ ├─ engine.primary == "upload-post" → publish via mcp__upload-post__* with engine.upload_post.user.
│ │