X Publisher
Prepare platform-native X posts from eunomia.dev content. A request to publish
or a queue item marked 排队 authorizes the final post; do not ask again at
the last button. Stop only when the task is limited to a draft or preview.
Inputs
- Source Markdown path, project, repo URL, paper, or topic.
- Intended format when specified: single post, thread, quote post, or X Article.
- Optional image/video, target link, posting account, or follow-up plan.
If the source path is missing, inspect .github/publisher/posts_queue.txt,
.github/publisher/media/not-published.md, recent docs/blog/posts/, and
relevant GitHub repos before asking the user.
Platform Entry Points
Use a browser surface with the logged-in session when UI work is required.
Never bypass authentication with search results or alternate sources.
References
Load references/platform-preferences.md when choosing X-native framing,
thread shape, link/media treatment, promotion balance, or reply/mention
follow-up. Do not load broad strategy drafts for routine posting unless the user
asks for campaign or content-platform planning.
Browser-Only Platform Boundary
Do not directly access X APIs, internal endpoints, or background HTTP
interfaces. All drafting, QA, screenshots, and ledger evidence must come from
normal browser interactions.
Draft Preparation
- Read the source and extract the core claim, evidence, link, media, and
follow-up target.
- Choose the format:
- single post for the default long-form share case: the published article
link plus one or two sentences stating its core problem, tension, or result
- thread only when the user explicitly asks for a multi-step explanation
- X Article only when the user explicitly asks for long-form on X
- For an X Article that syndicates an existing long-form source, preserve the
source title exactly and keep the body substantively unchanged. Only make
mechanical rendering fixes and set platform metadata. A rewrite requires an
explicit request for that article.
- Do not add a separate interpretation or summary to a long-form share. Let
one or two useful hook sentences earn the click, then provide the link.
- Prefer one specific source link: GitHub, eunomia.dev, paper, docs, or demo.
- Prepare media alt text when the UI allows it.
Draft Archive
Before opening the X composer, write or update the X draft under
draft/media/YYYY-MM-DD/<source-slug>/x.md using the local date. Include the
full paste-ready post or thread, character counts, primary link, media/alt text,
account target when known, and QA state.
Browser QA
- text is not truncated unexpectedly and the thread order is correct
- link cards resolve to the intended URL
- uploaded media renders and has useful alt text where supported
- hashtags are absent or minimal and genuinely useful
- no confidential or unreleased claims are present
- the final action matches the task: published when authorized, untouched for a draft-only task
Follow-Up
After a confirmed publish, capture the post URL, then check notifications or
search results only when the user asks or when follow-up was part of the task.
Prioritize substantive replies to technical questions, corrections, and
implementation interest. Do not send DMs, like, repost, follow, or quote-post
without explicit user instruction.
Ledger Update
After confirmed publish, update .github/publisher/media/published.md with
source path, title or hook, X URL, date, link target, media used, and follow-up
notes. Remove or update the matching row in
.github/publisher/media/not-published.md.
1---2name: x-publisher3description: Prepare or publish eunomia.dev public content for X/Twitter posts, threads, and X Articles. Use when asked to draft, adapt, paste, publish, QA, or record X posts for blog, tutorial, project, paper, release, or GitHub updates. Covers concise platform-native copy, media and link checks, publication authorization, reply/mention/DM follow-up, and media ledger updates.4---56# X Publisher78Prepare platform-native X posts from eunomia.dev content. A request to publish9or a queue item marked `排队` authorizes the final post; do not ask again at10the last button. Stop only when the task is limited to a draft or preview.1112## Inputs1314- Source Markdown path, project, repo URL, paper, or topic.15- Intended format when specified: single post, thread, quote post, or X Article.16- Optional image/video, target link, posting account, or follow-up plan.1718If the source path is missing, inspect `.github/publisher/posts_queue.txt`,19`.github/publisher/media/not-published.md`, recent `docs/blog/posts/`, and20relevant GitHub repos before asking the user.2122## Platform Entry Points2324- Post composer: <https://x.com/compose/post>25- Article composer: <https://x.com/compose/articles>26- Home/feed: <https://x.com/home>27- Notifications: <https://x.com/notifications>28- Search: <https://x.com/search>2930Use a browser surface with the logged-in session when UI work is required.31Never bypass authentication with search results or alternate sources.3233## References3435Load `references/platform-preferences.md` when choosing X-native framing,36thread shape, link/media treatment, promotion balance, or reply/mention37follow-up. Do not load broad strategy drafts for routine posting unless the user38asks for campaign or content-platform planning.3940## Browser-Only Platform Boundary4142Do not directly access X APIs, internal endpoints, or background HTTP43interfaces. All drafting, QA, screenshots, and ledger evidence must come from44normal browser interactions.4546## Draft Preparation47481. Read the source and extract the core claim, evidence, link, media, and49 follow-up target.502. Choose the format:51 - single post for the default long-form share case: the published article52 link plus one or two sentences stating its core problem, tension, or result53 - thread only when the user explicitly asks for a multi-step explanation54 - X Article only when the user explicitly asks for long-form on X553. For an X Article that syndicates an existing long-form source, preserve the56 source title exactly and keep the body substantively unchanged. Only make57 mechanical rendering fixes and set platform metadata. A rewrite requires an58 explicit request for that article.594. Do not add a separate interpretation or summary to a long-form share. Let60 one or two useful hook sentences earn the click, then provide the link.615. Prefer one specific source link: GitHub, eunomia.dev, paper, docs, or demo.626. Prepare media alt text when the UI allows it.6364## Draft Archive6566Before opening the X composer, write or update the X draft under67`draft/media/YYYY-MM-DD/<source-slug>/x.md` using the local date. Include the68full paste-ready post or thread, character counts, primary link, media/alt text,69account target when known, and QA state.7071## Browser QA727374- text is not truncated unexpectedly and the thread order is correct75- link cards resolve to the intended URL76- uploaded media renders and has useful alt text where supported77- hashtags are absent or minimal and genuinely useful78- no confidential or unreleased claims are present79- the final action matches the task: published when authorized, untouched for a draft-only task8081## Follow-Up8283After a confirmed publish, capture the post URL, then check notifications or84search results only when the user asks or when follow-up was part of the task.85Prioritize substantive replies to technical questions, corrections, and86implementation interest. Do not send DMs, like, repost, follow, or quote-post87without explicit user instruction.8889## Ledger Update9091After confirmed publish, update `.github/publisher/media/published.md` with92source path, title or hook, X URL, date, link target, media used, and follow-up93notes. Remove or update the matching row in94`.github/publisher/media/not-published.md`.