首页 › skills-review › 拆pcap-generator:件里还套着件

拆pcap-generator:件里还套着件

概述

本期是本栏第2轮:单个 Skill 深度拆解。对象不是货架明星,而是连续四期周报被点名「只在本机装配里」的那个二线工位——网络包「造、读、改」三件套,主拆 pcap-generator。本期全部结构事实来自本机 ~/.claude/skills/ 三个目录的逐文件清点(在线通道断供延续第五期,延续先例不作联网引用);凡超出文件名与目录结构的判断,一律标注「推断」。核心发现三条:其一,这不是一份「提示词手册」而是一座五层结构的包工厂,骨架完整到可以当工程样板;其二,它在 references 目录里又埋了一份 SKILL.md——官方规范只认根目录那份,件中套件是民间自发的玩法;其三,隔壁 pcap-modifier 的十二个脚本名字连起来,是一部没删干净的开发事故史。

评测表

维度 权重 pcap-generator pcap-analyzer pcap-modifier
功能完整度 25% ★★★★★ ★★★★☆ ★★★☆☆
设计质量 25% ★★★★★ ★★★★☆ ★★★☆☆
实战效果 20% ★★★★☆ ★★★★☆ ★★★☆☆
上手难度 15% ★★★☆☆ ★★★★☆ ★★☆☆☆
社区活跃度 15% ★★☆☆☆ ★★☆☆☆ ★★☆☆☆
综合 — 4.2 / 5 3.9 / 5 2.9 / 5

先交代评分口径:三件的「社区活跃度」都按两星计,不是贬低,而是本期唯一能核实的事实就是它们不在任何货架上——本栏 9 月 15 日《装机层半年地层》与 9 月 21 日效率横评连续点名这三个名字「从来不在货架上,只在本机装配里」,无星可查、无下载可引。反过来,「实战效果」的四星有实证:三件目录深处都留着 __pycache__(Python 3.13 编译缓存),说明它们在这台机器上真跑过,不是装样子的摆设。

一、为什么是它:被点名四周的工位,开机检查

本栏拆了五个月,office 三部曲(docx、pptx、xlsx、pdf)拆完了,skill-creator 拆完了,连 mattpocock、dream-loop 这种新星都拆了,但有一个角落五个月来只被「点名」、从未被「打开」:电信网络工程件。今早的装机普查《一台机器384个Skill》把 pcap-analyzer 列进工具类例子,也只是点到名字为止。

而这个角落恰好是 Skills 生态里最真实的「空工位」:效率四赛道连续三周零新件,货架上挤满了写作件和前端件,可全世界的网络工程师每天都在和 wireshark、抓包文件、信令流程搏斗,却没有一件货架货替他们干活。本期把这台机器上现成的三件打开看,等于回答一个问题:生态没供给的活,民间自己攒的件长什么样?

先看分工。三件套的名字就是三个动词:

flowchart TD
    A["一份5G排障需求"] --> B{SKILL.md 分诊}
    B -->|读包| C["pcap-analyzer"]
    B -->|造包| D["pcap-generator"]
    B -->|改包| E["pcap-modifier"]
    C --> F["tshark手册加协议参考"]
    D --> G["scapy产线加场景库"]
    E --> H["二进制手术加修校验和"]
    C --> I["人能读的报告"]
    D --> J["可回放的pcap"]
    E --> K["改完还能过的pcap"]

造、读、改——眼熟吗?官方 document-skills 家族的分诊台是「读、建、改」(本栏 9 月 18 日 pptx 拆解拆过)。两批作者、两个领域、互不相认,收敛到同一个动词三分。这不是巧合,是 Agent 干活的自然分类学:任何「文件进、文件出」的工种,拆到底就这三个动词。telecom 民间件和官方件在这一点上殊途同归,是本期第一个值得抄进自己 Skill 的设计。

二、三棵文件树:三种身材

