11 KiB
rev-skills ToDo
待办事项列表。完成一项勾选一项(- [x]),保留历史记录。
-
事实性缺陷修复(批 1,16 项)(2026-09-13 记录,来源:外部 AI 审查 + 本库逐条核验)
记录与核验结论:
docs/audit/2026-09-13-factual-audit.md(高 11 / 中 5,误报 0;含每项修正方向、核验依据与来源清单)。修复优先级(按「会被 Agent 直接执行错」排序):re-android-crypto(2)→ re-mobile-forensics(3)→ re-automotive(1)→ re-riscv(1)→ re-dotnet(2)→ re-ai-model(2)→ re-macos(2)→ re-forensics 路由(1)→ 熵表述收敛(2 处)
- 高严重度 11 项:已修复(2026-09-13)
- 中严重度 5 项:已随所属技能一并修(2026-09-13)
- 批 2(监控新增 4 项 + 自查 1 项:Frida 17 迁移 9 文件 /
retval.replace/ scapystartAddr/ angr 版本线 /Memory.readCString):已修复(2026-09-13) - 批 3(监控第二轮 16 项:15 确认已修——candump/tsk_recover/mmls gap/Rich Header/TLS 位宽/RELRO/扩展编号/__LINKEDIT/VMCS/KVM nested 等;1 误报未改):已修复(2026-09-13)
- 工程性问题:历史文档污染——
docs/superpowers/README.md存档声明 + 2 处旧错误就地标注 + CLAUDE.md 加注(2026-09-13) - 工具链一致性问题(#38,用户报告):frontmatter 规范与解析器不一致——validate 不支持块标量致 104/121 个 description 校验空转;已抽
lib/frontmatter.mjs单一实现(validate/convert 共用)+ 6 条回归测试(2026-09-13) - 触发词双语校验(#39,用户要求):description 须同时含 CJK 与拉丁字母,validate 强制 + 规格三处同步(存量 121 技能全量核查无违例)(2026-09-13)
- 能力层部分闭环(#40,用户报告):悬空标签清零(标签 52/52 有声明,补 14 个技能)+ 能力索引生成与过期检查(
bin/capindex.mjs)+ 悬空检查(2026-09-13) - 能力层剩余缺口闭环(#42,用户要求):① 技能覆盖 119/121(原子 108/108 全声明;路由暴露的标签缺口补 12 个,52→64)② triage/rerouting 改为按能力匹配(两表加「需要能力」列 + 索引反查 + 4 条 CI 防漂移检查)(2026-09-13)
- 网关选择树能力标注(#43,用户要求):11 个网关选择树 + 完整工作流段共 336 处链接标注(能力:
tag),选择树 100% 覆盖;约定加显式「能力:」前缀消歧;CI 校验标注与声明一致(2026-09-13) - seL4 分析分支(#46,用户提供):re-kernel 第五平台分支
sel4-kernel.md(capability 系统:CPtr 本地地址/capDL·CAmkES/badge 与 rights/错误码即诊断/device untyped/用户态 IRQ 与 DMA 旁路/fault IPC/MCS/capDL snapshot)(2026-09-13) - 内核覆盖跨平台化(#45,用户要求):re-kernel 重构为「失败模式决策表 + 四平台分支」(Windows/Linux LKM/macOS KEXT 与 DEXT/Android GKI);采集侧同步内核段(2026-09-13)
- references 同名歧义治理(#47,用户决策「限定技能前缀」):471 处跨技能裸引用加
[[re-xxx/文件名]]前缀;validate 扩到 references 文件内校验;占位符改用尖括号形式(2026-09-13) - 新增 re-sample-acquire(#44,用户要求):补现场采集环节(只有现象、没有样本)——SKILL.md + 四平台分支(Windows VAD/线程、Linux VMA/BPF LSM、macOS Mach VM/Endpoint Security、seL4 capability provenance);能力标签
sample-acquisition;计数 121→122(2026-09-13) - 数据契约去文件域化(#41,用户报告):analysis-contract 改为「核心字段 + 10 个域扩展字段」两层(SDR/CAN/AI 模型/TEE/取证等域各有字段组),上下文清单按域展开,消费侧 2 处同步(2026-09-13)
- 复核后回填状态(fixed → verified)(2026-09-14):复核方式改为回归断言——
tests/audit-regressions.test.mjs把 #1–#21 与补充 22/23 的已修事实写成 22 条永久检查(错的说法不得再作为正确写法出现)。一次完成复核与防回归;复核中发现三处"失败"实为技能里刻意保留的迁移对照说明("旧写法 X 已移除"),据此给断言加了否定语境识别 - 待定:是否给全部 27 个历史文档统一加头部横幅(当前只标注了含已知错误的 2 个)
-
工具 CLI/API 生命周期审查(2026-09-13 记录,来源:外部抽样审查的结论)
观察:领域知识本身已比工具操作层稳定——新的主要缺陷来源变成「命令/API 生命周期」与「示例代码没真正 smoke-test」。样例:Volatility 3 的插件路径重组(
windows.hashdump→windows.registry.hashdump,旧别名标记 2026-09-25 移除);同一工具族的符号获取机制在 Windows 与 Linux/macOS 完全不同,写成一套即错。关键区别:"源码目录变了"不等于"命令行调用名变了"——malfind 的源码在
windows/malware/下,但调用名仍是windows.malfind。按目录结构改命令会引入新错误。- 第三方命令/API 清单(2026-09-13):
docs/audit/tool-register.json(140 项,含工具名 / kind / 引用它的技能 / 上次核验日期 / 核验来源 / ignore 名单)+lib/tool-register.mjs(抽取与比对)+bin/toollife.mjs(check / candidates / stale / smoke) - 版本漂移检查(2026-09-13):
check报"已核验 / 超期 / 待核验积压"三档 + 死条目即失败(登记为在用但技能里已找不到);stale按超期排序供下一轮审查波取用;smoke做本机存在性探测(仅报告,不进 CI——CI 机器不必装这些工具) - 候选发现(2026-09-13):技能里出现但未登记且不在 ignore 名单的命令会被列为候选,仓库自身的那条已作为测试常驻(
tests/toollife.test.mjs)——新增第三方工具而不登记会直接让npm test失败 - 示例可执行性(2026-09-13):
lib/skill-examples.mjs+bin/examplecheck.mjs(npm run examples)——对 python / shell 块做语法检查(不是执行:不跑网络、不装依赖),含去缩进、占位符中和、调试器会话识别、sh 块内嵌 python heredoc 的单独检查。首轮抓出 3 处真错(angr 的0x4011xx不是合法 Python)+ 2 处语言标错(Haskell/Nim 源码写在 ```sh 块里)。有解释器时随npm test跑,否则跳过 - 风险分层(2026-09-13):
deriveRisk按断言类型(写死层级路径/版本号 vs 只点名工具)分高/低风险,出现面作严重度——现 134 项积压中高风险 40、低风险 94,npm run toollife按影响面给出建议顺序 - 首批回填(2026-09-13):6 项(vol / frida / candump / mmls / tsk_recover / readelf)——均为本会话审查波中确实核验过 CLI/API 形态的
- probe.sh 工具清单由登记表生成(2026-09-14):
lib/probe-tools.mjs+bin/probelist.mjs——此前 probe.sh 硬编码 19 个工具而登记表已有 137,RE_TOOLS反映不出环境实况(装了的可能不被用)。现为生成物 +--check校验,npm test已含。顺带修两处:free输出本地化导致 MEM_GB 恒为空(固定LC_ALL=C);dd/hexdump属基础工具,移出登记表 - 核验剩余 131 项积压:按
npm run toollife的高风险顺序分批做(高风险 39 / 低风险 92),每批完成后回填last_verified与source - 与「增量审查机制」合并设计:两者共用"变更检测 + 记录状态"的骨架——已合并:登记表用
last_verified,审查状态用hash + last_reviewed,同一套状态模型
- 第三方命令/API 清单(2026-09-13):
-
re-kernel 是否拆分(已决:不拆)(2026-09-14 评估)
曾担心
re-kernel合计 3745 行 / 23 分支过大。实测口径错了:技能是"按需加载"的库而非单体文档——每次都会加载的只有 SKILL.md(177 行),分支各 200–500 行、用到才读。与同类网关对比:re-rtos197 行、re-hypervisor169 行、re-analyze117 行——re-kernel 的常驻成本并不突出。拆分反而有代价:新增 5+ 个技能(计数要同步六处)、把失败模式决策表(跨平台"症状 → 先怀疑什么")割裂——那正是该技能最有价值的部分——且不降低常驻成本(每个新技能自己也要前言与工具准备)。
真正要防的是 SKILL.md 膨胀成单体,已加
tests/skill-budget.test.mjs(SKILL.md ≤240 行、单分支 ≤600 行、必备章节仍在)。顺带修一处:re-kernel 用「## 通用主线」代替模板规定的「## 操作步骤」,已改为「## 操作步骤(跨平台通用主线)」。 -
增量审查机制(2026-08-29 记录,来源:aiskillstore skill-report.json 机制调研)
2026-09-13 更新:批 1 finding 已按本机制的状态机(open → fixed → verified)记录,见
docs/audit/2026-09-13-factual-audit.md——可作为首个落地样例参考。现状痛点:审查波是全量式——每波把整批技能从头审一遍,已确认部分(如 re-go 断言、re-address-space 归因)被反复重审,浪费 token 和时间。
目标:审查成本从 O(技能总数) 降到 O(变更数)。
方案要点(参考 skillstore 的 skill-report.json 设计):
- 每技能一份审计记录(简化版:内容 hash + 结论 + finding 状态),随技能进仓库(2026-09-13):
docs/audit/review-state.json—— 122 技能,每项{ hash, last_reviewed, note }(用单一文件而非 122 个文件:同一份状态要整体比对,分散反而增加维护面) - 审查波改增量(2026-09-13):
node bin/auditstate.mjs status直接列出「内容在复核之后又变了」的技能——这就是下一轮审查波的工作集;复核完update <技能>回填。成本从 O(技能总数) 降到 O(变更数) - finding 状态机 open → fixed → verified(2026-09-13):已在
docs/audit/2026-09-13-factual-audit.md落地(open → fixed;verified 为待补的下一步) - 报告生成 + 增量审计入口(2026-09-13):
npm run audit:status/npm run audit:update;另有一条测试断言状态文件覆盖全部技能(无缺失、无多余、已删技能会自动清理并告警) - validate.mjs 内联扩展(未做,改设计):不把审查状态塞进结构校验——它需要写盘与日期,与 validate 的纯读校验性质不同;改为独立脚本 + 一条测试断言,保持 validate.mjs 的单一职责
- (可选)审计履历沉淀后可作发布质量背书
- 每技能一份审计记录(简化版:内容 hash + 结论 + finding 状态),随技能进仓库(2026-09-13):