Files
reverse-skills-max/vendor-new/rev-skills/docs/skill-template.md

37 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 技能模板规范
## 原子技能结构
每个技能目录:`SKILL.md`(必含)+ 可选 `references/`(深度知识、gotchas)。
SKILL.md 章节(顺序固定):
1. frontmatter:`name`(=目录名,re- 前缀)、`type`(原子技能可省略或 `atomic`;入口用 `entry`;网关用 `gateway`)、`description`(中英触发词 + 何时使用;**validate.mjs 强制双语**——须同时含 CJK 与拉丁字母,否则 `npm test` 失败)、`capabilities`(可选,见能力注册表 references/capabilities.md)、`guard`(**可选但敏感技能必须**——机器可读安全前置声明,JSON 格式:`{"require_authorization": true, "forbidden": ["行为标签"]}`;validate.mjs 校验结构;入口按 `RE_AUTH`(owned/ctf/research/unknown)联动——require_authorization=true 时仅 owned/ctf/research 可执行,unknown 只做静态分析并先询问归属)
2. `# 标题`(中文,如 "脱壳:压缩壳(UPX/ASPack/FSG)")
3. `## 任务分类器(intent → 路径)` —— **可选但推荐**:多分支技能(一个技能含多个子任务族)在「何时使用」前加用户目的 → 路径映射表(如 re-ai-attack:怀疑模型被复制→fingerprint / 判断训练数据泄露→membership / 测试 API 可复制性→extraction / 测试鲁棒性→adversarial),路径指向操作步骤编号;单任务技能可省略
- 多分支技能**建议同时加「输入资产盘点(INPUT INVENTORY)」**:路径命中后确认已有资产(API/模型/数据集/副本/基线),缺资产先索要或说明局限——不同资产组合决定不同路线
- **入口判定(Decision Gate)**——目标形态判定树(供自动调度分流):目标出现先判形态再选技能,如 Android 域:APK→lib/*.so 存在?→ re-android-native / re-apk;单独 so→JNI 符号?→ re-android-native / re-binary-core;加固→re-anti-analysis;crypto→re-android-crypto。多输入形态技能(so/APK/固件/流量)必加,单形态技能可省略
- **输入适配(Input Adapter)**——输入驱动类技能(符号执行/协议解析/模糊测试)必加:以 symbol source 表抽象输入形态(stdin/argv/file/memory/network buffer/jni argument/custom bytecode),不默认单一输入通道(样板 re-angr 步骤 1:CTF 的 stdin 只是多种符号源之一,真实目标可能是网络包/mmap/JNI 参数)
4. `## 何时使用 / 何时不用` —— 明确边界,防误触发
5. `## 工具准备` —— 必含:每个工具给出 apt / dnf / pacman / brew / pip / cargo / choco 安装命令 + 验证命令 + OS 分支(Linux/macOS/Windows/WSL 替代方案);引用 [[platform-tips]] 相关分支
6. `## 操作步骤` —— 可执行、具体,沿用 porting-minecraft-mod 的硬性执行风格(不省略、不"类似处理")。**知识/操作分离**:机制原理(知识层)保留在核心流程,易变参数(槽位索引/offset/运行时实现细节,随 SDK/运行时版本变化)不写进核心流程——集中到 `references/probes.md` 类探针文件(运行时探测与校验为准,样板 re-android-native 的 RegisterNatives 槽位)。**四层内容分离**(复杂技能必循,样板 re-ai-attack):
- **Method Overview**:每步开头一句话「目标/方法本质」(如「通过 API 查询重建近似模型——蒸馏」)
- **Operational Checklist**:步骤编号子列表(可勾选执行),只含动作与产出
- **Failure Modes**:坑与失败模式(SKILL.md 坑节 + references/gotchas.md)
- **Implementation Notes**:实现经验(soft label 优于 hard label 这类)集中到 `references/implementation-notes.md`,步骤内只留一行「见 [[implementation-notes]]」引用——流程与经验不混杂
- 可观测性驱动类技能(攻击/指纹域)在标题后加 `## CORE RULE`(如「攻击面由可观测性决定,不由攻击名称决定」+ 观测性表格)
7. `## 跨域联合` —— 本技能在哪些复合任务中被其他大类引用(写 [[技能名]] 链接)
8. `## 常见坑与陷阱` —— 至少 3 条具体经验(来源:platform-tips + Task 15/16 调研产出)
## 网关技能结构
1. frontmatter(同原子技能,description 声明"网关")
2. `# 标题`
3. `## 完整工作流` —— 该大类从头到尾的流程(步骤编号)
4. `## 何时用哪个原子技能(选择树)` —— 按输入特征/目标列选择分支
5. `## 跨域联合` —— 规格 2.4 的联合场景表(该网关相关行),含 [[链接]]
6. `## 常见坑与陷阱`
## 多工具兼容约束
- 正文纯 Markdown,禁止工具私有语法
- frontmatter 标准 YAML
- 引用统一用 `[[技能名]]`;引用本技能的 `references/` 文件用裸名 `[[文件名]]`;**跨技能**引用别人的 references 必须限定技能前缀 `[[re-xxx/文件名]]`(同名文件普遍,裸链会歧义——validate.mjs 强制,**references/ 内也校验**)
- 文档里写**占位符**时用尖括号形式(`[[re-<技能名>]]`、`[[<文件名>]]`)——它不会被解析成真链接,避免文档示例触发死链报错