微信小程序 CI 工具

AdvisoryAudited by Static analysis on May 10, 2026.

Overview

Detected: suspicious.dangerous_exec, suspicious.secret_argv_exposure

Findings (3)

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.

ConcernHigh Confidence
ASI08: Cascading Failures
What this means

If the test script is run, the user’s saved CI configuration can be erased and may need to be recreated.

Why it was flagged

The test runner replaces the real ~/.wxmini-ci.config.js with an empty test config and later copies the same empty test config back, despite comments claiming it restores the real config.

Skill content
var REAL_CONFIG = path.join(os.homedir(), ".wxmini-ci.config.js"); ... fs.writeFileSync(TEST_CONFIG, "module.exports = {};\n", "utf-8"); fs.copyFileSync(TEST_CONFIG, REAL_CONFIG); ... fs.copyFileSync(TEST_CONFIG, REAL_CONFIG);
Recommendation

Do not run tests/run-tests.js until it is fixed to back up the original config to a separate file and restore that original file exactly.

What this means

Running init may install or change a global npm package on the machine.

Why it was flagged

The init flow installs miniprogram-ci globally from npm without a pinned version. This is related to the skill’s purpose, but it changes the user’s global Node environment and depends on the npm package supply chain.

Skill content
execSync('npm install -g miniprogram-ci', {
Recommendation

Review the package/version before installing, consider pinning miniprogram-ci, and prefer project-local dependencies when possible.

What this means

Whoever can run the configured commands with the private key can perform CI actions against the configured Mini Program.

Why it was flagged

The skill uses a WeChat Mini Program app ID and private-key file path to authenticate CI actions. This is expected for miniprogram-ci, but it grants authority to preview/upload code and operate on cloud resources.

Skill content
node wx-miniprogram-ci.js upload ... --appid YOUR_APPID ... --private-key ~/.credentials/private.YOUR_APPID.key ...
Recommendation

Use least-privilege CI keys, store private keys securely, review upload/cloud commands before execution, and avoid sharing config files or shell logs containing credential paths.

What this means

A mistaken command can publish the wrong code or cloud assets to the user’s WeChat Mini Program environment.

Why it was flagged

The skill exposes commands that can upload application code, cloud functions, and cloud storage content. These operations are central to the stated CI purpose, but they are high-impact account mutations.

Skill content
| upload | 上传代码 | ... | upload-function | 上传云函数 | ... | upload-storage | 上传云存储 |
Recommendation

Confirm the selected project, appid, cloud environment, version, path, and robot number before running upload-related commands.

What this means

Using a config file from an untrusted source could run code on the user’s machine.

Why it was flagged

The tool loads configuration as a JavaScript module, so a config file can execute code when loaded. This is a common Node.js config pattern and appears documented, but users should only use trusted config files.

Skill content
const fileConfig = require(configFile);
Recommendation

Keep ~/.wxmini-ci.config.js under the user’s control and do not point --config-dir at untrusted directories.

Findings (3)

critical

suspicious.dangerous_exec

Location
scripts/wx-miniprogram-ci.js:466
Finding
Shell command execution detected (child_process).
critical

suspicious.dangerous_exec

Location
tests/run-tests.js:61
Finding
Shell command execution detected (child_process).
critical

suspicious.secret_argv_exposure

Location
SKILL.md:125
Finding
Instructions pass high-value credentials through process argv.