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

5.1 KiB
Raw Blame History

技能模板规范

原子技能结构

每个技能目录: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-<技能名>]]、[[<文件名>]])——它不会被解析成真链接,避免文档示例触发死链报错