Configuration And Privacy Standards
本文件检查配置模板、本地配置隔离和公开内容去具体化。
配置文件命名
| 检查项 | 状态 | 说明 |
|---|---|---|
示例配置使用 *.example.* |
✅/⚠️ | 如 review-profile.example.yaml |
本地配置使用 *.local.* |
✅/⚠️ | 如 review-profile.local.yaml |
真实配置被 .gitignore 忽略 |
✅/❌ | config/*.yaml 可忽略,*.example.yaml 例外 |
| 机器验证合同可版本化 | ✅/⚠️ | 不含凭证、只声明约束/验证关系的合同可提交,如 instruction-stability-contract.json |
| 示例字段与实际规则匹配 | ✅/⚠️ | 避免提供无效模板 |
机器验证合同不是个人/运行时“真实配置”。它必须进入候选清单并随版本审查,才能绑定当前约束;仍不得含 endpoint、凭证、本机绝对路径或真实业务材料。
evaluator Ed25519 私钥属于独立 reviewer/CI 的离线签名凭证,不是合同或示例配置。私钥不得写入候选、baseline、held-out manifest、producer log、报告、环境变量或候选可读工作区;只允许在不执行候选代码的签名步骤通过 --private-key 指向权限受限文件。动态 verify 与 verify-receipt 只读取候选外公钥,不接触私钥,也不向候选 checker 传递签名凭证。
审查配置模板
用于个人或项目审查偏好时,应提供可复制的 example:
- 普通 frontmatter 必需字段
- 发布字段策略
- 第三方审查策略
- 公开内容去具体化规则
- 严重程度映射
- 报告是否暴露本地配置值
本地配置只作为审查上下文,不写入报告原文,除非用户明确要求公开。
公开文件范围
以下文件不得包含真实业务信息:
SKILL.mdreferences/*.mdCHANGELOG.mdTASKS.mdDECISIONS.mdconfig/*.example.*- 公开 README 或发布索引
去具体化规则
| 检查项 | 状态 | 说明 |
|---|---|---|
| 使用占位符 | ✅/❌ | 如 <客户名称>、<示例案号> |
| 无真实人名 | ✅/❌ | 包括律师、客户、当事人、联系人 |
| 无真实客户或公司名 | ✅/❌ | 示例应泛化 |
| 无真实案件项目 | ✅/❌ | 项目代号、案件简称也要避免 |
| 无案号、手机号、邮箱、地址 | ✅/❌ | 可识别信息必须去除 |
| 无可反查组合信息 | ✅/⚠️ | 法院 + 案由 + 时间等组合也可能定位 |
智能判断
不要只依赖关键词黑名单。审查时判断文本是否像真实业务材料:
- 自然人姓名或完整公司名称
- 客户简称与项目阶段组合
- 法院、案由、时间、金额组合
- 真实平台账号、手机号、邮箱、地址
- 看似普通但与上下文组合后可定位的事项
无法确认是否真实时,标为“疑似具体信息”;明显真实或可识别时,按严重问题处理。
密钥与敏感配置
| 检查项 | 状态 | 说明 |
|---|---|---|
| 无 API Key、Token、密码 | ✅/❌ | 公开文件中一律不得出现 |
不读取用户全局 .env |
✅/❌ | 避免跨项目泄露 |
需要密钥时提供 .env.example |
✅/⚠️ | 只写变量名,不写真实值 |
| 安装和配置说明就近出现 | ✅/⚠️ | 用户首次需要时能看到 |
设计理念(为什么这样要求)
去具体化不是文档洁癖,而是因为 Skill 是可分发的、会进入别人上下文的产物。隐私类建议在报告里要带一句话理念,可直接引用以下表述。
- Skill 可分发,公开内容必须去具体化:Skill 会被复制到容器、跨工作区、进入任何加载它的会话。内嵌的真实客户名、案件号、内部账号、真实人名会随之扩散到任何场景,造成冒用、误导或合规风险。公开部分必须泛化为占位符。对应"使用占位符""无真实人名/客户/案件/可反查组合"。
- 报告话术:「示例里出现真实客户名或案件号——Skill 会随分发进入各类会话,真实锚点会扩散。替换为泛化占位(如
<客户A>、<示例案号>)。」
- 报告话术:「示例里出现真实客户名或案件号——Skill 会随分发进入各类会话,真实锚点会扩散。替换为泛化占位(如