platform-specs-and-validation — Claude Code skill: setup
Validates social media post payloads before publishing via WoopSocial. It prevents rejected multi-platform broadcasts by catching field and media errors.
npx skills add social-media-skills/skills --skill platform-specs-and-validation -a claude-codeWhat platform-specs-and-validation does
This skill enforces OpenAPI schemas and media constraints for publishing across networks via WoopSocial. It hydrates required fields such as YouTube privacy, TikTok parameters, and Pinterest boards, fetching account details from GET /social-accounts/{id}/platform-inputs. It also blocks invalid payload combinations, such as mixed photos and videos for Facebook or missing media on Instagram Stories.
The workflow follows the CHECK framework and calls POST /posts/validate before triggering atomic creation. Because WoopSocial lacks an update endpoint, an error on a single social target rejects the whole batch. Changing a published post requires deleting and recreating it while it remains in NOT_STARTED status. Compliance flags like madeForKids or isBrandedContent are strictly human choices and are never toggled automatically to silence validation errors.
What it helps with
- verify social post payloads against WoopSocial API rules before publishing
- map target-specific required fields for multi-network broadcasts
- catch media mismatch errors for Pinterest, Facebook, TikTok, and Instagram
- resolve payload validation failures without falsifying compliance disclosures
Example prompts for the agent
- Run
POST /posts/validateon this draft for TikTok and Pinterest - Check the required fields for YouTube and Instagram before publishing
- Fetch
platform-inputsfor the Pinterest board and validate media constraints
How to install platform-specs-and-validation
1Skills CLI (Vercel)
npx skills add social-media-skills/skills --skill platform-specs-and-validation -a claude-code2Manually: put the files in place
~/.claude/skills/platform-specs-and-validation/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/platform-specs-and-validation/
1Skills CLI (Vercel)
npx skills add social-media-skills/skills --skill platform-specs-and-validation -a codex2Manually: put the files in place
.agents/skills/platform-specs-and-validation/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add social-media-skills/skills --skill platform-specs-and-validation -a cursor2Manually: put the files in place
.cursor/skills/platform-specs-and-validation/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install social-media-skills/skills platform-specs-and-validation2Manually: put the files in place
.github/skills/platform-specs-and-validation/SKILL.md1Skills CLI (Vercel)
npx skills add social-media-skills/skills --skill platform-specs-and-validation -a gemini-cli2Platform CLI
gemini skills install https://github.com/social-media-skills/skills --path skills/platform-specs-and-validationManually: put the files in place
.devin/skills/platform-specs-and-validation/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add social-media-skills/skills --skill platform-specs-and-validation -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about platform-specs-and-validation
How do I install platform-specs-and-validation in Claude Code?
Run npx skills add social-media-skills/skills --skill platform-specs-and-validation -a claude-code in your terminal. This creates the skill file at ~/.claude/skills/platform-specs-and-validation/SKILL.md.
What does the platform-specs-and-validation skill do?
It inspects multi-platform post payloads and runs POST /posts/validate before sending them to WoopSocial. It ensures target-specific fields, media rules, and text limits match the API spec.
Can this skill edit a post that has already been published?
No. WoopSocial does not provide an update endpoint, so any modification requires deleting and recreating the post while its status is NOT_STARTED.
Source text
SKILL.md · MIT
---
name: platform-specs-and-validation
description: >-
Platform specs and publish validation — per-platform requirements and the validate-before-publish
step for multi-platform fan-out. Use when fanning a post out to multiple platforms, when a post is
getting rejected, when mapping per-platform postType/required fields, or to run the
validate-before-publish step. Encodes the per-platform postType enums, required-field matrices,
and media rules from the OpenAPI spec, and runs POST /posts/validate so a post lands correctly on
every target. Uses the CHECK framework. The keystone the per-platform format skills point to.
WoopSocial validates + publishes atomically and has no update endpoint; the agent maps fields and
fixes spec violations, but human-judgment calls (disclosure truthfulness, privacy intent) stay
with the person; metrics never fabricated. Distinct from the per-platform format skills (one
platform's content) and scheduling-and-queue (timing).
version: 1.0.0
---
# platform-specs-and-validation
The **cross-cutting publish-readiness skill** — make a post correct on **every** target (required fields,
media rules, limits) and run the **validate-before-publish** loop. It's the **keystone the format skills
point to.** The agent **maps fields + fixes spec violations + validates**; **WoopSocial validates and
publishes**; **content craft and human-judgment calls stay elsewhere.**
## The POV: publish-ready, atomically, the first time
WoopSocial **validates and publishes atomically** — `POST /posts` checks every target together, and **if
any one fails, nothing is created.** There's **no update endpoint**, so a post that publishes wrong can't
be patched (edit = **delete + recreate**). That makes **getting every target's fields right *before*
publish** the whole game: the right `postType`, the required per-platform fields, the media rules, and
account-specific values (Pinterest board, TikTok privacy) resolved from `platform-inputs` — then
`POST /posts/validate` to catch what's left. This skill is where the format skills come to **make sure it
will actually go through.**
## The framework: CHECK
(Depth: `references/the-check-framework.md`.)
- **C — Collect the targets + project:** list the social accounts; confirm they're in the **same project**;
note each platform's field set.
- **H — Hydrate per-platform required fields:** fill each target's required fields (FB/IG `postType`;
TikTok's eight; YouTube `title`+`privacy`; Pinterest `pinterestBoardId`); **resolve account values** from
`GET /social-accounts/{id}/platform-inputs`.
- **E — Enforce media + content rules:** FB no image+video mix; IG Stories need media; **Pinterest single
media**; TikTok PHOTO/VIDEO field applicability; use `contentOverride` or separate posts where fan-out
conflicts; respect text limits.
- **C — Confirm truthful declarations:** `isBrandedContent`/`isYourBrand`/`madeForKids` are **truthful
declarations, not validation knobs** — never flip them to clear an error; these stay with the person.
- **K — Knock it through validation:** `POST /posts/validate` → fix all errors, review warnings → create
(atomic). **No update** → delete + recreate (only while `NOT_STARTED`).
## The spec (ground truth — verify-quarterly)
Per-platform postType enums + required-field matrices + media rules + the platform-inputs discovery
endpoint + lifecycle facts (atomic create, no update, delivery status, schedule types):
`references/woopsocial-publish-spec.md`. The validate-then-create loop, the full `ValidationField` code
table + `CreatePostErrorCode` list + worked examples: `references/validation-reference-and-recipes.md`.
(The live OpenAPI spec / `tools/integrations/woopsocial.md` are the source of truth; enums and limits move.)
## Honest scope (never violate)
- **This skill ensures publish-READINESS** (fields/media/spec correct + validated) — it **doesn't write or
improve the creative** (the format/content skills do) and **can't guarantee performance.**
- **WoopSocial validates + publishes atomically; one failing target fails the whole post.** **No update** →
delete + recreate (only while `NOT_STARTED`).
- **Disclosure/compliance declarations stay truthful** (`isBrandedContent`/`isYourBrand`/`madeForKids`) —
**never flipped to pass validation**; privacy intent + disclosure truthfulness stay with the **person**.
- **Resolve account values** (board, privacy) from `platform-inputs` — don't guess. **Never fabricate
metrics** — native analytics only. (Scope, distinctions + connections: `references/scope-and-connections.md`.)
## Distinct from its siblings (route correctly)
**platform-specs-and-validation (this)** = the cross-platform field/media/validation layer that makes a post
publish-ready on every target · **the per-platform format skills** (`tiktok-photo-mode`,
`tiktok-video-publishing`, `threads-post`, `youtube-publishing-and-metadata`, `carousel-writer`, …) =
**craft one platform's content** and point here for validation · **scheduling-and-queue** = timing/cadence,
not correctness · `tools/integrations/woopsocial.md` = the shared integration guide this applies post-level.
## Where this connects
Receives from: every **format skill** (crafted content + chosen postType) and **content-calendar** (the
plan). Resolves with: `GET /social-accounts/{id}/platform-inputs` (boards, privacy options) + the
**integration guide**. Hands to: **scheduling-and-queue → WoopSocial** (`POST /posts` after `isValid`),
then **webhooks/delivery status** for confirmation. Supports: **cross-platform-repurposing** (per-target
`contentOverride`), **analytics-and-reporting** (native delivery readout), **experimentation** (valid
variants). Content craft + truthful declarations stay with the format skills + the person.
## Definition of done
Every target collected and confirmed in one project; each target's required fields hydrated (postType /
privacy / board / disclosure / title as applicable) with account-specific values resolved from
platform-inputs; media + content rules enforced (no FB mix, IG-Story media, single Pinterest media, TikTok
field applicability) with contentOverride or separate posts where fan-out conflicts; disclosure/madeForKids
declarations left truthful (never flipped to pass); `POST /posts/validate` run with all errors resolved and
warnings reviewed before an atomic create; edits handled via delete+recreate, nothing fabricated and no
promised performance; correctly distinguished from the per-platform format skills and scheduling-and-queue.
© social-media-skills · MIT · social-media-skills/skills