투표 및 결정
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결정 도메인
결정은 더 나은 구성 및 필터링을 위해 도메인(예: "아키텍처", "프로세스", "도구")으로 분류할 수 있습니다. 도메인은 워크스페이스별로 설정됩니다.