投票与决策
OpenPR 的投票系统决定治理提案的结果。它支持加权投票、可配置的法定人数要求和通过阈值。每次投票和决策都有不可更改的审计追踪。
投票流程
- 提案进入 投票中 状态。
- 合格的工作区成员投票(赞成、反对或弃权)。
- 投票期结束或达到法定人数时,统计票数。
- 根据配置的通过阈值确定结果。
- 创建 决策记录 记录结果。
投票配置
治理设置按工作区配置:
| 设置 | 说明 | 示例 |
|---|---|---|
| 法定人数 | 必须参与的合格投票者最低百分比 | 50% |
| 通过阈值 | 通过所需的赞成票百分比 | 66% |
| 投票期 | 投票窗口保持开放的时长 | 7 天 |
| 加权投票 | 信任分是否影响投票权重 | 开/关 |
在 工作区设置 > 治理 > 配置 中设置,或通过 API:
bash
curl -X PUT http://localhost:8080/api/governance/config \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token>" \
-d '{
"quorum_percentage": 50,
"approval_threshold": 66,
"voting_period_days": 7,
"weighted_voting": true
}'加权投票
启用加权投票后,每个成员的投票按其信任分加权。信任分较高的成员对结果有更大影响力。详见 信任分。
决策记录
每次投票完成后创建 决策记录——不可更改的日志条目,包含:
- 被投票的提案
- 票数统计(赞成、反对、弃权)
- 最终结果(通过或拒绝)
- 时间戳和参与投票者
- 决策域(如已分类)
决策记录不能修改或删除。它们是团队决策的权威历史记录。
查看决策
bash
# 列出决策
curl -H "Authorization: Bearer <token>" \
http://localhost:8080/api/decisions
# 获取特定决策
curl -H "Authorization: Bearer <token>" \
http://localhost:8080/api/decisions/<decision_id>否决机制
指定的否决权人(按工作区配置)可以否决已通过的提案:
- 否决 -- 否决权人以说明理由的方式阻止已通过的提案。
- 升级 -- 提案者可以将否决升级为更广泛的投票。
- 申诉 -- 任何成员可以对否决提出申诉。
否决权设计为高影响决策的安全机制。在 工作区设置 > 治理 > 否决权人 中配置。
审计日志
所有治理操作记录在审计日志中:
- 提案创建、提交和归档
- 投票记录(谁、何时、投了什么)
- 决策记录
- 否决事件和升级
- 配置变更
bash
# 查看治理审计日志
curl -H "Authorization: Bearer <token>" \
http://localhost:8080/api/governance/audit-logs决策域
决策可以按域分类(如"架构"、"流程"、"工具"),便于组织和筛选。域按工作区配置。