feat(dotnet): add provenance contract harness
This commit is contained in:
@@ -1469,6 +1469,7 @@ WBS-8.8 (KIS 리팩터) — 독립적 (원격 병행)
|
||||
> 실행 분해 계획: [WBS_10_DOTNET_MIGRATION_EXECUTION_PLAN.yaml](./WBS_10_DOTNET_MIGRATION_EXECUTION_PLAN.yaml)
|
||||
> 실행 분해 검증기: `tools/validate_dotnet_migration_execution_plan_v1.py`
|
||||
> parity 계약: [WBS_10_DOTNET_PARITY_CONTRACT.yaml](./WBS_10_DOTNET_PARITY_CONTRACT.yaml)
|
||||
> provenance 계약: [WBS_10_DOTNET_PROVENANCE_CONTRACT.yaml](./WBS_10_DOTNET_PROVENANCE_CONTRACT.yaml)
|
||||
|
||||
> 현황 진단(2026-06-26): .NET 프로젝트는 Python 엔진(41 모듈, 14,500 LOC) 대비 5~10%(~1,400 LOC) 수준.
|
||||
> Domain 계산기 6개·데이터 모델 8개·KIS/Naver/Yahoo 클라이언트·PostgreSQL 마이그레이션·Razor Pages 어드민 대시보드 기본 구현 완료.
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
formula_id: WBS_10_DOTNET_PROVENANCE_CONTRACT_V1
|
||||
owner: QuantEngine
|
||||
status: draft
|
||||
goal: "결정/팩터/수집 provenance payload를 표준화한다."
|
||||
|
||||
payloads:
|
||||
- payload_id: factor_evidence
|
||||
source: src/dotnet/QuantEngine.Application/Services/DecisionLearningService.cs
|
||||
required_fields:
|
||||
- FactorObservationId
|
||||
- FactorId
|
||||
- FactorVersion
|
||||
- ObservedAt
|
||||
- Gate
|
||||
- Role
|
||||
- SourceName
|
||||
- PayloadJson
|
||||
- ProvenanceJson
|
||||
nullable_fields:
|
||||
- NumericValue
|
||||
- TextValue
|
||||
pass_condition: "factor evidence payload가 누락 없이 기록됨"
|
||||
|
||||
- payload_id: decision_event
|
||||
source: src/dotnet/QuantEngine.Application/Services/DecisionLearningService.cs
|
||||
required_fields:
|
||||
- decisionKey
|
||||
- decidedAt
|
||||
- instrumentId
|
||||
- action
|
||||
- gate
|
||||
- sourceVersion
|
||||
nullable_fields:
|
||||
- score
|
||||
- trace
|
||||
- provenance
|
||||
pass_condition: "decision event payload가 normalized store에 기록됨"
|
||||
|
||||
- payload_id: collection_audit
|
||||
source: src/dotnet/QuantEngine.Application/Models/CollectionExecutionAudit.cs
|
||||
required_fields:
|
||||
- RunId
|
||||
- State
|
||||
- StartedAt
|
||||
- SuccessCount
|
||||
- ErrorCount
|
||||
nullable_fields:
|
||||
- FinishedAt
|
||||
- Message
|
||||
pass_condition: "collection audit payload가 append-only JSONL에 기록됨"
|
||||
|
||||
- payload_id: scheduler_audit
|
||||
source: src/dotnet/QuantEngine.Web/Services/SchedulerModels.cs
|
||||
required_fields:
|
||||
- JobId
|
||||
- RunId
|
||||
- State
|
||||
- StartedAt
|
||||
nullable_fields:
|
||||
- Reason
|
||||
- FinishedAt
|
||||
- ResourceKey
|
||||
pass_condition: "scheduler audit payload가 append-only JSONL에 기록됨"
|
||||
|
||||
notes:
|
||||
- "provenance payload는 구조를 표준화하되, 숫자 계산은 하지 않는다."
|
||||
- "LLM은 payload value를 재계산하지 않는다."
|
||||
Reference in New Issue
Block a user