cm-security skillA
cm-security is agent-read markdown (skill) from kingxiaozhe/cm-workflow: 用户运行 cm-security,或要求代码安全扫描、漏洞检查、密钥泄露排查、依赖漏洞检查时使用。默认检查当前分支相对主分支及已跟踪未提交修改,结合业务地图复核;--all 检查全部已跟踪文件。只报告问题,不自动修复、安装、升级或发布。安装自检用 cm-check,功能测试与覆盖率用 cm-test。.
Indexed from public GitHub and served as immutable, content-addressed versions. Install it pinned to an exact SHA-256 with the mdr CLI, and every file is verified against the hash recorded here before it reaches your agent. The deterministic audit below grades the latest version, and the same file always earns the same grade.
What the file says
# cm-security — 代码安全扫描与业务复核
先读 `../../runtime/project-context.md`、`../../runtime/logging.md` 和 [执行合同](references/scan-contract.md)。
本 Skill 是独立只读安全入口;不改变 cm-test、任务完成门禁或发布授权。
Codex 用 `$cm-security`,Claude Code 用 `/cm-security`;macOS/Linux 兼容 `/cm:security`。
## 用法
```text
$cm-security
$cm-security {项目路径}
$cm-security {项目路径} --all
$cm-security {项目路径} --semgrep-rules {已审查的外部本地规则文件}
$cm-security {项目路径} --osv-db {外部离线数据库缓存目录}
```
## 执行
1. 省略项目时解析当前 Git 仓库根。显式路径也定位到该仓库根;无 Git/HEAD、主分支缺失或有歧义时停止并说明,不猜基准,不自动 fetch。`--all` 不要求主分支,但仍要求 Git/HEAD。
2. 先确认地图在 Git index 中为普通已跟踪文件,再加载业务地图,只读核对受影响的入口、调用方、权限与数据流。地图缺失、陈旧或失真时,从相关代码补足本次分析,标明缺口;不自动全仓重建或更新地图。
3. 从当前 Skill 位置解析 `{CM_WORKFLOW_ROOT}`,逐项传参数,禁止拼接用户文本为 shell 命令:
```bash
node "{CM_WORKFLOW_ROOT}/scripts/cm-security.mjs" --project "{项目根}" {已解析的可选参数}
```
4. 将扫描 JSON 原样保存在项目外本次私有目录的普通文件中,保留范围、digest、工具状态、遗漏和 findings。退出码 1 表示发现候选问题,3 表示检查仍不完整,均需继续上下文复核;2 表示阻断,只汇报阻断原因。0 可能是 NO_CHANGES,不是安全认证。
5. 对 selected 中每个路径做轻量 AI 复核。先看改动及调用链,再看扫描候选;只加载相关代码,禁止默认加载整套外部审计 Skill。命中或触及鉴权、支付、跨租户、命令/文件/网络边界时,沿该路径深入。
6. 逐项核验输入是否可控、现有防护是否有效、受影响业务及复现条件。分别检查工作区与不同的暂存版本;删除或改名必须结合基准版本和调用方,不能只看剩余文件。引用 `revision + 文件:行号`。
…Read the whole file at its exact version.
How to install
mdr add kingxiaozhe/cm-workflow/cm-security@git:20260919.dd88893mdr add kingxiaozhe/cm-workflow/cm-security@sha256:852c67f3987dd016Pin to a label to follow the author's releases, or to a sha256 to freeze the exact bytes forever. Either way the resolved hash is written to mdr.lock, and mdr install reproduces it on any machine.
[](https://markdownregistry.com/a/art_qomlfsasf7cnp4oo)
1 badge views in 30 days
Versions
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| git:20260919.dd88893 latest | 2026-09-19 | dd88893 | 5,725 B | A | view · diff |
| git:20260918.ade40ac | 2026-09-18 | ade40ac | 5,148 B | A | view · diff |
| git:20260916.c144c45 | 2026-09-16 | c144c45 | 4,403 B | A | view |
Audit of the latest version
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (5725 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
- pass: No script tag
Source
kingxiaozhe/cm-workflow · 29 stars · license MIT · pushed 2026-09-24 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_qomlfsasf7cnp4oo GET https://markdownregistry.com/api/v1/resolve?ref=kingxiaozhe/cm-workflow/cm-security GET https://markdownregistry.com/api/v1/blob/852c67f3987dd016e7d9dd5de8fd9f374577ce0fca1338de559141927ee5f600
Your agent does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.