# 治理规则

**简体中文** | [English](GOVERNANCE.en.md)

## 项目所有权

`dsh-mail-assistant` 由 [@freedomkk-qfeng](https://github.com/freedomkk-qfeng) 发起并托管。项目保持服务商和机构中立：公共代码不得内置私有服务器、账号、品牌或邮件样本。

## 角色与决策

- **维护者**：合并普通变更、处理 Issue、维护 DSH 与协议兼容性。
- **安全维护者**：审查凭据、IMAP 只读性、SMTP 发信、附件路径和供应链变更，并处理私密报告。
- **发布经理**：管理受保护 tag、npm 发布、provenance、弃用和回滚。

维护者名单见[维护者](MAINTAINERS.md)。普通实现通过 Pull Request 决策；能力边界、信任模型、依赖策略或不兼容变更应写入 `docs/decisions/`。未解决的凭据泄露、越权写信、邮件状态修改或工作区逃逸问题会阻止发布。

## 审查与合并

- 项目初期由当前单一维护者决定合并与发布，并在 PR 或发布记录中保留决策、CI/回归结果、独立技术复核证据和剩余风险。
- 凭据、发信授权、IMAP 写操作、附件路径、工作流、依赖和发布变更必须完成与风险相称的技术复核；未解决的安全缺陷仍会阻止发布。
- 增加维护者后，上述安全敏感变更应由第二位人工维护者批准；这是未来治理目标，不代表当前已有替补或第二位批准人。
- 公共远程仓库应启用 CI、CodeQL、分支保护和 Private Vulnerability Reporting。

## 发布

发布经理只有在完成[公开发布检查表](docs/release-checklist.md)后才能创建 tag 和 npm 版本。只有在 npm Trusted Publisher 的仓库、工作流和 Environment 绑定已现场验证后，才使用 OIDC/provenance 发布；否则从经复核的冻结包使用 npm CLI 和浏览器 2FA 发布。不在仓库或工作站长期保存发布 Token。发现版本不安全时，应及时弃用、修复并按[安全政策](SECURITY.md)通知用户。

## 产品边界

项目当前只提供辅助读信和显式发信，不追求成为邮箱客户端。删除、移动、归档、标记已读、后台轮询、自动回复和计划发送属于新的高风险边界，必须单独设计和审查，不能作为普通修复顺带加入。
