skills/hn-to-x-poster/SKILL.md
Use this when the user wants to review Hacker News top 30 stories, select software or AI related items, and automatically publish a Chinese thread of at least 3 posts to x.com or Twitter from an already logged-in browser session.
npx skillsauth add hexbee/hello-skills hn-to-x-posterInstall 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 for a browser-driven workflow that reads the current Hacker News front page, filters the top 30 stories for software or AI relevance, compresses the signal into a Chinese thread, and publishes it to x.com.
This skill is for direct execution, not just drafting. Default behavior is to post automatically if x.com is already logged in. If posting is blocked, fall back to a ready-to-send Chinese draft or thread and explain the blocker briefly.
Use this skill when the user asks for any combination of:
x.com or TwitterDo not use this skill when:
Use chrome-devtools MCP for the browser workflow.
Do not rely on API access to Hacker News or X unless the user explicitly changes the method.
https://news.ycombinator.com/https://x.com/If X is not logged in, stop automatic posting and return a Chinese draft the user can publish manually.
Do not open every article by default. This skill is meant to summarize the HN front-page signal, not to perform full article research.
Keep items that are clearly about:
Usually drop items that are mainly:
If an item is borderline, prefer keeping it only when a technical audience would plausibly care.
Decide the thread structure before writing.
If the user explicitly specifies the number of posts in the thread:
If the user does not specify the number of posts:
3 poststotal -> points -> takeaway structure as the baseline shape4+ posts whenever that makes the thread clearerDefault thread planning heuristics:
3 posts: the default minimum when the user did not specify a count4 posts: use when signals naturally separate into multiple clusters, such as AI, security/systems, languages/tools, and conclusion5+ posts: acceptable when needed to keep each post readable and specific1 or 2 posts: only use when the user explicitly asks for that countWhen writing a thread, give each post a distinct job. Typical default structure:
If using more than 3 posts, keep the same principle:
Write the final Chinese content as a thread that:
Default style:
If writing a thread:
1/, 2/, 3/ when that improves clarityBefore posting, make sure each post is short enough for a standard X post.
Length rules to enforce:
280 characters for normal users1-2 characters of the counter23 characters even when it looks shorterIf it is too long:
For threads:
Use the homepage composer with keyboard-first actions.
For a single post:
https://x.com/homen first to open the new post composern does not open the composer, fall back to clicking the homepage Post buttonCtrl + Enter to publishCtrl + Enter does not publish, fall back to clicking PostFor a thread:
https://x.com/homen first to open the new post composern does not open the composer, fall back to clicking the homepage Post buttontype_textAdd post button to create the next composer celltype_textCtrl + Enter once to publish the entire threadCtrl + Enter does not publish, fall back to clicking the final Post all or equivalent publish buttonAfter posting:
Do not claim success unless the post or thread is visibly present in the browser.
Do not attempt login on the user's behalf unless they explicitly ask.
Return:
If text appears in the textbox but the post button stays disabled:
If the text length is obviously short enough but X claims it is over limit or otherwise shows a broken counter:
https://x.com/homen again to reopen a fresh composer when possibleRestructure, shorten, and retry. Do not stop at the first over-limit failure.
If using a thread:
Return:
When successful, give a short result that includes:
When blocked, give:
n as the preferred way to open itCtrl + Enter as the standard publish action, with button click only as fallback3 posts and expand further when needed to explain the signal properlytesting
Diagnose and fix Docker image pull failures on macOS with OrbStack, especially Docker Hub EOF/TLS/manifest errors caused by system proxies, Clash/CyberClash/Mihomo/Surge-style TUN mode, fake-ip DNS such as 198.18.0.x, or unstable registry access. Use when `docker pull` or `docker manifest inspect` fails with EOF, SSL_ERROR_SYSCALL, failed to fetch anonymous token, failed to resolve reference, failed to copy, or registry-1.docker.io/auth.docker.io connectivity confusion.
development
Generate and revise job resumes from raw notes, existing resumes, career histories, or profile snippets. Use when Codex needs to create, redesign, tighten, or review a resume/CV, especially for Chinese or English A4 resumes, PDF/HTML output, first-screen hiring signal, skill ordering, pagination balance, header/contact layout, or reframing an engineering background for AI-focused roles.
development
Convert a public webpage URL into Markdown and save it as a reusable `.md` file with the bundled script. Prefer `https://r.jina.ai/<url>` first, and only fallback to `https://markdown.new/` if `r.jina.ai` is unavailable. Use this whenever the user wants to turn a public webpage, article, documentation page, blog post, release note, or reference URL into Markdown for reading, archiving, summarizing, extraction, RAG prep, or downstream agent reuse, even if they do not explicitly mention markdown or saving a file.
tools
Design agent-usable SaaS tool systems using six reusable tool shapes (Search, Summarize, Draft, Update, Notify, Approve) plus connectors and policy guardrails. Use when turning SaaS features into reliable agent actions with clear contracts, permissions, audit trails, and approval gates.