Confirm dcy-001: promote slot-domain Discovery to confirmed

Resolve scope/toolchain CONFIRM items (operator-confirmed), check off
remaining handoff items, and flip Freeze flags (Handoff 승인, Ready true,
Confirmed By Justin). Update discovery index row to confirmed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-03 22:19:30 +09:00
co-authored by Claude Opus 4.8
parent f44b84465a
commit 8b23b89977
2 changed files with 27 additions and 23 deletions
@@ -1,7 +1,7 @@
# 0. 문서 상태 # 0. 문서 상태
이 문서의 현재 상태와 식별 정보를 기록한다. 문서 추적과 승인 흐름에 필요한 최소 메타데이터를 적는다. 이 문서의 현재 상태와 식별 정보를 기록한다. 문서 추적과 승인 흐름에 필요한 최소 메타데이터를 적는다.
- 상태: draft - 상태: confirmed
- 문서 ID: dcy-001_20260603_slot-pure-domain-migration - 문서 ID: dcy-001_20260603_slot-pure-domain-migration
- 이슈명: trex-core 베이스 수립 및 slot 순수 도메인 이식 - 이슈명: trex-core 베이스 수립 및 slot 순수 도메인 이식
- 작성 시각(KST): 2026-06-03 - 작성 시각(KST): 2026-06-03
@@ -61,13 +61,14 @@
- trex-core Python 프로젝트 부트스트랩: `pyproject.toml`(배포명 `trex-core`) + 패키지 레이아웃(`trex_core/`, `trex_core/domain/`) + pytest/ruff 설정. - trex-core Python 프로젝트 부트스트랩: `pyproject.toml`(배포명 `trex-core`) + 패키지 레이아웃(`trex_core/`, `trex_core/domain/`) + pytest/ruff 설정.
- slot 순수 도메인 이식: 6개 모듈 + `__init__.py` 복사, 공개 API 확정(`__init__` docstring 을 순수 도메인 기준으로 정리, 인프라 export 없음 확인). - slot 순수 도메인 이식: 6개 모듈 + `__init__.py` 복사, 공개 API 확정(`__init__` docstring 을 순수 도메인 기준으로 정리, 인프라 export 없음 확인).
- 도메인 단위테스트 이식 및 green: `test_state.py`, `test_service.py`(InMemorySlotRepository 기반)을 trex-core 에서 통과. - 도메인 단위테스트 이식 및 green: `test_state.py`, `test_service.py`(InMemorySlotRepository 기반)을 trex-core 에서 통과.
- 컬럼 계약 가드 신설(OQ-2 결정): 도메인에 표준 필드 집합 선언(`EXPECTED_SLOT_FIELDS`)을 두고, 순수 계약 테스트(`test_contract.py`)가 `dataclasses.fields(Slot)` 의 필드 집합과 일치함을 단언한다. DB-side 드리프트 검사는 영속화 반복으로 인계.
- baseline 문서 정합: 이식 후 `docs/project-structure.md`·`docs/runtime-flows.md` 의 planned 표기를 실제 구조와 일치하도록 갱신. - baseline 문서 정합: 이식 후 `docs/project-structure.md`·`docs/runtime-flows.md` 의 planned 표기를 실제 구조와 일치하도록 갱신.
## 영향 범위 ## 영향 범위
변경이 미칠 코드/문서/운영 범위를 명시해 REQ 정제와 batch planning에서 추정 누락을 줄인다. 변경이 미칠 코드/문서/운영 범위를 명시해 REQ 정제와 batch planning에서 추정 누락을 줄인다.
- 코드 영향: - 코드 영향:
- 신규 생성: `pyproject.toml`, `trex_core/__init__.py`, `trex_core/domain/__init__.py`, `trex_core/domain/slot/*`(6 모듈 + `__init__`), `tests/domain/slot/*`. - 신규 생성: `pyproject.toml`, `trex_core/__init__.py`, `trex_core/domain/__init__.py`, `trex_core/domain/slot/*`(6 모듈 + `__init__` + `EXPECTED_SLOT_FIELDS` 선언), `tests/domain/slot/*`(이식 2종 + 신규 `test_contract.py`).
- trex-orbit 코드: 무수정(병행). - trex-orbit 코드: 무수정(병행).
- 문서 영향: - 문서 영향:
- `docs/project-structure.md`, `docs/runtime-flows.md` 의 planned→실제 갱신. - `docs/project-structure.md`, `docs/runtime-flows.md` 의 planned→실제 갱신.
@@ -84,13 +85,14 @@
- FR-2: slot 순수 도메인 6개 모듈(`state`/`models`/`errors`/`repository`/`service`/`in_memory_repository`)과 `__init__.py` 를 `trex_core.domain.slot` 네임스페이스(OQ-1 결정)로 이식하고, 모듈 간 import 경로를 `trex_core.domain.slot.*` 로 통일한다. 공개 API(`SlotState`/`Slot`/`SlotCapacity`/`SlotTransitionRecord`/`SlotRepository`/`SlotService`/예외/`is_allowed_transition`/`SLOT_ADVISORY_LOCK_ID`/`ALLOWED_TRANSITIONS`)를 인프라 심볼 없이 노출한다. - FR-2: slot 순수 도메인 6개 모듈(`state`/`models`/`errors`/`repository`/`service`/`in_memory_repository`)과 `__init__.py` 를 `trex_core.domain.slot` 네임스페이스(OQ-1 결정)로 이식하고, 모듈 간 import 경로를 `trex_core.domain.slot.*` 로 통일한다. 공개 API(`SlotState`/`Slot`/`SlotCapacity`/`SlotTransitionRecord`/`SlotRepository`/`SlotService`/예외/`is_allowed_transition`/`SLOT_ADVISORY_LOCK_ID`/`ALLOWED_TRANSITIONS`)를 인프라 심볼 없이 노출한다.
- FR-3: 이식된 도메인 단위테스트(`tests/domain/slot/test_state.py`, `test_service.py`)가 trex-core 에서 통과한다. - FR-3: 이식된 도메인 단위테스트(`tests/domain/slot/test_state.py`, `test_service.py`)가 trex-core 에서 통과한다.
- FR-4: 이식 완료 후 `docs/project-structure.md` 와 `docs/runtime-flows.md` 의 planned 표기를 실제 코드 구조와 일치하도록 갱신한다. - FR-4: 이식 완료 후 `docs/project-structure.md` 와 `docs/runtime-flows.md` 의 planned 표기를 실제 코드 구조와 일치하도록 갱신한다.
- FR-5: 컬럼 계약 가드(OQ-2 결정) — 도메인 패키지에 표준 필드 집합 `EXPECTED_SLOT_FIELDS`(부록 A 를 가리키는 주석 포함)를 선언하고, 순수 계약 테스트 `tests/domain/slot/test_contract.py` 가 `{f.name for f in dataclasses.fields(Slot)} == EXPECTED_SLOT_FIELDS` 를 단언해 필드 추가/삭제 시 실패하도록 한다. 타입 단언은 하지 않고(이름/존재 중심) 타입 매핑은 부록 A 문서에 둔다. DB-side(information_schema) 드리프트 검사는 영속화 REQ 로 인계한다.
## 비기능 요구사항 ## 비기능 요구사항
성능, 운영성, 일관성, 자동화 안정성 등 기능 외 요구사항을 적는다. 성능, 운영성, 일관성, 자동화 안정성 등 기능 외 요구사항을 적는다.
- NFR-1: 순수 도메인 경계 유지 — 이식된 도메인 코드는 stdlib 와 패키지 내부 참조 외 외부 의존(psycopg/네트워크/CLI/config)을 import 하지 않는다(정적 import 스윕으로 검증 가능). - NFR-1: 순수 도메인 경계 유지 — 이식된 도메인 코드는 stdlib 와 패키지 내부 참조 외 외부 의존(psycopg/네트워크/CLI/config)을 import 하지 않는다(정적 import 스윕으로 검증 가능).
- NFR-2: 도메인 불변식 보존 — 6 상태/8 전이, advisory-lock 직렬화, append-only 전이 로그, closed→idle 재진입 +1, lock 보유 중 외부 I/O 금지가 이식 후에도 동일하게 성립한다. - NFR-2: 도메인 불변식 보존 — 6 상태/8 전이, advisory-lock 직렬화, append-only 전이 로그, closed→idle 재진입 +1, lock 보유 중 외부 I/O 금지가 이식 후에도 동일하게 성립한다.
- NFR-3: 컬럼 계약 보존 — `Slot` 데이터클래스 필드 계약(본 문서 부록 A)이 변형 없이 유지되어, 다음 반복의 영속화 구현이 동일 계약을 기준으로 삼을 수 있다. - NFR-3: 컬럼 계약 보존 — `Slot` 데이터클래스 필드 계약(본 문서 부록 A)이 변형 없이 유지되어, 다음 반복의 영속화 구현이 동일 계약을 기준으로 삼을 수 있다. 보존은 선언(문서: 부록 A + `docs/data-model.md`)이 아니라 자동 가드(FR-5 계약 테스트)로 강제한다.
## 범위 경계 ## 범위 경계
이번 반복에서 반드시 포함할 범위와 명시적으로 제외할 범위를 구분한다. 이번 반복에서 반드시 포함할 범위와 명시적으로 제외할 범위를 구분한다.
@@ -112,7 +114,7 @@
- R-1 (Medium): 영속화 부재로 trex-core 의 `SlotService` 는 in-memory repo 로만 구동되어, 단일 writer/advisory lock 의 실제 가치가 다음 반복(Postgres 재구성)까지 미실현된다. - R-1 (Medium): 영속화 부재로 trex-core 의 `SlotService` 는 in-memory repo 로만 구동되어, 단일 writer/advisory lock 의 실제 가치가 다음 반복(Postgres 재구성)까지 미실현된다.
- 완화 방안: 이번 반복 목표를 "도메인 코어 시드 + 테스트 green"으로 한정하고, 영속화는 별도 후속 Discovery 로 명시 인계한다. - 완화 방안: 이번 반복 목표를 "도메인 코어 시드 + 테스트 green"으로 한정하고, 영속화는 별도 후속 Discovery 로 명시 인계한다.
- R-2 (Medium): DDL 을 함께 가져오지 않으므로 향후 영속화 구현 시 `Slot` 필드와 스키마가 어긋나는 컬럼 계약 드리프트 위험이 있다. - R-2 (Medium): DDL 을 함께 가져오지 않으므로 향후 영속화 구현 시 `Slot` 필드와 스키마가 어긋나는 컬럼 계약 드리프트 위험이 있다.
- 완화 방안: 본 문서 부록 A 와 `docs/data-model.md` 를 계약 기준으로 고정(NFR-3)하고, 영속화 REQ 에서 드리프트 테스트를 동반하도록 인계한다. - 완화 방안: 이번 반복은 계약 테스트(FR-5)로 `Slot` 필드↔`EXPECTED_SLOT_FIELDS` 일치를 자동 강제하고, 부록 A·`docs/data-model.md` 를 문서 계약으로 둔다. DB-side(information_schema) 드리프트 검사는 영속화 REQ 로 인계한다.
- R-3 (Low): slot 도메인이 trex-orbit·trex-core 두 곳에 병존(이중 진실)해 로직 변경 시 동기화 부담이 생긴다. - R-3 (Low): slot 도메인이 trex-orbit·trex-core 두 곳에 병존(이중 진실)해 로직 변경 시 동기화 부담이 생긴다.
- 완화 방안: 신규 베이스 결정의 의도된 비용으로 수용하고, 수렴 시점은 별도 Discovery(OQ 처리)로 추적한다. - 완화 방안: 신규 베이스 결정의 의도된 비용으로 수용하고, 수렴 시점은 별도 Discovery(OQ 처리)로 추적한다.
@@ -131,9 +133,9 @@
- 결정: `trex_core.domain.slot` 으로 출발(독립 베이스 네임스페이스). 근거: 재사용 코어 정체성·`app` top-level 패키지 충돌 회피·OQ-3(향후 수렴) 시 자연스러운 import 경로. 이식 시 import 라인 1회 기계적 치환 비용만 발생. - 결정: `trex_core.domain.slot` 으로 출발(독립 베이스 네임스페이스). 근거: 재사용 코어 정체성·`app` top-level 패키지 충돌 회피·OQ-3(향후 수렴) 시 자연스러운 import 경로. 이식 시 import 라인 1회 기계적 치환 비용만 발생.
- 반영 위치: `# 4`(코드 영향 신규 생성 경로), `# 5` FR-1(레이아웃)·FR-2(import 경로 통일). baseline 구조 표기(`docs/project-structure.md`·`docs/runtime-flows.md` 등)의 `app/` planned 표기는 FR-4 갱신 시 `trex_core/` 로 정정한다. - 반영 위치: `# 4`(코드 영향 신규 생성 경로), `# 5` FR-1(레이아웃)·FR-2(import 경로 통일). baseline 구조 표기(`docs/project-structure.md`·`docs/runtime-flows.md` 등)의 `app/` planned 표기는 FR-4 갱신 시 `trex_core/` 로 정정한다.
- OQ-2: `Slot` 컬럼 계약(본 문서 부록 A)을 영속화 미구현 상태에서 어떻게 드리프트 없이 박제할지(문서 고정 vs 계약 테스트 vs 스키마 placeholder). - OQ-2: `Slot` 컬럼 계약(본 문서 부록 A)을 영속화 미구현 상태에서 어떻게 드리프트 없이 박제할지(문서 고정 vs 계약 테스트 vs 스키마 placeholder).
- 상태: Open - 상태: Answered (2026-06-03)
- 처리 방안: NFR-3 의 구체 수단을 운영자 확인 후 결정. 최소안은 `docs/data-model.md` + 본 문서 부록 A 를 단일 계약 기준으로 선언하고 영속화 REQ 로 드리프트 테스트를 인계. - 결정: 계약 테스트를 주 수단으로 채택(2층 구조). ① 코드 가드 = 도메인의 `EXPECTED_SLOT_FIELDS` ↔ `dataclasses.fields(Slot)` 일치 단언(FR-5). ② 문서 거울 = 부록 A + `docs/data-model.md`. DB-side(information_schema) 드리프트 검사는 영속화 반복으로 인계. 근거: 문서 고정은 강제력이 없어 R-2 미완화, 스키마 placeholder 는 제외한 영속화 인프라의 조기 유입이라 범위 위반. 계약 테스트만 순수 도메인 범위 안에서 NFR-3 을 자동 강제.
- 종료 조건: 계약 박제 수단이 정해져 NFR-3 의 검증 방식으로 연결되면 Answered. - 반영 위치: `# 4`(계약 가드 신설 항목·신규 파일), `# 5` FR-5, NFR-3, `# 6` R-2 완화, `# 7` S-4.
- OQ-3: trex-orbit↔trex-core slot 도메인의 향후 수렴(역참조/단일화) 여부. - OQ-3: trex-orbit↔trex-core slot 도메인의 향후 수렴(역참조/단일화) 여부.
- 상태: Deferred - 상태: Deferred
- 처리 방안: 이번 반복 비범위. 영속화 재구성 이후 별도 Discovery 에서 다룬다. OQ-1 결과(`trex_core.domain.slot`)를 인계 — 수렴 시 trex-orbit 이 `trex_core.domain.slot` 을 역참조하는 경로가 자연스럽다. - 처리 방안: 이번 반복 비범위. 영속화 재구성 이후 별도 Discovery 에서 다룬다. OQ-1 결과(`trex_core.domain.slot`)를 인계 — 수렴 시 trex-orbit 이 `trex_core.domain.slot` 을 역참조하는 경로가 자연스럽다.
@@ -154,6 +156,7 @@
- S-1: trex-core 가 부트스트랩되어 `pip install -e .[dev]` 후 `pytest` 가 정상 수집/실행된다. - S-1: trex-core 가 부트스트랩되어 `pip install -e .[dev]` 후 `pytest` 가 정상 수집/실행된다.
- S-2: 이식한 slot 도메인 단위테스트 2개 파일이 모두 통과한다. - S-2: 이식한 slot 도메인 단위테스트 2개 파일이 모두 통과한다.
- S-3: 이식된 도메인 코드의 import 스윕에서 외부(인프라) 의존이 0으로 확인되고, baseline 문서(project-structure/runtime-flows)가 실제 구조와 일치한다. - S-3: 이식된 도메인 코드의 import 스윕에서 외부(인프라) 의존이 0으로 확인되고, baseline 문서(project-structure/runtime-flows)가 실제 구조와 일치한다.
- S-4: 계약 테스트(`test_contract.py`)가 `Slot` 필드 집합과 `EXPECTED_SLOT_FIELDS` 일치를 단언하고 통과한다(필드 변경 시 실패하는 것을 음성 케이스로 확인).
## 측정 방식 및 데이터 출처 ## 측정 방식 및 데이터 출처
각 성공 기준을 어떻게 측정할지와 어떤 데이터나 문서를 근거로 쓸지 적는다. 각 성공 기준을 어떻게 측정할지와 어떤 데이터나 문서를 근거로 쓸지 적는다.
@@ -161,20 +164,21 @@
- S-1 측정 방식: 클린 환경에서 설치 후 `pytest` 실행 로그 확인 / 데이터 출처: CI 또는 로컬 `pytest` 출력, `pyproject.toml`. - S-1 측정 방식: 클린 환경에서 설치 후 `pytest` 실행 로그 확인 / 데이터 출처: CI 또는 로컬 `pytest` 출력, `pyproject.toml`.
- S-2 측정 방식: `pytest tests/domain/slot` 통과 여부 / 데이터 출처: 테스트 실행 결과(green count). - S-2 측정 방식: `pytest tests/domain/slot` 통과 여부 / 데이터 출처: 테스트 실행 결과(green count).
- S-3 측정 방식: `grep`/정적 import 스윕으로 외부 모듈 import 0 확인 + baseline 문서와 실제 트리 비교 / 데이터 출처: 소스 import 목록, `docs/project-structure.md`·`docs/runtime-flows.md`. - S-3 측정 방식: `grep`/정적 import 스윕으로 외부 모듈 import 0 확인 + baseline 문서와 실제 트리 비교 / 데이터 출처: 소스 import 목록, `docs/project-structure.md`·`docs/runtime-flows.md`.
- S-4 측정 방식: `pytest tests/domain/slot/test_contract.py` 통과 + 임시 필드 추가/삭제 시 실패 재현 / 데이터 출처: 계약 테스트 실행 결과, `EXPECTED_SLOT_FIELDS` 선언.
# 8. REQ로 넘기기 전 확인 체크 # 8. REQ로 넘기기 전 확인 체크
REQ 초안 작성 단계로 넘기기 전에 무엇이 확정되어야 하는지 확인한다. 미완료 항목은 후속 결정이 필요함을 뜻한다. REQ 초안 작성 단계로 넘기기 전에 무엇이 확정되어야 하는지 확인한다. 미완료 항목은 후속 결정이 필요함을 뜻한다.
- [ ] 범위(In Scope/Out of Scope) 확정 - [x] 범위(In Scope/Out of Scope) 확정
- 기준: 운영자가 In/Out 경계(특히 영속화·CLI 제외)를 확인했다. - 기준: 운영자가 In/Out 경계(특히 영속화·CLI 제외)를 확인했다. → confirm-discovery 에서 문서대로 확정(2026-06-03).
- [x] 성공 지표의 측정 방식/데이터 출처 확정 - [x] 성공 지표의 측정 방식/데이터 출처 확정
- 기준: S-1~S-3 각각 측정 방식과 데이터 출처가 명시됨(본 문서 # 7). - 기준: S-1~S-3 각각 측정 방식과 데이터 출처가 명시됨(본 문서 # 7).
- [x] High 영향 리스크 우선순위 및 해소 책임자 지정 - [x] High 영향 리스크 우선순위 및 해소 책임자 지정
- 기준: High 등급 리스크 없음(R-1/R-2 Medium, R-3 Low) — 별도 책임자 지정 불요, 완화 방안 명시됨. - 기준: High 등급 리스크 없음(R-1/R-2 Medium, R-3 Low) — 별도 책임자 지정 불요, 완화 방안 명시됨.
- [ ] 모든 오픈 질문(OQ) `Open` 상태 없음 확인 - [x] 모든 오픈 질문(OQ) `Open` 상태 없음 확인
- 기준: OQ 목록에 `Open` 상태 항목이 0개이거나, 잔여 항목 전부 `Deferred` 처리 완료 (OQ-1 Answered, OQ-3 Deferred. 현재 OQ-2 가 Open) - 기준: OQ 목록에 `Open` 상태 항목이 0개이거나, 잔여 항목 전부 `Deferred` 처리 완료 (OQ-1·OQ-2 Answered, OQ-3 Deferred → `Open` 0개)
- [ ] Freeze 확정 담당자(CONFIRMED_BY) 지정 - [x] Freeze 확정 담당자(CONFIRMED_BY) 지정
- 기준: 운영자가 confirm-discovery 시점에 CONFIRMED_BY 를 지정한다. - 기준: 운영자가 confirm-discovery 시점에 CONFIRMED_BY 를 지정한다. → Confirmed By: Justin.
# 9. 파일 처리 결과 # 9. 파일 처리 결과
이 Discovery 문서 생성/갱신 결과와 참조 문서를 기록한다. 이후 추적과 리뷰 시 근거로 사용한다. 이 Discovery 문서 생성/갱신 결과와 참조 문서를 기록한다. 이후 추적과 리뷰 시 근거로 사용한다.
@@ -190,15 +194,15 @@ REQ 초안 작성 단계로 넘기기 전에 무엇이 확정되어야 하는지
사용자나 승인자가 결정해야 하는 항목만 모아 정리한다. 결정, 확인, 데이터 요청을 구분해서 적는다. 사용자나 승인자가 결정해야 하는 항목만 모아 정리한다. 결정, 확인, 데이터 요청을 구분해서 적는다.
## DECIDE ## DECIDE
- {{DECIDE_COLUMN_CONTRACT_ANCHOR}} — `Slot` 컬럼 계약 박제 수단: 문서 고정 / 계약 테스트 / 스키마 placeholder 중 택 (OQ-2)
- ~~패키지 네임스페이스~~ → 결정됨: `trex_core.domain.slot` (OQ-1, 2026-06-03) - ~~패키지 네임스페이스~~ → 결정됨: `trex_core.domain.slot` (OQ-1, 2026-06-03)
- ~~컬럼 계약 박제 수단~~ → 결정됨: 계약 테스트 주 수단 + 문서 거울, DB-side 드리프트는 영속화 반복 인계 (OQ-2, 2026-06-03)
## CONFIRM ## CONFIRM
- {{CONFIRM_SCOPE_BOUNDARY}} — 영속화·CLI·config·coordinator 연동을 이번 반복에서 제외하는 범위 경계 확정 - ~~범위 경계~~ → 확정됨: 문서 §5 범위 경계대로(영속화·SQL·CLI·config·coordinator·trex-orbit 수정 = Out of Scope) (confirm-discovery, 2026-06-03)
- {{CONFIRM_TOOLCHAIN_PARITY}} — Python >=3.12 + setuptools + pytest + ruff(trex-orbit 동등) 채택 확정 - ~~툴체인~~ → 확정됨: trex-orbit 동등(Python >=3.12 + setuptools + pytest + ruff) 채택 (confirm-discovery, 2026-06-03)
## DATA ## DATA
- {{DATA_NONE}} — 별도 외부 데이터 요청 없음 - 없음 (별도 외부 데이터 요청 없음)
# 11. Discovery Freeze # 11. Discovery Freeze
REQ 초안 작성 인계 시점의 확정 플래그와 섹션 참조만 기록한다. 내용 재작성 없이 원본 섹션을 링크로 대신한다. REQ 초안 작성 인계 시점의 확정 플래그와 섹션 참조만 기록한다. 내용 재작성 없이 원본 섹션을 링크로 대신한다.
@@ -211,11 +215,11 @@ REQ 초안 작성 인계 시점의 확정 플래그와 섹션 참조만 기록
- 사용자 결정 필요: [# 10. 사용자 결정 필요 항목 요약](#10-사용자-결정-필요-항목-요약) - 사용자 결정 필요: [# 10. 사용자 결정 필요 항목 요약](#10-사용자-결정-필요-항목-요약)
## Freeze 플래그 ## Freeze 플래그
- Handoff Decision: 보류 - Handoff Decision: 승인
- Handoff Rationale: 초기 Discovery 초안 생성 완료. OQ-1(네임스페이스)은 `trex_core.domain.slot` 으로 Answered. OQ-2(컬럼 계약 박제)가 Open 상태이며, confirm-discovery 에서 OQ-2 결정 후 REQ Drafting 으로 인계한다. - Handoff Rationale: 모든 오픈 질문 해소(OQ-1 `trex_core.domain.slot`·OQ-2 계약 테스트 Answered, OQ-3 Deferred). 범위·툴체인 CONFIRM(§10)을 confirm-discovery 에서 확정하고 CONFIRMED_BY 지정 완료. REQ Drafting(FR-1~FR-5) 으로 인계 가능.
- Ready for REQ Drafting: false - Ready for REQ Drafting: true
- Confirmed By: TBD - Confirmed By: Justin
- Confirmed At (KST): TBD - Confirmed At (KST): 2026-06-03
# 부록 A. `Slot` 데이터클래스 ↔ `daily_slot` 컬럼 계약 (이식 보존 대상) # 부록 A. `Slot` 데이터클래스 ↔ `daily_slot` 컬럼 계약 (이식 보존 대상)
NFR-3 과 OQ-2 가 참조하는 컬럼 계약이다. 순수 도메인의 `Slot` 데이터클래스는 trex-orbit `daily_slot` 스키마 컬럼 계약을 암묵 전제하므로, trex-core 가 다음 반복에서 영속화 계층을 새로 구성할 때 이 계약을 반드시 만족시켜야 도메인이 정상 동작한다. (`docs/data-model.md` 와 동일 기준) NFR-3 과 OQ-2 가 참조하는 컬럼 계약이다. 순수 도메인의 `Slot` 데이터클래스는 trex-orbit `daily_slot` 스키마 컬럼 계약을 암묵 전제하므로, trex-core 가 다음 반복에서 영속화 계층을 새로 구성할 때 이 계약을 반드시 만족시켜야 도메인이 정상 동작한다. (`docs/data-model.md` 와 동일 기준)
+1 -1
View File
@@ -6,4 +6,4 @@
| ID | 날짜 | 이슈명 | 문서 | 상태 | | ID | 날짜 | 이슈명 | 문서 | 상태 |
|---|---|---|---|---| |---|---|---|---|---|
| dcy-001_20260603_slot-pure-domain-migration | 20260603 | trex-core 베이스 수립 및 slot 순수 도메인 이식 | [Discovery](./dcy-001_20260603_slot-pure-domain-migration.md) | draft | | dcy-001_20260603_slot-pure-domain-migration | 20260603 | trex-core 베이스 수립 및 slot 순수 도메인 이식 | [Discovery](./dcy-001_20260603_slot-pure-domain-migration.md) | confirmed |