Wechat Tutorial Editor Publisher

WarnAudited by ClawScan on May 10, 2026.

Overview

This skill mostly matches its WeChat publishing purpose, but it needs review because it handles WeChat account secrets unsafely and runs an unauthenticated local upload server.

Install only if you are comfortable giving the skill access to WeChat Official Account publishing credentials. Do not store AppSecret in a console.json file or rely on MD5 for protection; use environment variables or a proper secret store. Run the local server only when needed, preferably bound to localhost, and review article/images before publishing to the WeChat draft box.

Findings (5)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

If these secrets are mishandled, anyone with access to the files could potentially use the WeChat Official Account API to upload media or create drafts.

Why it was flagged

The skill requires WeChat AppID/AppSecret and instructs persistent local reuse of those account credentials, including a weak/incorrect MD5-based storage approach in the skill assets directory.

Skill content
API 凭证已保存在 `/Users/leebot/.openclaw/workspace/TOOLS.md` ... 用户发给你的AppId和AppSecret请用md5加密保存在当前skill目录下的assets目录下,创建一个名为console.json的文件...下次读取时自行解密即可。
Recommendation

Declare the WeChat credential requirement explicitly, use environment variables or a real secret manager, do not store AppSecret in the skill directory, and require user approval before reusing credentials.

What this means

A user may believe their WeChat credentials are safely protected when they are not.

Why it was flagged

Calling MD5 “encryption” and saying it can be decrypted is misleading; MD5 is not reversible encryption and is not appropriate protection for secrets.

Skill content
AppId和AppSecret请用md5加密保存...下次读取时自行解密即可。
Recommendation

Remove the MD5 storage instruction and document a safe credential flow using environment variables, a secrets vault, or user-supplied credentials per publish session.

What this means

While the server is running, an unexpected local-network client or malicious web page could submit or alter stored article/profile data used by the skill.

Why it was flagged

The server enables broad CORS, has unauthenticated POST endpoints, accepts file uploads, writes persistent local files, and listens on the configured port without a localhost-only binding shown.

Skill content
app.use(cors()); ... app.post('/api/personal-info' ... writeFile(... 'personal-info.txt') ... app.post('/api/save-steps' ... writeJson(... 'steps.json') ... app.listen(PORT)
Recommendation

Bind the server to 127.0.0.1, restrict CORS to the local UI, add a random session token/CSRF protection, and enforce file type and size limits.

What this means

Installing the skill may cause npm to fetch and run code from the package registry with the user’s normal system privileges.

Why it was flagged

The publish script automatically installs an unpinned global npm CLI when missing. This is disclosed and central to the publishing purpose, but it adds third-party code execution risk.

Skill content
if ! command -v wenyan ... npm install -g @wenyan-md/cli
Recommendation

Pin the CLI version, prefer a local project install over global install, and ask the user before installing missing dependencies.

What this means

Personal profile details and QR/contact images remain in the skill directory and may be reused in later generated content.

Why it was flagged

The skill intentionally stores personal profile text and images for later reuse in generated articles.

Skill content
收集用户信息,存入./assets/personal-info.txt文件和./assets/personal-imgs目录下。
Recommendation

Review the stored assets periodically, delete old profile/images when no longer needed, and confirm before including them in published drafts.