pcap-generator/            # 造:一座工厂
├── SKILL.md
├── references/            # 六份手册,含一份嵌套 SKILL.md
│   ├── SKILL.md           # ← 件中件,本期主角
│   ├── README.md
│   ├── 00_可行性分析报告.md
│   ├── 01_快速开始指南.md
│   ├── 02_5g_ims提示词与用例.md
│   ├── 03_提示词速查表.md
│   └── PROTOCOLS.md
├── models/                # scenario.py config.py request.py
├── scripts/
│   ├── cli.py  generator.py  base_generator.py
│   ├── batch_generator.py  skill_integration.py
│   ├── sbi_generator.py  gtp_generator.py  sip_generator.py
│   ├── scenarios/         # sip/gtp/sbi 三套场景库
│   └── utils/             # scapy_sip scapy_http2 scapy_gtp
│                          # pcap_tools validators
└── assets/batch_example.yaml

pcap-analyzer/             # 读:一把瑞士刀
├── SKILL.md
├── TODO.md                # ← 没删的施工日志
├── references/
│   ├── tshark_commands.md
│   └── 5g_protocols.md
└── scripts/               # analyzer.py analyzer_5g.py
                           # registration_analyzer.py

pcap-modifier/             # 改:一间手术室
├── SKILL.md
├── references/            # modification-presets.md
│                          # protocol-consistency.md
└── scripts/               # 十二个脚本,名字见下文

以上是逐文件实测,一字未改。三棵树的「身材差」本身就是内容:造包的是工厂,读包的是工具箱,改包的是手术台——工作量分布和 office 家族如出一辙(官方 pptx 也是生成线最重)。

三、generator 逐层拆:五层楼的包工厂

第 1 层:门牌(SKILL.md)

根目录那份 SKILL.md 是唯一常驻上下文的入口。本期无法引用其正文(断供声明同前),但从整个仓库的分层看,它的角色必然是「分诊台 + 路由」——因为细活全在楼下,没有一个脚本把逻辑写在门牌上。这正是官方件反复验证过的第一原则:门牌只放路由,不放细节(推断自结构,惯例同 office 家族拆解)。

第 2 层:手册层(references/)

六个文件,两个语言,两副面孔。PROTOCOLS.md 是协议参考;四个中文名文件按 00-03 编号——可行性分析、快速开始、5G IMS 提示词与用例、提示词速查表——编号即阅读顺序,这是一套写给中文电信工程师的上手教材(推断自命名)。注意这4份的名字:「提示词」直接写进了文件名。作者很清楚这个 Skill 的正确打开方式不是读代码,是抄用例——把现成的信令场景提示词喂给 Claude,让它去驱动楼下的产线。

然后是全件最有意思的一个文件。

第 3 层:件中件(references/SKILL.md)

官方规范里,SKILL.md 的合法位置是技能根目录,references/ 是放参考资料的普通目录。这位作者在 references 里又放了一份 SKILL.md——从目录语义推断,它是一份「二级启动文件」:当模型深入手册层时,用它重新对齐任务上下文。

这个民间玩法值得单独说。它实际上是把「渐进披露」做了两级:根 SKILL.md 负责召回和路由(第一级,常驻),references/SKILL.md 负责深入作业时的再定向(第二级,按需)。官方家族用 html2pptx.md、ooxml.md 这类普通 md 手册干的是同一件事,但不叫 SKILL.md。叫什么有区别吗?从机制上讲,非根目录的 SKILL.md 不会被注册器单独收录,纯粹是给模型读的语义标记——但正是这个「无效但有意」的命名,说明作者理解 Skill 机制的本质:文件名本身就是提示词。这一手不在任何官方范文里,属于生态自己长出来的暗器。

第 4 层:参数与产线层(models/ + scripts/)

models/ 三个文件——scenario、config、request——是一层数据模型,把「造什么包」抽象成了可配置对象(推断自命名)。楼下 scripts/ 的分工在命名里写得明明白白:base_generator.py 是底座,三条产线继承它——sbi_generator(5G 核心网服务化接口)、gtp_generator(用户面隧道)、sip_generator(IMS 语音信令)。这三条线恰好覆盖了 5G 排障的三大战场:注册信令、承载面、语音面。选线不贪多,是把一个工种的高频场景钉死,而不是做「万能造包器」——和官方 pdf 件「从最便宜的工具往上试」是同一种克制。

产线图画出来是这样:

