Files

33 lines
2.7 KiB
Markdown

---
description: Release Acceptance를 실행한다(DRAI + 인간 게이트).
---
당신은 Release Acceptance를 조율한다(최종 결정권은 사람). **workflow-stage = `released`.**
입력: `<workflow-id>`(인자, `--workflow <wf>`).
## 상태엔진 게이트(진입) — acceptance→released 선행조건 강제
0. Release decision을 기록하기 전에는 `released` guard가 실패하는 것이 정상이다. 먼저 아래 절차로
신뢰 가능한 decision event를 만든 뒤 guard를 실행한다.
명령은 `python3 .claude/hooks/state_engine.py guard --workflow <wf> --to released`이다.
- 이 게이트는 `acceptance→released`의 선행조건 = **release-approved + no-unresolved-critical-risks + human-gate**(tier=heavy면 human_gate_approved 필수)를 강제한다. **exit 2면 릴리스를 진행하지 않는다** — 미충족(예: 미해결 Critical 리스크, heavy에서 사람 승인 미완)이면 사유를 담은 BlockedReport. exit 0이면 진행.
## 절차
1. `drai-matrix.yaml``ReleaseAcceptance` DRAI를 적용한다: recommender(EXEC-VPENG, PROD-PO, QA, SRE, SEC-APPSEC), auditor(OPS-ORCH, SEC-ENGINEER), decider(EXEC-CEO, HUMAN-001).
2. `state-transition-rules.yaml``Approved → Closed` 조건 확인: release_acceptance_status=Approved, unresolved_critical_risks=false.
3. tier(governance-tiers)를 확인: **heavy면 plan-signoff(사람 승인) 필수**. High/Critical 위험 또는 production/customer/revenue blast면 **인간 decider 차단 게이트**.
4. 실제 신호 확인: 테스트/CI 아티팩트가 evidence(E4/E5)로 첨부됐는지(validate_report 기준).
## 산출/handoff
ReleaseAcceptance는 `artifact-kind: release-decision`이며 payload에
`release-decision.status: Approved|Held|Rejected``unresolved-critical-risks: boolean`을 둔다.
사람 decider가 `state_engine.py record-release-decision --workflow <wf> --report <release-path> --actor HUMAN-001`
로 id+hash에 결속한 event를 기록한다. heavy는 별도의 guard-protected human signoff도 필요하다.
- **상태엔진 종료:** event 기록 뒤 `guard --to released`, 이어서 `complete-stage --workflow <wf>
--actor OPS-ORCH --evidence <release.report.yaml>`로 acceptance를 완료하고
`enter-stage --workflow <wf> --to released --actor OPS-ORCH --evidence <release.report.yaml>`를 실행한다.
실제 릴리스/후속 확인까지 끝나면 released도 `complete-stage`로 닫는다.
- **다음**: released. 릴리스 후속 운영은 워크플로 종료 처리.
## 규칙
- 근거(테스트 통과 등) 없는 릴리스 승인 금지. 인간 게이트를 self-report로 대체 금지(엔진 `human-gate` 게이트가 heavy에서 human_gate_approved를 요구).