docs(release): REL-004 capture-release-feedback (feedback-captured)
운영자 배포 증거 기반 운영 환류 기록: Feedback Handoff(관찰 사실 + Discovery/REQ/Change Request Input 분리), REL-004 confirmed→feedback-captured, 포함 BAT-014~023 release-candidate→released(register + 개별 index). 후속 입력: issue #16(preallocation 누락, Discovery), dcy-019(REQ 대기), BAT-024(차기 release 편입), daily_symbol_entries 제거(REQ-002 change-req). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# BAT-014: safety-sell 영속 거부 재시도 쿨다운 (per-slot cooldown + 경고 + env)
|
||||
|
||||
- Status: release-candidate
|
||||
- Status: released
|
||||
- Profile: batch-lite
|
||||
- Source Discovery: dcy-010
|
||||
- Included REQ: REQ-052, REQ-053, REQ-054
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# BAT-015: buy intent portfolio_id 필수 계약 + symbol 서버 resolve + ledger skip 가시화 + 누락 점검 쿼리
|
||||
|
||||
- Status: release-candidate
|
||||
- Status: released
|
||||
- Profile: standard
|
||||
- Source Discovery: dcy-011
|
||||
- Included REQ: REQ-007 (CHG-20260608-01), REQ-018 (CHG-20260608-01), REQ-021 (CHG-20260608-01), REQ-055
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# BAT-016: 매도 가격 정책 정정 + 슬롯 entry_price→limit_price rename (sell dispatch 버그)
|
||||
|
||||
- Status: release-candidate
|
||||
- Status: released
|
||||
- Profile: standard
|
||||
- Source Discovery: dcy-012
|
||||
- Included REQ: REQ-013 (CHG-20260608-01), REQ-007 (CHG-20260608-02), REQ-036 (CHG-20260608-01), REQ-002 (CHG-20260608-01), REQ-006 (CHG-20260608-01), REQ-003 (CHG-20260608-01), REQ-015 (CHG-20260608-01)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# BAT-017: KIS 외부 취소 감지 + 부분 체결 회계 + pending stale 워치독 (issue #9)
|
||||
|
||||
- Status: release-candidate
|
||||
- Status: released
|
||||
- Profile: standard
|
||||
- Source Discovery: dcy-013
|
||||
- Included REQ: REQ-012 (CHG-20260608-01), REQ-013 (CHG-20260608-02), REQ-018 (CHG-20260608-02), REQ-031 (CHG-20260608-01), REQ-014 (CHG-20260608-01), REQ-015 (CHG-20260608-02)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# BAT-018: trading_date 설정 타임존(KST) 분리 + 일일 슬롯 preallocation (issue #14)
|
||||
|
||||
- Status: release-candidate
|
||||
- Status: released
|
||||
- Profile: standard
|
||||
- Source Discovery: dcy-014
|
||||
- Included REQ: REQ-005 (CHG-20260608-01), REQ-048 (CHG-20260608-01), REQ-009 (CHG-20260608-01)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# BAT-019: ledger outbox 영속 오류 분류 + 백오프/dead-letter + 가시화 (issue #13)
|
||||
|
||||
- Status: release-candidate
|
||||
- Status: released
|
||||
- Profile: standard
|
||||
- Source Discovery: dcy-015
|
||||
- Included REQ: REQ-017 (CHG-20260608-01), REQ-019 (CHG-20260608-01), REQ-018 (CHG-20260608-03), REQ-020 (CHG-20260608-01)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# BAT-020: 운영자 CLI 확장 (universe/slots/enter/exit) + 워치독 억제 (dcy-016)
|
||||
|
||||
- Status: release-candidate
|
||||
- Status: released
|
||||
- Profile: standard
|
||||
- Source Discovery: dcy-016
|
||||
- Included REQ: REQ-032 (CHG-20260608-01), REQ-022 (CHG-20260608-01), REQ-021 (CHG-20260608-02), REQ-034 (CHG-20260608-01), REQ-026 (CHG-20260608-01)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# BAT-021: 워치독 소유권 가시화 — 스냅샷 워치독 상태 + safety-sell 발동 로깅 (dcy-017)
|
||||
|
||||
- Status: release-candidate
|
||||
- Status: released
|
||||
- Profile: standard
|
||||
- Source Discovery: dcy-017
|
||||
- Included REQ: REQ-034 (CHG-20260608-02), REQ-021 (CHG-20260608-03), REQ-037 (CHG-20260608-01), REQ-038 (CHG-20260608-01), REQ-039 (CHG-20260608-01), REQ-032 (CHG-20260608-02), REQ-042 (CHG-20260608-01)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# BAT-022: 슬롯 상태 스냅샷 가시화 — `slots` 명령이 universe 대신 실제 슬롯 상태 표시 (dcy-016 후속)
|
||||
|
||||
- Status: release-candidate
|
||||
- Status: released
|
||||
- Profile: standard
|
||||
- Source Discovery: dcy-016 (후속 change-req)
|
||||
- Included REQ: REQ-028 (CHG-20260608-01), REQ-032 (CHG-20260608-03)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# BAT-023: ledger write 응답 cash/position write-back (option D 활성화) + 추정 현금 오버레이
|
||||
|
||||
- Status: release-candidate
|
||||
- Status: released
|
||||
- Profile: standard
|
||||
- Source Discovery: dcy-018
|
||||
- Included REQ: REQ-017 (CHG-20260608-02), REQ-019 (CHG-20260608-02), REQ-029 (CHG-20260608-01), REQ-030 (CHG-20260608-01, Approved→Implemented)
|
||||
|
||||
+10
-10
@@ -21,14 +21,14 @@
|
||||
| BAT-011 | standard | release-candidate | REQ-037, REQ-038, REQ-039, REQ-040, REQ-042 | dcy-007 | [bat-011](./bat-011_20260607_safety-sell-triggers/) |
|
||||
| BAT-012 | standard | release-candidate | REQ-043, REQ-044, REQ-045, REQ-046, REQ-047 | dcy-008 | [bat-012](./bat-012_20260607_kill-switch-control/) |
|
||||
| BAT-013 | standard | release-candidate | REQ-048, REQ-049, REQ-050, REQ-051 | dcy-009 | [bat-013](./bat-013_20260607_multi-instance-topology/) |
|
||||
| BAT-014 | batch-lite | release-candidate | REQ-052, REQ-053, REQ-054 | dcy-010 | [bat-014](./bat-014_20260608_safety-sell-cooldown/) |
|
||||
| BAT-015 | standard | release-candidate | REQ-007 (CHG-20260608-01), REQ-018 (CHG-20260608-01), REQ-021 (CHG-20260608-01), REQ-055 | dcy-011 | [bat-015](./bat-015_20260608_buy-intent-portfolio-id-contract/) |
|
||||
| BAT-016 | standard | release-candidate | REQ-002 (CHG-20260608-01), REQ-003 (CHG-20260608-01), REQ-006 (CHG-20260608-01), REQ-007 (CHG-20260608-02), REQ-013 (CHG-20260608-01), REQ-015 (CHG-20260608-01), REQ-036 (CHG-20260608-01) | dcy-012 | [bat-016](./bat-016_20260608_sell-pricing-limit-price-rename/) |
|
||||
| BAT-017 | standard | release-candidate | REQ-012 (CHG-20260608-01), REQ-013 (CHG-20260608-02), REQ-018 (CHG-20260608-02), REQ-031 (CHG-20260608-01), REQ-014 (CHG-20260608-01), REQ-015 (CHG-20260608-02) | dcy-013 | [bat-017](./bat-017_20260608_external-cancel-detection-stale-watchdog/) |
|
||||
| BAT-018 | standard | release-candidate | REQ-005 (CHG-20260608-01), REQ-048 (CHG-20260608-01), REQ-009 (CHG-20260608-01) | dcy-014 | [bat-018](./bat-018_20260608_trading-date-timezone-daily-preallocation/) |
|
||||
| BAT-019 | standard | release-candidate | REQ-017 (CHG-20260608-01), REQ-019 (CHG-20260608-01), REQ-018 (CHG-20260608-03), REQ-020 (CHG-20260608-01) | dcy-015 | [bat-019](./bat-019_20260608_ledger-outbox-permanent-error-backoff/) |
|
||||
| BAT-020 | standard | release-candidate | REQ-032 (CHG-20260608-01), REQ-022 (CHG-20260608-01), REQ-021 (CHG-20260608-02), REQ-034 (CHG-20260608-01), REQ-026 (CHG-20260608-01) | dcy-016 | [bat-020](./bat-020_20260608_operator-cli-rpc-commands/) |
|
||||
| BAT-021 | standard | release-candidate | REQ-034 (CHG-20260608-02), REQ-021 (CHG-20260608-03), REQ-037 (CHG-20260608-01), REQ-038 (CHG-20260608-01), REQ-039 (CHG-20260608-01), REQ-032 (CHG-20260608-02), REQ-042 (CHG-20260608-01) | dcy-017 | [bat-021](./bat-021_20260608_watchdog-ownership-visibility/) |
|
||||
| BAT-022 | standard | release-candidate | REQ-028 (CHG-20260608-01), REQ-032 (CHG-20260608-03) | dcy-016 | [bat-022](./bat-022_20260608_slot-state-snapshot-visibility/) |
|
||||
| BAT-023 | standard | release-candidate | REQ-017 (CHG-20260608-02), REQ-019 (CHG-20260608-02), REQ-029 (CHG-20260608-01), REQ-030 (CHG-20260608-01, Approved→Implemented) | dcy-018 | [bat-023](./bat-023_20260608_ledger-cash-position-writeback-option-d/) |
|
||||
| BAT-014 | batch-lite | released | REQ-052, REQ-053, REQ-054 | dcy-010 | [bat-014](./bat-014_20260608_safety-sell-cooldown/) |
|
||||
| BAT-015 | standard | released | REQ-007 (CHG-20260608-01), REQ-018 (CHG-20260608-01), REQ-021 (CHG-20260608-01), REQ-055 | dcy-011 | [bat-015](./bat-015_20260608_buy-intent-portfolio-id-contract/) |
|
||||
| BAT-016 | standard | released | REQ-002 (CHG-20260608-01), REQ-003 (CHG-20260608-01), REQ-006 (CHG-20260608-01), REQ-007 (CHG-20260608-02), REQ-013 (CHG-20260608-01), REQ-015 (CHG-20260608-01), REQ-036 (CHG-20260608-01) | dcy-012 | [bat-016](./bat-016_20260608_sell-pricing-limit-price-rename/) |
|
||||
| BAT-017 | standard | released | REQ-012 (CHG-20260608-01), REQ-013 (CHG-20260608-02), REQ-018 (CHG-20260608-02), REQ-031 (CHG-20260608-01), REQ-014 (CHG-20260608-01), REQ-015 (CHG-20260608-02) | dcy-013 | [bat-017](./bat-017_20260608_external-cancel-detection-stale-watchdog/) |
|
||||
| BAT-018 | standard | released | REQ-005 (CHG-20260608-01), REQ-048 (CHG-20260608-01), REQ-009 (CHG-20260608-01) | dcy-014 | [bat-018](./bat-018_20260608_trading-date-timezone-daily-preallocation/) |
|
||||
| BAT-019 | standard | released | REQ-017 (CHG-20260608-01), REQ-019 (CHG-20260608-01), REQ-018 (CHG-20260608-03), REQ-020 (CHG-20260608-01) | dcy-015 | [bat-019](./bat-019_20260608_ledger-outbox-permanent-error-backoff/) |
|
||||
| BAT-020 | standard | released | REQ-032 (CHG-20260608-01), REQ-022 (CHG-20260608-01), REQ-021 (CHG-20260608-02), REQ-034 (CHG-20260608-01), REQ-026 (CHG-20260608-01) | dcy-016 | [bat-020](./bat-020_20260608_operator-cli-rpc-commands/) |
|
||||
| BAT-021 | standard | released | REQ-034 (CHG-20260608-02), REQ-021 (CHG-20260608-03), REQ-037 (CHG-20260608-01), REQ-038 (CHG-20260608-01), REQ-039 (CHG-20260608-01), REQ-032 (CHG-20260608-02), REQ-042 (CHG-20260608-01) | dcy-017 | [bat-021](./bat-021_20260608_watchdog-ownership-visibility/) |
|
||||
| BAT-022 | standard | released | REQ-028 (CHG-20260608-01), REQ-032 (CHG-20260608-03) | dcy-016 | [bat-022](./bat-022_20260608_slot-state-snapshot-visibility/) |
|
||||
| BAT-023 | standard | released | REQ-017 (CHG-20260608-02), REQ-019 (CHG-20260608-02), REQ-029 (CHG-20260608-01), REQ-030 (CHG-20260608-01, Approved→Implemented) | dcy-018 | [bat-023](./bat-023_20260608_ledger-cash-position-writeback-option-d/) |
|
||||
| BAT-024 | batch-lite | release-candidate | REQ-032 (CHG-20260609-01) | dcy-016 (issue #17) | [bat-024](./bat-024_20260609_operator-enter-forced-close-at/) |
|
||||
|
||||
@@ -11,4 +11,4 @@
|
||||
| REL-001 | app-service | feedback-captured | BAT-001~008 | Discovery: orb-v1 전략 모듈, 부분 매도(#5) / Change-req: REQ-030 옵션 D, 전략 필드 실데이터, 이벤트 publisher idle 견고성, paper execution_id Redis(#4) | [rel-001](rel-001_20260606_trex-core-slot-core-baseline.md) |
|
||||
| REL-002 | tooling | released | BAT-009 | Change-req: paper execution_id Redis(#4) | [rel-002](rel-002_20260606_paper-broker-env-tuning.md) |
|
||||
| REL-003 | app-service | released | BAT-010, BAT-011, BAT-012, BAT-013 | dcy-007 (자율 안전 매도) + dcy-008 (kill-switch) + dcy-009 (다중 인스턴스 토폴로지) — 통합 릴리즈 | [rel-003](rel-003_20260607_safety-killswitch-multi-instance.md) |
|
||||
| REL-004 | app-service | confirmed | BAT-014, BAT-015, BAT-016, BAT-017, BAT-018, BAT-019, BAT-020, BAT-021, BAT-022, BAT-023 | dcy-010 (safety-sell 쿨다운) + dcy-011~017 (buy/sell 계약·KIS 취소·trading_date TZ·ledger 백오프 버그픽스 + 운영자 CLI + 워치독 가시화) + dcy-016 후속(슬롯 상태 가시화) + dcy-018 (ledger 현금/포지션 write-back, option D) — 통합 릴리즈 | [rel-004](rel-004_20260608_safety-cooldown-bugfix-hardening-cli.md) |
|
||||
| REL-004 | app-service | feedback-captured | BAT-014, BAT-015, BAT-016, BAT-017, BAT-018, BAT-019, BAT-020, BAT-021, BAT-022, BAT-023 | dcy-010 (safety-sell 쿨다운) + dcy-011~017 (buy/sell 계약·KIS 취소·trading_date TZ·ledger 백오프 버그픽스 + 운영자 CLI + 워치독 가시화) + dcy-016 후속(슬롯 상태 가시화) + dcy-018 (ledger 현금/포지션 write-back, option D) — 통합 릴리즈 | [rel-004](rel-004_20260608_safety-cooldown-bugfix-hardening-cli.md) |
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# REL-004: safety-sell 쿨다운 + 운영 버그픽스/하드닝 + 운영자 CLI + 슬롯 가시화·현금 write-back 통합 릴리즈
|
||||
|
||||
- Status: confirmed
|
||||
- Status: feedback-captured
|
||||
- Profile: app-service
|
||||
- Included Batch: BAT-014, BAT-015, BAT-016, BAT-017, BAT-018, BAT-019, BAT-020, BAT-021, BAT-022, BAT-023
|
||||
|
||||
@@ -140,10 +140,15 @@ confirm-release 전 "운영자가 쓰는 프로그램이 실제로 동작한다"
|
||||
|
||||
## Feedback Handoff
|
||||
- Observation Summary:
|
||||
- <운영 관찰 사실 요약 또는 없음>
|
||||
- 2026-06-09 실 운영 배포(instance `trex-admin-daily-trading`, rev `fec9411`)에서 REL-004 범위가 정상 동작 확인: buy/sell e2e(`holding→pending_sell→closed`, slot `73e7cfae…` symbol 316140), `take_profit` 트리거(slot `3a95d0cb…`, daemon log `safety-sell fired: phase=take_profit`)·`forced_close_at` 트리거 발동, ledger `POST …/ledger/trades 201 Created`(buy/sell)·`ledger_outbox status=completed`, snapshot RPC `degraded=False assets=45`, portfolio-hub `GET /v1/portfolios` 가시성. 롤백 트리거 없음(Rollback Required=no).
|
||||
- 관찰 포인트: 한 바퀴(buy→sell) 후 portfolio-hub 상태가 `cash_balance=-208.65…`(음수)·`asset_quantity=0.0`. 수수료/세금 반영의 정상 순값인지 vs 초기 cash seed 부재/현금 회계 갭인지 확인 가치 있음(option D write-back 경로는 동작).
|
||||
- 별개 운영 환류: issue #16(00:00 KST 일자 경계 자동 preallocation 누락)이 동일 인스턴스에서 관측됨 — 데몬은 RPC 응답(살아 있음)하나 당일 슬롯 미생성. REL-004 BAT-018(일자 경계 일일 preallocation) 범위와 직접 관련.
|
||||
- Discovery Input:
|
||||
- <후속 discovery 후보 (예: WatchdogStore 영속 승격, Redis projection/push 알림, dead-letter 재처리 트리거)>
|
||||
- issue #16: 00:00 KST 일자 경계 자동 preallocation 누락 — `trex-preallocation` 스레드 생존/일자 경계 발화 검증 + 견고화(boot run_once 예외 흡수 등). BAT-018 후속 운영 환류(High 우선).
|
||||
- issue #18 → **dcy-019**(slot `entry_count` + closed 슬롯 재할당 정책) 이미 confirmed — REQ 초안 대기.
|
||||
- (관찰) portfolio-hub 음수 `cash_balance` 정합성 — 필요 시 별도 Discovery 후보.
|
||||
- REQ Input:
|
||||
- <후속 req 후보>
|
||||
- issue #17 → **BAT-024**(operator `enter --forced-close-at`, REQ-032 CHG-20260609-01/02) 이미 release-candidate. **REL-004 미포함** → 차기 release(REL-005 또는 통합)로 별도 배포 필요.
|
||||
- 신규 REQ 특이 후보 없음(이번 주기 변경은 대부분 change-req 로 처리됨).
|
||||
- Change Request Input:
|
||||
- <기존 req 변경 후보 (예: buy/sell 외부 payload entry_price 필드명 rename, snapshot envelope slot_id 노출)>
|
||||
- `daily_symbol_entries`(심볼 재진입 카운터) 제거 — production 소비자 없음 확인 + 심볼 재진입 제한 미사용 결정(dcy-019). **REQ-002 change-req 트랙**(별도 batch-lite).
|
||||
|
||||
Reference in New Issue
Block a user