← PostZenCONTENT HISTORY
WHAT CHANGED
Update to PostZen
Snapshot Nov 4, 2026 · 00:12 UTC · version 1.0.4
Collection source: downloaded plugin package.
First saved snapshot
No earlier snapshot is available to establish a change.
Save PostZen and check future changes in Following.
Up to 10 plugins free · no card required.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"description": "Create, schedule, or queue a social media post with PostZen. Use when the user wants to post, schedule, cross-post, or draft content for X (Twitter), Instagram, TikTok, LinkedIn, Facebook, YouTube, Threads, Pinterest, Bluesky, or Telegram.",
"included_files": [],
"name": "post",
"skill_md_contents": "---\nname: post\ndescription: Create, schedule, or queue a social media post with PostZen. Use when the user wants to post, schedule, cross-post, or draft content for X (Twitter), Instagram, TikTok, LinkedIn, Facebook, YouTube, Threads, Pinterest, Bluesky, or Telegram.\n---\n\n# Post with PostZen\n\nPublish or schedule the user's content using the PostZen MCP tools. The user's request follows: \"$ARGUMENTS\"\n\n## Workflow\n\n1. **Drafts without targets.** If the user only requests a draft and names no target accounts, call `createPost` with `isDraft: true`, title and content; no account selection is required.\n2. **Resolve accounts for targeted posts.** Call `listAccounts` to get connected accounts. Each account has an `_id` (the `accountId` you must reference), a `platform`, and a `username`. If the user named platforms, match them; if ambiguous (multiple accounts on one platform), ask which. If a requested platform has no connected account, tell the user and offer to connect it (see the connect skill / `createConnectUrl`).\n2. **Adapt the content per platform.** Don't blast identical text everywhere unless asked:\n - **X**: 280 chars for standard accounts — trim or thread-style tighten. Hashtags sparingly.\n - **LinkedIn**: longer-form is fine; professional tone; line breaks improve readability.\n - **Instagram / TikTok / YouTube / Pinterest**: media is required — a text-only post cannot publish there. If the user gave no media, either drop the platform (confirm first) or save as draft.\n - **Pinterest**: pins need a board; the account's default board is used unless the user picks one (`getPinterestBoards` / `listPinterestBoardsForSelection`).\n - **Bluesky**: 300 chars.\n - Platform value strings: `x` (alias `twitter`), `instagram`, `tiktok`, `linkedin`, `facebook`, `youtube`, `threads`, `pinterest`, `bluesky`, `telegram`.\n3. **Handle media.** For local files, call `createMediaPresign`, upload the file with an HTTP `PUT` to the returned `uploadUrl`, then reference the returned `publicUrl` in the post's `mediaItems`. Already-hosted public URLs can be referenced directly.\n4. **Choose the timing — exactly one of:**\n - `publishNow: true` — publishes immediately.\n - `scheduledFor` — ISO-8601 UTC, at least 60 seconds in the future. If the user gave a local time, convert to UTC and confirm the conversion.\n - `isDraft: true` — saves without publishing.\n - Queue: if the user says \"add to queue\" or gives no time preference for a scheduled post, pass `queuedFromProfile` (the profile id) on `createPost` instead of `scheduledFor` — PostZen claims the next free slot atomically and returns it. Never fetch `getNextQueueSlot` and pass its time as `scheduledFor` (the slot isn't reserved, so it can race); use it only to tell the user when their post would go out. `getBestTimeToPost` suggests data-driven times for non-queue scheduling.\n5. **Confirm before publishing.** Show the final per-platform content and timing and get an explicit yes before calling `createPost` with `publishNow` or a near-term `scheduledFor`. Drafts don't need confirmation.\n6. **Create the post** with `createPost`: `content`, `platforms: [{ platform, accountId }, ...]`, optional `mediaItems`, and the timing field. Report back the returned post `_id`, actual per-platform statuses, and scheduled time. Never equate pending or failed statuses with successful publishing. Pass a user-supplied request id as `x-request-id`. Reuse it for an explicitly requested replay of the same creation, and report the original ID from `existingPost` on replay.\n\n## Cautions\n\n- Publishing is a real, outward-facing action. Never call `createPost` with `publishNow: true` without the user's explicit confirmation in this conversation.\n- Never invent `accountId` values — always take them from `listAccounts`.\n- If a `createPost` call fails, report the actual error; don't retry blindly (retries can double-post if the first attempt landed).\n"
}SHA-256 of public snapshot: b62eaf65c875d85a76a9f9601f64b5819659a915c3ff67cf6f7ac8b190c386df