skills/x-republish/SKILL.md
Republish an already-published X post into one or more destinations managed in PostFlow by extracting the source post text, capturing the quoted post cleanly, adapting the copy when needed, and creating or scheduling the publication. Use when a user shares an X post URL and wants to reuse that content on LinkedIn or any other PostFlow-managed account without rebuilding the post manually.
npx skillsauth add antoniolg/agent-kit x-republishInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill when the source of truth is an X post that has already been published and now needs to be reused elsewhere.
The default flow is:
This skill is not for writing net-new social posts from scratch. It is for operational reuse of content that already exists on X.
Do not reinvent what is already validated.
The author has already chosen:
Reuse that work. Only adapt what is necessary to make the post native to the target platform and valid for PostFlow. The default assumption is stronger than that: if the X post already works, reuse the exact same text.
Expect these inputs whenever possible:
If the user only gives the URL, default to preparing a draft and ask for targets only if they are required to continue.
Preferred source order:
bird read --json-fullbird is unavailable or incompleteOpen the source post and capture:
When using bird --json-full, prefer fields from the raw payload when they are available:
Preserve:
Do not preserve:
If the post quotes another X post, create a clean visual asset for that quoted post.
Treat this as a strict rendering task, not as an open-ended design exercise.
Preferred order:
bird --json-full metadataThe final asset should:
Keep this element priority:
By default, do not include:
The resulting image should:
Default canvas preference for social redistribution:
1:1 canvas unless the user requests another formatIf rendering locally from metadata:
assets/x-logo.svg for the platform mark instead of a plain text XApply these rules in order:
Prefer fidelity over decoration:
Do not:
A template can be used as a baseline for spacing and structure, but it is not the source of truth.
The source of truth is:
If the template and the rules conflict, follow the rules.
Before showing the image to the user, check:
If the quoted post contains media that is essential to the point, preserve it in the capture.
If there is no quoted post, the skill can still republish the copy without an image, but should not invent a fake quote card.
Start from the original X text.
Default rule:
Adapt only where needed, and only if the user asked for it or the unchanged text would fail for the requested destination:
If the environment includes a house style or copy guardrails skill, use it before finalizing the text.
Read references/platform-adaptation.md when:
Use postflow-cli as the default publishing path.
Before creating anything:
Before publishing to any social network:
If the same base text goes to multiple destinations, allow small per-platform adjustments instead of forcing one identical payload everywhere.
Use:
draft when the user wants to review firstschedule when a time is providedpublish-now only when explicitly requestedAlways validate the payload before scheduling or publishing when that is practical in the current run.
When the publication step is already finalized and you have:
prefer using scripts/postflow_publish.py instead of rebuilding the CLI sequence manually.
Suggested flow:
postflow --json accounts list (or go run ./cmd/postflow --json accounts list)Example:
python scripts/postflow_publish.py \
--postflow-dir /path/to/postflow \
--text-file /tmp/source-post.txt \
--image /tmp/quoted-post-card.png \
--account-id acc_linkedin \
--account-id acc_instagram \
--mode publish-now
Create the post in PostFlow with:
If the publication spans multiple accounts, keep a clear mapping of:
The run should end with a concise operational summary:
If something blocks the run, say exactly which part failed:
bird --json-full already provides the metadata needed for a local render.A good run leaves:
tools
Use the private LearnWorlds CLI to inspect DevExpert Academy users, find students by email, list their enrolled courses/products, look up products, and perform safe enrollment workflows. Trigger when Antonio asks what courses a student has in LearnWorlds or academia.devexpert.io, whether someone belongs to the current or next AI Expert edition, or to use the LearnWorlds/academy CLI.
tools
Orchestrates Android development tasks including project creation, deployment, SDK management, and environment diagnostics using the `android` command-line tool.
development
Elite website image-to-code skill for Codex. For visually important web tasks, it must first generate the design image(s) itself, deeply analyze them, then implement the website to match them as closely as possible. In Codex, it must prefer large, readable, section-specific images instead of tiny compressed boards, generate fresh standalone images for sections or detail views instead of cropping old ones, avoid lazy under-generation, avoid cards-inside-cards-inside-cards UI, and keep the hero clean, spacious, readable, and visible on a small laptop.
development
Create, repair, validate, preview, and package Codex-compatible animated pet spritesheets from character art, screenshots, generated images, or visual references. Use when a user wants to hatch a Codex pet, create a custom animated pet, or build a built-in pet asset with an 8x9 atlas, transparent unused cells, row-by-row animation prompts, QA contact sheets, preview videos, and pet.json packaging. This skill composes the installed $imagegen system skill for visual generation and uses bundled scripts for deterministic spritesheet assembly.