Squashed '.stage-pilot/' content from commit 2c0510c
git-subtree-dir: .stage-pilot git-subtree-split: 2c0510c68add43c50adcdedb30c174e68e730395
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
# Batch Index
|
||||
|
||||
## Batch Register
|
||||
|
||||
| BAT ID | Profile | Status | Included REQ | Discovery | Folder |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
@@ -0,0 +1,97 @@
|
||||
# Sample Host Project Data Model
|
||||
|
||||
- Baseline Mode: declared
|
||||
- Baseline Seed: .stage-pilot/bootstrap/baseline.yaml
|
||||
- Status: confirmed
|
||||
- Owner: Platform Team
|
||||
- Last Updated (KST): 2026-04-30 16:30
|
||||
- Source Discovery / Batch: bootstrap-baseline
|
||||
|
||||
## Project Summary
|
||||
- Python-based API service for curated market data analysis.
|
||||
|
||||
## Primary Domain
|
||||
- financial analytics
|
||||
|
||||
## Primary Persistence Backend
|
||||
- PostgreSQL
|
||||
|
||||
## Purpose
|
||||
- This document captures the initial data model baseline after StagePilot bootstrap.
|
||||
- It provides a shared reference for later REQ, delivery, migration, and verification work.
|
||||
|
||||
## Scope
|
||||
- Covers core entities, relationships, lifecycle rules, and persistence assumptions for the sample host project.
|
||||
- Does not replace ORM code, migrations, or detailed acceptance criteria.
|
||||
|
||||
## Model Summary
|
||||
|
||||
- Market Snapshot :: normalized raw and curated market data for a tracked symbol
|
||||
- Analytics Snapshot :: derived metrics computed from a Market Snapshot
|
||||
|
||||
## Entity: `Market Snapshot`
|
||||
|
||||
- Purpose: represent the latest curated market data for a tracked symbol
|
||||
- Source of Truth: PostgreSQL `market_snapshots` table
|
||||
- Lifecycle: collected -> normalized -> published -> superseded
|
||||
|
||||
### Key Fields
|
||||
|
||||
- `symbol` :: string :: tracked market identifier
|
||||
- `captured_at` :: timestamp :: time the upstream data snapshot was collected
|
||||
- `payload` :: json :: normalized market data stored for API responses and analytics inputs
|
||||
|
||||
### Relationships
|
||||
|
||||
- `Analytics Snapshot` :: derived from one published Market Snapshot
|
||||
|
||||
### State Rules
|
||||
|
||||
- only one published snapshot per symbol should be treated as current
|
||||
- superseded snapshots remain queryable for audit or replay use cases
|
||||
|
||||
## Entity: `Analytics Snapshot`
|
||||
|
||||
- Purpose: represent derived metrics calculated from a market snapshot
|
||||
- Source of Truth: PostgreSQL `analytics_snapshots` table
|
||||
- Lifecycle: queued -> computed -> published -> superseded
|
||||
|
||||
### Key Fields
|
||||
|
||||
- `symbol` :: string :: tracked market identifier
|
||||
- `derived_at` :: timestamp :: time analytics were computed
|
||||
- `metrics` :: json :: derived indicators and summary values
|
||||
|
||||
### Relationships
|
||||
|
||||
- `Market Snapshot` :: source snapshot used to compute analytics
|
||||
|
||||
### State Rules
|
||||
|
||||
- published analytics must reference an existing published or superseded market snapshot
|
||||
- analytics should be recomputed whenever a new published market snapshot replaces the current one
|
||||
|
||||
## Shared Consistency Rules
|
||||
|
||||
- `symbol` identifiers must remain consistent across snapshot and analytics entities
|
||||
- analytics records must not exist without a corresponding source market snapshot
|
||||
|
||||
## Persistence / Integration Notes
|
||||
|
||||
- refresh jobs write Market Snapshot rows before recomputing Analytics Snapshot rows
|
||||
- future retention and archival policies are not defined yet
|
||||
|
||||
## Current Gaps / Planned Changes
|
||||
|
||||
- exact table schema and indexing strategy are still undecided
|
||||
- historical retention policy is still undecided
|
||||
|
||||
## Update Triggers
|
||||
|
||||
- Update this document when a core entity, key field, or relationship changes.
|
||||
- Update this document when lifecycle or persistence behavior changes.
|
||||
- Update this document when a batch introduces a migration, backfill, or breaking data assumption.
|
||||
|
||||
## Change Log
|
||||
|
||||
- 2026-04-30: bootstrap-baseline created the initial data model baseline from declared project inputs.
|
||||
@@ -0,0 +1,8 @@
|
||||
# Discovery 전체 인덱스
|
||||
|
||||
<!-- 아래 테이블은 /new-discovery 실행 시 자동 갱신된다. 수동 편집 금지. -->
|
||||
|
||||
## Discovery 목록
|
||||
|
||||
| ID | 날짜 | 이슈명 | 문서 | 상태 |
|
||||
|---|---|---|---|---|
|
||||
@@ -0,0 +1,97 @@
|
||||
# Sample Host Project Interface Contract
|
||||
|
||||
- Baseline Mode: declared
|
||||
- Baseline Seed: .stage-pilot/bootstrap/baseline.yaml
|
||||
- Status: confirmed
|
||||
- Owner: Platform Team
|
||||
- Last Updated (KST): 2026-04-30 16:30
|
||||
- Source Discovery / Batch: bootstrap-baseline
|
||||
- Primary Runtime: api-service
|
||||
|
||||
## Project Summary
|
||||
- Python-based API service for curated market data analysis.
|
||||
|
||||
## Primary Domain
|
||||
- financial analytics
|
||||
|
||||
## Purpose
|
||||
- This document captures the initial interface contract baseline after StagePilot bootstrap.
|
||||
- It provides a shared reference for future REQ, design, implementation, and verification work.
|
||||
|
||||
## Scope
|
||||
- Covers the planned API and job interfaces exposed by the sample host project.
|
||||
- Does not duplicate detailed acceptance criteria or generated OpenAPI/schema artifacts.
|
||||
|
||||
## Interface Summary
|
||||
|
||||
- HTTP market data API :: serve curated market data and derived analytics to clients
|
||||
- Refresh job command :: update stored market data snapshots from upstream sources
|
||||
|
||||
## Interface: `HTTP market data API`
|
||||
|
||||
- Type: http-api
|
||||
- Consumers / Producers: internal dashboards and downstream service clients
|
||||
- Purpose: serve curated market data and derived analytics to clients
|
||||
- Stability: experimental
|
||||
|
||||
### Inputs
|
||||
|
||||
- `GET /markets/{symbol}` :: request the current curated snapshot for a symbol
|
||||
- `GET /analytics/{symbol}` :: request derived analytics for a symbol
|
||||
|
||||
### Outputs
|
||||
|
||||
- JSON market snapshot payload :: current normalized market data for the requested symbol
|
||||
- JSON analytics payload :: derived analytics and summary metrics for the requested symbol
|
||||
|
||||
### Error Contract
|
||||
|
||||
- `404 not_found` :: symbol is not available in the curated dataset
|
||||
- `503 upstream_unavailable` :: refreshed data is temporarily unavailable
|
||||
|
||||
### Compatibility Rules
|
||||
|
||||
- response payload changes should remain backward compatible within the same API version
|
||||
|
||||
## Interface: `Refresh job command`
|
||||
|
||||
- Type: cli
|
||||
- Consumers / Producers: operators and scheduled automation
|
||||
- Purpose: update stored market data snapshots from upstream sources
|
||||
- Stability: internal
|
||||
|
||||
### Inputs
|
||||
|
||||
- `python -m src.jobs.refresh_market_data` :: trigger a refresh of curated market data snapshots
|
||||
|
||||
### Outputs
|
||||
|
||||
- refreshed local snapshot artifacts :: normalized data persisted for later API reads
|
||||
|
||||
### Error Contract
|
||||
|
||||
- non-zero exit code :: refresh failed and data should be treated as stale
|
||||
|
||||
### Compatibility Rules
|
||||
|
||||
- command arguments and exit-code semantics should remain stable for automation callers
|
||||
|
||||
## Shared Constraints
|
||||
|
||||
- all interfaces assume symbol identifiers are validated before persistence or response rendering
|
||||
- refresh failures must not silently overwrite previously known-good snapshots
|
||||
|
||||
## Current Gaps / Planned Changes
|
||||
|
||||
- authentication and authorization rules are not defined yet
|
||||
- API versioning strategy is still undecided
|
||||
|
||||
## Update Triggers
|
||||
|
||||
- Update this document when an externally visible API, event, CLI, or file contract changes.
|
||||
- Update this document when a batch changes compatibility, validation, or error behavior.
|
||||
- Update this document when a new external consumer or producer is introduced.
|
||||
|
||||
## Change Log
|
||||
|
||||
- 2026-04-30: bootstrap-baseline created the initial interface contract baseline from declared project inputs.
|
||||
@@ -0,0 +1,91 @@
|
||||
# Sample Host Project Structure
|
||||
|
||||
- Baseline Mode: declared
|
||||
- Baseline Seed: .stage-pilot/bootstrap/baseline.yaml
|
||||
- Status: confirmed
|
||||
- Owner: Platform Team
|
||||
- Last Updated (KST): 2026-04-30 16:30
|
||||
- Source Discovery / Batch: bootstrap-baseline
|
||||
|
||||
## Project Summary
|
||||
- Python-based API service for curated market data analysis.
|
||||
|
||||
## Primary Domain
|
||||
- financial analytics
|
||||
|
||||
## Tech Stack
|
||||
- Python
|
||||
- FastAPI
|
||||
- PostgreSQL
|
||||
|
||||
## Primary Runtime
|
||||
- Type: api-service
|
||||
- Planned Entry Points:
|
||||
- uvicorn src.main:app :: serve the HTTP API
|
||||
- python -m src.jobs.refresh_market_data :: refresh curated market data snapshots
|
||||
|
||||
## Purpose
|
||||
- This document captures the initial repository structure baseline after StagePilot bootstrap.
|
||||
- It becomes a shared reference before the first real Discovery starts.
|
||||
|
||||
## Scope
|
||||
- Covers top-level repository layout and broad module boundaries.
|
||||
- Does not define feature-specific acceptance criteria or delivery units.
|
||||
|
||||
## Top-Level Structure
|
||||
|
||||
```text
|
||||
.
|
||||
├── .github/
|
||||
├── .stage-pilot/
|
||||
├── docs/
|
||||
├── src/
|
||||
├── scripts/
|
||||
├── tests/
|
||||
└── README.md
|
||||
```
|
||||
|
||||
## Package / Module Responsibilities
|
||||
|
||||
- `.github/`
|
||||
- StagePilot skills, templates, and host instructions installed into the repository.
|
||||
- `.stage-pilot/`
|
||||
- bootstrap declaration seed used to render the baseline documents.
|
||||
- `docs/`
|
||||
- Active SDLC docs, index files, and cross-cutting baseline references.
|
||||
- `src/`
|
||||
- Product and service implementation code.
|
||||
- `scripts/`
|
||||
- developer and operator helper commands.
|
||||
- `tests/`
|
||||
- Automated checks and regression coverage.
|
||||
|
||||
## Dependency Rules
|
||||
|
||||
- Delivery documents under `docs/` must not be treated as implementation modules.
|
||||
- `src/` can evolve independently, but structure changes should update this baseline.
|
||||
- `.stage-pilot/bootstrap/baseline.yaml` should be updated when the declared project identity changes before code exists.
|
||||
- Tooling automation under `.stage-pilot/` must not overwrite host source code.
|
||||
|
||||
## Shared Boundaries
|
||||
|
||||
- `.stage-pilot/` provides SDLC workflow assets.
|
||||
- `.stage-pilot/` stores bootstrap declarations outside active SDLC units.
|
||||
- `docs/` is the source of truth for active SDLC state.
|
||||
- `src/`, `scripts/`, and `tests/` remain host-project owned implementation surfaces.
|
||||
|
||||
## Current Gaps / Planned Changes
|
||||
|
||||
- The first real Discovery has not been created yet.
|
||||
- Deployment target is still undecided.
|
||||
- Actual domain module boundaries will be refined once the first delivery topic is defined.
|
||||
|
||||
## Update Triggers
|
||||
|
||||
- Update this document when top-level directories change.
|
||||
- Update this document when module ownership boundaries change.
|
||||
- Update this document when a batch changes the approved structure baseline.
|
||||
|
||||
## Change Log
|
||||
|
||||
- 2026-04-30: bootstrap-baseline created the initial repository structure baseline from `.stage-pilot/bootstrap/baseline.yaml`.
|
||||
@@ -0,0 +1,6 @@
|
||||
# Release Index
|
||||
|
||||
## Release Register
|
||||
|
||||
| REL ID | Profile | Status | Included Batch | Discovery/REQ Input | Link |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
@@ -0,0 +1,68 @@
|
||||
# Sample Host Project Runtime Flows
|
||||
|
||||
- Baseline Mode: declared
|
||||
- Baseline Seed: .stage-pilot/bootstrap/baseline.yaml
|
||||
- Status: confirmed
|
||||
- Owner: Platform Team
|
||||
- Last Updated (KST): 2026-04-30 16:30
|
||||
- Source Discovery / Batch: bootstrap-baseline
|
||||
- Primary Runtime: api-service
|
||||
|
||||
## Project Summary
|
||||
- Python-based API service for curated market data analysis.
|
||||
|
||||
## Purpose
|
||||
- This document captures the initial command and runtime flow baseline after StagePilot bootstrap.
|
||||
- It gives later Discovery and Batch work a stable reference before product-specific flows exist.
|
||||
|
||||
## Scope
|
||||
- Covers bootstrap, discovery start, and validation entry points.
|
||||
- Does not define detailed feature behavior.
|
||||
|
||||
## Covered Entry Points
|
||||
|
||||
- uvicorn src.main:app :: serve the HTTP API
|
||||
- python -m src.jobs.refresh_market_data :: refresh curated market data snapshots
|
||||
- Copilot Chat /bootstrap-baseline :: initialize declared baseline docs
|
||||
|
||||
## Shared Components
|
||||
|
||||
- .stage-pilot/bootstrap/baseline.yaml
|
||||
- `.stage-pilot/skills/`
|
||||
- `docs/project-structure.md`
|
||||
- `docs/*/index.md`
|
||||
|
||||
## Flow: `bootstrap baseline initialization`
|
||||
|
||||
1. StagePilot assets are installed into the host repository.
|
||||
2. `/bootstrap-baseline` collects the minimum declaration set and writes `.stage-pilot/bootstrap/baseline.yaml`.
|
||||
3. baseline docs and active index skeletons are rendered from that seed.
|
||||
4. The repository becomes ready for the first real Discovery.
|
||||
|
||||
## Flow: `planned host runtime`
|
||||
|
||||
1. Operator starts `uvicorn src.main:app` to serve the planned HTTP API.
|
||||
2. Background refresh can run with `python -m src.jobs.refresh_market_data`.
|
||||
3. Detailed production flows remain subject to later Discovery and delivery work.
|
||||
|
||||
## Flow Constraints
|
||||
|
||||
- Fresh host repositories should complete baseline initialization before the first real Discovery.
|
||||
- Declared runtime assumptions must stay in sync with `.stage-pilot/bootstrap/baseline.yaml` until observed implementation evidence exists.
|
||||
- Structure or orchestration changes must update this document or `docs/project-structure.md`.
|
||||
|
||||
## Current Gaps / Planned Changes
|
||||
|
||||
- Product-specific runtime orchestration is not defined yet.
|
||||
- Deployment target is undecided.
|
||||
- Delivery and release flows will be added by later Discovery and Batch work.
|
||||
|
||||
## Update Triggers
|
||||
|
||||
- Update this document when command entry points change.
|
||||
- Update this document when runtime orchestration changes.
|
||||
- Update this document when a batch changes the approved flow baseline.
|
||||
|
||||
## Change Log
|
||||
|
||||
- 2026-04-30: bootstrap-baseline created the initial runtime flow baseline from `.stage-pilot/bootstrap/baseline.yaml`.
|
||||
@@ -0,0 +1,19 @@
|
||||
# Software Requirement Specification Index
|
||||
|
||||
## 목적
|
||||
- 이 문서는 bootstrap-baseline 직후의 requirement register 골격 예시다.
|
||||
- 첫 real Discovery 이후 `draft-req`가 실제 requirement를 추가한다.
|
||||
|
||||
## Next Requirement ID
|
||||
|
||||
- Current: `REQ-001`
|
||||
- Rule: `Requirement Register`에 있는 가장 큰 REQ 번호보다 정확히 1 커야 한다.
|
||||
|
||||
## Requirement Register
|
||||
|
||||
| ID | Title | Type | Status | Priority | Owner | Link |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
|
||||
## Recent Change Log Summary
|
||||
|
||||
- none
|
||||
Reference in New Issue
Block a user