reverse-skills-max: initial public release (restored, redacted, hardened)
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
# PR #43 / #37 / #36 / #23 本地审查与集成报告
|
||||
|
||||
- 日期:2026-08-08
|
||||
- 基线:`origin/main` at `6315d02`
|
||||
- 审查分支:`codex/review-pr-43-37-36-23`
|
||||
- 范围:只审查四个 PR 相对当前主线的增量价值;不执行外部目标动作
|
||||
- 结论:四个 PR 均有可复用价值,但只有 #43、#37 适合保留主体;#36、#23 必须选择性集成
|
||||
|
||||
## 执行摘要
|
||||
|
||||
| PR | 相对主线价值 | 集成决定 | 关键边界 |
|
||||
|---|---|---|---|
|
||||
| #43 | 很高 | 保留结构化路由、163 条当前回归基准、双平台 CI、供应链 pin gate、动态索引 | 删除 OpenCode 配置、安装器和专属代理;核心不绑定任何客户端 |
|
||||
| #37 | 高 | 合并 case-review、证据图审查、哈希校验与单测,并增加 R40 | 同时接受 `done` 与当前约定的 `completed` |
|
||||
| #36 | 中高 | 选择性合并 Burp 重连/换行消息处理、原子 token、Anything Analyzer 鉴权、进程树与 sudo home 修复 | 拒绝“所有能力一律 ready”等语义回退 |
|
||||
| #23 | 中(整包偏低) | 仅合并 Bash case-init、case-guard、结构化 Bash 路由和 CI parity | 排除 92 文件中的客户端清单、GIF、演示生成物和硬编码路由副本 |
|
||||
|
||||
## 平台边界
|
||||
|
||||
结构化路由的唯一事实源是 `skills/config/routing.json`。PowerShell 与 Bash 入口都读取该文件;宿主客户端只允许作为可选适配器存在,不能决定仓库身份、路由规则、测试基准或安装路径。
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
C["任意宿主 / CLI / Agent"] --> A["可选适配层"]
|
||||
A --> R["routing.json 单一事实源"]
|
||||
P["PowerShell router"] --> R
|
||||
B["Bash router"] --> R
|
||||
R --> S["41 条路由 / 42 个已跟踪技能模块"]
|
||||
R --> T["163 条回归基准"]
|
||||
T --> W["Windows CI"]
|
||||
T --> L["Linux CI"]
|
||||
```
|
||||
|
||||
## 审查发现与修正
|
||||
|
||||
1. #43 的设计价值来自结构化数据与自动门禁,而不是 OpenCode 接入。所有 OpenCode 专属文件与 CI job 已移除。
|
||||
2. #37 原实现只识别 `done`,会把主线使用的 `completed` 误判为未完成;已补兼容与第 7 条单测。
|
||||
3. #36 的桥接重连和 token 写入是净增益;其能力状态改写会制造假阳性,未合并。
|
||||
4. #23 的 Bash router 原样复制硬编码表,会立刻与 #43 的 R40/priority 漂移;已重写为读取 `routing.json`,并在 CI 校验 R1/R3/R40 parity。
|
||||
5. 新 supply-chain gate 暴露 Kali manifest 的 7 个浮动安装源。已固定 Frida 14.10.4、IDA MCP commit、Agent Browser 0.31.1、ProxyCat commit、Nuclei v3.8.0、pwntools 4.15.0,并让安装命令实际使用这些 pin。
|
||||
6. 推送后强制复审发现 Bash `case-init` 未继承 CaseName 路径约束;已拒绝路径、控制字符、通配符与尾随点/空格,并加入负向 CI。
|
||||
7. Bash 的授权 URL 曾错误落入 `offline` 且可能 ready;已与 PowerShell 对齐为 `authorized_target_only`,明确 offline 只接受本地样本。
|
||||
8. Bash `case-guard` 现只从 `auth`、`network_profile`、`signoff` 对应章节取值,notes/证据中的伪字段不能通过门禁。
|
||||
9. Kali ProxyCat 固定源码安装现会生成可探测的 `~/.local/bin/proxycat` wrapper;CI checkout 也从可变 tag 固定到 v4.2.2 commit。
|
||||
10. 原动态 INDEX 在开发机误收录了 12 个 `.gitignore` 排除的本地模块,干净 clone 会失败;生成器现只枚举 Git 已跟踪 skill,clean clone 与带私有扩展的工作区都稳定为 42 个核心模块。
|
||||
|
||||
## 相对旧主线的量化提升
|
||||
|
||||
使用同一组 163 条基准分别调用旧主线硬编码 router 与新结构化 router,每条均在独立 PowerShell 进程运行:
|
||||
|
||||
| 版本 | 通过 | 准确率 | 无输出 |
|
||||
|---|---:|---:|---:|
|
||||
| 旧主线 `6315d02` | 137 / 163 | 84.05% | 0 |
|
||||
| 当前结构化实现 | 163 / 163 | 100% | 0 |
|
||||
|
||||
绝对增加 26 条正确路由、提升 15.95 个百分点。改善覆盖 Frida/Android、证书与 root 检测、抓包重放、勒索软件、Burp/Metasploit、Go 二进制、BLE、USB、native `.so`、内存 dump 等旧实现会回退 R0 的场景。
|
||||
|
||||
## 验证结果
|
||||
|
||||
| 验证项 | 结果 |
|
||||
|---|---|
|
||||
| 结构化路由全量回归 | 163 / 163 通过 |
|
||||
| 路由一致性与供应链 pin gate | 通过 |
|
||||
| PowerShell smoke | 通过 |
|
||||
| P0 friction / scope-guard 回归 | 通过 |
|
||||
| 旧版/新版 163 条 A/B | 137/163 → 163/163 |
|
||||
| case-review Python 单测 | 7 / 7 通过 |
|
||||
| Burp bridge Node 回归 | 1 / 1 通过 |
|
||||
| Bash router/case-init/case-guard parity | 通过 |
|
||||
| PowerShell、Bash 语法与 JSON 解析 | 通过 |
|
||||
| Java 编译检查 | Gradle 8.7 分发下载被本机证书吊销网络阻塞;改用 Maven Central 的声明依赖与 JDK 21,`McpHttpServer.java` 编译通过 |
|
||||
|
||||
## 剩余风险
|
||||
|
||||
- Bash 结构化路由依赖 Python 3;这是显式运行依赖,但避免了第二份路由表。
|
||||
- 固定依赖版本需要周期性、显式升级,不再隐式追随 `latest`。
|
||||
- 客户端适配仍可继续扩展,但必须保持核心数据与测试完全宿主无关。
|
||||
- 本机未完成 Gradle task 层测试;原因是 128 MB wrapper 分发下载受证书吊销网络与低速链路阻塞,已用同版本依赖完成改动 Java 源文件的独立编译检查。
|
||||
|
||||
## 最终建议
|
||||
|
||||
合并当前审查分支的选择性结果,不合并四个 PR 的原始整包形态。后续 PR 应按“核心路由 / 宿主适配 / 演示资产 / 文档”拆分,便于独立审查与回滚。
|
||||
@@ -0,0 +1,44 @@
|
||||
# 2026-08-08 开放 PR 价值评估与合并报告
|
||||
|
||||
## 结论
|
||||
|
||||
基于最新 `origin/main` 审查 8 个开放 PR。本轮合并 #59、#19、#22、#29;暂缓 #43、#37、#36、#23。合并后的 smoke 与 routing coherence 检查均通过。
|
||||
|
||||
## 评估结果
|
||||
|
||||
| PR | 价值 | 风险/状态 | 决策 |
|
||||
|---|---|---|---|
|
||||
| #59 | Rust cdylib 差分复现方法完整,可复用性高 | 仅 journal 与索引,无可执行代码 | 合并 |
|
||||
| #19 | Windows 24H2 工具链兼容经验覆盖广 | 仅 journal 与索引 | 合并 |
|
||||
| #22 | Electron/Bytenode/更新链分析方法完整 | 仅 journal 与索引 | 合并 |
|
||||
| #29 | Next.js 双 API serializer 与契约重建经验完整 | 仅 journal 与索引 | 合并 |
|
||||
| #43 | 路由单一事实源、回归基准、CI 与版本固定价值很高;客户端接入只能作为可选适配层 | 38 文件、与主线 4 个关键文件冲突,原提案含 OpenCode 专用配置 | 暂缓,建议 rebase 后专项审查;不得让核心绑定 OpenCode |
|
||||
| #37 | evidence graph/case review 能补齐交付审计 | 与主线路由校验和文档冲突 | 暂缓,建议 rebase 后运行其单测 |
|
||||
| #36 | MCP/自举安全加固方向正确 | 6 个关键文件冲突,部分能力已由近期主线吸收 | 暂缓,做差分去重 |
|
||||
| #23 | Bash parity 与展示材料有生态价值 | 92 文件、展示资产多、2 个脚本冲突 | 暂缓,建议拆分 PR |
|
||||
|
||||
## 决策图
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A[开放 PR] --> B{仅文档与脱敏 journal?}
|
||||
B -->|是| C{内容完整且方法可复用?}
|
||||
C -->|是| D[合并并统一索引]
|
||||
C -->|否| E[要求补充]
|
||||
B -->|否| F{核心脚本冲突或变更面过大?}
|
||||
F -->|是| G[暂缓并要求 rebase/拆分]
|
||||
F -->|否| H[隔离运行测试后再决定]
|
||||
```
|
||||
|
||||
## 验证
|
||||
|
||||
- `skills/scripts/smoke.ps1`: ALL PASS(9 个脚本解析、8 个路由用例)。
|
||||
- `skills/scripts/verify-routing-coherence.ps1`: ALL ROUTING COHERENCE CHECKS PASSED。
|
||||
- 用户原有未提交 journal 在同步和合并期间通过 stash 隔离保存并恢复。
|
||||
|
||||
## 后续建议
|
||||
|
||||
1. 优先让 #43 rebase 到当前 `main`,重点复核 JSON 路由等价性、供应链 pin gate 与跨平台路径。
|
||||
2. 让 #37 单独 rebase,并运行 `skills/case-review/tests/test_review_case.py`。
|
||||
3. 对 #36 与已合并的安全修复逐文件比较,只提取尚未覆盖的测试或边界处理。
|
||||
4. 将 #23 拆成 Bash parity、插件元数据、演示资产三个独立 PR。
|
||||
Reference in New Issue
Block a user