The repository contains 21 separate workflows
The root README lists 21 jobs spanning X article drafts, WeChat and WeCom archives, web research, transcription, agent memory, bookmarks, media slicing, and Jianying editing. They share a Claude Code or Codex skill format, but they do not share one runtime. Some are small routers around optional services. Others manipulate local application copies, inspect databases, drive a browser, or depend on a separately authorized private component.
That breadth changes how you should evaluate the repository. Installing the whole checkout exposes far more instructions and code than one task requires. Start with a named directory, read its README and SKILL.md, inspect its third-party notices, and install only that skill. The guides cannot replace the platform and privacy checks inside each tool.
The X draft uploader is the measured subproject
Our lab exercised yichen-x-article-draft-uploader, the Python project behind the current v1.0.1 release. It parses local Markdown, treats a leading image as an optional 5:2 cover, turns pipe tables into native X table blocks, and inserts as many as 25 body media items at their original positions. If there is no leading image, it keeps the cover empty instead of stealing the first body image.
The uploader opens a separate Playwright browser so it does not control the Chrome window you are using. A dry run checks missing files, table dimensions, media limits, image anchors, and unsupported input before X opens. After upload, the script reloads the same draft and verifies title, body hash, tables, image identity, order, and position. It saves a draft URL, result JSON, and screenshot. The fixed release never clicks X's final publish button.
What happened when we ran it
Our sandbox installed the uploader in 7 seconds, adding 39 packages and consuming 177 MB. Its build succeeded in 1 second. Pytest then finished in 3 seconds with all 89 tests passing and 0 failures. Pip-audit found 0 known vulnerabilities in the installed Python environment. That is a clean result for the exact subproject and commit we tested.
The full repository at commit e052e9d contained 248 files, roughly 61,220 lines of source, and occupied 3.3 MB before dependencies. Our scan found 3 CI workflow files, no Dockerfile, and a tests directory. Those repository-wide structural facts do not mean every skill ran. The install, build, 89 tests, 177 MB footprint, and audit result apply to yichen-x-article-draft-uploader only.
The lab used a fresh unprivileged container with 3 CPUs, 8 GB of RAM, Python 3.12, and no secrets. It did not log in to X, import Chrome cookies, install a full desktop browser profile, create a real draft, or test any WeChat database. Passing parser and contract tests reduce code risk, while live platform behavior still needs a controlled personal trial.
Cookie handling is careful but still sensitive
The uploader requires macOS, Chrome already logged in to X, Python 3.9 or newer, Playwright 1.58, and its Chromium download. Its exporter writes cookies to ~/.ailu/secrets/x/cookies.json, sets the directory to mode 0700 and the file to 0600, and prints cookie names rather than values. Before use, the uploader checks the file's permissions, domain scope, size, and required X cookie names.
Those controls are thoughtful. The cookie file still carries an authenticated session, and the resulting draft URL plus screenshot can reveal unpublished work. Neither belongs in Git, an issue, or a diagnostic attachment. The wider collection handles even more sensitive material, including local chats, account-backed searches, customer data, and API credentials. A skill's fail-closed wording helps only when the operator follows it and verifies where output lands.
Platform changes already break the WeChat paths
Open issue 16 says WeCom 5.0.11 changed its page-encryption path, preventing the documented key capture. Issue 17 records repeated failures against a current Mac WeChat build despite trying several processes and hooks. These are useful reports because they show the maintenance cost of tools built around private desktop internals. A detailed instruction file cannot make an undocumented interface stable.
X automation has the same class of risk. The uploader relies on editor structure, autosave signals, media blocks, cookies, and table controls that X can change without preserving compatibility. Its defensive checks are better than a blind paste script, especially the same-draft reload and source-image matching. Still, a successful 89-test local suite cannot guarantee tomorrow's browser workflow. Keep the dry run, inspect the result files, and avoid immediate retries that create duplicate drafts.
The license excludes company use by default
The root license permits personal learning, research, and non-commercial personal workflows. It prohibits client delivery, paid products, company operations, marketplace packaging, course bundling, and public redistribution as a competing collection unless the owner gives written permission. The X uploader repeats that boundary in its own license. Visible source and permission to modify it privately do not grant a business the usual open-source freedoms.
This condition is easy to miss because the repository resembles a normal public skill catalog. For a personal creator, the boundary is clear enough. A company evaluating even one directory should stop before installation and obtain explicit written authorization, then review the third-party licenses separately. The README says a contact request alone does not count as permission.
September maintenance is active, with version-specific failures
GitHub showed 3,856 stars, 1,636 forks, and 6 open issues and pull requests. The last push was September 18, 2026, and the newest open reports were also from September. Release x-article-draft-uploader-v1.0.1 was published August 16 with a fixed draft-verification contract and compatibility for Ailu 0.2.0. The activity is current, although releases describe individual skills rather than one collection-wide version.
The best part of Yichen Skills is its insistence on explicit boundaries: drafts stay drafts, destructive cleanup asks first, cookies stay out of Git, and unsupported states should fail closed. The main weakness comes from scope. Twenty-one platform-dependent tools cannot inherit the uploader's 89 passing tests. Pick the exact workflow you need, confirm its license, and treat live account or database behavior as a fresh version-specific test.