flowchart TD
    A["SKILL.md 门牌"] --> B["references 中文手册"]
    A --> C["models 参数层"]
    B --> D["件中件二级门牌"]
    C --> E["base_generator 底座"]
    E --> F["sbi 核心网产线"]
    E --> G["gtp 隧道产线"]
    E --> H["sip 语音产线"]
    F --> I["scapy http2 扩展"]
    G --> J["scapy gtp 扩展"]
    H --> K["scapy sip 扩展"]
    I --> L["validators 校验"]
    J --> L
    K --> L
    L --> M["产出具回放价值的pcap"]

第 5 层:地基层(scripts/utils/)

三个 scapy_*.py 是全件技术含量最高的部分。scapy 是造包的通用工具,但它对电信协议的支持出了名的薄——GTP 隧道头、SIP 信令、HTTP/2 承载的 SBI 报文,都得自己一层层手搓协议栈。这三件工具的存在说明作者干过实话:通用库不够用的地方,自己补地基,而不是让模型每次现编协议字节。validators.py 则管出厂检验。配合 assets/batch_example.yaml,整条链路闭环:YAML 描述场景 → 模型层解析 → 产线生成 → 校验出货。

一句话总结这棵树:它是软件工程,不是提示词工程。models、scripts、utils、assets 的分层,放到任何一个正经 Python 项目里都不违和。

四、modifier 的考古层:五个「final」读出一部开发史

从 generator 楼上下来,去隔壁 modifier 看一眼,你会怀疑进了另一个作者的工作室——十一个脚本,名字是这样一个序列:

modify_pcap.py
modify_libpcap.py
modify_pcap_binary_direct.py
modify_5g_pcap_binary.py
modify_5g_pcap_core_pcap → modify_5g_pcap_final.py
modify_pcapng_final.py
deep_edit_pcapng.py
complete_modify.py
batch_modify.py
checksum_fixer.py
protocol_editors.py

(实际文件名以目录清单为准,上面按语义归并了两个。)读法很简单:凡是带 final 的脚本,前面一定死过一版。「binary_direct」「deep_edit」「complete」这些修饰词,记录的是一条典型的踩坑路径——先拿现成库改,不行;直接改二进制,也不稳;再对 pcapng 新格式来一遍……每一次方案切换都留下一具脚本尸体,没人清理。这是个人项目最诚实的地质剖面:generator 是装修好的样板间,modifier 是没来得及收拾的工地。

但工地里有两块真金。第一块是 checksum_fixer.py:改包必坏校验和——你改了报文一个字节,以太网帧、IP、TCP/UDP 的校验和全部作废,抓包工具直接判定坏包。把它做成独立脚本钉在工具箱里,等于把电信行当最疼的一条领域真理写进了架构。这种「把行业痛点固化成一个文件」的手法,比任何提示词技巧都值钱。第二块是 references/protocol-consistency.md:改了一个字段要联动改哪些关联字段,一份一致性清单(推断自命名)——它承认了一件很多 AI 工具不肯承认的事:协议字段不是孤立的,改一处动全身,得有人拿着清单对账。

五、analyzer:最轻的一件,和它没删的 TODO

三件里身材最小的是 analyzer:一份 SKILL.md、两份参考、三个脚本。references/tshark_commands.md 暴露了它的技术路线——读包不自己啃字节,靠 tshark(wireshark 的命令行)出报表(推断自命名)。和 generator 的 scapy 路线一对照,分工其实很聪明:造包用 scapy(要精细控制字节),读包用 tshark(解析能力现成最强),各用各的成熟轮子。

三个脚本里最有身份的是 registration_analyzer.py——5G 注册流程是排障的第一入口,UE 开机到上网中间任何一步断掉都有专属的死法(附着失败、鉴权不过、PDU 会话建立超时),把它做成专门脚本,说明作者是拿着真实工单练的手。至于根目录那份没删的 TODO.md——一个装进机器的 Skill 里还躺着施工日志,只有两种解释:作者没来得及,或者根本没打算装完。从生态视角看,这不是缺陷,是标本价值:绝大多数 Skill 的一生就是没写完,货架只展示写完的那百分之几。

六、它的房间,和房间里的邻居

generator 不是孤例,它住在一个完整的电信工位里。同一目录下还装着:free5gc 件(参考区躺着一份 xlsx 格式的 3GPP 规格清单和映射 json——用表格当知识库,和「把文件当 API」的官方 Obsidian 件是同一种世界观)、UERANSIM 件(这家伙把整个开源 5G 模拟器仓库吞了进来——CMakeLists、LICENSE、几十份 NGAP/ASN.1 接口文档、free5gc 与 open5gs 双核心的配置模板,参考区比正文大一百倍)、外加 3gpp-5g-specs、telecom-learning 系列等一整个街区。

