diff --git a/docs/ouroboros/50_scenario_matrix_and_issue_taxonomy.md b/docs/ouroboros/50_scenario_matrix_and_issue_taxonomy.md index 8eed547..7741f40 100644 --- a/docs/ouroboros/50_scenario_matrix_and_issue_taxonomy.md +++ b/docs/ouroboros/50_scenario_matrix_and_issue_taxonomy.md @@ -26,6 +26,7 @@ Updated: 2026-02-26 | `SCN-OPS-002` | Ops Incident | 정책 수치가 코드에만 반영되고 원장 미수정 | 문서 검증에서 실패 처리, PR 병합 차단 | `REQ-OPS-002`, `TASK-OPS-002`, `TEST-ACC-008` | P0 | | `SCN-OPS-003` | Ops Incident | 타임존 누락 로그/스케줄 데이터 유입 | KST/UTC 미표기 레코드 검증 실패 처리 | `REQ-OPS-001`, `TASK-OPS-001`, `TEST-ACC-007` | P1 | | `SCN-OPS-004` | Ops Incident | 신규 REQ 추가 후 TASK/TEST 누락 | 추적성 게이트 실패, 구현 PR 병합 차단 | `REQ-OPS-003`, `TASK-OPS-003`, `TEST-ACC-009` | P0 | +| `SCN-OPS-005` | Ops Incident | 배포 후 런타임 이상 동작(주문오류/상태전이오류/정책위반) 탐지 | Runtime Verifier가 즉시 이슈 발행, Dev 수정 후 재관측으로 클로즈 판정 | `REQ-V2-008`, `REQ-V3-003`, `REQ-V3-005`, `TEST-ACC-002`, `TEST-ACC-003`, `TEST-ACC-004` | P0 | ## 2) 이슈 분류 체계 (Issue Taxonomy) @@ -37,6 +38,7 @@ Updated: 2026-02-26 | `RISK-EMERGENCY` | Kill Switch/리스크 비상 대응 실패 | 순서 위반, 차단 누락, 복구 절차 누락 | Risk | `REQ-V2-008`,`REQ-V3-008`, `TASK-V2-013`~`015`, `TASK-V3-015`, `TEST-ACC-002`,`018` | | `FX-ACCOUNTING` | 환율/통화 버퍼 정책 위반 | 전략손익/환차손익 혼합 집계, 버퍼 미적용 | Risk + Data | `REQ-V3-007`, `TASK-V3-013`,`014`, `TEST-ACC-006` | | `OPS-GOVERNANCE` | 문서/추적성/타임존 거버넌스 위반 | 원장 미수정, TEST 누락, 타임존 미표기 | PM + QA | `REQ-OPS-001`~`003`, `TASK-OPS-001`~`003`, `TEST-ACC-007`~`009` | +| `RUNTIME-VERIFY` | 실동작 모니터링 검증 | 배포 후 이상 현상, 간헐 오류, 테스트 미포착 회귀 | Runtime Verifier + TPM | 관련 `REQ/TASK/TEST`와 런타임 로그 증적 필수 | ## 3) 티켓 생성 규칙 (Implementable) @@ -48,6 +50,7 @@ Updated: 2026-02-26 - P0: 실주문 위험, Kill Switch, 블랙아웃/시장가 정책, 추적성 게이트 실패 - P1: 손익 왜곡 가능성(체결/FX/시간대), 운영 리스크 증가 - P2: 보고서/관측성 품질 이슈(거래 안전성 영향 없음) +5. Runtime Verifier가 발행한 `RUNTIME-VERIFY` 이슈는 Main Agent 확인 전 클로즈 금지. ## 4) 즉시 생성 권장 티켓 (초기 백로그) @@ -56,6 +59,7 @@ Updated: 2026-02-26 - `TKT-P0-003`: `[OPS-GOVERNANCE][SCN-OPS-004]` REQ/TASK/TEST 누락 시 PR 차단 게이트 상시 점검 (`REQ-OPS-003`) - `TKT-P1-001`: `[FX-ACCOUNTING][SCN-FAIL-004]` FX 버퍼 위반 시 진입 제한 회귀 케이스 보강 (`REQ-V3-007`) - `TKT-P1-002`: `[BACKTEST-MODEL][SCN-HAPPY-004]` 비용/슬리피지 미설정 백테스트 거부 UX 명확화 (`REQ-V2-007`) +- `TKT-P0-004`: `[RUNTIME-VERIFY][SCN-OPS-005]` 배포 후 런타임 이상 탐지/재현/클로즈 판정 절차 자동화 ## 5) 운영 체크포인트 diff --git a/docs/ouroboros/50_tpm_control_protocol.md b/docs/ouroboros/50_tpm_control_protocol.md index b38e591..7d86da3 100644 --- a/docs/ouroboros/50_tpm_control_protocol.md +++ b/docs/ouroboros/50_tpm_control_protocol.md @@ -6,11 +6,28 @@ Owner: tpm Updated: 2026-02-26 --> -# TPM Control Protocol (PM <-> Dev <-> Verifier) +# TPM Control Protocol (Main <-> PM <-> TPM <-> Dev <-> Verifier <-> Runtime Verifier) 목적: - PM 시나리오가 구현 가능한 단위로 분해되고, 개발/검증이 동일 ID 체계(`REQ-*`, `TASK-*`, `TEST-*`)로 닫히도록 강제한다. - 각 단계는 Entry/Exit gate를 통과해야 다음 단계로 이동 가능하다. +- 주요 의사결정 포인트마다 Main Agent의 승인/의견 확인을 강제한다. + +## Team Roles + +- Main Agent: 최종 취합/우선순위/승인 게이트 오너 +- PM Agent: 시나리오/요구사항/티켓 관리 +- TPM Agent: PM-Dev-검증 간 구현 가능성/달성률 통제 +- Dev Agent: 구현 수행, 블로커 발생 시 재계획 요청 +- Verifier Agent: 문서/코드/테스트 산출물 검증 +- Runtime Verifier Agent: 실제 동작 모니터링, 이상 징후 이슈 발행, 수정 후 이슈 클로즈 판정 + +## Main Decision Checkpoints (Mandatory) + +- DCP-01 범위 확정: Phase 0 종료 전 Main Agent 승인 필수 +- DCP-02 요구사항 확정: Phase 1 종료 전 Main Agent 승인 필수 +- DCP-03 구현 착수: Phase 2 종료 전 Main Agent 승인 필수 +- DCP-04 배포 승인: Phase 4 종료 후 Main Agent 최종 승인 필수 ## Phase Control Gates @@ -27,6 +44,7 @@ Exit criteria: Control checks: - PM/TPM 합의 완료 +- Main Agent 승인(DCP-01) - 산출물: 시나리오 카드, 초기 매핑 메모 ### Phase 1: Requirement Registry Gate @@ -42,6 +60,7 @@ Exit criteria: Control checks: - `python3 scripts/validate_ouroboros_docs.py` 통과 +- Main Agent 승인(DCP-02) - 산출물: 업데이트된 요구사항 원장 ### Phase 2: Design and Work-Order Gate @@ -57,6 +76,7 @@ Exit criteria: Control checks: - TPM이 `REQ -> TASK` 누락 여부 검토 +- Main Agent 승인(DCP-03) - 산출물: 승인된 Work Order 세트 ### Phase 3: Implementation Gate @@ -87,6 +107,7 @@ Exit criteria: Control checks: - Verifier가 테스트 증적(로그/리포트/실행 커맨드) 첨부 +- Runtime Verifier가 스테이징/실운영 모니터링 계획 승인 - 산출물: 수용 승인 레코드 ### Phase 5: Release and Post-Release Control @@ -102,8 +123,33 @@ Exit criteria: Control checks: - PM/TPM/Dev 3자 종료 확인 +- Runtime Verifier가 운영 모니터링 이슈 상태(신규/진행/해결)를 리포트 +- Main Agent 최종 승인(DCP-04) - 산출물: 릴리즈 노트 + 후속 액션 목록 +## Replan Protocol (Dev -> TPM) + +- 트리거: + - 구현 불가능(기술적 제약/외부 API 제약) + - 예상 대비 개발 리소스 과다(공수/인력/의존성 급증) +- 절차: + 1) Dev Agent가 `REPLAN-REQUEST` 발행(영향 REQ/TASK, 원인, 대안, 추가 공수 포함) + 2) TPM Agent가 1차 심사(범위 축소/단계 분할/요구사항 조정안) + 3) Verifier/PM 의견 수렴 후 Main Agent 승인으로 재계획 확정 +- 규칙: + - Main Agent 승인 없는 재계획은 실행 금지 + - 재계획 반영 시 문서(`REQ/TASK/TEST`) 동시 갱신 필수 + +## Runtime Verification Protocol + +- Runtime Verifier는 테스트 통과 이후 실제 동작(스테이징/실운영)을 모니터링한다. +- 이상 동작/현상 발견 시 즉시 이슈 발행: + - 제목 규칙: `[RUNTIME-VERIFY][SCN-*] ...` + - 본문 필수: 재현조건, 관측 로그, 영향 범위, 임시 완화책, 관련 `REQ/TASK/TEST` +- 이슈 클로즈 규칙: + - Dev 수정 완료 + Verifier 재검증 통과 + Runtime Verifier 재관측 정상 + - 최종 클로즈 승인자는 Main Agent + ## Acceptance Matrix (PM Scenario -> Dev Tasks -> Verifier Checks) | PM Scenario | Requirement Coverage | Dev Tasks (Primary) | Verifier Checks (Must Pass) | diff --git a/docs/ouroboros/60_repo_enforcement_checklist.md b/docs/ouroboros/60_repo_enforcement_checklist.md index 34d027b..e1a21c6 100644 --- a/docs/ouroboros/60_repo_enforcement_checklist.md +++ b/docs/ouroboros/60_repo_enforcement_checklist.md @@ -36,6 +36,7 @@ Updated: 2026-02-26 역할 기반 승인: - Verifier 1명 승인 필수 - TPM 또는 PM 1명 승인 필수 +- Runtime Verifier 관련 변경(PR 본문에 runtime 영향 있음) 시 Runtime Verifier 승인 필수 설정 기준: - 최소 승인 수: 2 @@ -48,6 +49,7 @@ Updated: 2026-02-26 - 이슈 연결(`Closes #N`) 존재 - PR 본문에 `REQ-*`, `TASK-*`, `TEST-*` 매핑 표 존재 - `src/core/risk_manager.py` 변경 없음 +- 주요 의사결정 체크포인트(DCP-01~04) 중 해당 단계 Main Agent 확인 기록 존재 자동 점검: - 문서 검증 스크립트 통과 @@ -77,3 +79,10 @@ Updated: 2026-02-26 - 브랜치 보호 미적용 발견 시: 즉시 릴리즈 중지 - 필수 CI 우회 발견 시: 관리자 권한 점검 및 감사 이슈 발행 - 리뷰 규칙 무효화 발견 시: 규칙 복구 후 재머지 정책 시행 +- Runtime 이상 이슈 미해결 상태에서 클로즈 시도 발견 시: 즉시 이슈 재오픈 + 릴리즈 중지 + +## 8) 재계획(Dev Replan) 운영 규칙 + +- Dev가 `REPLAN-REQUEST` 발행 시 TPM 심사 없이는 스코프/일정 변경 금지 +- `REPLAN-REQUEST`는 Main Agent 승인 전 \"제안\" 상태로 유지 +- 승인된 재계획은 `REQ/TASK/TEST` 문서를 동시 갱신해야 유효