wip-readme-format
README格式化工具存在文档-行为差异:声明filesystem权限为NONE但实际执行WRITE操作,同时动态导入child_process模块执行git命令检查文件状态。
Why this conclusion was reached
1/4 dimensions flagged2 undeclared or violating capabilities were inferred.
2 lower-risk artifacts were extracted and still need context.
There is no explicit malicious chain in the report.
Dependencies are present but no obvious high-risk issue stands out.
What drove the risk score up
SKILL.md声明filesystem:NONE,但代码执行writeFileSync写入README-init-*.md和README.md
format.mjs:322 使用await import('node:child_process')动态导入,未声明shell执行能力
execSync执行git status --porcelain检查文件状态,属于隐式shell操作
从wip-universal-installer/detect.mjs导入detectInterfaces/detectToolbox,来源未声明
Most important evidence
未声明的文件系统写入权限
SKILL.md声明filesystem为NONE,但format.mjs执行writeFileSync写入README-init-*.md、README.md和TECHNICAL.md,另有mkdirSync创建ai/_trash目录、unlinkSync删除临时文件。
format.mjs:310 动态导入child_process模块
format.mjs第322行使用await import('node:child_process')动态导入模块,在DEPLOY模式下执行git status命令检查文件状态。动态导入可能意图规避静态分析。
format.mjs:322 外部依赖模块来源未声明
format.mjs从../wip-universal-installer/detect.mjs导入detectInterfaces和detectToolbox函数。该模块的功能和安全性未在SKILL.md中说明。
format.mjs:27 shields.io外部URL引用
代码生成shields.io badge URLs用于README,包含外部链接。预扫描标记为medium risk。
format.mjs:82 Declared capability vs actual capability
format.mjs:310 writeFileSync写入README-init-*.md, format.mjs:370 writeFileSync写入README.md format.mjs:322 await import('node:child_process'), format.mjs:334 execSync('git status') 仅生成shields.io badge URLs,无实际HTTP请求 导入外部模块detectInterfaces但仅用于检测接口类型 Suspicious artifacts and egress
https://img.shields.io/badge/interface-$ format.mjs:82
https://img.shields.io/badge/Universal_Interface_Spec-black?style=flat&color=black format.mjs:506
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| wip-universal-installer/detect.mjs | unknown | local sibling module | No | 内部依赖,来源为同仓库tools目录 |
| node:fs | bundled | node built-in | No | Node.js标准库,用于文件读写 |
| node:path | bundled | node built-in | No | Node.js标准库,用于路径处理 |
| node:child_process | bundled | node built-in | No | 动态导入,用于git status命令执行 |
File composition
format.mjs