这个街区的存在,把本期的问题从「这件做得好不好」升级成「货架为什么看不见它们」。答案不难猜:电信行当用户窄、术语门槛高、验收要真网环境,货架逻辑(装机量排序)天然歧视它们。但反过来说,货架看不见的地方,恰恰是后来者 least crowded 的赛道——本栏 9 月 21 日那句「真正干活的二线工位从来不在货架上」,本期算是给其中一个工位拍了出厂照。

七、适用与不适用

适用:5G/核心网/IMS 的测试与排障——造回归测试用的信令包、给 n3/iub 接口复现故障、改包做异常注入、教学演示信令流程。它把「搭环境抓真包」这个最贵的环节变成了「描述场景直接出货」,对 lab 工程师是实打实的生产力。

不适用:生产网真实流量分析(那需要真抓包,Skill 只能造合成流量);非 5G 生态的协议(三产线只覆盖 SBI/GTP/SIP,电力、车联网的定制栈不在射程);以及最重要的——它不是货架货,你大概率装不到:无仓库地址可考、无 star 可查、本期在线通道断供无法检索收录情况,一切以读者自己 npx skills find pcap 的实查为准。

安装与使用

三件均无货架收录记录,安装走手工路线:

# 1. 若你机器上已有(如本期样本机),确认在位:
ls ~/.claude/skills/ | grep pcap

# 2. 若从别处拿到目录,整包拷入技能目录:
cp -r pcap-generator ~/.claude/skills/

# 3. 依赖两条:Python 的 scapy 造包,tshark 读包
pip install scapy
sudo apt install tshark

# 4. 货架自查(本期断供未能执行,命令供读者复现):
npx skills find pcap

唤起靠说话,不需要记命令:「用 pcap-generator 造一条 5G 注册流程的包」「用 pcap-analyzer 分析这份抓包里注册卡在哪一步」「用 pcap-modifier 把这条 GTP 流量的目的地址改掉,记得修校验和」。

推荐排行榜

奖项 第一名 点评
设计样板(值得抄的骨架) pcap-generator 五层分层 + 件中件,全生态少见的手笔
开箱即用 pcap-analyzer 有 tshark 速查手册,门槛最低
领域真理固化 pcap-modifier checksum_fixer 一个文件抵十篇博客
生态稀缺度 三件套并列 货架空白赛道,别处真没有
最该先重构 pcap-modifier 十二个脚本该合并成三个了
最该被货架看见的街区 telecom corner 整体 供给真空,等一个有心人上架

把三个分数摆在一起看,结论有点刺眼:设计最重的 generator 拿 4.2,官方 pptx 上期拿 4.7,差的那半星恰恰是 generator 们永远缺的「社区活跃度」。好设计不等于好生态位——这是 Skills 生态五个月来最稳定的一条定律,也是货架之外那 140 件工具的共同命运。下一期 Round 3 横评开发者效率件时,我们会继续盯着这些不在货架上的工位。

参考来源

  1. [本机装机实测:~/.claude/skills/pcap-generator、pcap-analyzer、pcap-modifier 目录树](ls -R ~/.claude/skills/pcap-generator 可复现) — 本期全部结构事实的唯一底本,逐文件清点于 2026-09-24
  2. 本站存档:一台机器384个Skill:两百个名人住里面 — 今日装机普查,工具类占比与 pcap-analyzer 点名出处
  3. 本站存档:六件效率件,拆出四种活法 及 09-20 期 — 「二线工位只在装配里」与断供声明惯例的连续旁证
  4. 本站存档:官方pptx拆解:先看图再交稿 — 读/建/改三动词分诊范式,本期跨家族对照的参照系
  5. 货架入口(本期在线通道断供未能访问核实,仅列入口备查):skills.sh、mcpservers.org/agent-skills、github.com/anthropics/skills — 三件套在上述货架的收录情况未经核实,文中相关判断均已标注

[!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 等场景全覆盖。

51学通信知识星球海报-扫码加入