这是本栏目第 6 轮。按照轮次规划,本期该做「新星首发」——挖最近上架、还没被注意的新 Skills。但本期有一个先要坦白的限制:外部检索通道(榜单站、注册表查询)本轮不可用,拿不到任何 star 数、下载量、上架日期。所以本期把「新星」的定义换成一个更诚实、也更接近「早期挖掘」本意的口径:不追增速榜,翻装机目录里的空白段——那些已经在 430+ 件的装机目录里安顿下来、却从未被本栏目 40 多个选题碰过一指头的成簇工位。
翻遍前五轮的选题表:PPT、视频工厂、代码审查、重构、测试、部署、浏览器操控、工作记忆、下载器、SEO……几乎每个生产力方向都被拆过一遍,唯独安全工程这个方向整段缺席。而装机目录里,它不但存在,而且是一个结构完整的三件套,外加一簇抓包分析和 5G 实验室工具。本期材料全部来自第一手拆读:4 份 SKILL.md 原文逐段读毕,外部传闻一概不引。
先看全景。装机目录里与安全/网络工程相关的存留至少有四个簇:
mindmap
root((装机目录空白段))
安全工程簇
security-threat-model
security-best-practices
security-ownership-map
抓包分析簇
pcap-analyzer
pcap-generator
pcap-modifier
网络实验室簇
3gpp-5g-specs
free5gc
UERANSIM
编码小工具簇
encoding-check
四个簇里,本期主拆第一个——它三件之间的分工最完整,从「写码时的被动防御」到「设计时的攻防推演」再到「事后的人与代码度量」,正好覆盖一个安全工位的三个时段。抓包三件与 5G 实验室簇本期只报站牌不做车厢级拆解(未读原文,不猜内容);编码小工具簇选了 encoding-check 作实证样本,原因是它体量最小、且能和三件套形成「重工具层 vs 轻工具层」的对照。
一点方法说明:五维权重里的「社区活跃度」本期缺测(无外部数据),权重在其余四维上重新归一(功能 25%→29%,设计 25%→29%,实战 20%→24%,上手 15%→18%)。打分依据全部是 SKILL.md 原文可验证的设计事实,不含传闻。
| 技能 | 功能完整度 | 设计质量 | 实战效果 | 上手难度 | 社区活跃度 | 加权总分 |
|---|---|---|---|---|---|---|
| security-ownership-map | ★★★★★ | ★★★★★ | ★★★★☆ | ★★★☆☆ | 缺测 | 4.4 |
| security-threat-model | ★★★★☆ | ★★★★★ | ★★★★☆ | ★★★★☆ | 缺测 | 4.3 |
| security-best-practices | ★★★★☆ | ★★★★☆ | ★★★★☆ | ★★★★★ | 缺测 | 4.2 |
| encoding-check(对照样本) | ★★★☆☆ | ★★★☆☆ | ★★★★☆ | ★★★★★ | 缺测 | 3.6 |
定位:给一个仓库或子目录产出「AppSec 级」威胁建模报告。它的开篇第一句就立了反目标——交付的是「actionable AppSec-grade threat model」,明确「not a generic checklist」。这句话决定了整份 SKILL.md 的写法:后面 8 步工作流的每一步都在防模型滑回「泛泛的清单体」。
逐段看它的设计:
references/prompt-template.md(渐进披露的第二层),最终物是一个具名文件 <仓库名>-threat-model.md。第 8 步还有一份自检清单:入口点全覆盖没有、每条信任边界都有威胁对应、运行时和 CI/开发环境分开了没有。短板:纯提示词技能,没有一个脚本。大仓库场景下「从代码里取证」全靠模型现场读码,上下文吃紧时第 1 步的系统模型提取会最先受损。上手时也要求使用者能回答第 6 步那几个部署问题——答不上来的用户拿到的就是一份「条件性建议」堆成的报告。
定位:写码过程中的被动安全层。它的工作方式不是「审查」,而是「路由」:先识别项目用了什么语言、什么框架(前后端都要认),再按一套文件名协议去 references 目录加载对应的知识文件——<语言>-<框架>-<技术栈>-security.md,框架不匹配时回退到 <语言>-general-<技术栈>-security.md。前端后端要分别加载,正文里甚至专门叮嘱:用户没说前端框架时,也要去看 javascript-general-web-frontend-security.md。
三种工作模式写得非常清楚:一是「secure by default」——从加载知识起,后续写的新代码默认安全;二是被动检测——干活途中顺手标记高危问题,只报影响最大的;三是用户主动索要报告时,产出一份按严重度分节、带编号 ID、必须带行号引用的 security_best_practices_report.md。报告写完还要告诉用户文件落在哪,并主动提出可以逐条修复。
几处值得单独抄下来的细节:
短板:知识面的上限等于 references 目录的上架范围。语言不在库内时,技能允许模型退回自己的常识甚至联网查文档——此时产出质量随语言冷门程度衰减,报告模式还会明确告诉你「该语言没有具体指引」。这是诚实的降级,但也是硬上限。
定位:前两件看代码,这件看人。它从 git 历史里构建「人-文件」二部图,再算一张「文件共变图」(两个文件频繁出现在同一个 commit 里就连边,权重用 Jaccard 相似度),在共变图上跑社区发现算法聚类,最终回答一类别家工具不回答的问题:这份敏感代码,现在到底还有几个人真正守着?
核心概念全是安全工程的老话新用:
.github/ 这类「胶水文件」以免聚类被基建提交污染。最值得学的一处设计:它给 LLM 专门配了一个查询层。scripts/query_ownership.py 的自我描述是「return small, JSON-bounded slices without loading the full graph into context」——大仓库的图数据可能几十万节点,直接塞进上下文等于自杀,于是所有消费都走「有界 JSON 切片」:按人查、按文件查、按社区查、按 summary 分节查,每次只回一小块。这是把「上下文经济性」当作一等公民来设计的技能,比多数只会让模型「读整个输出文件」的同类高出一个段位。产出一端同样完整:CSV、JSON、可选 graphml,references/neo4j-import.md 里连导入 Neo4j 的 Cypher 语句都备好了,Gephi 可视化即插即用。
短板:三件里唯一有硬依赖的——Python 3 加 networkx;参数体系也最庞大(identity 口径、时间窗口、touch 计数模式、社区开关……),文档里反复出现「如果 git log 太大,用 --since 收窄」的自我提醒。对非工程用户,上手台阶明显高一截。另有一处路径化石:示例命令全部写作 skills/skills/security-ownership-map/scripts/... 双层前缀,说明它是在某种「技能仓库里再套 skills 目录」的布局下编写的——照抄会找不到路径,使用时需要自己剥掉一层。
单看每件都是好技能,合起来看才见结构。它们不重叠、不抢戏,正好卡在安全工作的三个时段上:
flowchart TB
subgraph W1["写码中 - 被动层"]
A["security-best-practices"] --> B["识别语言与框架"]
B --> C["按命名协议加载知识文件"]
C --> D["默认安全写码与被动报漏"]
end
subgraph W2["设计时 - 推演层"]
E["security-threat-model"] --> F["系统模型与信任边界"]
F --> G["滥用路径枚举与定级"]
G --> H["暂停校准用户假设"]
H --> I["产出威胁建模文件"]
end
subgraph W3["度量时 - 人与代码层"]
J["security-ownership-map"] --> K["git 历史构建二部图"]
K --> L["bus factor 与孤儿敏感码"]
L --> M["graphml 导出图数据库"]
end
D -. 高危线索输送 .-> F
I -. 风险点回写 .-> C
M -. 人员风险佐证 .-> G
写码时 best-practices 在背景里垫底噪;到了架构级问题,threat-model 接手做推演,且强制中途找你对齐假设;等你想知道「这堆历史遗留的敏感代码该派谁管」,ownership-map 拿 git 历史给你出人员风险地图。对照组也有:Claude Code 内置的 /security-review 命令面向的是 diff 级审查,与这三件不在同一层——内置命令管「这次提交进了什么」,三件套管「这个系统整体怎么被攻、由谁在守」。
对照重工具层,看一个体量最小的实证样本。encoding-check 是装机目录里少见的中文正文 SKILL.md(语言层的分布此前已有专轮拆过,此处只记一笔不展开),功能单一:批量扫文件编码,检出 GBK、BOM、UTF-16、CRLF 这些经典坑,报告用一张固定格式的 ASCII 表格呈现,转换前自动留 .bak 备份,甚至附了 Windows PowerShell 的等价命令段。它有三处值得记:一是把「报告长什么样」直接画在提示词里,让模型输出格式零漂移;二是触发方式写成了显式命令 /encoding-check <路径>,与三件套的「描述触发」形成两种触发哲学的对照;三是「集成工作流」一节里交叉引用了另一个装机技能 /pptx-test——技能之间互相组网的证据,说明装机目录里存在成套建设、而非散件堆放。
三件套和 encoding-check 在本机的落点都是 ~/.claude/skills/<技能名>/,这也是 Claude Code 技能的通用安装机制——目录到位即安装,无需注册步骤:
# 用户级安装:放好后所有项目可用
mkdir -p ~/.claude/skills/security-threat-model
# 将 SKILL.md 与 references/ 目录放入上述路径即可
# 项目级安装:只对当前仓库生效
mkdir -p .claude/skills
cp -r ~/.claude/skills/security-ownership-map .claude/skills/
# ownership-map 的唯一外部依赖(SKILL.md 自述)
pip install networkx
触发方式上,threat-model 和 best-practices 靠描述触发:直接说「给这个仓库做一份威胁建模」「以安全默认的方式写这个功能」,模型会按 description 匹配进入技能;encoding-check 则用显式命令 /encoding-check **/*.md。公开注册表出处本期未能核实,故不提供来历链接;参考来源仅列第一手文件。
本期没有增速曲线,没有空降千星的戏剧性,只有装机目录里一段没人看过的走廊。但正是这段走廊给出了一个提醒:当所有注意力都追着 PPT、视频和热度榜跑时,安全工程这种「不出片」的方向已经在目录里悄悄长出了完整的分层结构——被动层、推演层、度量层各就各位,连「模型不该跟用户吵架」「开发环境没 TLS 别报警」这种只有踩过坑才会写的条款都齐备了。评价一个技能生态的成熟度,热度榜是短线指标,空白段的填充速度才是长线指标。下期若外部通道恢复,值得回头补上这几个簇的公开出处与热度数据;抓包三件与 5G 实验室簇,也留在站牌上等一回专门的车厢级拆解。
说明:本期外部检索通道不可用,未引用任何网页;上述来源均为装机目录第一手文件,社区活跃度数据缺测已在评测表注明。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
