Bootstrap StagePilot baseline for slot domain migration
Initialize baseline seed, four baseline docs (project-structure, runtime-flows, interface-contract, data-model), and the active discovery/srs/batches/releases indexes. Content derived from the trex-orbit slot pure-domain migration plan (trex-core as a new base, pure domain only). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
# Trex Core Project Structure
|
||||
|
||||
- Baseline Mode: mixed
|
||||
- Baseline Seed: .stage-pilot/bootstrap/baseline.yaml
|
||||
- Status: draft
|
||||
- Owner: project maintainers
|
||||
- Last Updated (KST): 2026-06-03
|
||||
- Source Discovery / Batch: bootstrap-baseline (pre-Discovery, 3-phase lifecycle 밖의 bootstrap 산출물)
|
||||
|
||||
## Project Summary
|
||||
- trex 제품군의 공용 베이스로, 첫 도메인으로 trex-orbit 의 일일 거래 슬롯 생명주기(slot) 순수 도메인을 storage-agnostic 하게 이식한 코어다.
|
||||
|
||||
## Primary Domain
|
||||
- 자동매매 일일 거래 슬롯 생명주기 도메인 (equity trading slot lifecycle)
|
||||
|
||||
## Tech Stack
|
||||
- Python >=3.12
|
||||
- pyproject.toml 기반 패키지 (setuptools)
|
||||
- pytest (단위 테스트)
|
||||
- ruff (린트)
|
||||
- storage-agnostic 순수 도메인 (현재 in-memory repository, PostgreSQL/psycopg 는 향후 영속화 단계에서 도입 예정)
|
||||
|
||||
## Primary Runtime
|
||||
- Type: library
|
||||
- Planned Entry Points:
|
||||
- SlotService :: 슬롯 생명주기 도메인 서비스 — preallocate / transit / capacity / entry-count 의 in-process API
|
||||
- SlotRepository (Protocol) :: 저장소 추상화 경계 — 구현체(in-memory, 향후 PostgreSQL)를 주입받는 영속화 계약
|
||||
|
||||
## Purpose
|
||||
- This document is the current approved repository and package structure baseline.
|
||||
- It is a cross-cutting reference document for Discovery, REQ, Batch Design, Batch Verification, and implementation updates.
|
||||
|
||||
## Scope
|
||||
- Covers the top-level repository layout and package/module boundaries.
|
||||
- Does not duplicate detailed business rules, acceptance criteria, or implementation-only function signatures.
|
||||
|
||||
## Top-Level Structure
|
||||
|
||||
```text
|
||||
.
|
||||
├── .github/ # Copilot instructions + StagePilot skill entrypoints
|
||||
│ ├── instructions/
|
||||
│ └── skills/
|
||||
├── .stage-pilot/ # StagePilot 도구/템플릿/부트스트랩 seed
|
||||
│ ├── bootstrap/
|
||||
│ │ └── baseline.yaml
|
||||
│ └── templates/
|
||||
├── docs/ # SDLC baseline 문서 + active index
|
||||
│ ├── batches/index.md
|
||||
│ ├── discovery/index.md
|
||||
│ ├── releases/index.md
|
||||
│ ├── srs/index.md
|
||||
│ ├── data-model.md
|
||||
│ ├── interface-contract.md
|
||||
│ ├── project-structure.md
|
||||
│ └── runtime-flows.md
|
||||
├── CLAUDE.md # SDLC governance instructions
|
||||
└── (planned)
|
||||
├── pyproject.toml # 패키지 메타 + pytest/ruff 설정
|
||||
├── app/
|
||||
│ └── domain/
|
||||
│ └── slot/ # 이식 대상 순수 도메인
|
||||
└── tests/
|
||||
└── domain/slot/ # 도메인 단위 테스트
|
||||
```
|
||||
|
||||
> 참고: 위 `(planned)` 항목은 slot 순수 도메인 이관 Batch 에서 생성될 예정 구조다(plan.md). 현재 저장소에는 아직 코드가 없고 governance/문서 스캐폴딩만 존재한다.
|
||||
|
||||
## Package / Module Responsibilities
|
||||
|
||||
- `app/domain/slot/` (planned)
|
||||
- 슬롯 생명주기 순수 도메인. 6 상태 머신(`state.py`), 데이터 모델(`models.py`), 예외(`errors.py`), 저장소 계약(`repository.py` Protocol), 도메인 서비스(`service.py`), 테스트용 in-memory 구현(`in_memory_repository.py`).
|
||||
- 외부 의존 0 — stdlib 와 패키지 내부 참조만 사용.
|
||||
- `tests/domain/slot/` (planned)
|
||||
- 상태머신/서비스 단위 테스트. InMemorySlotRepository 기반으로 실제 DB 없이 검증.
|
||||
- `docs/`
|
||||
- SDLC baseline(구조/흐름/인터페이스/데이터 모델) 및 active index(discovery/srs/batches/releases).
|
||||
- `pyproject.toml` (planned)
|
||||
- 패키지 메타데이터, 의존성, pytest/ruff 설정.
|
||||
|
||||
## Dependency Rules
|
||||
|
||||
- 순수 도메인(`app/domain/slot/`)은 저장소 구현, 브로커, 네트워크, CLI 등 인프라에 직접 의존하지 않는다.
|
||||
- 저장소 접근은 오직 `SlotRepository` Protocol 을 통해서만 이뤄지고 구현체는 주입된다.
|
||||
- 인프라(향후 PostgreSQL 구현, CLI, config)는 도메인을 의존할 수 있으나 그 역은 금지한다.
|
||||
|
||||
## Shared Boundaries
|
||||
|
||||
- `SlotRepository` Protocol 이 도메인 ↔ 저장소 사이의 단일 경계다.
|
||||
- `SLOT_ADVISORY_LOCK_ID` 상수가 모든 상태 변경 직렬화의 공유 기준점이다.
|
||||
|
||||
## Current Gaps / Planned Changes
|
||||
|
||||
- 영속화 구현체(PostgreSQL repository)와 SQL 스키마/마이그레이션은 이번 범위 밖 — 향후 도입.
|
||||
- CLI / 설정(config) 표면 없음(trex-orbit 의 `trex slot` CLI 미이식).
|
||||
- 패키지 네임스페이스(`app.domain.slot` vs `trex_core.domain.slot`)는 첫 Discovery 에서 확정(plan.md OQ-1).
|
||||
- `pyproject.toml` 및 `app/`, `tests/` 스캐폴딩은 이관 Batch 에서 생성 예정.
|
||||
|
||||
## Update Triggers
|
||||
|
||||
- Update this document when package boundaries change.
|
||||
- Update this document when new top-level runtime or domain modules are added.
|
||||
- Update this document when a batch changes the approved structure baseline.
|
||||
|
||||
## Change Log
|
||||
|
||||
- 2026-06-03 :: bootstrap-baseline 으로 초기 구조 baseline 생성(mixed: trex-orbit 코드 관찰 + 이관 계획 선언).
|
||||
Reference in New Issue
Block a user