隐私与个人身份信息(PII)纪律
ZeroClaw 制品都是公开的:git 历史、发布版本、测试夹具、快照、文档手册,以及所有已渲染的语言版本。你提交的任何内容都会随项目永久发布。请将隐私视为合并门槛,而非尽力而为的目标。
切勿提交这些内容
在代码、文档、测试、夹具、快照、日志、示例、错误消息或提交消息中:
- 真实姓名
- 个人电子邮件地址
- 电话号码、地址
- 访问令牌、API 密钥、凭据
- 账户 ID、会话 ID 或任何能够标识真实用户或账户的信息
- 私有 URL(内部主机名、已签名的 S3 URL、任何不打算公开的内容)
此列表并不详尽。原则是:如果某项内容能够标识真实身份或授予对某些资源的访问权限,则不应出现在仓库中。
使用中性占位符
测试夹具、示例、错误消息和快照使用通用项目作用域占位符,而非真实身份信息。推荐配色方案:
| 用例 | 示例 |
|---|---|
| Actor 标签 | zeroclaw_user, zeroclaw_operator, zeroclaw_maintainer, test_user, user_a, project_bot |
| 服务/运行时标签 | zeroclaw_bot, zeroclaw_service, zeroclaw_runtime, zeroclaw_node |
| 环境标签 | zeroclaw_project, zeroclaw_workspace, zeroclaw_channel |
| 主机名 | example.com、host.invalid、192.0.2.x(RFC 5737 文档范围) |
| 电子邮件地址 | user@example.com, bot@zeroclaw.invalid |
测试名称、断言消息和固件内容应保持客观、以系统为中心:避免使用第一人称语言和特定身份的表述。
当您必须引用身份
如果某个测试或文档确实需要一个具有角色特征的身份,请仅使用 ZeroClaw 范围内的角色:ZeroClawAgent、ZeroClawOperator、ZeroClawMaintainer。不要借用真实姓名,即使是化名也不行:化名随着时间推移会逐渐变回真实姓名。
GitHub PR/issue 评论中的 @ 提及有所不同:通过用户名(handle)来称呼某位贡献者,是你在 GitHub 上与他人交流的方式,@WareWolf-MoonWall 并不构成隐私侵犯。该规则针对的是存储在仓库中的内容(代码、测试、固件、文档),而非 PR/issue 讨论串中的对话。
复现外部事件
如果在测试夹具中捕获了事件追踪、日志负载或外部响应,请在提交前进行脱敏和匿名化处理。真实的会话 ID、真实用户 ID、真实主机名和真实认证令牌都需要先经过清理处理。最终提交的是脱敏后的版本,原始数据不得进入 Git 仓库。
预推送检查清单
在提交之前,专门扫描暂存区的差异,以查找身份泄露问题:
sh
git diff --cached
需要查找的形状:任何看起来像电子邮件的内容、带有非公共主机名的 URL、可能为令牌的长随机字符串,以及不属于你且未来自项目范围占位符的名称。
如果某次 CI 运行捕获了真实数据(快照中的真实会话 ID、包含身份信息的真实 user agent 字符串等)并被提交,则属于隐私事故:请创建 issue、清理数据、如果是刚提交的就强制推送覆盖,如果已合入 master 则联系维护者。
为什么这是严格的
最后一类情况,即意外提交了真实身份信息,很难撤销。一旦真实姓名或电子邮件地址进入 master,它会立即通过 fork、镜像和克隆传播开来。压缩提交或强制推送可以修复公开分支,但无法影响那些副本。成本最低的修复方式是提交前扫描;此后的一切措施都只是损害控制。