79 lines
4.9 KiB
Markdown
79 lines
4.9 KiB
Markdown
# re-feedback 网关设计(2026-08-18)
|
||
|
||
## 背景与问题
|
||
|
||
aiHK/re-skills 是 88 个逆向工程技能库(1 入口 re-analyze + 11 大类网关 + 76 原子技能),公开发布(npm + 插件市场)。
|
||
|
||
现有经验流:`wxsource.mjs` 抓看雪/微信文章 → 手动蒸馏成「坑」条目 → 就近写入对应技能 SKILL.md → commit(如「经验: 第八轮扫描入库4篇」)。
|
||
|
||
缺失能力:
|
||
- 实战分析会话的经验回馈通道(分析完踩的坑没有沉淀路径)
|
||
- 用户手动投喂经验的入口
|
||
- 统一的呈现与隐私规范
|
||
|
||
## 目标
|
||
|
||
新建第 12 个网关技能 `re-feedback`(**元网关**——管理技能库自身的经验,不分析 RE 目标),实现:
|
||
|
||
1. **收集**:三源归一——分析会话复盘 / 文章扫描蒸馏(wxsource.mjs)/ 用户手动输入
|
||
2. **蒸馏**:按「坑」格式产出条目,并强制脱敏
|
||
3. **归域**:条目映射到具体技能
|
||
4. **三档处理**(中性呈现,用户自决):① 发表 issue ② 本地入库 ③ 不入库
|
||
5. **钩子**:re-analyze 流程末尾加「可选经验复盘」步骤
|
||
|
||
## 设计原则(两条红线)
|
||
|
||
### 呈现中性原则
|
||
- 呈现选项/方案时**禁止「最推荐」「强烈建议」等最高级/强推措辞**,推荐最多到「推荐」级
|
||
- 选项不带推荐标注,只中性列出选项与适用场景,用户凭内容自决
|
||
- 类比:视频加背景音乐,画面情绪被音乐带走——强推措辞会绑架用户判断,不允许
|
||
|
||
### 隐私脱敏原则
|
||
- 蒸馏产物**不允许具体到某一个项目**(公司/产品/目标样本名),**暗示也不行**(可推断身份的行业+规模+地域组合、专有协议名、内部代号、独特技术特征组合一律禁止)
|
||
- 目标泛化为通用描述(「某移动应用」「某嵌入式设备」「某通信协议」),条目只留技术结论(现象/原因/对策)
|
||
- 来源字段:实战会话 → 只写「实战分析会话」+ 时间(如 `2026-08 实战会话`);文章扫描 → 可保留公开文章标题/URL
|
||
- **本地入库同样受约束**:技能库公开发布(npm + 插件市场),本地即公开
|
||
- 入库/发 issue 前做**脱敏自检**:列出条目中所有专有名词逐项确认已泛化;任一不通过则回炉重蒸
|
||
|
||
## 目录结构
|
||
|
||
```
|
||
.claude/skills/re-feedback/
|
||
├── SKILL.md # 网关:完整工作流 + 选择树 + 常见坑
|
||
└── references/
|
||
├── intake.md # 蒸馏方法论:坑条目格式、脱敏规则、归域决策表、去重规则
|
||
└── issue-template.md # issue 正文模板(gh 提交与草稿共用)
|
||
```
|
||
|
||
- **每技能新增** `references/experience.md`(经验全集,条目带来源与日期;无 references 目录的技能新建)
|
||
- 各技能 SKILL.md「常见坑与陷阱」:保留精选 + 追加链接到本技能 experience.md
|
||
- re-analyze/SKILL.md:第三步编排后加「第四步(可选):经验复盘」→ 调用 [[re-feedback]]
|
||
|
||
## 工作流(5 步)
|
||
|
||
1. **收集**:三源归一——会话复盘摘要 / 文章 URL 或文本(可走 wxsource.mjs 抓取)/ 手动输入
|
||
2. **蒸馏**:每条按坑格式 `**标题**:现象——…;原因——…;对策——…`;「坑」(避坑)与「方法」(方法论)统一格式;**同步脱敏**(见隐私脱敏原则)
|
||
3. **归域**:主题 → 技能映射(决策表 + grep 技能库兜底 + 不确定时问用户,不猜)
|
||
4. **三档处理**(中性呈现,不带推荐标注):
|
||
- **① 发表 issue**:探测 `gh`(`which gh` + `gh auth status` + 仓库可达)→ 可用则 `gh issue create --repo DslsDZC/aihk --label 经验`,标题「经验: <技能>: <一句话>」,正文按 issue-template.md(技能名/现象/原因/对策/来源);不可用 → 输出 markdown 草稿供手动提交
|
||
- **② 本地入库**:grep 去重 → 追加到该技能 `references/experience.md`(含来源+日期)→ SKILL.md 精选同步或加链接 → `npm test` 校验
|
||
- **③ 不入库**:确认后结束
|
||
5. **(文章扫描路径可选)commit**:「经验: 第N轮扫描入库X篇——<篇目>」,message 列出每技能新增条目
|
||
|
||
## 错误处理
|
||
|
||
| 情况 | 处理 |
|
||
|---|---|
|
||
| gh 未装/未登录/仓库不可达 | 降级为草稿输出 |
|
||
| gh 报 label「经验」不存在 | 去掉 --label 重试,或提示用户先创建 label |
|
||
| 归域不确定 | 问用户,不猜 |
|
||
| 条目重复 | 跳过并告知 |
|
||
| npm test 失败 | 修复格式后再入库 |
|
||
| 脱敏自检不通过 | 回炉重蒸,不入库/不发 issue |
|
||
|
||
## 校验与测试
|
||
|
||
- `validate.mjs` 自动覆盖新技能:frontmatter(name=目录名、description、type: gateway)、[[链接]] 完整性(re-feedback 目录存在后 [[re-feedback]] 链接即合法)
|
||
- type: gateway 豁免「工具准备」章节校验
|
||
- 手工验证:`npm test` 全绿 + 用一条样本经验走通三档处理
|