[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-skill-wshuyi-x-article-publisher-en":3,"guides-for-wshuyi-x-article-publisher":336,"similar-k17dyarxtsb7wgkv37d9djsyh586mjfp-en":337},{"_creationTime":4,"_id":5,"children":6,"community":7,"display":9,"evaluation":15,"identity":249,"isFallback":235,"parentExtension":255,"providers":283,"relations":287,"repo":288,"tags":333,"workflow":334},1778699045700.7974,"k17dyarxtsb7wgkv37d9djsyh586mjfp",[],{"reviewCount":8},0,{"description":10,"installMethods":11,"name":13,"sourceUrl":14},"Publish Markdown articles to X (Twitter) Articles editor with proper formatting. Use when user wants to publish a Markdown file/URL to X Articles, or mentions \"publish to X\", \"post article to Twitter\", \"X article\", or wants help with X Premium article publishing. Handles cover image upload and converts Markdown to rich text automatically.\n",{"claudeCode":12},"wshuyi/x-article-publisher-skill","X Article Publisher","https://github.com/wshuyi/x-article-publisher-skill",{"_creationTime":16,"_id":17,"extensionId":5,"locale":18,"result":19,"trustSignals":233,"workflow":247},1778699085137.431,"kn7bsa0g9yfacy6bwqrpfb7tn186mykz","en",{"checks":20,"evaluatedAt":193,"extensionSummary":194,"features":195,"nonGoals":202,"practices":206,"prerequisites":207,"promptVersionExtension":212,"promptVersionScoring":213,"purpose":214,"rationale":215,"score":216,"summary":217,"tags":218,"targetMarket":226,"tier":227,"useCases":228},[21,26,29,32,36,39,43,46,50,54,58,61,64,67,71,75,78,81,84,87,91,95,100,103,107,111,115,119,122,126,129,132,135,138,141,144,148,151,155,159,163,166,169,172,175,178,181,184,185,186,187,189,190,191,192],{"category":22,"check":23,"severity":24,"summary":25},"Practical Utility","Problem relevance","pass","The description clearly states the problem of tedious Markdown to X Article publishing and mentions specific user intents and keywords.",{"category":22,"check":27,"severity":24,"summary":28},"Unique selling proposition","The skill offers significant value over basic prompting by automating complex formatting, image handling, and precise positioning, going beyond a thin wrapper.",{"category":22,"check":30,"severity":24,"summary":31},"Production readiness","The skill appears complete, covering the end-to-end workflow from parsing Markdown to saving a draft, with clear steps and error handling.",{"category":33,"check":34,"severity":24,"summary":35},"Scope","Single responsibility principle","The skill focuses specifically on publishing Markdown articles to X Articles, with no unrelated adjacent capabilities.",{"category":33,"check":37,"severity":24,"summary":38},"Description quality","The displayed description accurately reflects the skill's functionality, including cover image upload and rich text conversion.",{"category":40,"check":41,"severity":24,"summary":42},"Invocation","Precise Purpose","The purpose is precise, naming the artifact (Markdown articles) and the task (publish to X Articles editor), with clear positive and negative triggers.",{"category":40,"check":44,"severity":24,"summary":45},"Concise Frontmatter","The frontmatter is concise and effectively summarizes the core capability with relevant trigger phrases.",{"category":47,"check":48,"severity":24,"summary":49},"Documentation","Concise Body","The SKILL.md body is well-structured, under 500 lines, and delegates deeper material to scripts and guides.",{"category":51,"check":52,"severity":24,"summary":53},"Context","Progressive Disclosure","The SKILL.md outlines the workflow and links to scripts for detailed implementation, adhering to progressive disclosure.",{"category":51,"check":55,"severity":56,"summary":57},"Forked exploration","not_applicable","The skill is a direct execution workflow and does not involve deep exploration or code review, so forked context is not applicable.",{"category":22,"check":59,"severity":24,"summary":60},"Usage examples","The README provides clear input/output examples for Markdown parsing and usage scenarios.",{"category":22,"check":62,"severity":24,"summary":63},"Edge cases","The skill documents edge cases like image path resolution, browser errors, and insertion order, with recovery steps.",{"category":40,"check":65,"severity":56,"summary":66},"Tool Fallback","The skill relies on Claude-internal tools and local Python scripts, not an external MCP, so tool fallback is not applicable.",{"category":68,"check":69,"severity":24,"summary":70},"Portability","Stack assumptions","The skill clearly declares its stack assumptions including Playwright MCP, Python 3.9+, and OS requirements in SKILL.md and README.",{"category":72,"check":73,"severity":24,"summary":74},"Safety","Halt on unexpected state","The workflow specifies preparing data before browser operations and handling errors, implying a halt on unexpected states.",{"category":68,"check":76,"severity":24,"summary":77},"Cross-skill coupling","The skill is self-contained and does not implicitly rely on other skills; cross-references are optional documentation.",{"category":33,"check":79,"severity":24,"summary":80},"Tool surface size","The skill primarily uses local Python scripts and Claude MCP tools, with a focused set of operations.",{"category":40,"check":82,"severity":24,"summary":83},"Overlapping near-synonym tools","The skill uses distinct Python scripts and browser actions, without redundant near-synonym tools.",{"category":47,"check":85,"severity":24,"summary":86},"Phantom features","All advertised features, such as rich text conversion, block-index positioning, and divider support, have corresponding implementations.",{"category":88,"check":89,"severity":24,"summary":90},"Install","Installation instruction","The README provides clear installation instructions via Git clone and mentions marketplace installation, with usage examples.",{"category":92,"check":93,"severity":24,"summary":94},"Errors","Actionable error messages","The SKILL.md and script documentation detail specific error scenarios (MCP connection, browser errors, image path issues) and provide remediation steps.",{"category":96,"check":97,"severity":98,"summary":99},"Execution","Pinned dependencies","info","Python dependencies are listed, but not explicitly pinned with versions or a lockfile within the bundle, and script interpreters are declared.",{"category":33,"check":101,"severity":56,"summary":102},"Dry-run preview","The skill's primary action is saving a draft, not performing destructive operations that would require a dry-run.",{"category":104,"check":105,"severity":56,"summary":106},"Protocol","Idempotent retry & timeouts","The skill operates locally and via browser automation, not on remote mutating operations, making idempotency and timeouts not directly applicable.",{"category":108,"check":109,"severity":56,"summary":110},"Compliance","Telemetry opt-in","The skill does not appear to emit any telemetry.",{"category":112,"check":113,"severity":24,"summary":114},"License","License usability","The skill is distributed under the MIT license, as indicated by the LICENSE file.",{"category":116,"check":117,"severity":24,"summary":118},"Maintenance","Commit recency","The last commit was on January 25, 2026, which is recent.",{"category":116,"check":120,"severity":98,"summary":121},"Dependency Management","Python dependencies are listed in the documentation but lack explicit version pinning or vulnerability scanning mechanisms within the skill's bundle.",{"category":123,"check":124,"severity":56,"summary":125},"Security","Secret Management","The skill does not appear to handle or require any secrets.",{"category":123,"check":127,"severity":24,"summary":128},"Injection","The scripts process Markdown and interact with browser elements, but do not appear to load or execute arbitrary third-party code.",{"category":123,"check":130,"severity":24,"summary":131},"Transitive Supply-Chain Grenades","The skill relies on bundled Python scripts and local execution, with no runtime fetching of code or instructions from remote URLs.",{"category":123,"check":133,"severity":24,"summary":134},"Sandbox Isolation","The scripts operate on local files and interact with the browser via Playwright, with no indication of attempting to modify files outside the project folder.",{"category":123,"check":136,"severity":24,"summary":137},"Sandbox escape primitives","No detached process spawns or retry loops around denied tool calls were found in the provided script snippets.",{"category":123,"check":139,"severity":24,"summary":140},"Data Exfiltration","The skill focuses on local processing and browser automation for publishing, with no outbound calls designed to exfiltrate data.",{"category":123,"check":142,"severity":24,"summary":143},"Hidden Text Tricks","Bundled content appears free of hidden steering tricks, with clean printable ASCII and expected Unicode.",{"category":145,"check":146,"severity":24,"summary":147},"Hooks","Opaque code execution","The Python scripts are provided in plain, readable source code, with no obfuscation detected.",{"category":68,"check":149,"severity":24,"summary":150},"Structural Assumption","The script `parse_markdown.py` searches common user directories for missing images, but this is documented and not a structural assumption about the user's project.",{"category":152,"check":153,"severity":24,"summary":154},"Trust","Issues Attention","There are 0 open and 0 closed issues in the last 90 days, indicating either no recent issues or a very well-maintained project.",{"category":156,"check":157,"severity":24,"summary":158},"Versioning","Release Management","The skill has a clear versioning indicated in the README (v1.2.0), providing a detectable version signal.",{"category":160,"check":161,"severity":98,"summary":162},"Code Execution","Validation","Input validation is handled by argument parsing in Python scripts, but schema validation libraries like Zod or pydantic are not explicitly used for robust input or output sanitization.",{"category":123,"check":164,"severity":56,"summary":165},"Unguarded Destructive Operations","The skill's primary function is to save a draft, not perform destructive operations that would require guarding.",{"category":160,"check":167,"severity":24,"summary":168},"Error Handling","The SKILL.md and Python scripts detail error handling for various scenarios, including browser errors, missing images, and MCP connection issues, with suggested recovery steps.",{"category":160,"check":170,"severity":56,"summary":171},"Logging","The skill does not perform destructive actions or outbound calls that necessitate a local audit log for review.",{"category":108,"check":173,"severity":56,"summary":174},"GDPR","The skill processes Markdown content and interacts with X, but does not appear to operate on personal data that would require specific GDPR sanitization.",{"category":108,"check":176,"severity":24,"summary":177},"Target market","The skill is globally applicable as it automates a process on X, and does not have regional restrictions documented or implied.",{"category":68,"check":179,"severity":24,"summary":180},"Runtime stability","The skill declares Python 3.9+ and cross-platform support for macOS and Windows, with clear error messages for unsupported environments.",{"category":47,"check":182,"severity":24,"summary":183},"README","The README is comprehensive, clearly stating the purpose, features, requirements, usage, and workflow.",{"category":40,"check":82,"severity":24,"summary":83},{"category":47,"check":85,"severity":24,"summary":86},{"category":88,"check":89,"severity":24,"summary":90},{"category":92,"check":93,"severity":24,"summary":188},"The SKILL.md and script documentation detail specific error scenarios (MCP connection, browser errors, image path issues) and provide recovery steps.",{"category":96,"check":97,"severity":98,"summary":99},{"category":33,"check":101,"severity":56,"summary":102},{"category":104,"check":105,"severity":56,"summary":106},{"category":108,"check":109,"severity":56,"summary":110},1778699085018,"This skill parses Markdown files, converts them to HTML with preserved formatting, handles cover and content image uploads, and inserts them with precise block-index positioning into the X Articles editor. It also supports converting tables and Mermaid diagrams to images and inserts dividers via the X Articles menu. The process concludes by saving the content as a draft.",[196,197,198,199,200,201],"Markdown to rich text conversion","Automatic cover image upload","Precise content image positioning via block index","Support for tables and Mermaid diagrams as images","Divider insertion via X Articles menu","Saves content as draft (never auto-publishes)",[203,204,205],"Directly publishing the article to X.","Handling content for X's feed posts (non-article format).","Automating X account login or subscription management.",[],[208,209,210,211],"Playwright MCP for browser automation","User logged into X with Premium Plus subscription","Python 3.9+ with dependencies (Pillow, pyobjc-framework-Cocoa on macOS; Pillow, pywin32, clip-util on Windows)","Optional: npm install -g @mermaid-js/mermaid-cli for Mermaid diagrams","3.0.0","4.4.0","Publish Markdown articles to X (Twitter) Articles editor with proper formatting and automation, saving significant time compared to manual posting.","Excellent documentation and clear implementation, with a focus on user experience and error handling. Minor info findings on dependency pinning and validation are the only points preventing a perfect score.",98,"Automates publishing Markdown articles to X (Twitter) Articles with rich text formatting, image handling, and precise positioning.",[219,220,221,222,223,224,225],"twitter","x","articles","markdown","publishing","automation","rich-text","global","verified",[229,230,231,232],"Use when you want to publish a Markdown file/URL to X Articles.","Use when you mention \"publish to X\", \"post article to Twitter\", or \"X article\".","Use when you need help with X Premium article publishing workflow.","Use when you want to automate the conversion of Markdown content to X's rich text format.",{"codeQuality":234,"collectedAt":236,"documentation":237,"maintenance":240,"security":244,"testCoverage":246},{"hasLockfile":235},false,1778699064992,{"descriptionLength":238,"readmeSize":239},341,9519,{"closedIssues90d":8,"forks":241,"hasChangelog":235,"openIssues90d":8,"pushedAt":242,"stars":243},78,1769302627000,757,{"hasNpmPackage":235,"license":245,"smitheryVerified":235},"MIT",{"hasCi":235,"hasTests":235},{"updatedAt":248},1778699085137,{"basePath":250,"githubOwner":251,"githubRepo":252,"locale":18,"slug":253,"type":254},"skills/x-article-publisher","wshuyi","x-article-publisher-skill","x-article-publisher","skill",{"_creationTime":256,"_id":257,"community":258,"display":259,"identity":262,"parentExtension":265,"providers":266,"relations":276,"tags":278,"workflow":279},1778699045700.797,"k17d09ybwp51vs1g09ag5r49wh86na6t",{"reviewCount":8},{"description":260,"installMethods":261,"name":253,"sourceUrl":14},"Publish Markdown articles to X (Twitter) Articles with block-index positioning and rich text formatting",{"claudeCode":253},{"basePath":263,"githubOwner":251,"githubRepo":252,"locale":18,"slug":252,"type":264},"","plugin",null,{"evaluate":267,"extract":271},{"promptVersionExtension":212,"promptVersionScoring":213,"score":268,"tags":269,"targetMarket":226,"tier":270},95,[220,219,221,222,223,224],"community",{"commitSha":272,"license":245,"plugin":273},"HEAD",{"mcpCount":8,"provider":274,"skillCount":275},"classify",1,{"repoId":277},"kd7bnr3gkws94jkjxs58f1mz4h86nn5v",[221,224,222,223,219,220],{"evaluatedAt":280,"extractAt":281,"updatedAt":282},1778699064672,1778699045700,1778699111797,{"evaluate":284,"extract":286},{"promptVersionExtension":212,"promptVersionScoring":213,"score":216,"tags":285,"targetMarket":226,"tier":227},[219,220,221,222,223,224,225],{"commitSha":272,"license":245},{"parentExtensionId":257,"repoId":277},{"_creationTime":289,"_id":277,"identity":290,"providers":291,"workflow":329},1778699041830.469,{"githubOwner":251,"githubRepo":252,"sourceUrl":14},{"classify":292,"discover":323,"github":326},{"commitSha":272,"extensions":293},[294,310],{"basePath":263,"description":260,"displayName":253,"installMethods":295,"license":245,"rationale":296,"selectedPaths":297,"source":309,"sourceLanguage":18,"type":264},{"claudeCode":253},"plugin manifest at .claude-plugin/plugin.json",[298,301,303,306],{"path":299,"priority":300},".claude-plugin/plugin.json","mandatory",{"path":302,"priority":300},"README.md",{"path":304,"priority":305},"LICENSE","high",{"path":307,"priority":308},"skills/x-article-publisher/SKILL.md","medium","rule",{"basePath":250,"description":10,"displayName":253,"installMethods":311,"rationale":312,"selectedPaths":313,"source":309,"sourceLanguage":18,"type":254},{"claudeCode":12},"SKILL.md frontmatter at skills/x-article-publisher/SKILL.md",[314,316,319,321],{"path":315,"priority":300},"SKILL.md",{"path":317,"priority":318},"scripts/copy_to_clipboard.py","low",{"path":320,"priority":318},"scripts/parse_markdown.py",{"path":322,"priority":318},"scripts/table_to_image.py",{"sources":324},[325],"manual",{"closedIssues90d":8,"description":327,"forks":241,"license":245,"openIssues90d":8,"pushedAt":242,"readmeSize":239,"stars":243,"topics":328},"Claude Code skill for publishing Markdown articles to X (Twitter) Articles",[],{"classifiedAt":330,"discoverAt":331,"extractAt":332,"githubAt":332,"updatedAt":330},1778699045528,1778699041830,1778699043618,[221,224,222,223,225,219,220],{"evaluatedAt":248,"extractAt":281,"updatedAt":335},1778699111564,[],[338,368,396,422,449,481],{"_creationTime":339,"_id":340,"community":341,"display":342,"identity":348,"providers":351,"relations":360,"tags":363,"workflow":364},1778699170774.1592,"k172e8vt4zcz50bb0vfp6ptb1n86mf90",{"reviewCount":8},{"description":343,"installMethods":344,"name":346,"sourceUrl":347},"Use when the user needs X (Twitter) data or confirmation-gated X actions through Xquik: tweet search, user lookup, follower extraction, media download, monitoring, webhooks, MCP, SDKs, posting, likes, DMs, and profile updates. Requires a Xquik API key. Never ask for X login material.",{"claudeCode":345},"Xquik-dev/x-twitter-scraper","x-twitter-scraper","https://github.com/Xquik-dev/x-twitter-scraper",{"basePath":349,"githubOwner":350,"githubRepo":346,"locale":18,"slug":346,"type":254},"skills/x-twitter-scraper","Xquik-dev",{"evaluate":352,"extract":359},{"promptVersionExtension":212,"promptVersionScoring":213,"score":353,"tags":354,"targetMarket":226,"tier":227},100,[219,220,355,356,224,357,358],"api","data-retrieval","mcp","sdk",{"commitSha":272},{"parentExtensionId":361,"repoId":362},"k17axvhmvwp90strpqcd5b0h7986m80d","kd783enpnwhry153ka0z65ear186mjbh",[355,224,356,357,358,219,220],{"evaluatedAt":365,"extractAt":366,"updatedAt":367},1778699230863,1778699170774,1778699296021,{"_creationTime":369,"_id":370,"community":371,"display":372,"identity":378,"providers":383,"relations":390,"tags":392,"workflow":393},1778697652123.8833,"k17ct99affbswtd47gdzrt0t9d86np80",{"reviewCount":8},{"description":373,"installMethods":374,"name":376,"sourceUrl":377},"Prepare or verify OpenClaw stable/beta releases, changelogs, release notes, publish commands, and artifacts.",{"claudeCode":375},"steipete/clawdis","OpenClaw Release Maintainer","https://github.com/steipete/clawdis",{"basePath":379,"githubOwner":380,"githubRepo":381,"locale":18,"slug":382,"type":254},".agents/skills/openclaw-release-maintainer","steipete","clawdis","openclaw-release-maintainer",{"evaluate":384,"extract":389},{"promptVersionExtension":212,"promptVersionScoring":213,"score":353,"tags":385,"targetMarket":226,"tier":227},[386,387,224,223,388],"release-management","devops","changelog",{"commitSha":272,"license":245},{"repoId":391},"kd738npxg9yh3xf3vddzy9fyfh86nhng",[224,388,387,223,386],{"evaluatedAt":394,"extractAt":395,"updatedAt":394},1778697889646,1778697652123,{"_creationTime":397,"_id":398,"community":399,"display":400,"identity":406,"providers":408,"relations":415,"tags":417,"workflow":418},1778699139642.1562,"k17f5jwf0spq0jnrkss8hy1bk186m96z",{"reviewCount":8},{"description":401,"installMethods":402,"name":404,"sourceUrl":405},"Safety-reviewed guide for @xquik/tweetclaw, the Xquik OpenClaw plugin for structured X/Twitter workflows. Covers setup, credential boundaries, explicit approval for writes and paid actions, spending limits, private-data handling, and monitor controls.",{"claudeCode":403},"Xquik-dev/tweetclaw","tweetclaw","https://github.com/Xquik-dev/tweetclaw",{"basePath":407,"githubOwner":350,"githubRepo":404,"locale":18,"slug":404,"type":254},"skills/tweetclaw",{"evaluate":409,"extract":414},{"promptVersionExtension":212,"promptVersionScoring":213,"score":410,"tags":411,"targetMarket":226,"tier":227},99,[219,220,224,412,355,264,413],"social-media","xquik",{"commitSha":272},{"repoId":416},"kd76tck3gfd82ctv8gk1zvy7q186m25m",[355,224,264,412,219,220,413],{"evaluatedAt":419,"extractAt":420,"updatedAt":421},1778699167162,1778699139642,1778699223834,{"_creationTime":423,"_id":424,"community":425,"display":426,"identity":432,"providers":436,"relations":443,"tags":445,"workflow":446},1778691705439.169,"k17cf1xcy82khbd2kxtcnah7v186n7k1",{"reviewCount":8},{"description":427,"installMethods":428,"name":430,"sourceUrl":431},"When the user wants to build a developer following on Twitter/X, write technical threads, or understand what works for dev audiences on X. Trigger phrases include \"Twitter,\" \"X,\" \"developer Twitter,\" \"tech Twitter,\" \"technical threads,\" \"building dev following,\" or \"Twitter for developers.\"",{"claudeCode":429},"jonathimer/devmarketing-skills","x-devs","https://github.com/jonathimer/devmarketing-skills",{"basePath":433,"githubOwner":434,"githubRepo":435,"locale":18,"slug":430,"type":254},"skills/x-devs","jonathimer","devmarketing-skills",{"evaluate":437,"extract":442},{"promptVersionExtension":212,"promptVersionScoring":213,"score":216,"tags":438,"targetMarket":226,"tier":227},[412,219,220,439,440,441],"developer-marketing","content-strategy","technical-writing",{"commitSha":272},{"repoId":444},"kd74f65yh7zvhb9s83jpzx33cd86nd64",[440,439,412,441,219,220],{"evaluatedAt":447,"extractAt":448,"updatedAt":447},1778692581531,1778691705439,{"_creationTime":450,"_id":451,"community":452,"display":453,"identity":459,"providers":464,"relations":474,"tags":477,"workflow":478},1778691497595.9673,"k17b12z2pbmbeena2xw6hps1bx86mh66",{"reviewCount":8},{"description":454,"installMethods":455,"name":457,"sourceUrl":458},"Converts X (Twitter) tweets and articles to markdown with YAML front matter. Uses reverse-engineered API requiring user consent. Use when user mentions \"X to markdown\", \"tweet to markdown\", \"save tweet\", or provides x.com/twitter.com URLs for conversion.",{"claudeCode":456},"jimliu/baoyu-skills","X to Markdown","https://github.com/jimliu/baoyu-skills",{"basePath":460,"githubOwner":461,"githubRepo":462,"locale":18,"slug":463,"type":254},"skills/baoyu-danger-x-to-markdown","jimliu","baoyu-skills","baoyu-danger-x-to-markdown",{"evaluate":465,"extract":473},{"promptVersionExtension":212,"promptVersionScoring":213,"score":466,"tags":467,"targetMarket":226,"tier":227},97,[220,219,222,468,469,470,471,472],"conversion","article","tweet","media","download",{"commitSha":272,"license":245},{"parentExtensionId":475,"repoId":476},"k172q4hxm2acmg5ree5aeemx1x86m6hx","kd718jn448p61w289hzf15tecd86n3a4",[469,468,472,222,471,470,219,220],{"evaluatedAt":479,"extractAt":480,"updatedAt":479},1778691721673,1778691497596,{"_creationTime":482,"_id":483,"community":484,"display":485,"identity":491,"providers":496,"relations":506,"tags":509,"workflow":510},1778699234184.6157,"k177tdbfgqmwhtaqv771f2ych586nne9",{"reviewCount":8},{"description":486,"installMethods":487,"name":489,"sourceUrl":490},"Worktree-first dev environment manager for issues, PRs, and features with optional tmux sessions",{"claudeCode":488},"Yeachan-Heo/oh-my-claudecode","Project Session Manager","https://github.com/Yeachan-Heo/oh-my-claudecode",{"basePath":492,"githubOwner":493,"githubRepo":494,"locale":18,"slug":495,"type":254},"skills/project-session-manager","Yeachan-Heo","oh-my-claudecode","project-session-manager",{"evaluate":497,"extract":505},{"promptVersionExtension":212,"promptVersionScoring":213,"score":353,"tags":498,"targetMarket":226,"tier":227},[499,500,501,502,224,503,504],"git","development-environment","workflow","tmux","cli","developer-tool",{"commitSha":272,"license":245},{"parentExtensionId":507,"repoId":508},"k17brg5egdw1jbncj1j4wfv3fh86n639","kd74zv63fryf9prygtq7gf4es986n22y",[224,503,504,500,499,502,501],{"evaluatedAt":511,"extractAt":512,"updatedAt":511},1778699613343,1778699234184]