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:
@@ -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` 와 동일 기준)
|
||||||
|
|||||||
@@ -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 |
|
||||||
Reference in New Issue
Block a user